Защита от несанкционированного доступа. парольная система
Парольная система как неотъемлемая составляющая подсистемы управления доступом системы защиты информации (СЗИ) является частью “переднего края обороны” всей системы безопасности. Поэтому парольная система становится одним из первых объектов атаки при вторжении злоумышленника в защищенную систему.
Подсистема управления доступом СЗИ затрагивает следующие понятия:
Идентификатор доступа – уникальный признак субъекта или объекта доступа.
Идентификация – присвоение субъектам и объектам доступа идентификатора и (или) сравнение предъявляемого идентификатора с перечнем присвоенных идентификаторов.
Пароль – идентификатор субъекта доступа, который является его (субъекта) секретом.
Аутентификация – проверка принадлежности субъекту доступа предъявленного им идентификатора; подтверждение подлинности.
Можно встретить и такие толкования терминов идентификатор и пароль пользователя [1]:
Идентификатор – некоторое уникальное количество информации, позволяющее различать индивидуальных пользователей парольной системы (проводить их идентификацию). Часто идентификатор также называют именем пользователя или именем учетной записи пользователя.
Пароль – некоторое секретное количество информации, известное только пользователю и парольной системе, предъявляемое для прохождения процедуры аутентификации.
Учетная запись – совокупность идентификатора и пароля пользователя.
Одним из наиболее важных компонентов парольной системы является база данных учетных записей (база данных системы защиты). Возможны следующие варианты хранения паролей в системе:
- в открытом виде;
- в виде хэш-значений (hash (англ.) – смесь, мешанина);
- зашифрованными на некотором ключе.
Наибольший интерес представляют второй и третий способы, которые имеют ряд особенностей.
Хэширование не обеспечивает защиту от подбора паролей по словарю в случае получения базы данных злоумышленником. При выборе алгоритма хэширования, который будет использован для вычисления хэш-значений паролей, необходимо гарантировать несовпадение хэш-значений, полученных на основе различных паролей пользователей. Кроме того, следует предусмотреть механизм, обеспечивающий уникальность хэш-значений в том случае, если два пользователя выбирают одинаковые пароли. Для этого при вычислении каждого хэш-значения обычно используют некоторое количество “случайной” информации, например, выдаваемой генератором псевдослучайных чисел.
При шифровании паролей особое значение имеет способ генерации и хранения ключа шифрования базы данных учетных записей. Возможны следующие варианты:
- ключ генерируется программно и хранится в системе, обеспечивая возможность ее автоматической перезагрузки;
- ключ генерируется программно и хранится на внешнем носителе, с которого считывается при каждом запуске;
- ключ генерируется на основе выбранного администратором пароля, который вводится в систему при каждом запуске.
Наиболее безопасное хранение паролей обеспечивается при их хэшировании и последующем шифровании полученных хэш-значений, т.е. при комбинации второго и третьего способов хранения паролей в системе.
Как пароль может попасть в руки злоумышленника? Наиболее реальными выглядят следующие случаи:
- записанный вами пароль найден злоумышленником;
- пароль был подсмотрен злоумышленником при вводе легальным пользователем;
- злоумышленник получил доступ к базе данных системы защиты.
Меры противодействие первым двум опасностям очевидны.
В последнем случае злоумышленнику потребуется специализированное программное обеспечение, поскольку, записи в таком файле крайне редко хранятся в открытом виде. Стойкость парольной системы определяется ее способностью противостоять атаке злоумышленника завладевшего базой данных учетных записей и пытающегося восстановить пароли, и зависит от скорости “максимально быстрой” реализации используемого алгоритма хэширования. Восстановление паролей заключается в вычислении хэш-значений по возможным паролям и сравнении их с имеющимися хэш-значениями паролей с последующим их представлением в явном виде с учетом регистра.
Из базы данных учетных записей пароль может быть восстановлен различными способами: атакой по словарю, последовательным (полным) перебором и гибридом атаки по словарю и последовательного перебора.
При атаке по словарю последовательно вычисляются хэш-значения для каждого из слов словаря или модификаций слов словаря и сравниваются с хэш-значениями паролей каждого из пользователей. При совпадении хэш-значений пароль найден. Преимущество метода – его высокая скорость. Недостатком является то, что таким образом могут быть найдены только очень простые пароли, которые имеются в словаре или являются модификациями слов словаря. Успех реализации данной атаки напрямую зависит от качества и объема используемого словаря (несложно отыскать подобные готовые словари в Интернете).
Последовательный перебор всех возможных комбинаций (brute force (англ.) – грубая сила, решение “в лоб”) использует набор символов и вычисляет хэш-значение для каждого возможного пароля, составленного из этих символов. При использовании этого метода пароль всегда будет определен, если составляющие его символы присутствуют в выбранном наборе. Единственный недостаток этого метода – большое количество времени, которое может потребоваться на определение пароля. Чем большее количество символов (букв разного регистра, цифр, спецсимволов) содержится в выбранном наборе, тем больше времени может пройти, пока перебор комбинаций не закончится.
При восстановлении паролей гибридом атаки по словарю и последовательного перебора к каждому слову или модификации слова словаря добавляются символы справа и/или слева (123parol). Помимо этого может осуществляться проверка использования: имен пользователей в качестве паролей; повторения слов (dogdog); обратного порядка символов слова (elpoep); транслитерации букв (parol); замену букв кириллицы латинской раскладкой (gfhjkm).
Для каждой получившейся комбинации вычисляется хэш-значение, которое сравнивается с хэш-значениями паролей каждого из пользователей.
Какой пароль можно однозначно назвать слабым во всех отношениях (за исключением запоминаемости)? Типичный пример: пароль из небольшого количества (до 5) символов/цифр. По некоторым данным, из 967 паролей одного из взломанных почтовых серверов сети Интернет 335 (почти треть) состояла исключительно из цифр. Количество паролей включающих буквы и цифры оказалось равным 20. Остальные пароли состояли из букв в основном в нижнем регистре за редким исключением (в количестве 2 паролей) включающих спецсимволы (“*”, “_”). Символ “_”, однако, часто встречался в именах пользователей. В 33 случаях имя и пароль пользователя совпадали. Самым популярным оказался пароль 123 (встречался 35 раз, почти каждый 27 пароль). На втором месте пароль qwerty (20 паролей). Как удобно он набирается, не правда ли? Далее следуют: 666 (18 раз), 12 (17 раз), xakep (14 раз) и 1, 11111111, 9128 (по 10 раз). 16 паролей состояли из одного символа/цифры.
В повседневной жизни современному человеку приходится держать в памяти немалое количество информации: пин-коды к банковской карте и мобильному телефону, комбинации кодовых замков, пароль для доступа в Интернет, к ресурсам разного рода, электронным почтовым ящикам. Все ли пароли необходимо держать в памяти? Все зависит от оценки уровня потерь в результате попадания вашего пароля в чужие руки. Пароли для доступа в Интернет и к ресурсам сети никто не мешает записать в блокнот, если вы не опасаетесь, что кто-нибудь войдет в сеть без вашего ведома и ознакомится с содержанием почтового ящика. Данное умозаключение, однако, не распространяется на пароли используемые на рабочем месте. Получение доступа к локальной сети от вашего имени может, по определенным причинам, стать заманчивым вариантом. Пин-код банковской карты тоже не запрещается фиксировать на бумаге, главным условием в этом случае является раздельное хранение карты и записанной без пояснений кодовой комбинации.
Повышение требований к паролю возникает из-за степени его важности. Примером “важного пароля” служит пароль, применяемый для работы в автоматизированных системах, обрабатывающих информацию ограниченного доступа (государственная тайна, конфиденциальная информация). Руководящие документы Гостехкомиссии России не дают конкретных рекомендаций по выбору пароля или расчету его стойкости, за исключением длины, которая составляет от 6 (класс 3Б, 3А, 2Б, 2А) до 8 (класс 1Б, 1А) буквенно-цифровых символов и необходимости периодической смены пароля.
Существуют методы количественной оценки стойкости парольных систем [2]:
(формула Андерсона), где
k – количество попыток подбора пароля в минуту;
M – время действия пароля в месяцах;
P – вероятность подбора пароля;
A1 – мощность пространства паролей (А – мощность алфавита паролей, l – длина пароля).
Таким образом, наибольшее влияние на вероятность раскрытия пароля оказывает величина l. Другие составляющие данной формулы чрезвычайно редко оказывают влияние на величину P, превышающее один порядок. Увеличение же длины пароля только на один символ значительно увеличивает требуемое злоумышленнику время для его раскрытия.
Параметры Р, V, T и A1 связаны между собой следующим соотношением [1]:
, где
P – вероятность подбора пароля в течение его срока действия (подбор осуществляется непрерывно в течение всего срока действия пароля);
V – скорость подбора паролей (скорость обработки одной попытки регистрации проверяющей стороной либо скорость вычисления хэш-значения одного пробного пароля);
T – срок действия пароля (задает промежуток времени, по истечении которого пароль должен быть сменен);
A1 – мощность пространства паролей (А – мощность алфавита паролей, l – длина пароля).
В случае, когда неизвестна точная длина искомого пароля, максимальное время подбора пароля (Тmax) будет вычисляться в соответствии со следующей формулой [3]:
Тmax |
Доскональное знание способов хранения учетных записей пользователей в базе данных системы защиты позволяет оптимизировать программы восстановления (вскрытия) паролей. Подробные знания организации парольной системы операционных систем Windows NT/2000/XP позволяют авторам указанных программ заявлять скорость осуществления перебора от 3,9 миллиона паролей/сек. до 5,4 миллиона паролей/сек. на ПЭВМ с процессором Athlon XP 1700+ или говорить о возможности нахождения всех алфавитно-цифровых паролей за трое суток на ПЭВМ с процессором Pentium II/450.
По сообщению Компьюленты (http://www.compulenta.ru/2003/7/24/40961/) швейцарскому исследователю Филиппу Ёкслину удается взламывать алфавитно-цифровые пароли Windows в среднем за 13,6 секунды. Для взлома использовался компьютер на базе процессора Athlon XP 2500+ с 1,5 Гб оперативной памяти. Таблица, в которой хранились варианты паролей, занимала 1,4 Гб и полностью загружалась в оперативную память компьютера, что позволило существенно поднять скорость взлома. При размере таблицы в 20 Гб и наличии в пароле букв, цифр и 16 спецсимволов пароль взламывается, в среднем, за 30 секунд.
Итак, какой же пароль сможет оказать достойное сопротивление попыткам его подбора? Длинный, состоящий из букв разного регистра, цифр и спецсимволов. При этом он должен быть случайным, т.е. выбор символов осуществляется произвольно (без какой бы то ни было системы) и более нигде не использоваться, при этом единственным местом фиксации пароля должна быть голова единственного человека. Однако необходимо учитывать и вопросы практического использования пароля. Очень длинный пароль сложно запомнить, особенно, если учесть тот факт, что пользователю приходится иметь не один пароль. Осуществить быстрый ввод длинного пароля также не представляется возможным. Произвольно выбранные символы запомнятся, если их произнесение вслух имеет запоминаемую звуковую форму (благозвучие) или они имеют характерное расположение на клавиатуре, в противном случае без шпаргалки не обойтись.
Помочь пользователю составить пароль по определенным критериям могут программы генерации паролей.
Одна из таких программ Advanced Password Generator позволяет создавать пароли с помощью генератора случайных чисел либо по задаваемому пользователем ключевому слову, а также содержит алгоритм создания слов, наиболее близких к естественному языку (русскому или английскому). При использовании указанного режима получаются “запоминаемые”, но не имеющие смысла слова. Под термином “запоминаемый” следует понимать благозвучность получаемой комбинации. В этом режиме использование цифр, спецсимволов или смешанного регистра букв автоматически отключается.
Вот несколько созданных программой “запоминаемых” паролей: ELASWOWA, DEDRYTON, BENEROMO, SARMANED. Программа позволяет создавать пароль длиной от 4 до 32 символов. “Запоминаемый” пароль из 32 символов выглядит, например, так: NONEERESSPYOVENAPARDERETOURVENFF.
По мнению автора, пароль DV24*KK4 также можно отнести к “запоминаемым”, несмотря на наличие цифр и спецсимвола.
Уникальность сгенерированного подобного рода программами пароля напрямую зависит от степени “случайности” используемого для этих целей генератора.
Современные комплексы защиты информации ограничивают возможную длину используемого пароля 12 – 16 символами. Чаще всего это латинские буквы, цифры и специальные символы.
Большинство СЗИ обладает следующими возможностями по увеличению эффективности парольной системы:
- установление минимальной длины пароля;
- установление максимального срока действия пароля;
- установление требования неповторяемости паролей (препятствует замене пароля по истечении его срока действия на один из используемых ранее);
- ограничение числа попыток ввода пароля (блокирует пользователя после превышения определенного количества попыток ввода, осуществляемых подряд; не действует на учетную запись администратора).
Для того чтобы осложнить задачу злоумышленника по получению базы данных системы защиты многие СЗИ хранят ее в энергонезависимой памяти своей аппаратной части.
Некоторые комплексы защиты информации от НСД содержат встроенные механизмы генерации паролей и доведения их до пользователей. Очевидным минусом и основным фактором, толкающим пользователя записать пароль, является невозможность запоминания абракадабры из, к примеру, 8 буквенно-цифровых символов никак не связанных между собой.
В случае если пользователю самостоятельно необходимо сформировать пароль, в качестве критериев выбора пароля можно выделить следующие:
- использование букв разных регистров;
- использование цифр и спецсимволов совместно с буквами.
При составлении пароля не рекомендуется использовать:
- свое регистрационное имя в каком бы то ни было виде (как есть, обращенное, заглавными буквами, удвоенное, и т.д);
- свое имя, фамилию или отчество в каком бы то ни было виде;
- имена близких родственников;
- информацию о себе, которую легко можно получить. Она включает номера телефонов, номера лицевых счетов, номер вашего автомобиля, название улицы, на которой вы живете, и т.д.;
- пароль из одних цифр или из одних букв;
- слово, которое можно найти в словарях.
Нужно запомнить (постараться не записывать) свой пароль. Если запомнить качественный пароль оказалось непосильной задачей для вас, не записывайте пароль целиком, разделите его на две части и запишите в разных местах. Только не оснащайте эти записи комментариями типа: “Это первая часть моего пароля для выхода в Интернет, вторая часть на следующей странице”. Если вы составляли пароль по фразе, то, например, запись вида: Everybody*love(the)freedom, напомнит, что ваш пароль: e*v(e)e (брали каждую третью букву с добавлением спецсимволов). Более скрытный способ предполагает дополнение записанного по определенному пользователем принципу. В этом случае найденная запись: DeReVo не позволит автоматически раскрыть действительный пароль: *DterReeeV*o.
И все-таки, пароль, используемый для работы с информацией ограниченного доступа, необходимо запомнить и нигде не записывать.
Необходимо потренироваться вводить пароль, чтобы эта процедура занимала как можно меньше времени. Несмотря на то, что желательно уметь вводить пароль не глядя на клавиатуру, на первых порах подключайте зрительную память. Главное правило: никто, кроме вас, не должен знать ваш пароль.
Вот несколько вариантов подбора элементов, составляющих пароль:
- выберите строку или две строки из песни или поэмы и используйте первую букву каждого слова, добавьте цифры (спецсимволы);
- выберите известное изречение (поговорку, слоган и т.п.) и используйте каждую четвертую букву, добавьте цифры (спецсимволы);
- замените в слове одну согласную и одну или две гласных, добавьте цифры (спецсимволы);
- выберите два коротких слова и соедините их вместе со знаком пунктуации между ними, добавьте цифры (спецсимволы).
В заключение необходимо отметить существование “парадокса человеческого фактора”. Состоит он в том, что пользователь нередко стремится выступать скорее противником парольной системы, как, впрочем, и любой системы безопасности, функционирование которой влияет на его рабочие условия, нежели союзником системы защиты, тем самым ослабляя ее. Действительно, необходимость ввода пароля каждый раз при входе в систему, не говоря уже о необходимости запоминать сложную знаковую последовательность, удобством не является. Единственной мерой противодействия указанному обстоятельству является формирование у пользователей грамотного подхода к вопросам обеспечения безопасности информации.