Аутентификация пользователей на основе

паролей и модели «рукопожатия»

 

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

Сложность подбора пароля определяется, в первую очередь, мощностью множества символов, используемого при выборе па­роля (N), и минимально возможной длиной пароля (к). В этом случае число различных паролей может быть оценено снизу как Ср = Nk. Например, если множество символов пароля образуют строчные латинские буквы, а минимальная длина пароля равна 3, то СР 263= 17576 (что совсем немного для программного подбо­ра). Если же множество символов пароля состоит из строчных и прописных латинских букв, а также из цифр (26+ 26 + 10) и минимальная дли­на пароля равна 6, то Ср= 62б= 56800235584.

Сложность выбираемых пользователями КС паролей должна устанавливаться администратором при реализации установленной для данной системы политики безопасности. Другими параметра­ми политики учетных записей при использовании парольной аутен­тификации должны быть:

• максимальный срок действия пароля (любой секрет не может сохраняться в тайне вечно);

• несовпадение пароля с логическим именем пользователя, под которым он зарегистрирован в КС;

• неповторяемость паролей одного пользователя.

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

К сожалению, обеспечить реальную уникальность каждого вновь выбираемого пользователем пароля с помощью приведенных выше мер практически невозможно. Пользователь может, не нарушая установленных ограничений, выбирать пароли «Al», «A2», ... где А — первый пароль пользователя, удовлетворяющий требованиям сложности.

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

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

Еще одним аспектом политики учетных записей пользователей КС должно стать определение противодействия системы попыт­кам подбора паролей.

Могут применяться следующие правила:

• скрытие логического имени последнего работавшего пользо­вателя (знание логического имени может помочь нарушителю подобрать или угадать его пароль);

• учет всех попыток (успешных и неудачных) входа в систему в журнале аудита.

Реакцией системы на неудачную попытку входа пользователя могут быть:

• блокировка учетной записи, под которой осуществляется по­пытка входа, при превышении максимально возможного числа попыток (на заданное время или до ручного снятия блокировки администратором);

• нарастающее увеличение временной задержки перед предо­ставлением пользователю следующей попытки входа.

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

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

При первоначальном вводе или смене пароля пользователя обычно применяются два классических правила:

• символы вводимого пароля не отображаются на экране (это же правило, применяется и для ввода пользователем пароля при его входе в систему);

• для подтверждения правильности ввода пароля (с учетом пер­вого правила) этот ввод повторяется дважды.

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

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

Очевидно, что в базе данных учетных записей пользователей КС пароли не могут храниться в открытом виде (иначе к ним может получить доступ как минимум администратор системы). Для хранения паролей возможно их предварительное шифрование или хеширование. Шифрование паролей имеет два недостатка:

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

существует опасность расшифрования любого пароля и полу­чения его в открытом виде.

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

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

Недостатки схемы одноразовых паролей:

• организация защищенного хранения длинного списка паролей (либо его запоминание, что маловероятно);

• неясность с номером следующего пароля, если после ввода предыдущего пароля из списка вход пользователя в систему не был осуществлен из-за сбоя в работе КС.

Эти недостатки могут быть устранены, если список паролей ге­нерировать на основе некоторой необратимой функции, например функции хеширования.

Пусть Р — начальный пароль пользователя, а F — необратимая функция. Обозначим: Fi(P) = F(F(...F(P)...)) (фун­кция F применяется последовательно i раз). Тогда список одно­разовых паролей создается следующим образом:

Р1 = Fn (Р), Р2 = Fn-1(P), ..., Pn-1 = F(F(P)), Pn = F(P).

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

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

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

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

1. С: генерация случайного значения х; вычисление у = f(x); вывод х.

2. П: вычисление у' = f'(х); ввод у'.

3. С: если у и у' совпадают, то пользователь допускается к ра­боте в системе, иначе попытка входа в систему отклоняется.

К функции f предъявляется требование, чтобы по известным х и f(x) нельзя было угадать f.

Преимущества аутентификации на основе модели «рукопожа­тия» перед парольной аутентификацией:

• между пользователем и системой не передается никакой кон­фиденциальной информации, которую нужно сохранять в тайне;

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

К недостаткам аутентификации на основе модели «рукопожа­тия» относится большая длительность этой процедуры по сравне­нию с парольной аутентификацией.

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

1. А->Б: А, запрос РБ.

2. Б—>А: Б, запрос РА.

3. А—>Б: А, РА.

4. Б—>А: Б, РБ.

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

Модель «рукопожатия» вполне приемлема для взаимной аутентификации:

1. А: выбор значения х; вычисление у =f(х).

2. А—>Б: А, х.

3. Б: вычисление у' =f(х).

4. Б—>А: Б, у'.

5. А: если у и у' совпадают, то А может доверять Б.

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

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

При интерактивном доступе пользователя к системе функция f может быть задана таблицей своих значений. Рассмотрим два примера. В первом примере система предлагает пользователю ответить при регистрации его в КС на несколько вопросов, имеющих частично объективное и частично вымышленное содержание (например: «девичья фамилия Вашей матери», «в каком городе Вы про­живали в июне 2002 г.», «где находится клуб», «когда откроется пул» и т. п.). При входе в систему пользователю предлагается ответить на другой список вопросов, среди которых есть некоторые из заданных ему при регистрации. Для правильной аутентификации пользователь должен дать те же ответы, которые он давал на аналогичные вопросы при регистрации.

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

 








Дата добавления: 2017-08-01; просмотров: 2041;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.012 сек.