Я пишу сервер-клиентское приложение для получения и публикации пользовательского сообщения.
Думая о методе аутентификации.
- Асимметричное шифрование, возможно, RSA.
- Хэш (соль + пароль + «msg» + «идентификатор пользователя»), SHA256
- HMAC, SHA256. кажется более защищенным, чем метод 2. Также включайте хеширование пароля и данных сообщения.
- Симметричное шифрование «сообщения» со статическим паролем, хранящимся на обеих сторонах, вероятно, AES.
Нет необходимости в шифровании, поскольку MSG в любом случае будет публиковаться в сети. Поэтому я больше склоняюсь к методам HMAC или PKI.
Я использую Java для отправки запроса (включая любой метод аутентификации, который будет реализован)
www.mysite.com/foo?userid=12345&msg=hello&token=abc1234
Python на стороне сервера, чтобы получить запрос и убедиться, что запрос от действительного пользователя.
Проблемы в интеграции и убедитесь, что обе стороны понимают токены аутентификации друг друга. Это большой фактор для меня. И наличие библиотек, доступных на обоих языках, также принимается во внимание.
Или я могу переписать серверную часть в java. (Почему бы не Python? Клиентское приложение должно быть в Java)
Что вы думаете?
РЕДАКТИРОВАТЬ: Я бы не рассматривал это как веб-приложение. Приложение не обслуживает любую веб-страницу. Большинство операций не связаны с сетью. Просто клиент-серверное общение идет через интернет. И отправка POST / GET через HTTP - это то, что я считал более простым, хотя и небезопасным способом сделать это. Не стесняйтесь предложить мне любую другую альтернативу.
SSL - это безопасный способ шифрования. Но это не мешает злоумышленнику отправлять сообщения на сервер, навязываемый как пользователь. Любой может инициировать соединение HTTPS. И содержание сообщения не должно быть зашифровано. В любом случае, он будет опубликован онлайн сервером. Мне нужен способ аутентификации сообщения и отправителя.
Пока я склоняюсь к алгоритму HMAC. RSA будет более безопасным, но также требует больше усилий разработчиков. Посмотрим как пойдет.
Спасибо.