КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Аутентификация на основе паролей, методы подбора паролей
Для идентификации и аутентификации пользователей в подавляющем большинстве операционных систем используются имя и пароль. Для идентификации пользователь должен ввести свое имя, а для аутентификации ввести пароль - текстовую строку, известную только ему. Имя пользователя, как правило, назначается ему администратором системы. Процедура идентификации и аутентификации с использованием имени и пароля предельно проста. Пользователь вводит с клавиатуры имя и пароль, операционная система ищет в списке пользователей запись, относящуюся к этому пользователю, и сравнивает пароль, хранящийся в списке пользователей, с паролем, введенным пользователем. Если запись, относящаяся к входящему в систему пользователю, присутствует в списке пользователей и содержащийся в этой записи пароль совпадает с введенным, считается, что идентификация и аутентификация прошли успешно и начинается авторизация пользователя. В противном случае пользователь получает отказ в доступе и не может работать с операционной системой до тех пор, пока он не будет успешно идентифицирован и аутентифицирован. Если идентификация и аутентификация пользователя происходят в процессе входа пользователя на удаленный сервер, имя и пароль пользователя пересылаются по сети (как правило, в зашифрованном виде). Для обеспечения надежной защиты операционной системы пароль каждого пользователя должен быть известен только этому пользователю и никому другому, в том числе и администраторам системы. На первый взгляд то, что администратор знает пароль некоторого пользователя, не отражается негативно на безопасности системы, поскольку администратор, войдя в систему от имени обычного пользователя, получает права, меньшие, чем те, которые он получит, зайдя в систему от своего имени. Однако, входя в систему от имени другого пользователя, администратор получает возможность обходить систему аудита, а также совершать действия, компрометирующие этого пользователя, что недопустимо в защищенной системе. Из вышеизложенного следует, что пароли пользователей не должны храниться в операционной системе в открытом виде. Поскольку администратор системы для выполнения своих обязанностей должен иметь доступ к списку пользователей (это необходимо, например, для регистрации новых пользователей), то, если пароли хранятся там открыто, администратор получает к ним доступ. Тем самым администратор получает возможность входить в систему от имени любого зарегистрированного пользователя. Обычно для шифрования паролей в списке пользователей используют одну из известных криптографически стойких хеш-функций - легковычислимую функцию f, для которой функция f1 (возможно, неоднозначная) не может быть вычислена за приемлемое время. В списке пользователей хранится не сам пароль, а образ пароля, являющийся результатом применения к паролю хеш-функции. Однонаправленность хеш-функции не позволяет восстановить пароль по образу пароля, но позволяет, вычислив хеш-функцию, получить образ введенного пользователем пароля и таким образом проверить правильность введенного пароля. В простейшем случае в качестве хеш-функции используется результат шифрования некоторой константы на пароле. Хеш-функция, используемая при генерации образов паролей, обязательно должна быть криптографически стойкой. Дело в том, что обеспечить хранение образов паролей в тайне от всех пользователей системы практически невозможно. Администратор операционной системы, используя свои привилегии, легко может прочитать образы паролей из файла или базы данных, в которой они хранятся. При сетевой аутентификации пользователя на сервере образ пароля передается по открытым каналам связи и может быть перехвачен любым сетевым монитором. Если злоумышленник, зная значение хеш-функции (образ пароля пользователя), может за приемлемое время подобрать аргумент функции, соответствующий этому значению (пароль пользователя или эквивалентный ему пароль), ни о какой защите информации в операционной системе не может быть и речи. Это не означает, что образы паролей должны быть общедоступны. Хранение образов паролей в файле или базе данных, к которой имеют доступ только системные процессы, создает дополнительный эшелон защиты. В процедуре генерации образа пароля обязательно должен участвовать маркант – число или строка, генерируемая случайным образом и хранящаяся в открытом виде вместе с образом пароля. Это необходимо для того, чтобы одинаковым паролям соответствовали разные образы. В противном случае злоумышленник может осуществить ряд атак на операционную систему, наиболее опасная из которых заключается в следующем. Злоумышленник берет какой-либо электронный словарь и для каждого слова из этого словаря генерирует в точности такую же хеш-функцию, которая используется при генерации образа пароля. Слова и соответствующие им хеш-функции сохраняются в базе данных. Перехватив образ пароля некоторого пользователя, злоумышленник ищет в этой базе данных слово, соответствующее перехваченному образу пароля. Это и есть искомый пароль (или пароль, эквивалентный искомому). Вероятность успешного получения пароля по образу может быть сделана сколь угодно высокой -для этого нужно всего лишь иметь достаточно большой словарь. При этом для пополнения словаря злоумышленнику совсем не обязательно иметь доступ к атакуемой операционной системе. Более того, злоумышленник может хранить словарь вне атакуемой системы, например на своем домашнем компьютере. Эта атака может быть реализована только в том случае, когда одинаковым паролям соответствуют одинаковые образы паролей. Если при генерации образа пароля используется маркант, данная атака нереализуема. Если пользователь, входящий в систему, неправильно ввел свое имя или пароль, операционная система должна выдать ему сообщение об ошибке, не указывая, какая именно информация некорректна. В противном случае подбор пароля существенно упрощается. Если для аутентификации пользователей используются пароли, существуют две основные угрозы для подсистемы аутентификации операционной системы - кража пароля и подбор пароля. Для обеспечения надежной защиты от кражи паролей подсистема защиты операционной системы должна удовлетворять следующим требованиям: - пароль, вводимый пользователем, не отображается на экране компьютера; - ввод пароля из командной строки недопустим. Кроме того, пользователи операционной системы должны быть проинструктированы о: - необходимости хранения пароля в тайне от других пользователей, включая администраторов операционной системы; - необходимости немедленной смены пароля после его компрометации; - необходимости регулярной смены пароля; - недопустимости записи пароля на бумагу или в файл. Что же касается подбора паролей, прежде чем перейти к описанию средств защиты от этой угрозы, следует более подробно рассмотреть методы подбора паролей. 3.2.1. Методы подбора паролей Существуют следующие методы подбора паролей пользователей. 1. Тотальный перебор. В этом случае злоумышленник последовательно опробует все возможные варианты пароля. Если пароль длиннее четырех - шести символов, данный метод абсолютно неэффективен. 2. Тотальный перебор, оптимизированный по статистике встречаемости символов. Разные символы встречаются в паролях пользователей с разной вероятностью. Например, вероятность того, что в пароле пользователя встретится буква "а", гораздо выше вероятности того, что в пароле присутствует символ "А". Согласно различным исследованиям статистика встречаемости символов в алфавите паролей близка к статистике встречаемости символов в естественном языке. При практическом применении данного метода злоумышленник вначале опробует пароли, состоящие из наиболее часто встречающихся символов, за счет чего время перебора существенно сокращается. Иногда при подборе паролей используется не только статистика встречаемости символов, но и статистика встречаемости биграмм и триграмм - комбинаций двух и трех последовательных символов соответственно. Для подбора паролей по данному методу в разное время было написано множество программ. Одни из них поочередно подают на вход подсистемы аутентификации операционной системы различные варианты пароля, другие опробуют варианты пароля путем генерации хеш-функции и ее последующего сравнения с известным образом пароля. В первом случае скорость подбора пароля определяется производительностью операционной системы. Во втором случае среднее время подбора пароля из 6 -8 символов, не включающего ни цифр, ни знаков препинания, варьируется от нескольких десятков секунд до нескольких часов в зависимости от вычислительной мощности компьютера и эффективности реализации алгоритма генерации хеш-функции в программе, подбирающей пароли. 3. Тотальный перебор, оптимизированный с помощью словарей. В большинстве случаев пароли пользователей представляют собой слова английского или русского языка. Поскольку пользователю гораздо легче запомнить осмысленное слово, чем бессмысленную последовательность символов, пользователи предпочитают применять в качестве паролей осмысленные слова. При этом количество возможных вариантов пароля резко сокращается. Действительно, английский язык содержит всего около 100 000 слов (не считая научных, технических, медицинских и других терминов), что в 6,5 раз меньше количества всех комбинаций из четырех английских букв. При использовании данного метода подбора паролей злоумышленник вначале опробует в качестве паролей все слова из словаря, содержащего наиболее вероятные пароли. Такой словарь злоумышленник может составить сам, а может взять, например, в Internet, где имеется огромное количество подобных словарей, адаптированных для различных стран мира. Если подбираемый пароль отсутствует в словаре, злоумышленник опробует всевозможные комбинации слов из словаря, слова из словаря с добавленными к началу и/или к концу одной или несколькими буквами, цифрами и знаками препинания и т.д. Обычно данный метод используется в комбинации с предыдущим. 4. Подбор пароля с использованием знаний о пользователе. Выше уже говорилось, что пользователи стараются использовать легко запоминаемые пароли. Многие пользователи, чтобы не забыть пароль, выбирают в качестве пароля свое имя, фамилию, дату рождения, номер телефона, номер автомобиля и т.д. В этом случае, если злоумышленник хорошо знает пользователя, ему, как правило, достаточно провести всего 10-20 опробований. 5. Подбор образа пароля. Если подсистема аутентификации операционной системы устроена так, что образ пароля существенно короче самого пароля, злоумышленник может подбирать не пароль, а его образ. Однако в этом случае злоумышленник, подобрав образ пароля, должен получить сам пароль, соответствующий подобранному образу, а это возможно только в том случае, если хеш-функция, применяемая в системе, не обладает достаточной стойкостью. 3.2.2. Защита от компрометации паролей Мы будем говорить, что произошла компрометация пароля, если пароль пользователя стал известен некоторому другому пользователю. Компрометация может происходить в результате либо неосторожности пользователя, либо кражи или подбора пароля злоумышленником. Существует целый ряд методов, позволяющих несколько уменьшить угрозу компрометации паролей пользователей, некоторые из которых мы сейчас рассмотрим. 1. Ограничение срока действия пароля. При применении данного метода каждый пользователь операционной системы обязан менять пароль через определенные интервалы времени. Максимальный срок действия пароля целесообразно ограничить 30-60 днями. Менее сильные ограничения не дают желаемого эффекта, а при использовании более сильных ограничений резко повышается вероятность того, что пользователь забудет свой пароль. После того как срок действия пароля истек, пользователь должен сменить свой пароль в течение некоторого времени (обычно 1-2 дня) после первого входа в систему по истечении этого срока. Если пользователь не сменил пароль за отведенное время, операционная система запрещает ему входить в систему до тех пор, пока это явно не разрешит администратор системы. Срок действия пароля должен ограничиваться не только сверху, но и снизу. В противном случае пользователь, сменив пароль, может немедленно вернуться к старому паролю, сменив пароль еще раз. Также целесообразно проверять при каждой смене пароля уникальность нового пароля. Для этого операционная система должна хранить не только образ текущего пароля пользователя, но и образы последних 5-10 паролей, им применявшихся. 2. Ограничения на содержание пароля. Данный метод заключается в том, что пользователь может выбрать себе в качестве пароля не произвольную строку символов, а только строку, удовлетворяющую определенным условиям. Обычно используются следующие условия: – длина пароля не должна быть меньше некоторого количества символов; в литературе по компьютерной безопасности и в документации по операционным системам обычно рекомендуется запрещать использование паролей короче 6-8 символов, но с учетом быстрого прогресса вычислительной техники, в настоящее время целесообразно ограничивать длину паролей уже 10-14 символами; – в пароль должно входить по крайней мере 5-7 различных символов; – в пароль должны входить как строчные, так и заглавные буквы; – пароль пользователя не должен совпадать с его именем; – пароль не должен присутствовать в списке "плохих" паролей, хранимом в системе. Как правило, администраторы операционной системы, могут варьировать эти ограничения как в пределах всей операционной системы, так и для отдельных пользователей. Например, если некоторое имя пользователя используется для гостевого входа, устанавливать ограничения на используемый пароль нецелесообразно. При выборе ограничений на пароли следует учитывать, что, если ограничения на пароли слишком сильны, пользователям будет трудно запоминать свои пароли. 3. Блокировка терминала. При использовании данного метода, если пользователь несколько раз подряд ошибся при вводе имени и пароля, терминал, с которого пользователь входит в систему, блокируется, и пользователь не может продолжать дальнейшие попытки входа в систему. Параметрами данного метода являются: – максимально допустимое количество неудачных попыток входа в систему с одного терминала; – интервал времени, после которого счетчик неудачных попыток входа обнуляется; – длительность блокировки терминала (может быть сделана неограниченной в этом случае блокировка терминала может быть снята только администратором системы). 4. Блокировка пользователя. Этот метод отличается от предыдущего только тем, что блокируется не терминал, с которого пользователь входит в систему, а учетная запись пользователя. 5. Генерация паролей операционной системой. В этом случае пользователи не могут самостоятельно придумывать себе пароли - это за них делает операционная система. Когда пользователю нужно сменить пароль, он вводит соответствующую команду и получает новый пароль от операционной системы. Если предложенный вариант пароля пользователя не устраивает, он может потребовать у операционной системы другой вариант. Основным преимуществом данного метода является то, что операционная система генерирует пароли случайным образом, и подобрать такие пароли практически невозможно. С другой стороны, такие пароли обычно трудны для запоминания, что вынуждает пользователей записывать их на бумаге. Если это не является угрозой безопасности системы (например, если пользователь входит в систему только через Internet со своего домашнего компьютера), данная модель аутентификации близка к идеальной. В противном случае применять ее нецелесообразно. 6. Пароль и отзыв. При использовании этой схемы аутентификации при входе пользователя в систему операционная система выдает ему случайное число или строку, на которую пользователь должен дать правильный отзыв. Фактически паролем являются параметры алгоритма преобразования запроса операционной системы в корректный ответ пользователя. Эти параметры выбираются операционной системой случайным образом для каждого пользователя, что фактически сводит данную схему аутентификации к предыдущей. 7. Разовый пароль. В этом случае пароль пользователя автоматически меняется после каждого успешного входа в систему. Эта схема аутентификации надежно защищает от подбора паролей, поскольку, даже если злоумышленник и подобрал некоторый пароль, он сможет им воспользоваться только один раз. Кроме того, пользователь, пароль которого скомпрометирован, не сможет войти в систему в следующий раз, так как он будет пытаться вводить предыдущий пароль, уже использованный злоумышленником. Недостатком этой схемы является то, что запомнить множество постоянно меняющихся паролей практически невозможно. Кроме того, пользователи часто "сбиваются со счета", пытаясь при входе в систему вводить пароль, который уже устарел или еще не начал действовать. Из-за этих и некоторых других недостатков на практике данная схема практически не применяется. Некоторые из перечисленных методов могут применяться в совокупности.
Дата добавления: 2014-01-07; Просмотров: 6395; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |