2015-06-16 3 views
6

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

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

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

ответ

5

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

Идентификатор приложения

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

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

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

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

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

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

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

+0

Но кто-нибудь может получить секретный ключ (закрытый ключ) после декомпиляции apk, а затем как он может быть защищен? –

+0

@Williams Две вещи. 1. Как/какую программу вы используете для декомпиляции apk и получения секретного ключа? 2. Я сначала откажусь от этого пункта;) – bernlim

+0

люди используют dextojar как https://github.com/pxb1988/dex2jar и могут видеть ваш секретный ключ из исходного кода –

2

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

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