logo search
Лекции_Информационная безопасность

19.1Пароли. Хранение и передача по сети.

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

Среди современных компьютерных технологий существуют несколько видов контроля доступа по паролю или ключу, которые по техническим методам можно разделить на три основных вида. Для всех видов характерно, когда, при начале работы с информационным ресурсом, во время запроса доступа к нему, программным обеспечением у пользователя в диалоговой форме запрашивается ввод пароля с устройства ввода или клавиатуры. Во время ввода пароля в наиболее отсталых, с технологической точки зрения, программах пароль отображается на экране прямым текстом, в более продвинутом программном обеспечении он скрывается символами заменителями, например, звездочками, или не отображается вовсе. К паролю обычно прилагается имя пользователя или наименование системного профиля (счета) пользователя. На некоторых системах имени пользователя не требуется, но такие системы уже устарели.

Сходный алгоритм используется теперь в основном только при защите лицензионного программного обеспечения от копирования, например, серийные номера.

Итак, первый вид контроля доступа, когда полученный пароль отправляется или пересылается через сеть или программе клиенту в виде чистого текста. Нарушитель с помощью анализатора протоколов может "слушать" сеть в поисках таких паролей. Никаких дальнейших усилий не требуется; нарушитель может начать немедленно использовать эти пароли для регистрации в систему (сеть).

Второй вид контроля доступа, который с точки зрения системного администратора надежнее защищает пароли, это когда полученный пароль пересылается на сервер в зашифрованном виде. Такой вид контроля доступа используют, например, Windows NT, Windows 95 и другие. В частности дополнительными примерами могут послужить виды контроля доступа к ресурсам серверов WWW в Интернет. В этих случаях нарушителю потребуется провести атаку по словарю или "подбор пароля" для того, чтобы попытаться провести дешифрование. Заметим, что вы по-прежнему не знаете о присутствии нарушителя, поскольку он/она является полностью пассивным и ничего не передает по сети. Взлом пароля не требует того, чтобы передавать что-нибудь в сеть, тогда как собственный компьютер нарушителя используется для аутентификации вашего пароля. Приходится искать средства для взлома и расшифровки паролей, который могут занять время, хотя и не настолько продолжительное, как это описывают в рекламе. В некоторых случаях нарушителям нет необходимости расшифровывать пароль. Они могут повторно передать зашифрованный пароль в процессе аутентификации.

Второй метод тоже прост для тех, кто знаком хотя бы теоретически с теорией компьютерных сетей и сетевых протоколов пакетного типа. В основе этого протокола лежит способ передачи информации по узлам сети. В сети Token Ring, например, по умолчанию информация переходит непосредственно от клиента к серверу, в сети Ethernet информация в момент передачи от клиента к серверу проходит по всем сетевым интерфейсам, в сети Интернет, состоящей из множества сетей с различными топологиями, информация передается от клиента к серверу минуя цепочку промежуточных узлов.

Но есть и исключения, например, при передаче информации по Token Ring к другим кольцам, при передаче информации по сети Ethernet через хорошие и очень дорогие "умные" устройства маршрутизации, при пересылке информации по сети Интернет к ближайшему узлу. В любом случае информацию в виде пакетов данных могут перехватывать промежуточные узлы в виде мостов, коммутаторов, маршрутизаторов и клиентов сети Ethernet. Особенно уязвимой в этом плане является сеть Ethernet, даже при использовании соединений на основе сетевых устройств, витой пары и оптико-волоконных преобразователей. Таким образом, специальное программное обеспечение, которое используют хакеры, в состоянии отслеживать и перехватывать как простые пароли в виде гладкого текста, так и пароли в зашифрованном виде.

Кража файла с паролями – еще один вид контроля доступа. Вся база данных пользователя обычно хранится в одном файле на диске. В ОС UNIX этим файлом является /etc/passwd (или некоторое зеркало этого файла) и в ОС Windows NT это SAM-файл («хранилище паролей»). В любом случае, как только нарушитель получает этот файл, он/она может запускать программы взлома (описанные выше) для того, чтобы найти слабые пароли внутри данного файла.

Одна из традиционных проблем при защите паролей заключается в том, что пароли должны быть длинными и трудными для расшифровки. Однако часто такие пароли очень трудно запомнить, поэтому пользователи записывают их где-нибудь. Нарушители могут часто обыскивать рабочие места пользователей для того, чтобы найти пароли, записанные на небольших клочках бумаги (обычно под клавиатурой). Нарушители могут также подглядывать пароли, стоя за спиной пользователя.

Наиболее распространенный (удивительно успешный) метод - социальный инжиниринг – просто позвонить пользователю и сказать: "Привет, это Леха из отдела автоматизации. Мы пытаемся решить некоторые проблемы в сети, кажется, что они исходят от твоего компьютера. Какой пароль ты используешь?". Многие пользователи в такой ситуации называют свой пароль. Во многих корпорациях существует политика, которая предписывает пользователям никогда не выдавать свой пароль, даже своим собственным подразделениям автоматизации, но этот метод по-прежнему является успешным. Одним из легких способов выполнить его заключает в звонке новичку, который работает менее месяца, и спросить у него пароль, затем взломать их, сделав это таким образом, что они долго будут помнить.

Существует еще один вид контроля доступа, когда пароль является дополнением к многоуровневой системе безопасности на основе сертификатов (простые и многоуровневые). Естественно, что сертификаты, как и сам пароль, передаются в шифрованном виде. Таких систем достаточно много. Это семейство продуктов фирмы Lotus - Notes/Domino. Система Notes/Domino (тип клиент- сервер) использует иерархическую структуру сертификатов, и соответствует спецификации стандарта безопасности C2.

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

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

Рассмотрим уязвимости паролей, приводящие к несанкционированному доступу к защищенной информации в Windows NT, по аналогии с системами. Пароли в Windows NT находятся в файле \\WINNT\SYSTEM32\CONFIG\SAM, базе данных безопасности системы. Данный файл является по умолчанию читаемым, но "запертым", т.к. используется прочими компонентами системы. Копия данного файла содержится в директории \\WINNT\REPAIR\ после создания администратором repair-диска и легко может быть скопирована оттуда. После инсталляции база данных безопасности системы содержит только бюджеты пользователей Administrator и Guest.

Но сами пароли не содержатся в данном файле. В нем содержатся хэш-значения, полученные следующим образом. Пароль пользователя конвертируется и превращается в 16-байтное значение. Это значение и является паролем Windows NT.

Таким образом, для того, чтобы сломать пароль в Windows NT, злоумышленнику необходимо выделить из базы данных безопасности системы имя пользователя и соответствующее ему хэш-значение. Данная процедура может быть выполнена с использованием программы PWDUMP, разработанной Jeremy Allison и свободно распространяемой. Использование данной программы требует привилегий Administrator (для того, чтобы иметь доступ по чтению к соответствующим значениям registry), но она может использоваться в том случае, если с атакуемой системы удалось получить копию базы данных безопасности системы.

После выделения паролей и соответствующих им хэш-значений может быть использована одна из многих программ взлома пароля методом перебора или атаки по словарю - скорость перебора составляет примерно 2500 паролей/сек на компьютере класса Pentium.

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

Но для этого как-то хэш-значение должно оказаться на сервере? Нетрудно понять, что, по крайней мере, оно должно попадать туда при смене пароля пользователем. А раз так, то злоумышленник, чтобы перехватить хэш, должен дождаться, пока пользователь захочет поменять свой пароль. А это, к несчастью для него, может произойти в неопределенный момент времени. Если только он не знает этого момента заранее или не сможет заставить пользователя сделать это. Высока вероятность того, что пользователь, узнав о многочисленных попытках взлома своего ресурса (или обнаружив его заблокированным) захочет поменять свой пароль. (Впрочем, если он немного подумает, то он не попадется на эту удочку, и, скорее всего, попросит администратора отключить блокировку его ресурса в случае "обнаружения нарушителя").

Но на помощь нарушителю может прийти другое мощное средство повышения безопасности операционных систем, а именно "заставлять периодически менять пароль". Зная, что администратор системы "повысил" ее защищенность путем периодической обязательной смены паролей, злоумышленнику остается только дождаться момента плановой смены паролей, и золотой ключик, т.е. хэш-значение администратора у него в кармане.