Для аутентификации по ключу ваш закрытый ключ никогда не раскрывается серверу (и, следовательно, не злоумышленнику), а только вашему открытому ключу. Аналогично, закрытый ключ сервера никогда не раскрывается вам (или злоумышленнику), только открытый ключ.
Диффи-Хеллмана используется для получения двух пар ключей (по одной для каждой стороны), которые затем используются для отправки данных приложения туда и обратно, независимо от того, выполняется ли аутентификация с использованием простого пароля или с использованием аутентификации с открытым ключом .
В случае аутентификации по паролю пары сеансовых ключей рассчитываются до отправки пользователя / пароля по проводам. Это предотвращает простое прослушивание, но, конечно же, не мешает злоумышленникам пытаться соединиться и угадать комбинацию пользователь / пароль напрямую. И, конечно же, многие пользователи выбирают плохие пароли .
В случае аутентификации с открытым ключом , вычисляются пары ключей сеанса, затем простой разговор (обычно математический вопрос / ответ) выполняется с использованием RSA или аналогичного алгоритма. чтобы убедиться, что заявленный пользователь соответствует открытому ключу. Этот разговор нельзя подделать, не угадав один из секретных ключей. Если все сделано правильно, сделать это гораздо сложнее, чем даже для самых надежных паролей. Даже если в аутентификации с открытым ключом есть слабость, например, в генераторе случайных чисел 1018 *, полученная в результате слабая аутентификация с открытым ключом может быть намного сильнее, чем при аутентификации по паролю.