2016-03-27 6 views
0

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

Я нашел, что есть плагин для ios, называемый keychain, но не нашел что-то похожее для android. Теперь это должна быть проблема. Многие приложения используют API для серверов на Android. Как вы это решаете?

Моя основная цель - не генерировать секретные ключи, а поддерживать частные серверы (для тех, у кого есть приложение). Если вы хотите создать секретный ключ (это то, о чем я думал вначале), тогда я не могу найти способ безопасного сохранения секретного ключа при использовании phonegap на Android. Закрытие, которое у меня есть, заключается в том, чтобы поместить его в javascript и запутать код.

Я нашел хранилище android keystore, но если я правильно понял, что это для криптографии, которая мне не нужна.

+0

Под «частным ключом» вы имеете в виду закрытый ключ пары ключей RSA? Если нет, то что такое использование «закрытого ключа»? Ключи являются частью криптографии, поэтому используйте трапецеидальность. Кроме того, когда генерируется «закрытый ключ», во время компиляции или позже в приложении? – zaph

+0

Нет, я не имел в виду закрытый ключ пары ключей RSA. Я имел в виду только приватную переменную, называю ее паролем или ключом. Возможно, мне не хватает чего-то очевидного, как использовать пару ключей RSA, чтобы делать то, что я хочу, сохраняя api private. – cauchy

+0

Обычная терминология для симметричного ключа шифрования - «секретный ключ». Если не для шифрования, возможно, ключ API. gain: когда генерируется «закрытый ключ» во время компиляции или позже в приложении? Также определите злоумышленника и значение того, что защищено. – zaph

ответ

0

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

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

Обфускация может быть вашим лучшим подходом, но понять, что она только увеличивает коэффициент работы минимально.

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

Также вам необходимо использовать https с текущей конфигурацией сервера и вывести сертификат.

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

Смежные вопросы