Что можно использовать вместо пароля. Использование динамически изменяющегося пароля

Назад

ГЛАВА IV

ТЕХНОЛОГИИВЗЛОМАПРОГРАММНЫХ ЗАЩИТ

Препятствование распространению информации об атаках приводит к опасной иллюзии безопасности…

Крис Касперски. Техника и философия хакерских атак.

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

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

Широко известны эксперименты со взломом знаменитого криптографического стандарта США - DES -алгоритма (Data Encryption Standart ). 56-битный ключ DES -алгоритма был невскрываем около двадцати лет. «... он пал 17 июня 1997 г., через 140 дней после начала конкурса (при этом было протестировано около 25% всех возможных ключей и затрачено 450 MIPS -лет » . В 1998 году появилось сообщение о взломе DES -алгоритма за 56 часов .

С резким скачком производительности вычислительной техники сначала столкнулся алгоритм RSA, для вскрытия которого необходимо решать задачу факторизации. В марте 1994 была закончена длившаяся в течение 8 месяцев факторизация числа из 129 цифр (428 бит6). Для этого было задействовано 600 добровольцев и 1600 машин, связанных посредством электронной почты. Затраченное машинное время было эквивалентно примерно 5000 MIPS-лет .

29 января 1997 фирмой RSA Labs был объявлен конкурс на вскрытие симметричного алгоритма RC5. 40-битный ключ был вскрыт через 3.5 часа после начала конкурса! (Для этого даже не потребовалась связывать компьютеры через Интернет - хватило локальной сети из 250 машин в Берклевском университете). Через 313 часов был вскрыт и 48-битный ключ [ 24].

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

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

С связи с резким ростом вычислительных мощностей атаки полным перебором имеют гораздо больше шансов на успех, чем раньше. Если для системы UNIX функция crypt(), которая отвечает за хеширование паролей, была реализована так, что выполнялась почти 1 секунду на машину класса PDP, то за двадцать лет скорость ее вычисления увеличилась в 10000 раз (!). Поэтому если раньше хакеры (и разработчики, которые ограничили длину пароля 8 символами) и представить себе не могли полный перебор, то сегодня такая атака в среднем приведет к успеху за 125 дней .

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

Более того, уже создана специальная аппаратура, выполняющая функции перебора.

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

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

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

Сейчас широко распространены программы, подбирающие пароли на основе словарных слов. Теперь только безответственный или ленивый пользователь может остановиться на осмысленном пароле. Напомним, что, кроме проверки по словарю, такие программы «умеют» изменять регистры символов, «знают» знаки препинания, «догадываются», что пользователь может перевернуть слово, склеить два слова с помощью знака препинания или цифры и т.п. преобразования.

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

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

_____________________________

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

* Для усиления парольной защиты следует применять любые оригинальные приемы, уменьшающие скорость перебора паролей.

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

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

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

___________________________________________________________

Подробнее

1. Примеры атак на механизмы защиты - Крис Касперски «Техника и философия хакерских атак» .

2. Генерирование псевдослучайных последовательностей чисел - Ю.С. Харин, В.И. Берник, Г.В. Матвеев «Математические основы криптологии» , стр. 153-188; В. Жельников «Криптография от папируса до компьютера» , стр. 181-207.

Никто не хочет терять доступ к аккаунтам социальных сетей или почтовым ящикам, но очень часто такое всё же происходит. Чаще всего причиной этой неприятности служит недостаточная стойкость использованного пароля. Многие сайты не допускают к использованию пароли короче 8-и символов, но эта мера не всегда эффективна.

Оптимальным вариантом является генерация пользовательского пароля специализированной программой, однако следует учитывать, что даже самый взломоустойчивый пароль может быть похищен или банально утерян. Защита конфиденциальной информации должна осуществляться комплексно, но начинать её нужно с создания надёжного пароля. Рассмотрим основные методы, применяемые злоумышленниками для вскрытия паролей:

Перебор словарного запаса

Использование вредоносного ПО

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

Прямое похищение паролей

Простой, но удивительно эффективный метод. В офис солидной компании заходит сантехник, связист или электрик, на которого никто не обращает внимания. Он же наоборот, внимательно фиксирует всё, что может заметить его камера или опытный взгляд. В любом офисе можно заметить на мониторах стикеры с каллиграфически выведенными логинами и паролями, особенно у милых дам… Такое пренебрежительное отношение к безопасности легко может разорить компанию. Бороться можно и нужно, укрепляя внутреннюю дисциплину;

Метод «Пауков»

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

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

Проверка надежности пароля

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

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

Кроме этого, с его помощью можно придумать себе интересное фото на аватар для инстаграмма, Вконтакте и других соц.сетей.

Сохраняем в закладки, пользуемся и делимся в соцсети с друзьями!

Для идентификации и аутентификации пользо­вателей в подавляющем большинстве операционных систем используются имя и пароль. Для идентификации пользователь должен ввести свое имя, а для аутентификации ввести пароль - текстовую строку, известную только ему. Имя пользователя, как правило, назначается ему администратором системы.

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

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

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

Обычно для шифрования паролей в списке пользователей исполь­зуют одну из известных криптографически стойких хеш-функций - легко­вычислимую функцию 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. Разовый пароль. В этом случае пароль пользователя автомати­чески меняется после каждого успешного входа в систему. Эта схема ау­тентификации надежно защищает от подбора паролей, поскольку, даже если злоумышленник и подобрал некоторый пароль, он сможет им вос­пользоваться только один раз. Кроме того, пользователь, пароль которого скомпрометирован, не сможет войти в систему в следующий раз, так как он будет пытаться вводить предыдущий пароль, уже использованный зло­умышленником. Недостатком этой схемы является то, что запомнить мно­жество постоянно меняющихся паролей практически невозможно. Кроме того, пользователи часто "сбиваются со счета", пытаясь при входе в сис­тему вводить пароль, который уже устарел или еще не начал действовать. Из-за этих и некоторых других недостатков на практике данная схема прак­тически не применяется.

Некоторые из перечисленных методов могут применяться в сово­купности.

Одной из распространенных схем аутентификации является простая аутентификация, которая основана на применении традиционных многоразовых паролей с одновременным согласованием средств его использования и обработки. Аутентификация на основе многоразовых паролей является простым и наглядным примером использования разделяемой информации. Пока в большинстве защищенных виртуальных сетей VPN (Virtual Private Network) доступ клиента к серверу разрешается по паролю.

Аутентификация на основе многоразовых паролей. Базовый принцип «единого входа» предполагает достаточность одноразового прохождения пользователем процедуры аутентификации для доступа ко всем сетевым ресурсам. Поэтому в современных операционных системах предусматривается централизованная служба аутентификации, которая выполняется одним из серверов сети и использует для своей работы базу данных. В этой базе данных хранятся учетные данные о пользователях сети. В эти учетные данные наряду с другой информацией включены идентификаторы и пароли пользователей.

В схеме простой аутентификации передача пароля и идентификатора пользователя может производиться следующими способами:

· в незашифрованном виде; например, согласно протоколу парольной аутентификации РАР (Password Authentication Protocol) пароли передаются по линии связи в открытой незащищенной форме;

· в защищенном виде; все передаваемые данные (идентификатор и пароль пользователя, случайное число и метки времени) защищены посредством шифрования или однонаправленной функции.

Очевидно, что вариант аутентификации с передачей пароля пользователя в незашифрованном виде не гарантирует даже минимального уровня безопасности, так как подвержен многочисленным атакам и легко компрометируется. Чтобы защитить пароль, его нужно зашифровать перед пересылкой по незащищенному каналу. Для этого в схему включены средства шифрования EK и дешифрования DK, управляемые разделяемым секретным ключом K. Проверка подлинности пользователя основана на сравнении присланного пользователем пароля PA и исходного значения PA", хранящегося на сервере аутентификации. Если значения PA и PA" совпадают, то пароль PA считается подлинным, а пользователь А - законным.

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

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

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

где P - пароль пользователя;ID - идентификатор пользователя;

EP - процедура шифрования, выполняемая с использованием пароля P в качестве ключа.

Такие функции удобны, если длина пароля и ключа одинакова. В этом случае проверка подлинности пользователя А с помощью пароля РА состоит из пересылки серверу аутентификации отображения () A h P и сравнения его с предварительно вычисленным и хранимым в базе данных сервера аутентификации эквивалентом h"(РА) - рис. 2.17. Если отображения h(PA) и h"(РA) равны, то считается, что пользователь успешно прошел аутентификацию.

Рис. 2.17

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

где К и ID - соответственно ключ и идентификатор отправителя.

Различают две формы представления объектов, аутентифицирующих пользователя:

· внешний аутентифицирующий объект, не принадлежащий системе;

· внутренний объект, принадлежащий системе, в который переносится информация из внешнего объекта.

Допустим, что в компьютерной системе зарегистрировано n пользователей. Пусть і-й аутентифицирующий объект і-го пользователя содержит два информационных поля:

· IDi - неизменный идентификатор і-го пользователя, который является аналогом имени и используется для идентификации пользователя;

· Ki - аутентифицирующая информация пользователя, которая может изменяться и используется для аутентификации (например, пароль Pi = Ki).

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

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

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

Известны следующие методы применения одноразовых паролей для аутентификации пользователей:

1) Использование механизма временных меток на основе системы единого времени.

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

3) Использование генератора псевдослучайных чисел, общего для пользователя и проверяющего, с одним и тем же начальным значением.

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

В качестве примера реализации первого метода рассмотрим технологию аутентификации SecurID на основе одноразовых паролей с использованием аппаратных ключей и механизма временной синхронизации. Эта технология аутентификации разработана компанией Security Dynamics и реализована в коммуникационных серверах ряда компаний, в частности в серверах компании Cisco Systems и др.

При использовании этой схемы аутентификации, естественно, требуется жесткая временная синхронизация аппаратного ключа и сервера. Поскольку аппаратный ключ может работать несколько лет, вполне возможно постепенное рассогласование внутренних часов сервера и аппаратного ключа. Для решения этой проблемы компания Security Dynamics применяет два способа:

· при производстве аппаратного ключа точно измеряется отклонение частоты его таймера от номинала. Величина этого отклонения учитывается как параметр алгоритма сервера;

· сервер отслеживает коды, генерируемые конкретным аппаратным ключом, и при необходимости динамически подстраивается под этот ключ.

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

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

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

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

· последовательность преобразуемых одноразовых паролей. В ходе очередной сессии аутентификации пользователь создает и передает пароль именно для данной сессии, зашифрованный на секретном ключе, полученном из пароля предыдущей сессии;

· последовательности паролей, основанные на односторонней функции. Суть данного метода составляет последовательное использование односторонней функции (известная схема Лампорта). Этот метод является более предпочтительным с точки зрения безопасности по сравнению с методом последовательно преобразуемых паролей.

Одним из наиболее распространенных протоколов аутентификации на основе одноразовых паролей является стандартизованный в Интернете протокол S/Key (RFC 1760). Данный протокол реализован во многих системах, требующих проверки подлинности удаленных пользователей, в частности в системе TACACS+ компании Cisco.

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

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

Ввод пароля можно подсмотреть. Иногда для подглядывания используются даже оптические приборы. Пароль можно угадать "методом грубой силы", используя, например, словарь. Если файл паролей зашифрован, но доступен для чтения, его можно скачать к себе на компьютер и попытаться подобрать пароль, запрограммировав полный перебор (предполагается, что алгоритм шифрования известен).

Следующие меры позволяют значительно повысить надежность парольной защиты:

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

управление сроком действия паролей, их периодическая смена;

Ограничение доступа к файлу паролей;

Ограничение числа неудачных попыток входа в систему (это затруднит применение метода "грубой силы");

Обучение пользователей;

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

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

Существующие парольные методы проверки подлинности пользователей при входе в информационную систему можно разделить на две группы:

· методы проверки подлинности на основе простого пароля;

· методы проверки подлинности на основе динамически изменяющегося пароля.

Пароль подтверждения подлинности пользователя при использовании простого пароля не изменяется от сеанса к сеансу в течение установленного администратором службы безопасности времени его существования.

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

Использование простого пароля

Процедура опознавания с использованием простого пароля может быть представлена в виде следующей последовательности действий:

Пользователь посылает запрос на доступ к компьютерной системе и вводит свой идентификатор;

Система запрашивает пароль;

Пользователь вводит пароль;

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

Поскольку пользователь может допустить ошибку при вводе пароля, то системой должно быть предусмотрено допустимое количество повторений для ввода пароля.

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

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

Можно выделить следующие основные способы повышения стойкости системы защиты на этапе аутентификации:

Повышение степени не тривиальности пароля;

Увеличение длины последовательности символов пароля;

Увеличение времени задержки между разрешенными попытками повторного ввода неправильно введенного пароля;

Повышение ограничений на минимальное и максимальное время действительности пароля.

Использование динамически изменяющегося пароля

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

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

Методы модификации схемы простых паролей;

Методы идентификации и установления подлинности субъектов и различных объектов;

Метод "запрос-ответ";

Функциональные методы.

Наиболее эффективными из данных методов являются функциональные.

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

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

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

Функциональные методы. Среди функциональных методов наиболее распространенными является метод функционального преобразования пароля. Метод функционального преобразования основан на использовании некоторой функции F, которая должна удовлетворяет установленным требованиям.

Одноразовые пароли

Одноразовый пароль — это пароль, действительный только для одного сеанса аутентификации . Действие одноразового пароля также может быть ограничено определённым промежутком времени. Преимущество одноразового пароля по сравнению со статическим состоит в том, что пароль невозможно использовать повторно. Таким образом, злоумышленник, перехвативший данные из успешной сессии аутентификации, не может использовать скопированный пароль для получения доступа к защищаемой информационной системе. Использование одноразовых паролей само по себе не защищает от атак, основанных на активном вмешательстве в канал связи, используемый для аутентификации (например, от атак типа «человек посередине» ).

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

· Использующие математические алгоритмы для создания нового пароля на основе предыдущих (пароли фактически составляют цепочку, и должны быть использованы в определённом порядке).

· Основанные на временной синхронизации между сервером и клиентом, обеспечивающей пароль (пароли действительны в течение короткого периода времени)

· Использующие математический алгоритм, где новый пароль основан на запросе (например, случайное число, выбираемое сервером или части входящего сообщения) и/или счётчике.

Также существуют различные способы, чтобы сообщить пользователю следующий пароль. Некоторые системы используют специальные электронные токены , которые пользователь носит с собой, создающие одноразовые пароли и выводящие затем их на маленьком экране. Другие системы состоят из программ, которые пользователь запускает с мобильного телефона. Ещё другие системы генерируют одноразовые пароли на сервере и затем отправляют их пользователю, используя посторонние каналы, такие, как SMS -сообщения. Наконец, в некоторых системах одноразовые пароли напечатаны на листе бумаги или на скретч-карте , которые пользователю необходимо иметь с собой.

Реализация одноразовых паролей:

Математические алгоритмы

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

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

Одноразовый пароль через SMS - Распространённая технология, используемая для доставки одноразовых паролей — это SMS . Так как SMS — это повсеместный канал связи, которая имеется во всех телефонах и используется большим количеством клиентов, SMS-сообщения имеют наибольший потенциал для всех потребителей, обладающие низкой себестоимостью. Токены, смарт-карты и другие традиционные методы аутентификации гораздо более дороги для реализации и для использования и часто встречают сопротивление со стороны потребителей. Они также гораздо более уязвимы для атак типа «человек посередине» , в которых фишеры крадут одноразовые пароли обманом или даже потому что одноразовые пароли отображаются на экране токена. Также токены могут быть потеряны и интеграция одноразовых паролей в мобильные телефоны может быть более безопасной и простой, потому что пользователям не придётся носить с собой дополнительные портативные устройства. В то же время одноразовые пароли через SMS могут быть менее безопасны, так как сотовые операторы становятся частью цепи доверия. В случае роуминга надо доверять более чем одному мобильному оператору.

Одноразовый пароль на мобильном телефоне - По сравнению с аппаратной реализацией токена, которая требует, чтобы пользователь имел с собой устройство-токен, токен на мобильном телефоне существенно снижает затраты и предлагает беспрецедентный уровень удобства. Это решение также уменьшает материально-технические требования, так как нет необходимости выдавать отдельное устройство каждому пользователю. Мобильные токены, такие, как FiveBarGate, FireID или PROTECTIMUS SMART дополнительно поддерживают некоторое число токенов в течение одной установки приложения, позволяя пользователю аутентифицироваться на нескольких ресурсах с одного устройства. Этот вариант также предусматривает специфические приложения для разных моделей телефонов пользователя. Токены в мобильных телефонах также существенно более безопасны, чем одноразовые пароли по SMS, так как SMS отправляются по сети GSM в текстовом формате с возможностью перехвата.

Организация парольной защиты

Инструкция по парольной защите включает в себя:

1. Правила формирования личного пароля

2. Ввод пароля

3. Порядок смены паролей

4. Хранение пароля

5. Ответственность при организации парольной защиты