Лабораторная работа Информационная безопасность. лр2, Аминев. Лабораторная работа 2 Реализация генератора паролей с заданными требованиями
Скачать 80.17 Kb.
|
СОДЕРЖАНИЕ ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 2 ПРАКТИЧЕСКАЯ ЧАСТЬ 3 Наименование и цель работы 4 Описание порядка выполнения работы 4 Выводы по работе 5 СПИСОК ЛИТЕРАТУРЫ 6 ПРИЛОЖЕНИЯ 7 Программный код 8 Результаты выполнения программы 8 ТЕОРЕТИЧЕСКАЯ ЧАСТЬБольшое значение при реализации СЗИ имеют подсистемы идентификации и аутентификации пользователей. Как правило, на переднем крае обороны используются парольные подсистемы аутентификации пользователей. В данных подсистемах пользователь аутентифицируется по паролю, известному только ему и ни кому более. Стойкость к взлому подсистемы парольной идентификации и аутентификации во многом определяется тем, насколько правильно были сформированы пароли пользователей. При несоблюдении ряда требований к выбору паролей, данная стойкость в значительной степени уменьшается, и подсистема идентификации и аутентификации становится достаточно уязвима при правильно построенной атаке. Ниже перечислены основные требования, которые должны быть учтены при выборе пароля пользователя. Минимальная длина пароля должна быть не менее 6 символов. Сокращение длины пароля во многом повышает вероятность успешной атаки полным их перебором. Пароль должен состоять из различных групп символов (малые и большие латинские буквы, цифры, специальные символы ‘(’, ‘)’, ‘#’ и т.д.). Использование одной конкретной группы символов при формировании пароля в значительной степени повышает вероятность успешной атаки по маске. В качестве пароля не должны использоваться реальные слова, имена, фамилии и т.д. Использование в качестве паролей конкретных слов, имен в значительной степени повышает вероятность успешной атаки по словарю. Для более высокой степени защищенности, задача выбора паролей для пользователей должна решаться не человеком, а некоторой программой – генератором паролей, так как при большом количестве пользователей человеку-администратору будет достаточно сложно формировать пароли, удовлетворяющие вышеперечисленным требованиям. Иногда, генераторы паролей могут использовать при данном генерировании элементы, входящие в идентификатор пользователя (отдельные его символы, количество символов и т.д.). В отдельных вариантах, пароль может формироваться даже целиком из идентификатора на основе некоторого алгоритма. В последнем случае, заданному идентификатору пользователя ставится в соответствие единственный пароль, который формируется на основе идентификатора. Данный вариант формирования пароля используется во многих коммерческих программах, требующих регистрации пользователя (например, WinZip). ПРАКТИЧЕСКАЯ ЧАСТЬНаименование и цель работы ЗАДАНИЕ. Реализация программы – генератор паролей. Цель работы: реализация простейшего генератора паролей, обладающего требуемой стойкостью к взлому. Описание порядка выполнения работы1. Выбран язык программирования Python. 2. Изучен материал в разделе 1.2 – 1.3. 3. В таблице 1 найти требования, которым должен удовлетворять генератор паролей, соответствующий 2 варианту. Количество символов пароля – 7. 1. b1b2b3 - случайные малые буквы английского алфавита. 2. b4b5 - случайные заглавные буквы английского алфавита. 3. b6b7 - двузначное число, равное N^4mod100 . (Если остаток – однозначное число, то b6=0) 4. Написать программу-генератор паролей, в соответствие с требованиями 2 варианта. Программа должна выполнять следующие действия: 4.1 Ввод идентификатора пользователя с клавиатуры. Данный идентификатор представляет собой последовательность символов , где N – количество символов идентификатора (может быть любым), - i – ый символ идентификатора пользователя. 4.2 Формирование пароля пользователя для данного идентификатора, где M – количество символов пароля, соответствующее Вашему варианту, и вывод его на экран. Алгоритм получения символов пароля указан в перечне требований Таблицы 1 для 2 варианта. Текст программного кода на Python: import string #AminevArsen, BPO-19-01 import random print('Идентификатор пользователя: ') id=input() def password_generator(): upper_english_letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "M", "N", "L", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] lower_english_letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "m", "n", "l", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] N = len(id) b1 = random.choice(lower_english_letters) b2 = random.choice(lower_english_letters) b3 = random.choice(lower_english_letters) b4 = random.choice(upper_english_letters) b5 = random.choice(upper_english_letters) b6 = N ** 4 % 100 if b6 > 9: b6 = 0 b7 = N ** 4 % 100 if b7 > 9: b7=int(str(b7)[0]) return str(b1)+str(b2)+str(b3)+str(b4)+str(b5)+str(b6)+str(b7) print('Пароль: ') print(password_generator()) (Результаты реализации в приложении) Выводы по работе В данной лабораторной работе я реализовал простейший генератор паролей, обладающий требуемой стойкости к взлому. СПИСОК ЛИТЕРАТУРЫКовалевский В., Криптографические методы. — СПб.: Компьютер Пресс. Баричев С. Г., Гончаров В. В., Серов Р. Е. Основы современной криптографии. — М.: Горячая линия — Телеком, 2002. Баричев С. Введение в криптографию. Электронный сборник. Вече1998. ПРИЛОЖЕНИЯПрограммный код Результаты выполнения программы |