Лекции ЗИ_Э. Самарский государственный архитектурностроительный университет
Скачать 1.6 Mb.
|
Протоколы безопасной удаленной аутентификации пользователейОдной из важнейших задач при удаленной аутентификации пользователей является обеспечение подлинности канала связи. Решение этой задачи путем передачи по каналу связи секретного ключа в закрытом виде (в зашифрованном, либо в виде хэш-образа) не является стойким к атакам. Так как злоумышленник, слушая канал связи, может реализовать атаку методом повторов. Для обеспечения подлинности канала связи, и защиты от атак повторами обычно используют метод запрос-ответ, либо механизм отметки времени. Механизм запрос-ответ заключается в том, что пользователь Aпри необходимости аутентификации пользователя B посылает ему запрос, в который включает непредсказуемый элемент (как правило, случайное число). Пользователь B должен ответить на этот запрос, предварительно выполнив некую обработку этого элемента. При этом злоумышленник не способен подделать ответ, так как в механизм обработки запроса включена секретная информация. После проверки результата пользователем A, присланным пользователем B, выполняется подтверждение или не подтверждение подлинности сеанса работы. Механизм отметки времени заключается в том, что для каждого пересылаемого сообщения фиксируется время. Это позволяет каждому субъекту сети определить, насколько старо пришедшее сообщение, и отвергнуть его, если появится сомнение в его подлинности. Рассмотрим ряд протоколов удаленной аутентификации пользователей. Протокол CHAP (Challenge Handshaking Authentication Protocol) Предполагается, что аутентифицируемая сторона (клиент) и аутентифицирующая (сервер) уже обладают общим секретом (например, паролем доступа к серверу). Задача состоит в безопасной удаленной аутентификации клиента, проверке его подлинности путем проверки знания общего секрета. СЕРВЕР КЛИЕНТ ЗАПРОС, N Обработка запроса ОТВЕТ, MD5(К,N) Рис. 6.3. Схема протокола CHAP 1. При необходимости прохождения аутентификации сервер посылает сообщение «ЗАПРОС» клиенту, в которое включает случайный, уникальный и непредсказуемый номер N. 2. Клиент обрабатывает запрос сервера и формирует ответную последовательность, хэшируя пароль и случайный номер N с помощью алгоритма MD5, то есть вычисляет значение MD5(K,N). 3. Клиент отправляет серверу для аутентификации пакет «ОТВЕТ», в которую включает вычисленное значение MD5(K,N). 4. Сервер, зная эталонный пароль клиента и посланное ему значение N, также вычисляет значение MD5(K,N) и сравнивает его с присланным клиентом. По результатам сравнения сервер принимает решение о прохождении либо не прохождении этапа аутентификации клиентом. Использование в протоколе случайного числа N практически исключает возможность пересылки от клиента к серверу одинаковых последовательностей в течение длительного времени. Злоумышленник же, зная число N, не сможет восстановить ответ клиента, так как не знает секретного ключа K. В силу высокой криптостойкости функции хэширования MD5, злоумышленник, зная число N и значение MD5(K,N), не сможет восстановить ключ K. Протокол одноразовых ключей S/KEY Протокол одноразовых ключей S/KEY основан на независимом формировании клиентом и сервером последовательности одноразовых паролей, основанной на общем секрете K. При этом знание злоумышленником очередного пароля, пересылаемого на фазе аутентификации, не дает ему возможности выяснить следующий пароль [21]. Пусть K – пароль аутентификации, известный как подлинному клиенту, так и серверу. Клиент и сервер на основании ключа K могут вычислить последовательность из M одноразовых ключей S1,...,SM следующим образом: , , ... Если клиент будет пересылать серверу на этапе аутентификации одноразовые пароли в обратной последовательности: при первой аутентификации , затем ,..., , то знание злоумышленником очередного пароля не позволит восстановить ему пароль , который будет ожидаться сервером при следующей аутентификации, так как для этого ему потребуется обратить функцию хэширования MD4, что является вычислительно трудоемкой задачей. Поэтому описанный подход может быть использован для решения задачи безопасной удаленной аутентификации пользователя. Недостатком описанной выше схемы является то, что после исчерпания всех одноразовых паролей (после M последовательных аутентификаций) необходимо менять общий секрет K, так как если пароли начнут передаваться заново, начиная с , то злоумышленник, слушая канал связи, будет уже знать всю предысторию передаваемых паролей, и сможет пройти аутентификацию. Для устранения данного недостатка используют подход, основанный на передаче случайного числа N от клиента к серверу в момент формирования списка одноразовых паролей, и использование данного числа как второго аргумента функции хэширования MD4. Схема аутентификации клиента с помощью протокола S/KEY будет выглядеть в данном случае следующим образом. 1. Сервер высылает клиенту число M одноразовых паролей и случайное число N, используемое для генерирования уникального и непредсказуемого списка. 2. Клиент и сервер генерируют последовательность из M одноразовых паролей следующим образом: , , ... 3. При необходимости аутентификации сервер посылает клиенту число t, в ответ клиент посылает серверу одноразовый пароль . Сервер, анализируя принятую информацию, принимает решение о принятии либо отказе аутентификации. 4. В следующий раз сервер требует на этапе аутентификации пароль ... пока не дойдет до . 5. Если список одноразовых паролей исчерпан (переслали ), то клиентом и сервером выполняется повторная инициализация списка одноразовых паролей (при другом N). Реализация метода «запрос-ответ» в OC Windows при сетевой аутентификации Метод «запрос-ответ» используется в OC Windows при удаленной аутентификации пользователя, подключающегося к сетевым ресурсам общего пользования, с более старых ОС. При этом используется аутентификация с помощью хэша LANMAN [22]. Схема данного метода представлена на рис. 6.4. СЕРВЕР КЛИЕНТ (1) (2) (3) (4) Рис. 6.4. Реализация метода «запрос-ответ» в OC Windows Шаг 1. Клиент запрашивает разрешение у сервера на подключение к сетевому ресурсу общего пользования. Шаг 2. Сервер отвечает случайным восьмибайтовым числом. Шаг 3. У клиента открывается окно для ввода идентификатора и пароля. Шаг 4. Клиент формирует 24-байтный ответ серверу на основе следующего алгоритма: Алгоритм формирования ответа 1. Пароль, введенный пользователем, хэшируется на стороне клиента с помощью алгоритма хэширования LANMAN. В результате этого формируется 16-байтовая свертка пароля. 2. Полученный 16-байтовый хэш разбивается на 3 блока по 56 бит. Последний блок до 56 бит дополняется нулями. F7 03 60 B3 34 CD 62 E5 – 17 94 A3 9B 8D 56 0A 25 F7 03 60 B3 34 CD 62 E5 17 94 A3 9B 8D 56 0A 25 00 00 00 00 00 Рис. 6.5. Разбивка хэша LANMAN на три блока 3.Пришедший от сервера 8-байтовый ответ шифруется 3 раза с помощью трех ключей шифрования (представляющих собой три полученных на шаге 2 блока хэша LANMAN) по алгоритму DES. В результате этого формируется 24-байтный ответ, отправляемый серверу (рис. 6.6). F7 03 60 B3 34 CD 62 E5 17 94 A3 9B 8D 56 0A 25 00 00 00 00 00 ключ ключ ключ АЛГОРИТМ ШИФРОВАНИЯ DES 8-байтовый запрос сервера 95 B6 2A D8 9C 38 21 67 4B 82 A7 D3 85 BE 04 17 – D9 F3 43 E8 62 B8 7A 36 – D7 13 5A F8 E4 9A B5 36 ОТВЕТ СЕРВЕРУ Рис. 6.6. Алгоритм формирования ответа серверу Шаг 5. Сервер, получив ответ от клиента, может проверить его корректность, а по результатам проверки подтвердить либо отклонить аутентификацию. Кроме рассмотренных выше протоколов безопасной удаленной аутентификации пользователей, широкое распространение получил также протокол аутентификации Kerberos. |