Как я могу добавить шифрование к своему собственному протоколу на основе TCP с использованием сокетов Java? - PullRequest
1 голос
/ 24 сентября 2010

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

Я гуглил по нему и нашел различные способы использования криптографии с java-сокетами, что является лучшим (правильным) способом?Используете CipherOutput (Input) Stream?Или есть другой способ?

Если бы кто-то мог опубликовать кусок кода, я был бы признателен

Ответы [ 2 ]

3 голосов
/ 24 сентября 2010

SSL.См. Javax.net.ssl ​​и Справочное руководство по JSSE.

0 голосов
/ 24 сентября 2010

Если у вас ограниченное время, вы можете включить Переадресация SSH-порта .

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

Затем на клиенте вы настроите сеанс SSH для переадресации портов (опция -L на клиенте ssh).

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

...