Ключ интерфейса прикладного программирования (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 для проверки подписи. Основными преимуществами использования уникального ключа являются скорость процесса и необходимость меньших вычислительных мощностей для создания и проверки подписи. Хорошим примером симметричного ключа является 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 распространенных мошенничеств с криптовалютами и как их избежать
