Ключ интерфейса прикладного программирования (API) — это уникальный код, используемый API для идентификации приложения или пользователя, делающего запрос. Ключи API используются для отслеживания и контроля того, кто использует API и как они его используют, а также для аутентификации и авторизации приложений, аналогично тому, как работают имена пользователей и пароли. Ключ API может быть в виде одного ключа или набора ключей. Пользователи должны следовать передовым практикам, чтобы повысить общую безопасность от кражи ключей API и избежать последствий компрометации ключей API.
API и ключ API
Чтобы понять, что такое ключ API, сначала нужно понять, что такое API. Интерфейс прикладного программирования или API — это программный посредник, который позволяет двум или более приложениям обмениваться информацией. Например, API CoinMarketCap позволяет другим приложениям получать и использовать криптографические данные, такие как цена, объем и капитализация.
Ключ API бывает разных форм: это может быть один ключ или набор ключей. Различные системы используют эти ключи для аутентификации и авторизации приложения, аналогично имени пользователя и паролю для отдельного человека. Ключ API используется клиентом API для аутентификации приложения, запрашивающего API.
Например, если Binance Academy хочет использовать API CoinMarketCap, CoinMarketCap сгенерирует ключ API и будет использовать его для аутентификации личности Binance Academy (клиента API), который запрашивает доступ к API. Когда Binance Academy получает доступ к API CoinMarketCap, этот ключ API должен быть отправлен в CoinMarketCap вместе с запросом.
Этот ключ API должен использоваться только Binance Academy и не должен передаваться или отправляться другим лицам. Распространение этого ключа API позволит третьей стороне получить доступ к CoinMarketCap от имени Binance Academy, и все действия этой третьей стороны будут выглядеть так, как если бы они исходили из Binance Academy.
Ключ API также может использоваться API CoinMarketCap для подтверждения того, разрешено ли приложению доступ к запрошенному ресурсу. Кроме того, владельцы API используют ключи API для мониторинга активности API, например различных типов запросов, трафика и объема запросов.
Что такое ключ API?
Ключ API используется для контроля и отслеживания того, кто использует API и как они его используют. Термин «ключ API» может иметь разное значение в разных системах. Некоторые системы имеют один код, но другие могут иметь несколько кодов для одного «ключа API».
Таким образом, «ключ API» представляет собой уникальный код или набор уникальных кодов, используемых API для аутентификации и авторизации пользователя или приложения, отправляющего запрос. Некоторые коды используются для аутентификации, а другие — для создания криптографических подписей, подтверждающих легитимность запроса.
Эти коды аутентификации обычно называются «ключами API», тогда как коды, используемые для криптографических подписей, имеют разные названия, например «секретный ключ», «открытый ключ» или «закрытый ключ». Аутентификация включает идентификацию соответствующих объектов и подтверждение их подлинности. являются теми, кем они себя называют.
С другой стороны, авторизация определяет, к каким сервисам API разрешен доступ. Функция ключа API аналогична функции имени пользователя и пароля учетной записи. Его также можно связать с другими устройствами безопасности для повышения общей безопасности.
Каждый ключ API обычно создается владельцем API для конкретного объекта (подробнее см. ниже), и каждый раз, когда делается запрос к конечной точке API, для которой требуется аутентификация или авторизация от пользователя API, или и то, и другое, используется соответствующий ключ. .
Криптографические подписи
Некоторые ключи API используют криптографические подписи в качестве дополнительного уровня проверки. Когда пользователь хочет отправить определенные данные в API, к запросу можно добавить цифровую подпись, созданную другим ключом. Используя криптографию, владелец API может проверить, соответствует ли эта цифровая подпись отправленным данным.
Симметричные и асимметричные подписи
Данные, передаваемые через API, могут быть подписаны криптографическими ключами, которые можно разделить на следующие категории:
Симметричные ключи
Они предполагают использование секретного ключа для подписания данных и проверки подписи. При использовании симметричных ключей ключ API и секретный ключ обычно генерируются владельцем API, и один и тот же секретный ключ должен использоваться службой API для проверки подписи. Основное преимущество использования одного ключа заключается в том, что его можно реализовать быстрее и требуется меньше вычислительной мощности для генерации и проверки подписи. HMAC — хороший пример симметричного ключа.
Асимметричные клавиши
Они предполагают использование двух ключей: закрытого ключа и открытого ключа, которые различаются, но криптографически связаны. Закрытый ключ используется для генерации подписи, а открытый ключ используется для проверки подписи. Ключ API генерируется владельцем API, но пара частного и открытого ключей создается пользователем. Владелец API должен использовать только открытый ключ для проверки подписи, поэтому закрытый ключ может оставаться локальным и секретным.
Основным преимуществом использования асимметричных ключей является повышенная безопасность разделения ключей генерации и проверки подписи. Это позволяет внешним системам проверять подписи, не имея возможности их генерировать. Еще одним преимуществом является то, что некоторые системы асимметричного шифрования позволяют добавлять пароль к закрытым ключам. Хорошим примером являются пары ключей RSA.
Ключи API безопасны?
Ответственность за ключ API лежит на пользователе. Ключи API аналогичны паролям, и к ним следует относиться с такой же осторожностью. Передача ключа API аналогична передаче пароля и поэтому не должна осуществляться, поскольку это подвергнет риску учетную запись пользователя.
Ключи API обычно становятся объектом кибератак, поскольку их можно использовать для выполнения крупномасштабных операций в системах, таких как запрос личной информации или выполнение финансовых транзакций. Действительно были случаи, когда веб-сканеры успешно сканировали онлайн-базы данных кода, чтобы украсть ключи API.
Последствия кражи ключа API могут быть драматичными и привести к значительным финансовым потерям. Кроме того, поскольку срок действия некоторых ключей API не истекает, злоумышленники могут использовать их в течение неопределенного времени после кражи, пока сами ключи не будут отозваны.
Рекомендации по использованию ключей API
Из-за доступа к конфиденциальным данным и общей уязвимости безопасное использование ключей API имеет первостепенное значение. Вы можете следовать этим рекомендациям при использовании ключей API, чтобы повысить их общую безопасность:
Часто меняйте ключи API. Это означает, что вам следует удалить текущий ключ API и создать новый. При наличии нескольких систем обычно легко создавать и удалять ключи API. Точно так же, как некоторые системы требуют, чтобы вы меняли пароль каждые 30–90 дней, вам следует менять ключи API с такой же частотой.
Использовать белый список IP-адресов. При создании ключа API создайте список IP-адресов, которым разрешено использовать этот ключ (белый список IP-адресов). Вы также можете указать список заблокированных IP-адресов (черный список IP-адресов). Таким образом, даже если ваш ключ API украден, к нему не сможет получить доступ неизвестный IP-адрес.
Используйте несколько ключей API. Наличие нескольких ключей и разделение обязанностей между ними снизит риск безопасности, поскольку ваша безопасность не будет зависеть от одного ключа с широкими разрешениями. Вы также можете установить разные белые списки IP-адресов для каждого ключа, что еще больше снижает риск безопасности.
Надежно храните ключи API. Не храните ключи в доступных местах, на общедоступных компьютерах или в исходном текстовом формате. Вместо этого храните их, используя шифрование или менеджер паролей для дополнительной безопасности, и будьте осторожны, чтобы случайно не раскрыть их.
Не передавайте свои ключи API. Вы можете сравнить обмен ключом API с обменом паролем. Это дает другой стороне те же права аутентификации и авторизации, что и вы. В случае взлома ваш ключ API может быть украден и использован для взлома вашей учетной записи. Ключ API следует использовать только между вами и системой, которая его сгенерировала.
Если ваш ключ API скомпрометирован, вам необходимо сначала деактивировать его, чтобы избежать дальнейшего повреждения. В случае финансовых потерь сделайте скриншоты ключевой информации, связанной с инцидентом, свяжитесь с соответствующими организациями и подайте жалобу. Это лучший способ увеличить ваши шансы на возврат потерянных средств.
Заключение
Ключи API обеспечивают важные функции аутентификации и авторизации, и пользователи должны тщательно управлять своими ключами и защищать их. Существует множество уровней и аспектов, которые могут обеспечить безопасное использование ключей API. В целом, ключ API следует рассматривать как пароль вашей учетной записи.
Больше информации
Общие принципы безопасности
5 распространенных мошенничеств с криптовалютами и как их избежать.

