Я хотел понять, как именно работает SSH, и наткнулся на эту статью: https://www.digitalocean.com/community/tutorials/understanding-the-ssh-encryption-and-connection-process
Автор пишет, что сессия SSH устанавливается в два этапа:
- Клиент и сервер устанавливают шифрование для защиты связи
- Аутентификация клиента
На первом этапе обе стороны участвуют в создании общего сеансового ключа, который будет использоваться для шифрования сообщений. Используется на этапе аутентификации:
- Клиент объединяет расшифрованный номер с общим ключом сеанса , который используется для шифрования связи, и вычисляет MD5-хэш этого значения.
Мой вопрос: зачем проходить процесс генерации общего сеансового ключа, если процесс аутентификации не удался? В любом случае сообщения защищаются с помощью шифрования с открытым ключом и дешифрования с закрытым ключом, поэтому действительно ли необходим еще один уровень безопасности, или это просто мера безопасности, чтобы быть уверенным, что он безопасен?
Для меня было бы больше смысла, если бы клиент сначала прошел аутентификацию, а после этого был сгенерирован общий ключ сеанса.