bigbaraboom
@bigbaraboom

Шифрование данных при обращении к API

Есть мобильное приложение, которое обращается по определенному урлу и получает данные. Как лушче организовать шифрование данных чтобы никто кроме приложения не смог получить и расшифровать данные?

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

Как быть? Какой подход лучше применить?
  • Вопрос задан
  • 4778 просмотров
Пригласить эксперта
Ответы на вопрос 4
Urvin
@Urvin
Например, классически:
1. RSA для обмена ключем для симметричного шифрования
2. Какой-либо симметричный алгоритм для шифрования данных полученным ключем

Ключ симметричного шифрования действует в рамках сессии
Ответ написан
ragimovich
@ragimovich
Следовало бы уточнить, для чего вам это нужно?

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

Если же вы пытаетесь защитить само API, то про Android можете забыть сразу. Разбирается абсолютно все, а дальше восстановление полной структуры API становится всего лишь вопросом времени. Фактически, мне еще не встречались программы под Android из которых было бы нельзя вытащить структуру API.

Возможно, вынеся API в нативную часть с помощью Android NDK, что-то защищенное можно получить, но подобных решений я еще не видел. Даже приватные API пишутся на простой Яве + иногда (достаточно редко) сверху обрабатываются обфускатором, который всего лишь замедляет разбор.
Ответ написан
Комментировать
akalend
@akalend
программирую
как вариант, для приложений имеющих учетную запись:
при установке приложения генерится ключ, и отправляется первым запросом на сервер. Таким образом у клиента и сервера есть симметричные ключи, с другого приложения не будет возможности доступа к твоим данным.

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

или как предлагали RSA,
Ответ написан
@lair
Читайте про ассиметричную криптографию (это вся криптография с открытым ключом).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы