Обмен ключами TOTP и Диффи-Хеллмана с использованием Java

Я хотел бы спросить, как мне выполнить клиент-серверное приложение, которое могло бы выполнять операции одноразового пароля и обмена ключами Диффи-Хеллмана одновременно с использованием java? Сценарий заключается в том, что одноразовый пароль должен быть зашифрован с использованием общих ключей Диффи-Хеллмана. Затем клиент отправит зашифрованный OTP на сервер, и сервер проверит, совпадает ли он с тем, который он генерирует. Я не уверен, что операции можно проводить вместе


person Kw2010    schedule 14.07.2017    source источник


Ответы (1)


прежде всего вам нужно выполнить обмен ключами Хеллмана и сгенерировать общий секретный ключ между сервером и клиентом. затем после того, как клиент берет ключ и выполняет шифрование с использованием общего секретного ключа с некоторым алгоритмом шифрования и отправляет его на сервер, сервер расшифровывает данные. так что вы можете сгенерировать общий секретный ключ один раз для всего шифрования или вы можете генерировать все время. но я могу предложить вам использовать криптографию с асимметричным ключом (RSA, ECC), это уменьшит накладные расходы на обмен ключами Хеллмана. и это будет более безопасно по сравнению с криптографией с симметричным ключом.

person Anshul Sharma    schedule 14.07.2017
comment
Спасибо за ваше предложение. Я хотел использовать diffie hellman для взаимной аутентификации сервера и клиента с использованием зашифрованного otp. Могу я узнать, как запустить сервер и клиент на Java? Должен ли я использовать сокет для отправки otp или есть другой способ? Должен ли я создавать классы операции Диффи-Хеллмана и операции с одноразовым паролем и вызывать их в серверном и клиентском приложениях? Извините, я не знаком с Java и все еще учусь кодировать с его помощью. Спасибо за ваш ответ :) - person Kw2010; 14.07.2017