Кот Муций (cat_mucius) wrote,
Кот Муций
cat_mucius

Categories:
  • Music:
Ответ на криптозагадочку, заданную здесь.

Сперва пара моментов:

1. Одно из сильных преимуществ ассиметричных ключей над паролями в том, что одну и ту же пару "публичный-секретный ключ" можно использовать для аутентификациии против массы разных серверов, не беспокоясь о том, что владелец сервера сможет злоупотребить знанием публичного ключа клиента, чтобы выдавать себя за него - поскольку из публичного восстановить секретный ключ нельзя, господа Ривест, Шамир и Адлеман гарантируют это.

2. При изучении SSL, SSH и прочих протоколов на ассиметричных ключах, люди обычно сосредотачиваются на классическом сценарии, когда пара хороших честных ребят - Алиса и Боб - хотят пообщаться по секрету, в то время как злая ревнивая Мэллори желает перехватить разговор, выдавая себя то за Алису, а то и за Боба.

Но что если сценарий слегка другой? Допустим, есть у нас пара серверов. Оба снабжены легитимными сертификатами, подлинность которых заверена Verisign. Оба вполне на совесть защищены от атак. И на обоих серверах есть юзер, использующий свой один и тот же юзерский сертификат, чтобы доказывать каждому из серверов, что он - это он. И допустим, что алгоритм проверки, вправду ли юзер владеет парным секретным ключом работает так, как я предположил ранее. Что будет, если один из серверов поведёт себя слегка нечестно?

Скажем, вот так:


Что здесь происходит? Юзер пытается зайти на сервер1. Получает от него сертификат, убеждается, что всё ок. Получает требование предъявить сертификат со своим публичных ключом, предъявляет. После чего, чтобы доказать, что он и вправду знает парный секретный ключ, для чего шифрует им какое-то присланное случайное число и отсылает результат.

Вроде бы всё хорошо. Да вот только число это сервер1 не сам выдумывает - он в это время выполняет ту же последовательность супротив сервера2, на этот раз в качестве клиента. И случайный этот "челлендж" получает от него. После чего выдаёт серверу2 полученный от настоящего юзера результат.

Что получилось? С точки зрения юзера - он залогинен на сервере1. С точки зрения сервера2 - на нём залогинен юзер. Только на самом деле это сервер1. Который получает доступ ко всем данным юзера на сервере2 и может от его имени творить что угодно.

Получается вариант man-in-the-middle, только с целью не перехватывать или подделывать сообщения, а с целью кражи юзерской identity. Да, это довольно ограниченная кража - секретный ключ этим не вызнаешь, всякий раз для такого логина нужно активное участие юзера. Но если, скажем, сервер2 - сайт банка, то и так нефигово получиться может.

Авторы настоящих протоколов - SSL, SSH, SLIC - эту возможность учли. Вот потому способ доказательства знания секрета для сервера и для клиента разный. Серверу достаточно зашифровать случайный челлендж. А от юзера требуется подписать или зашифровать некий хэш, "покрывающий" обязательно и случайное нечто, и какие-то поля, идентифицирующие сервер. Которые в свою очередь проверяются привычными средствами до того, как юзерский ключ идёт в ход.

Впрочем, и опытные криптографы, случается, лажают - создатели SSH-1 о такой возможности вроде бы подумали, но у них всё равно нашли уязвимость, позволяющую ровно такую атаку провести. Что и послужило одной из причин, по которой SSH-1 решили забросить в пользу SSH-2.

У этой басни есть мораль, и смысл её прост. Хороший криптопротокол должен учитывать деятельность не только злокозненных Мэллори и Ев, но и нечестное поведение любого из законных участников.
Tags: computing, security
Subscribe

  • Про перехват SSL

    Спросили меня насчёт интервью, которое дал украинскому сайту "Гордон" какой-то бизнесмен Михаил Талан, утверждающий, что российские спецслужбы…

  • (no subject)

    Накатал в технобложик на модную тему изоляции: https://blog.mucius.tk/2020/09/dangers-of-air-gapped-networks.html

  • Разное сетевое

    У Микрософта нашли очередную дыру, и не абы где, а в святая святых, в домен контроллере. В общем, патчим, товарищи, не ленимся. Там, похоже,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 9 comments