Генератор паролей. Lab1_zki_пароль. Методические рекомендации по выполнению лабораторной работы 1 Реализация генератора паролей с заданными требованиями
Скачать 289.01 Kb.
|
Методические рекомендации по выполнению лабораторной работы № 1 «Реализация генератора паролей с заданными требованиями» Цель работы: реализация простейшего генератора паролей, обладающего требуемой стойко- стью к взлому. Теоретические сведения Подсистемы идентификации и аутентификации пользователя играют важную роль в системах защиты информации. Стойкость подсистемы идентификации и аутентификации пользователя в системе защиты информации (СЗИ) во многом определяет устойчивость к взлому самой СЗИ. Данная стойкость определяется гарантией того, что злоумышленник не сможет пройти аутентификацию, присвоив чужой идентификатор или украв его. Парольные системы идентификации/аутентификации являются одними из основных и наибо- лее распространенных в СЗИ методами пользовательской аутентификации. В данном случае ин- формацией, аутентифицирующей пользователя, является некоторый секретный пароль, известный только легальному пользователю. Парольная аутентификация пользователя, как правило, передний край обороны СЗИ. В связи с этим модуль аутентификации по паролю наиболее часто подвергается атакам со стороны злоумыш- ленника. Цель последнего в данном случае – подобрать аутентифицирующую информацию (па- роль) легального пользователя. Методы парольной аутентификации пользователя наиболее просты и при несоблюдении определенных требований к выбору пароля являются достаточно уязвимыми. Основными минимальными требованиями к выбору пароля и к подсистеме парольной аутентификации пользователя являются следующие. К паролю: 1) минимальная длина пароля должна быть не менее 6 символов; 2) пароль должен состоять из различных групп символов (малые и большие латинские буквы, цифры, специальные символы ‘(’, ‘)’, ‘#’ и т.д.); 3) в качестве пароля не должны использоваться реальные слова, имена, фамилии и т.д. К подсистеме парольной аутентификации: 1) администратор СЗИ должен устанавливать максимальный срок действия пароля, после че- го, пароль следует сменить; 2) в подсистеме парольной аутентификации необходимо установить ограничение числа попы- ток ввода пароля (как правило, не более трёх); 3) в подсистеме парольной аутентификации требуется установить временную задержку в слу- чае ввода неправильного пароля. Как правило, для генерирования паролей в СЗИ, удовлетворяющих перечисленным требова- ниям к паролям, используются программы – автоматические генераторы паролей пользователей. При выполнении перечисленных требований к паролям и к подсистеме парольной аутентифи- кации единственно возможным методом взлома данной подсистемы злоумышленником является прямой перебор паролей (brute forcing). В данном случае, оценка стойкости парольной защиты осуществляется следующим образом. Количественная оценка стойкости парольной защиты Пусть A – мощность алфавита паролей (количество символов, которые могут быть использо- ваны при составлении пароля: если пароль состоит только из малых английских букв, то A = 26), L – длина пароля, S = A L – число всевозможных паролей длины L, которые можно составить из символов ал- фавита A, V – скорость перебора паролей злоумышленником, T – максимальный срок действия пароля. Тогда, вероятность P подбора пароля злоумышленником в течение срока его действия V опре- деляется по следующей формуле: L A T V S T V P * * Эту формулу можно использовать в обратную сторону для решения следующей задачи. Задача. Определить минимальные мощность алфавита паролей A и длину паролей L, обеспе- чивающих вероятность подбора пароля злоумышленником не более заданной P, при скорости под- бора паролей V, максимальном сроке действия пароля T. Данная задача имеет неоднозначное решение. При исходных данных V, T, P однозначно мож- но определить лишь нижнюю границу S* числа всевозможных паролей. Целочисленное значение нижней границы вычисляется по формуле P T V S * * , (1) где [] – целая часть числа, взятая с округлением вверх. После определения нижней границы S* необходимо выбрать такие A и L для формирования S = A L , чтобы выполнялось следующее неравенство: S* ≤ S = A L . (2) При выборе S, удовлетворяющего неравенству (2), вероятность подбора пароля злоумышлен- ника (при заданных V и T) будет меньше, чем заданная P. Следует отметить, что при осуществлении вычислений по формулам (1) и (2), величины должны быть приведены к одним размерностям. Пример. Исходные данные: P = 10 -6 , T = 7 дней = 1 неделя, V = 10 (паролей / минуту) = 10 · 60·24·7 = 100800 паролей в неделю. Тогда, 8 6 10 * 108 10 1 * 10800 * S Условию S* ≤ A L удовлетворяют, например, такие комбинации A и L, как A = 26, L = 8 (пароль состоит из восьми малых символов английского алфавита), A = 36, L = 6 (пароль состоит из шести символов, среди которых могут быть малые латинские буквы и произвольные цифры). Задание на лабораторную работу 1. В таблице найти для указанного варианта значения характеристик P, V, T , а также группы символов, используемых при формировании пароля. 2. Вычислить мощность алфавита паролей A, соответствующую вашему варианту. 2. Вычислить по формуле (1) нижнюю границу S* для заданных P, V, T. 3. Зная мощность алфавита паролей A, вычислить минимальную длину пароля L, при котором выполняется условие (2). 4. Реализовать на языке программирования программу для генерации паролей пользователей с характеристиками, соответствующими вашему варианту. Программа должна формировать случай- ную последовательность символов длины L, должны использоваться символы из тех групп, кото- рые соответствуют вашему варианту. 5. Используя программу SimplePasswords задать необходимые характеристики парольного ге- нератора. Построенный генератор будет обладать стойкостью ко взлому не менее заданной P. Сформировать в парольном генераторе SimplePasswords 10 паролей. Попытаться визуально выявить наиболее и наименее стойкие пароли. 6. Оформить отчет по лабораторной работе. При реализации программы могут быть полезны следующие функции RANDOM(N) – возвращает случайное число RANDOMIZE – сбрасывает начальное состояние датчика случайных чисел случайным образом. CHR(X) – возвращает ASCII-код символа X. Коды различных групп символов приведены ниже. Коды символов: 1. Коды английских символов : «A» = 65, …, «Z» = 90, «a» = 97,…, «z» = 122. 2. Коды цифр : «0» = 48, «9» = 57. 3. «!» = 33, «“» = 34, «#» = 35, «$» = 36, «%» = 37, «&» = 38, «‘» = 39. 4. Коды русских символов: «А» - 128, …«Я» – 159, «а» – 160,…, «п» – 175, «р» – 224,…, «я» – 239. Контрольные вопросы 1. Чем определяется стойкость подсистемы идентификации и аутентификации? 2. Перечислить минимальные требования к выбору пароля. 3. Перечислить минимальные требования к подсистеме парольной аутентификации. 4. Как определить вероятность подбора пароля злоумышленником в течение срока его действия? 5. Выбором каких параметров можно повлиять на уменьшение вероятности подбора пароля зло- умышленником при заданной скорости подбора пароля злоумышленником и заданном сроке действия пароля? Таблица. Варианты заданий Ва- риант P V T Используемые группы символов пароля Вари ри- ант P V T Используемые группы символов пароля 1 10 -4 15 паро- лей/мин 2 неде- ли 1. Цифры (0-9) 2. Латинские строчные буквы (a-z) 16 10 -7 3 паро- лей/мин 1 месяц 1. Цифры (0-9) 2. Латинские пропис- ные буквы (A-Z) 2 10 -5 3 паро- лей/мин 10 дней 1. Латинские пропис- ные буквы (A-Z) 2. Русские строчные буквы (а-я) 17 10 -4 10 паро- лей/мин 3 неде- ли 1. Русские прописные буквы (А-Я) 2. Латинские строчные буквы (a-z) 3 10 -6 10 паро- лей/мин 5 дней 1. Русские прописные буквы (А-Я) 2. Специальные сим- волы. 18 10 -5 11 паро- лей/мин 20 дней 1. Русские строчные буквы (а-я) 2. Специальные сим- волы. 4 10 -7 11 паро- лей/мин 6 дней 1. Цифры (0-9) 2. Латинские пропис- ные буквы (A-Z) 19 10 -6 100 паро- лей/день 15 дней 1. Цифры (0-9) 2. Русские строчные буквы (а-я) 5 10 -4 100 ро- лей/день 12 дней 1. Русские прописные буквы (А-Я) 2. Латинские строчные буквы (a-z) 20 10 -7 10 паро- лей/день 1 неде- ля 1. Латинские строчные буквы (a-z) 2. Латинские пропис- ные буквы (A-Z) 6 10 -5 10 паро- лей/день 1 ме- сяц 1. Русские строчные буквы (а-я) 2. Специальные сим- волы. 21 10 -4 20 паро- лей/мин 2 неде- ли 1. Русские прописные буквы (А-Я) 2. Русские строчные буквы (а-я) 7 10 -6 20 паро- лей/мин 3 неде- ли 1. Цифры (0-9) 2. Русские строчные буквы (а-я) 22 10 -5 15 паро- лей/мин 10 дней 1. Цифры (0-9) 2. Специальные сим- волы. 8 10 -7 15 паро- лей/мин 20 дней 1. Латинские строчные буквы (a-z) 2. Латинские пропис- ные буквы (A-Z) 23 10 -6 3 паро- лей/мин 5 дней 1. Цифры (0-9) 2. Русские прописные буквы (А-Я) 9 10 -4 3 паро- лей/мин 15 дней 1. Русские прописные буквы (А-Я) 2. Русские строчные буквы (а-я) 24 10 -7 10 паро- лей/мин 6 дней 1. Латинские строчные буквы (a-z) 2. Русские прописные буквы (А-Я) 10 10 -5 10 паро- лей/мин 1 неде- ля 1. Цифры (0-9) 2. Специальные сим- волы. 25 10 -4 11 паро- лей/мин 12 дней 1. Цифры (0-9) 2. Латинские строчные буквы (a-z) 11 10 -6 11 паро- лей/мин 2 неде- ли 1. Цифры (0-9) 2. Русские прописные буквы (А-Я) 26 10 -5 100 паро- лей/день 1 месяц 1. Латинские пропис- ные буквы (A-Z) 2. Русские строчные буквы (а-я) 12 10 -7 100 ро- лей/день 10 дней 1. Латинские строчные буквы (a-z) 2. Русские прописные буквы (А-Я) 27 10 -6 10 паро- лей/день 3 неде- ли 1. Русские прописные буквы (А-Я) 2. Специальные сим- волы. 13 10 -4 10 паро- лей/день 5 дней 1. Цифры (0-9) 2. Латинские строчные буквы (a-z) 28 10 -7 20 паро- лей/мин 20 дней 1. Цифры (0-9) 2. Латинские пропис- ные буквы (A-Z) 14 10 -5 20 паро- лей/мин 6 дней 1. Латинские пропис- ные буквы (A-Z) 2. Русские строчные буквы (а-я) 29 10 -4 15 паро- лей/мин 15 дней 1. Русские прописные буквы (А-Я) 2. Латинские строчные буквы (a-z) 15 10 -6 15 паро- лей/мин 12 дней 1. Русские прописные буквы (А-Я) 2. Специальные сим- волы. 30 10 -5 3 паро- лей/мин 1 неде- ля 1. Русские строчные буквы (а-я) 2. Специальные сим- волы. |