Ключи API. Насколько
это безопасно? Часть 2

API (от англ. Application Programming Interface) — это программный интерфейс, который будет полезен для хранения данных, при работе с файловой системой, при программировании в социальных сетях, а также для интеграции с другими приложениями.

API-ключи — это ключи шифрования, которые состоят из случайно сгенерированных чисел и букв. С их помощью пользователь может произвести аутентификацию в системе. 

В этой части нашей статьи мы продолжим знакомить вас с ключами API, расскажем, как безопасно сохранить данные, а также рассмотрим несколько примеров ключей. 

Как безопасно хранить ключи API?

Несмотря на свои недостатки, ключи API по-прежнему популярны и полезны для идентификации проектов. Ключи API во многом похожи на пароли и должны храниться в защищенном месте. 

Ниже рассмотрим несколько шагов, которые вы можете предпринять, чтобы ограничить риск кражи вашего ключа:

  1. Не записывайте свой ключ в общедоступном месте, например, на стикере или в файле на общедоступном компьютере. Вы можете безопасно получить доступ к своему ключу в своей учетной записи разработчика.
  2. Будьте осторожны, чтобы случайно не раскрыть свой ключ при документировании вашего проекта, например, с помощью снимков экрана, загрузки в общедоступный репозиторий или в URL-адресе.
  3. Не записывайте свой ключ API непосредственно в свою программу, так как любой, у кого есть доступ к вашим исходным файлам, может увидеть ваш ключ.
  4. Прежде чем поделиться своим ключом API, создайте его повторно и пометьте как новейший общий ключ.
  5. Никогда не передавайте ключи API по электронной почте.
  6. Всегда используйте протоколы HTTPS/SSL для ваших запросов API — некоторые API не будут обрабатывать ваш запрос, если вы его не используете.
  7. Назначьте уникальный ключ API для каждого из ваших проектов и пометьте их соответствующим образом. Если вы обнаружите, что один ключ был взломан, вы можете восстановить его или деактивировать без вреда для других ваших проектов. 

Примеры ключей API

Ниже мы приведем несколько примеров популярных API, а также рассмотрим, как они реализуют ключи API, чтобы обеспечить  безопасность.

  • Ключ API Google Maps

Платформа Google Maps использует ключи API для защиты своих запросов на картографические данные. После настройки учетной записи разработчика в Google вы можете легко создать ключ API Google Maps в области учетных данных.

Google также рекомендует пользователям ограничивать свои ключи API обслуживаемыми доменами и позволяет делать это в области учетных данных. Кроме того, API Google Maps принимает только запросы, которые защищены протоколом HTTPS.

Пример ключа API в запросе от Google Maps:

<script async defer src=»https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap»></script>

  • Ключ API Stripe

Для аутентификации запросов к своему API сервис обработки платежей Stripe предоставляет ключи API для каждой учетной записи разработчика. Он выдает два типа ключей API: 

  1. Публичный ключ (открытый). Он используется для шифрования данных при обращении приложения к серверу, а также связывает вашу учетную запись со Stripe. 
  2. Секретный ключ (закрытый). Он известен только пользователю и владельцу сайта и используется для расшифровки данных. А также он позволяет вам делать любые запросы к Stripe.

Stripe выдает две пары открытых и закрытых ключей: одну для вашего работающего приложения и одну для тестирования API. Ключи тестового API включают подстроку _test_ .

Источник изображения

Stripe также позволяет пользователям генерировать ключи с большими ограничениями, если вы реализуете API в микросервисе.

Защита запросов с помощью ключей API

Хотя ключи API — это не единственная мера безопасности API, они по-прежнему полезны для поставщиков API, а также важны для аутентификации интеграций API.

Важно помнить, что любой авторитетный API, который передает конфиденциальную информацию, должен содержать ключи API, чтобы обеспечить безопасность.

Настройка ограничений для ключей API

Ограничения для ключей API повышают безопасность, так как с помощью ключей вы можете отправлять только авторизованные запросы. Мы рекомендуем вам использовать и строго следовать всем инструкциям по настройке ограничений для ключей  API. 

При настройке ограничений укажите цифровой отпечаток сертификата SHA-1 ключа, который использовался для подписи в приложении. Ниже рассмотрим 2 вида сертификатов:

  • Сертификат для выпуска. Такой сертификат создается с помощью инструментов Android SDK при выполнении сборки в процессе подготовки к выпуску.
  • Сертификат для отладки. Этот сертификат необходимо использовать только при тестировании приложений до публикации. Сертификат для отладки обычно создается автоматически после того, как будет выполнена отладка сборки приложения с помощью инструментов Android SDK.

Источник: hubspot.com 

 

Условия передачи информации

Я даю согласие OOO «ЭсБилдер» (далее «BINN») на обработку моих персональных данных в соответствии со статьями 6, 9, 10, 18 Федерального закона от 27 июля 2006 года № 152-ФЗ «О персональных данных», указанных в онлайн-форме и/или предоставленных мною с целью:

Способы обработки персональных данных могут быть любыми, включая сбор, систематизацию, накопление, хранение, уточнение, обновление, изменение, воспроизведение, обезличивание, блокирование и уничтожение.

Настоящее согласие применяется в отношении обработки следующих данных: имя, номер телефона, адрес электронной почты (E-mail).

Настоящее согласие предоставляется сроком на пять лет. По истечении указанного срока действие согласия считается продленным на каждые следующие пять лет при отсутствии сведений о его отзыве.

Согласие может быть отозвано мною в любой момент путем направления в BINN подписанного мною письменного заявления.