У меня есть приложение для Android, которое общается с моим собственным сервером. Поскольку у нас нет https, я хочу реализовать собственное шифрование данных. Сервер реализован в PHP.
Я хотел использовать AES, но моя основная проблема заключается в совместном использовании ключа сервера с локальным приложением, поскольку он может быть перехвачен, а затем каждый может расшифровать мои сообщения.
Должен ли я использовать RSA? или существует безопасный способ обмена ключами?
Благодаря!
Вы должны использовать протоколы шифрования RSA и AES.
Так:
Взгляните на следующий проект с открытым исходным кодом в GitHub: github.com/rcbarioni/followzup
Сервер реализован с помощью PHP и есть API для PHP и Java. Связь между клиентом и сервером использует AES и RSA.
Библиотеки шифрования PHP и Java полностью совместимы. Java для Android также совместим.
Ну, я бы сделал одно из следующего – с уменьшением приоритета:
Последний из них является наименее предпочтительным, поскольку есть много вещей, вы можете ошибаться и таким образом случайно нарушать безопасность. Только один пример: если вы используете как шифрование, так и сжатие, вы уязвимы для атаки CRIME …