- •Лабораторная работа № 2
- •Цель работы:
- •Теоретическое введение
- •1.1. Построение систем защиты от угрозы нарушения конфиденциальности информации
- •Общие подходы к построению парольных систем
- •Выбор паролей
- •Передача пароля по сети
- •Криптографические методы защиты
- •Способы и особенности реализации криптографических подсистем
- •Криптографическая защита на прикладном уровне ас
- •2. Построение систем защиты от угрозы нарушения целостности информации
- •Целостность данных в ас
- •Барьерные адреса
- •Динамические области памяти
- •Адресные регистры
- •3. Построение систем защиты от угрозы отказа доступа к информации
- •Предотвращение неисправностей в по ас
- •4. Построение систем защиты от угрозы раскрытия параметров информационной системы
- •5. Методология построения защищенных ас
- •Исследование корректности реализации и верификация ас
- •Список литературы
- •2. Порядок выполнения работы
- •3. Практические задания
- •4. Контрольные вопросы
Выбор паролей
В большинстве систем пользователи имеют возможность самостоятельно выбирать пароли или получают их от системных администраторов. При этом для уменьшения деструктивного влияния описанного выше человеческого фактора необходимо реализовать ряд требований к выбору и использованию паролей (табл.1).
Таблица 1
Требование к выбору пароля |
Получаемый эффект |
Установление минимальной длины пароля |
Усложняет задачу злоумышленника при попытке подсмотреть пароль или подобрать пароль методом "тотального опробования" |
Использование в пароле различных групп символов |
Усложняет задачу злоумышленника при попытке подобрать пароль методом "тотального опробования" |
Проверка и отбраковка пароля по словарю |
Усложняет задачу злоумышленника при попытке подобрать пароль по словарю |
Установление максимального срока действия пароля |
Усложняет задачу злоумышленника по подбору паролей методом тотального опробования, в том числе без непосредственного обращения к системе защиты (режим off-line) |
Установление минимального срока деист-вия пароля |
Препятствует попыткам пользователя заменить пароль на старый после его смены по предыдущему требованию |
Ведение журнала истории паролей |
Обеспечивает дополнительную степень защиты по предыдущему требованию |
Применение эвристического алгоритма, бракующего пароли на основании данных журнала истории |
Усложняет задачу злоумышленника при попытке подобрать пароль по словарю или с использованием эвристического алгоритма |
Ограничение числа попыток ввода пароля |
Препятствует интерактивному подбору паролей злоумышленником , |
Поддержка режима принудительной смены пароля пользователя |
Обеспечивает эффективность требования, ограничивающего максимальный срок действия пароля |
Использование задержки при вводе неправильного пароля |
Препятствует интерактивному подбору паролей злоумышленником |
Запрет на выбор пароля самим пользователем и автоматическая генерация паролей |
Исключает возможность подобрать пароль по словарю. Если алгоритм генерации паролей не известен злоумышленнику, последний может подбирать пароли только методом "тотального опробования" |
Принудительная смена пароля при первой регистрации пользователя в системе |
Защищает от неправомерных действий системного администратора, имеющего доступ к паролю в момент создания учетной записи |
Параметры для количественной оценки стойкости парольных систем приведены в табл.2.
Таблица 2
Параметр |
Способ определения |
Мощность алфавита паролей А |
Могут варьироваться для обеспечения заданного значения S(S=AL) |
Длина пароля L |
|
Мощность пространства паролей S |
Вычисляется на основе заданных значений Р, Т или V |
Скорость подбора паролей V: • Для интерактивного режима определяется как скорость обработки одной попытки регистрации проверяющей стороной; • Для режима off-line (на основе свертки пароля) определяется кап скорость вычисления значения свертки для одного пробного пароля |
• Может быть искусственно увеличена для защиты от данной угрозы. • Задается используемым алгоритмом вычисления свертки. Алгоритм, имеющий медленные реализации, повышает стойкость по отношению к данной угрозе |
Срои действия пароля (задает промежуток времени, по истечении которого пароль должен быть обязательно сменен) Т |
Определяется исходя из заданной вероятности Р, или полагается заданным для дальнейшего определения S |
Вероятность подбора пароля в течение его срока действия (подбор продолжается непрерывно в течение всего срока действия пароля) Р |
Выбирается заранее для дальнейшего определения S или Г |
В качестве иллюстрации рассмотрим задачу определения минимальной мощности пространства паролей (зависящей от параметров А и L) в соответствии с заданной вероятностью подбора пароля в течение его срока действия.
Задано P=10-6. Необходимо найти минимальную длину пароля, которая обеспечит его стойкость в течение одной недели непрерывных попыток подобрать пароль. Пусть скорость интерактивного подбора паролей V=10 паролей/мин. Тогда в течение недели можно перебрать
10.60.24.7 = 100800 паролей.
Далее, учитывая, что параметры S, V. Т и Р связаны соотношением Р
P=V .T/S, получаем
S=100.800/10-6=1,008-1011≈1011.
Полученному значению S соответствуют пары: A=26, L=8 и A=36, L=6
Хранение паролей
Другим важным аспектом стойкости парольной системы, является способ хранения паролей в базе данных учетных записей. Возможны следующие варианты хранения паролей:
• в открытом виде;
• в виде свёрток (хеширование);
• зашифрованными на некотором ключе.
Наибольший интерес представляют второй и третий способы, которые имеют ряд особенностей.
Хеширование не обеспечивает защиту от подбора паролей по словарю в случае получения базы данных злоумышленником. При выборе алгоритма хеширования, который будет использован для вычисле сверток паролей, необходимо гарантировать несовпадение эначений сверток, полученных на основе различных паролей пользователей. Кроме того, следует предусмотреть механизм, обеспечивающий уникальность сверток в том случае, если два пользователя выбирают одинаковые пароли. Для этого при вычислении каждой свертки обычно используют некоторое количество "случайной" информации, например, выдаваемой генератором псевдослучайных чисел.
При шифровании паролей особое значение имеет способ генерации и хранения ключа шифрования базы данных учетных записей. Перечислим некоторые возможные варианты:
• ключ генерируется программно и хранится в системе, обеспечивая возможность ее автоматической перезагрузки;
• ключ генерируется программно и хранится на внешнем носителе, с которого считывается при каждом запуске;
• ключ генерируется на основе выбранного администратором пароля, который вводится в систему при каждом запуске.
Во втором случае необходимо обеспечить невозможность автоматического перезапуска системы, даже если она обнаруживает носитель с ключом. Для этого можно потребовать от администратора подтверждать продолжение процедуры загрузки, например, нажатием клавиши на клавиатуре.
Наиболее безопасное хранение паролей обеспечивается при их хешировании и последующем шифровании полученных сверток, т.е. при комбинации второго и третьего способов.
Введение перечисленных выше количественных характеристик парольной системы (см.табл.2.2) позволяет рассмотреть вопрос о связи стойкости парольной системы с криптографической стойкостью шифров в двух аспектах: при хранении паролей в базе данных и при их передаче по сети. В первом случае стойкость парольной системы определяется её способностью противостоять атаке злоумышленника, завладевшего базой данных учетных записей и пытающегося восстановить пароли, и зависит от скорости "максимально быстрой" реализации используемого алгоритма хеширования. Во втором случае стойкость парольной системы зависит от криптографических свойств алгоритма шифрования или хеширования паролей. Если потенциальный злоумышленник имеет возможность перехватывать передаваемые по сети преобразованные значения паролей, при выборе алгоритма необходимо обеспечить невозможность (с заданной вероятностью) восстановить пароль при наличии достаточного количества перехваченной информации.
Проиллюстрируем приведенные рассуждения на конкретном примере. Для шифрования паролей в системах UNIX до середины 1970-х годов использовался алгоритм, эмулирующий шифратор M-209 американской армии времён второй мировой войны. Это был надёжный алгоритм, но он
имел очень быструю для тех лет реализацию. На компьютере PDP-11/70 можно было зашифровать 800 паролей в секунду, и словарь из 250000 слов мог быть проверен менее чем за 5 минут.
С конца 70-х для этих целей стал применяться алгоритм шифрования DES. Пароль использовался для генерации ключа, на котором шифровалась некоторая постоянная для всех паролей величина (как правило, строка, состоящая из одних нулей). Для предотвращения одинаковых свёрток от одинаковых паролей в качестве дополнительного параметра на вход алгоритма вычисления свертки подавалось значение, вырабатываемое генератором псевдослучайных чисел. Реализации алгоритма DES работали значительно медленнее. На компьютере VAX-II (более быстром, чем PDP-11/70) можно было сделать в среднем 3,6 операций шифрования в секунду. Проверка словаря из 250000 слов длилась бы 19 часов, а проверка паролей для 50 пользователей - 40 дней. В последнее время в некоторых UNIX-системах используется алгоритм MD5, ещё более медленный по сравнению с DES.
Однако современные реализации криптографических алгоритмов позволяют производить сотни тысяч итераций алгоритма в секунду. Учитывая, что пользователи нередко выбирают недостаточно стойкие пароли, можно сделать вывод, что получение базы данных учетных записей или перехват переданного по сети значения свертки пароля представляют серьёзную угрозу безопасности парольной системы.