Помогите разработать безопасный сетевой протокол - PullRequest
0 голосов
/ 17 июня 2011

В приложении у меня есть сетевой сервер и клиенты. Допустим, после рукопожатия клиент отправляет "userId sessionId SOME_COMMAND param param param".

Я уже идентифицировал клиента, и sessionId соответствующим образом проверяется на сервере, поэтому идентификация больше не является проблемой.

Но я бы хотел запретить хакеру модифицировать сообщение или создать ложное, например, отправив "userId sessionId SOME_COMMAND paramModified paramModified paramModified".

Я подумал об использовании пары закрытых / открытых ключей шифрования и отправил хеш сообщения в самом сообщении. Но так как это автоматизировано в клиентской программе, мне может потребоваться отправить открытый ключ во время рукопожатия Таким образом, хакер может просто получить его и сгенерировать правильный хеш.

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

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

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

1 Ответ

2 голосов
/ 18 июня 2011

Забудь об этом.Используйте SSL, как и все остальные.Есть сложности, которые вы даже не начали решать.

...