#cryptography #challenge-response #off-the-record-messaging
#криптография #запрос-ответ #обмен сообщениями без записи
Вопрос:
это вопрос для понимания, но что делает протокол Socialist Millionaire, который обычно используется в сочетании с OTR-сообщениями, чего не могут сделать «обычные» механизмы запроса-ответа, такие как CHAP?
http://en.wikipedia.org/wiki/Socialist_millionaire
http://en.wikipedia.org/wiki/Challenge-handshake_authentication_protocol
PS: Может кто-нибудь рассмотреть возможность добавления тега «OTR»?
Ответ №1:
Стандартная система ответа на запрос работает следующим образом:
-
Боб, сервер, отправляет Алисе случайный номер вызова.
-
Алиса выполняет криптографическую операцию над вызовом, используя свой секрет.
-
Алиса отправляет результат Бобу.
-
Боб выполняет ту же операцию над вызовом со своим секретом.
- Если результат этого вычисления совпадает с ответом, который отправила ему Алиса, то Алиса, должно быть, использовала тот же секрет.
Проблема с этой схемой заключается в том, что подслушивающий, получивший вызов и ответ, может использовать свой суперкомпьютер для взлома секрета. Они могут многократно выполнять криптографическую операцию со многими секретами, и если они находят секрет, который вызывает наблюдаемый ответ, они знают, что это общий секрет между Алисой и Бобом.
Если секрет представляет собой 128-битный ключ или очень надежную парольную фразу, то грубое использование секрета займет очень много времени и будет непрактичным, но для небольших секретов, таких как числовые пин-коды или обычные пароли, грубое использование представляет собой вполне реальную угрозу.
Протокол socialist millionaire служит той же цели, но он не раскрывает никакой информации о секрете. Подслушивающий не может использовать сообщения, отправленные туда и обратно, чтобы узнать что-либо о секрете, даже если у него есть бесконечно мощный компьютер. Даже если злоумышленник притворяется Бобом и может отправлять любые сообщения, которые он хочет, обратно Алисе, они все равно не смогут получить никакой информации о секрете, кроме того, была ли правильна их догадка.
Ответ №2:
В протоколе CHAP клиент просто подтверждает свою личность, показывая, что ему известен ключ. Это также можно было бы сделать с помощью асимметричного шифрования. Клиенту просто нужно зашифровать случайно сгенерированный запрос, и сервис сможет проверить содержимое.
Протокол Socialist millionaire сообщает обоим объектам, что они либо использовали одинаковое значение, либо другое значение. Это также можно использовать в качестве протокола входа. Затем он предложит взаимную аутентификацию.
Комментарии:
1. Я все еще не совсем понимаю. Протокол CHAP также «сообщает» обоим объектам, что они имеют одинаковое значение, нет? Или вы имеете в виду, что с помощью SM вы можете каким-то образом сгенерировать ключ с обеих сторон и убедиться, что он одинаковый, вместо того, чтобы каким-то образом подготавливать ключ с обеих сторон?
2. 1) Нет, chap только сообщает серверу, что у пользователя правильный ключ, но вредоносный сервер может отправить случайный запрос, но затем принять то, что когда-либо возвращает пользователь. 2) SM просто доказывает, что две сущности разделяют секрет. В случае, если секреты не совпадают, сущности узнают, не получая никаких знаний о секрете другой сущности.