УДК 004.056.55
АНАЛИЗ ТЕХНОЛОГИИ ИДЕНТИФИКАЦИИ УДАЛЁННОГО ПОЛЬЗОВАТЕЛЯ БЕЗ РАСКРЫТИЯ ПАРОЛЯ
Д.В. Афанасьева
В работе проводится анализ технологии идентификации удалённого пользователя без раскрытия пароля. Описаны основные преимущества, а также особенности рассматриваемого метода.
Ключевые слова: шифрование, передача данных, протокол, пароль, кэш, сервер, безопасность данных.
Перехват паролей и подделка данных о сессии является на данный момент серьёзной проблемой, которая затрагивает не только отдельно взятых людей, но и компании и системы в целом [1-6]. Данная проблема связана с тем, что злоумышленник, имея пароль, получает доступ ко всем конфиденциальным данным, поэтому данный вопрос является открытым и актуальным.
В открытом виде передают пароль стандартизованные протоколы FTP, POP, SNMP и сотни сетевых программ. Передача вместо открытого пароля его контрольной суммы нисколько не меняет положение дел. Если по контрольной сумме невозможно за приемлемое время восстановить пароль - это всего лишь означает, что злоумышленнику для подключения не удастся воспользоваться стандартной клиентской программой. Но он всегда сможет собственноручно эмулировать последовательность пакетов данного протокола и подставить в нужный пакет перехваченную контрольную сумму. Для пущего удобства можно даже провести сетевой поток от настоящей программы-клиента через локальный или выделенный маршрутизатор, исправляющий в потоке только "нужные" пакеты. А ведь на передаче контрольных сумм построено все сетевое общение операционной системы Microsoft Windows и одна из схем авторизации протокола HTTP. И это при том, что криптография более 20 лет назад предложила метод защиты от подобной атаки с любым желаемым уровнем надежности.
Challenge handshake: идентификация без раскрытия пароля. Основная идея технологии крайне проста. При подключении клиента к удаленному серверу по незащищенному каналу, происходят следующие действия:
сервер генерирует случайное или псевдослучайное число - challenge, и отправляет его клиенту;
клиент выполняет над challenge какое-либо необратимое криптостойкое преобразование и отсылает результат серверу;
сервер выполняет (на основе хранящейся у него копии пароля данного клиента) точно такое же преобразование и сверяет получившийся у него результат с полученным по сети ответом клиента;
авторизация считается успешной, если два результата совпадают.
Далее приведенная выше схема будет разобрана подробнее. Шаг нулевой: раздача ключей. Клиенту выдаётся пароль (если клиентская сторона представляет собой живого человека) или сразу ключ (если клиент - это программа, а ключ вшит, например, в INI-файле), чтобы снять необходимость преобразования "пароль - ключ" в клиентском приложении. Challenge handshake, как и все другие криптопреобразования, уязвим к полному перебору паролей. А это означает, что:
1. Ни пароль, ни ключ нельзя генерировать стандартными функциями ГПСЧ, т.к. их информационная емкость чрезвычайно мала;
2. Если пароль осмысленный, и его выбирает человек, то нужно соблюдать элементарные правила стойкости паролей (большая длинна, набор различных по типу и размеру символов).
Известия ТулГУ. Технические науки. 2021. Вып. 8
На первом шаге псевдослучайное число не обязательно должно быть хорошо рандомизированным. Главное, чтобы с достаточно большим уровнем надёжности сервер не выдал это число в запросе второй раз, чтобы злоумышленник не мог послать правильный ответ на запрос сервера, просто выловив из сети несколько пар пакетов "запрос-ответ". Чем выше заданный уровень надежности, и чем больше сеансов с клиентом необходимо провести на одном и том же ключе - тем больше должна быть информационная емкость ГПСЧ. Так, если выбрана надежность 99%, то при проведении 100 сеансов без смены пароля генератор должен иметь ёмкость как минимум 19 бит. А, например, при традиционной ёмкости ГПСЧ в 32 бита порог смены пароля - 6000 сеансов.
Для того, чтобы расширить эти границы и полностью убрать необходимость в смене пароля, существуют два способа. Во-первых, к сгенерированному случайному числу можно добавлять некоторую производную от текущего времени. Во-вторых, если сервер запускается в единственном экземпляре, то на нём можно просто держать постоянно увеличивающийся счетчик подключений большой разрядности (например, 64 бита). Однако, добавлять к нему случайное число необходимо, в связи с тем, что иначе изменения в записи должны храниться в надёжной энергонезависимой памяти. Это нужно, чтобы после сбоя (например, по выключению питания) сервер не выдал в сеть в виде challenge уже запрошенное ранее значение счётчика, правильный ответ на которое злоумышленник мог перехватить.
Преобразование должно быть в первую очередь необратимо по известной паре "открытый/зашифрованный текст". Иначе третья сторона, определив ключ, сможет правильно отвечать на запросы. Но все стойкие шифры как раз и удовлетворяют этому условию. Следовательно, все что требуется - это зашифровать пришедший challenge выданным ключом и отправить результат на сервер. В качестве блочного шифра может быть выбран тот же TEA. Перед шифрованием размер challenge нужно довести до размера, кратного блоку шифра (обычно он весь помещается в один блок - 64 или 128 бит).
Однако, блочные шифры - не единственное крипторешение для challenge handshake. Как отдельная отрасль криптографии давно развивается технология невосстановимых контрольных сумм - хеш-функций. Если в качестве входного блока данных хеш-функции будет взята любая комбинация challenge и пароля, то получившееся в результате хеширования значение будет однозначно указывать серверу, знает или нет клиент секретный пароль. А поскольку хеш-функция необратима, то, перехватив challenge и отправленное клиентом обратно хеш-значение, злоумышленник ничего не сможет сделать, кроме как перебирать все пароли по словарю или по алфавиту. По криптостойкости вариант с хеш-функцией ничем не отличается от блочного шифра. Это и неудивительно, так как в современных хеш-функциях применяются те же принципы работы, что и в блочных шифрах. Удобство хеширования в том, что нет необходимости предварительно преобразовывать пароль в ключ. То есть, и клиент, и сервер могут просто склеить challenge и строку пароля и вычислить хеш-сумму от получившейся строки. Есть еще одно удобство: как challenge, так и пароль могут занимать произвольное количество байт. Стандартом де-факто на сегодняшний день является хеш-функция «MD5» (Message Digest v. 5), созданная Рональдом Ривестом (RSA Laboratories).
Это достаточно трудоемкий в описании, но легко реализуемый алгоритм, ориентированный под 32-разрядные процессоры. Очень прост в реализации 8-битный проект-предшественник от этой же фирмы - хеш-функция MD2. Сейчас он не применяется из-за своей относительной медлительности, но нам-то нужно хешировать всего 10-30 байт, а не мегабайты (как для цифровой подписи), поэтому и MD2 вполне подойдет для этой задачи. Описания и исходные тексты обоих алгоритмов можно найти в доброй сотне источников; кроме того - они включены в сетевой информаторий RFC (MD2=RFC1319, MD5=RFC1321).
Принцип, заложенный в challenge handshake, можно использовать не только для однократной идентификации пользователя в начале сеанса, но и для аутентификации каждой команды клиента серверу. Для этого к каждому сетевому пакету или блоку данных добавляется результат криптопреобразования его уникального номера. Обычно номер строится как объединение исходного challenge (играющего роль идентификатора сеанса) с порядковым номером пакета в данном сеансе. Это позволяет исключить подмену злоумышленником легитимного пользователя уже после этапа идентификации. Как и в challenge handshake, в симметричной аутентификации могут быть применены и блочные шифры, и хеш-функции. А сама схема работает гораздо быстрее и проще в реализации, чем традиционная асимметричная цифровая подпись.
Список литературы
1. Плахина Е.А. Инструкция по использованию интернета для обеспечения информационной безопасности автоматизированной и компьютерной системы // Известия Тульского государственного университета. Технические науки. 2020. Вып. 4. С. 140143.
2. Яковлев Б.С., Проскуряков Н.Е. Малозатратный подход к обеспечению устойчивой работы Интернет-ресурсов // Известия Тульского государственного университета. Технические науки. 2016. Вып. 7. Ч. 1. С. 248-253.
3. Босова Е.Д., Селищев В.А. Информационная безопасность: современные реалии // Известия Тульского государственного университета. Технические науки. 2019. Вып. 9. С. 296-300.
4. Афанасьева Д.В. Общий анализ современного состояния вредоносного программного обеспечения // Известия Тульского государственного университета. Технические науки. 2020. Вып. 11. С. 356-358.
5. Абидарова А.А. Кибератаки на информационные и автоматизированные системы и комплексы // Известия Тульского государственного университета. Технические науки. 2020. Вып. 11. С. 347-349.
6. Афанасьева Д.В., Абидарова А.А., Плахина Е.А. Обеспечение безопасности автоматизированных систем при взаимодействии с сетью интернет // Известия Тульского государственного университета. Технические науки. 2019. Вып. 12. С. 382-385.
Афанасьева Дарья Владимировна, студентка, sc-afadr@yandex. ru, Россия, Тула, Тульский государственный университет
ANALYSIS OF REMOTE USER IDENTIFICATION TECHNOLOGY WITHOUT
DISCLOSING PASSWORD
D.V. Afanasyeva
The paper analyzes the technology for identifying a remote user without disclosing a password. The main advantages, as well as the features of the method under consideration, are described.
Key words: encryption, data transfer, protocol, password, cache, server, data
security.
Afanasyeva Daria Vladimirovna, student, [email protected], Russia, Tula, Tula State University