TL;DR
Ключ интерфейса прикладного программирования (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. Не храните ключи в общественных местах, на общедоступных компьютерах или в исходном текстовом формате. Вместо этого храните каждый из них, используя шифрование или секретный менеджер для большей безопасности, и будьте осторожны, чтобы случайно не раскрыть их.
Do not share your API keys. Sharing your API key is similar to sharing your password. In doing so, you give another party the same authentication and authorization privileges as you. If they are compromised, your API key can be stolen and used to hack into your account. An API key should only be used between you and the system that generates it.
Если ваш ключ API скомпрометирован, вам необходимо сначала отключить его, чтобы предотвратить дальнейший ущерб. В случае каких-либо финансовых потерь сделайте снимки экрана с ключевой информацией, связанной с инцидентом, свяжитесь с соответствующими организациями и подайте заявление в полицию. Это лучший способ увеличить ваши шансы на возврат потерянных средств.
Заключительные мысли
Ключи API обеспечивают основные функции аутентификации и авторизации, и пользователи должны тщательно управлять своими ключами и защищать их. Существует множество уровней и аспектов обеспечения безопасного использования ключей API. В целом, ключ API следует рассматривать как пароль для вашей учетной записи.
Дальнейшее чтение
Общие принципы безопасности
5 распространенных мошенничеств с криптовалютами и как их избежать