Ключ прикладного программного интерфейса (API) – это уникальный код, используемый в API для идентификации программы, или вызываемого пользователя. API-ключи используются для отслеживания и контроля того, кто и как использует API, а также для аутентификации и авторизации приложений – аналогично тому, как работают имена пользователей и пароли. API ключ может быть в виде одного ключа или набора нескольких ключей. Пользователи должны придерживаться передовых методов, чтобы улучшить общую защиту от кражи API-ключей и избежать связанных с этим последствий компрометации их API-ключей.
API и API-ключ
Чтобы понять, что такое ключ API, нужно сначала понять, что такое API. Прикладной программный интерфейс или API – это программный посредник, позволяющий двум или более программам обмениваться информацией. Например, API CoinMarketCap позволяет другим программам получать и использовать данные криптовалют, такие как цена, объем и рыночная капитализация.
API-ключ может быть разных форм. Это может быть один ключ или набор нескольких ключей. В разных системах эти ключи используются для аутентификации и авторизации программы аналогично тому, как используются имя пользователя и пароль. API-ключ используется клиентом API для аутентификации приложения, вызывающего API.
Например, если Binance Academy хочет использовать API CoinMarketCap, API-ключ будет сгенерирован в CoinMarketCap и использован для аутентификации лица 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 для проверки подписи. Основное преимущество использования единственного ключа состоит в том, что все происходит быстрее и требует меньшей вычислительной мощности для генерации и проверки подписи. Хорошим примером симметричного ключа является 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 распространенных видов мошенничества с криптовалютами и как их избежать



