Использование ЭЦП в аутентификации?
=====================================

 привет всем!  

изучаю протоколы аутентификации. кто-нибудь может подсказать по односторонней с 2-мя проходами?   

Значить, как я это вижу:  

1) Сервер (проверяющий) отправляет случайное число чудику-юдику  

2) Чудик получает число и берёт пароль свой. Дальше делает ХЕШ от суммы пароля и числа.   

3) Сервер принимает хеш и берёт уже у себя в БД пароль чудика-юдика и делает хеш со своим отправленным случайным числом. Сверяет полученные хеши.   

————— Шаги выше мне понятны, но я дальше не понимаю зачем сюда вставлять ЭЦ подпись. Типа на втором шаге можно вычислить подпись от хеша и передать её тоже. А что тогда серверу проверять + для чего. Не могли бы подсказать? 

 Ассиметричный шифр предусматривает 2 ключа - закрытый и открытый  

Предусматривается, что закрытый ключ никто не знает, кроме владельца, открытый известен всем.  

Открытым ключом можно расшифровать сообщение, зашифрованное закрытым ключом, но само шифрование можно осуществить только при помощи закрытого ключа.  

На этом основывается действие ЭЦП. Если при помощи открытого ключа я могу расшифровать сообщение, значит я точно знаю, что его зашифровал владелец.   

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

Передача такого ключа по незащищённому каналу осуществляется по алгоритму Диффи-Хэллмана, специально для этого разработанному. Вот там-то и используются закрытые и открытые ключи ассиметричного шифра. 

 На клиенте хранится закрытый ключ сертификата, на сервере парный открытый.  

Сервер генерирует случайный блок данных, пересылает клиенту.  

Клиент подписывает этот блок закрытым ключом, пересылает на сервер.  

Сервер проверяет подпись открытым ключом.  

Если подпись верна, клиент аутентифицирован.  

Пароль не используется вообще.