Какова роль ключа приложения и секретного ключа в каждом SDK

Я создаю SDK, в котором мне требуется, чтобы приложение app и секретный ключ приложения из приложения интегрировали мой SDK для Android.

Я вижу, что каждый SDK использует этот концептуальный идентификатор приложения и секретный ключ. Я не знаю, что это такое? Как это сделать систему безопасной?

Может ли кто-нибудь помочь мне по этой теме.

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

ИД приложения

Идентификатор приложения – это просто уникальная идентификационная метка для приложения. Это делается для того, чтобы избежать дублирования в App Store и на вашем устройстве. Если у двух приложений одинаковый идентификатор приложения, можно установить поверх другого, эффективно стереть старый и, возможно, захватить ваши данные. Идентификатор приложения – это только первый шаг к БЕЗОПАСНОСТИ . Чтобы убедиться, что сценарий выше не существует, мы используем секретный ключ.

Секретный ключ

Секретный ключ – это реализация безопасности, обычно для асимметричного шифрования. Давайте взглянем на определение асимметричного шифрования Википедии:

Криптография с открытым ключом, также известная как асимметричная криптография, представляет собой класс криптографических протоколов на основе алгоритмов, для которых требуются два отдельных ключа, один из которых является секретным (или закрытым), и один из них является общедоступным. Хотя и разные, две части этой пары ключей связаны математически.

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

Пара ключей используется для открытия блокировки, в вашем случае для «разблокировки» приложений. Каждое приложение имеет уникальный асимметричный замок. Асимметричная блокировка блокируется секретным ключом и открывается открытым ключом или наоборот. Цель – ИДЕНТИФИКАЦИЯ . Только один человек может иметь секретный ключ. Таким образом, любое приложение этого человека, мы знаем, определенно от этого человека, а не от какого-то хакера / сомнительного источника. Вот почему секретный ключ важен.

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

В основном он используется для авторизации. Это в свою очередь позволяет разработчикам SDK больше контролировать своих пользователей. Я могу придумать несколько причин, по которым SDK потребует авторизации:

  • Предотвращать / блокировать атаки спама на серверах, которые SDK может подключаться к
  • Ограничить использование SDK
  • Отслеживать использование статистики (например, частоту использования)