ТОКБ Л_3 Лекция № 3. Парольные системы для несанкционированного доступа к информации 1. Общие подходы к построению парольных систем. 2. Выбор паролей. 3. Хранение и передача паролей по сети. защиты от 1. Общие подходы к построению парольных систем Под несанкционированным доступом к информации (НСД) согласно руководящим документам Гостехкомиссии будем понимать доступ к информации, нарушающий установленные правила разграничения доступа и осуществляемый с использованием штатных средств, предоставляемых СВТ или АС (подробнее см. гл.5). НСД может носить случайный или преднамеренный характер. Можно выделить несколько обобщенных категорий методов защиты от НСД, в частности: • организационные; • технологические; • правовые. К первой категории относятся меры и мероприятия, регламентируемые внутренними инструкциями организации, эксплуатирующей информационную систему. Пример такой защиты - присвоение грифов секретности документам и материалам, хранящимся в отдельном помещении, и контроль доступа к ним сотрудников. Вторую категорию составляют механизмы защиты, реализуемые на базе программно-аппаратных средств, например систем идентификации и аутентификации или охранной сигнализации. Последняя категория включает меры контроля за исполнением нормативных актов общегосударственного значения, механизмы разработки и совершенствования нормативной базы, регулирующей вопросы защиты информации. Реализуемые на практике методы, как правило, сочетают в себе элементы нескольких из перечисленных категорий. Так, управление доступом в помещения может представлять собой взаимосвязь организационных (выдача допусков и ключей) и технологических (установку замков и систем сигнализации) способов защиты. Рассмотрим подробнее такие взаимосвязанные методы защиты от НСД, как идентификация, аутентификация и используемое при их реализации криптографическое преобразование информации. Идентификация - это присвоение пользователям идентификаторов (понятие идентификатора будет определено ниже) и проверка предъявляемых идентификаторов по списку присвоенных. Аутентификация —это проверка принадлежности пользователю предъявленного им идентификатора. Часто аутентификацию также называют подтверждением или проверкой подлинности. Под безопасностью (стойкостью) системы идентификации и аутентификации будем понимать степень обеспечиваемых ею гарантий того, что 1 ТОКБ Л_3 злоумышленник не способен пройти аутентификацию от имени другого пользователя. В этом смысле, чем выше стойкость системы аутентификации, тем сложнее злоумышленнику решить указанную задачу. Система идентификации и аутентификации является одним из ключевых элементов инфраструктуры защиты от НСД любой информационной системы. Различают три группы методов аутентификации, основанных на наличии у каждого пользователя: • индивидуального объекта заданного типа; • знаний некоторой известной только ему и проверяющей стороне информации; • индивидуальных биометрических характеристик. К первой группе относятся методы аутентификации, использующие удостоверения, пропуска, магнитные карты и другие носимые устройства, которые широко применяются для контроля доступа в помещения, а также входят в состав программно-аппаратных комплексов защиты от НСД к средствам вычислительной техники. Во вторую группу входят методы аутентификации, использующие пароли. По экономическим причинам они включаются в качестве базовых средств защиты во многие программно-аппаратные комплексы защиты информации. Все современные операционные системы и многие приложения имеют встроенные механизмы парольной защиты. Последнюю группу составляют методы аутентификации, основанные на применении оборудования для измерения и сравнения с эталоном заданных индивидуальных характеристик пользователя: тембра голоса, отпечатков пальцев, структуры радужной оболочки глаза и др. Такие средства позволяют с высокой точностью аутентифицировать обладателя конкретного биометрического признака, причем "подделать" биометрические параметры практически невозможно. Однако широкое распространение подобных технологий сдерживается высокой стоимостью необходимого оборудования. Если в процедуре аутентификации участвуют только две стороны, устанавливающие подлинность друг друга, такая процедура называется непосредственной аутентификацией (direct password authentication). Если же в процессе аутентификации участвуют не только эти стороны, но и другие, вспомогательные, говорят об аутентификации с участием доверенной стороны (trusted third party authentication). При этом третью сторону называют сервером аутентификации (authentication server) или арбитром (arbitrator). Наиболее распространенные методы аутентификации основаны на применении многоразовых или одноразовых паролей. Из-за своего широкого распространения и простоты реализации парольные схемы часто в первую очередь становятся мишенью атак злоумышленников. Эти методы включают следующие разновидности способов аутентификации: • по хранимой копии пароля или его свёртке (plaintext-equivalent); • по некоторому проверочному значению (verifier-based);' • без непосредственной передачи информации о пароле проверяющей 2 ТОКБ Л_3 стороне (zero-knowledge); • с использованием пароля для получения криптографического ключа (cryptographic). В первую разновидность способов входят системы аутентификации, предполагающие наличие у обеих сторон копии пароля или его свертки. Для организации таких систем требуется создать и поддерживать базу данных, содержащую пароли или сверки паролей всех пользователей. Их слабой стороной является то, что получение злоумышленником этой базы данных позволяет ему проходить аутентификацию от имени любого пользователя. Способы, составляющие вторую разновидность, обеспечивают более высокую степень безопасности парольной системы, так как проверочные значения, хотя они и зависят от паролей, не могут быть непосредственно использованы злоумышленником для аутентификации. Наконец, аутентификация без предоставления проверяющей стороне какой бы то ни было информации о пароле обеспечивает наибольшую степень защиты. Этот способ гарантирует безопасность даже в том случае, если нарушена работа проверяющей стороны (например, в программу регистрации в системе внедрен "троянский конь"). Пример системы парольной защиты ("доказательство с нулевым разглашением"), построенной по данному принципу, будет рассмотрен ниже. Особым подходом в технологии проверки подлинности являются криптографические протоколы аутентификации. Такие протоколы описывают последовательность действий, которую должны совершить стороны для взаимной аутентификации, кроме того, эти действия, как правило, сочетаются с генерацией и распределением криптографических ключей для шифрования последующего информационного обмена. Корректность протоколов аутентификации вытекает из свойств задействованных в них математических и криптографических преобразований и может быть строго доказана. Обычные парольные системы проще и дешевле для реализации, но менее безопасны, чем системы с криптографическими протоколами. Последние обеспечивают более надежную защиту и дополнительно решают задачу распределения ключей. Однако используемые в них технологии могут быть объектом законодательных ограничений. Для более детального рассмотрения принципов построения парольных систем сформулируем несколько основных определений. Идентификатор пользователя — некоторое уникальное количество информации, позволяющее различать индивидуальных пользователей парольной системы (проводить их идентификацию). Часто идентификатор также называют именем пользователя или именем учетной записи пользователя. Пароль пользователя - некоторое секретное количество информации, известное только пользователю и парольной системе, которое может быть запомнено пользователем и предъявлено для прохождения процедуры аутентификации. Одноразовый пароль дает возможность пользователю 3 ТОКБ Л_3 однократно пройти аутентификацию. Многоразовый пароль может быть использован для проверки подлинности повторно. Учетная запись пользователя - совокупность его идентификатора и его пароля. База данных пользователей парольной системы содержит учетные записи всех пользователей данной парольной системы. Под парольной системой будем понимать программно-аппаратный комплекс, реализующий системы идентификации и аутентификации пользователей АС на основе одноразовых или многоразовых паролей. Как правило, такой комплекс функционирует совместно с подсистемами разграничения доступа и регистрации событий. В отдельных случаях парольная система может выполнять ряд дополнительных функций, в частности генерацию и распределение кратковременных (сеансовых) криптографических ключей. Основными компонентами парольной системы являются: • интерфейс пользователя; • интерфейс администратора; • модуль сопряжения с другими подсистемами безопасности; • база данных учетных записей. Парольная система представляет собой "передний край обороны" всей системы безопасности. Некоторые ее элементы (в частности, реализующие интерфейс пользователя) могут быть расположены в местах, открытых для доступа потенциальному злоумышленнику. Поэтому парольная система становится одним из первых объектов атаки при вторжении злоумышленника в защищенную систему. Ниже перечислены типы угроз безопасности парольных систем. 1. Разглашение параметров учетной записи через: • подбор в интерактивном режиме; • подсматривание; • преднамеренную передачу пароля его владельцем другому лицу; • захват базы данных парольной системы (если пароли не хранятся в базе в открытом виде, для их восстановления может потребоваться подбор или дешифрование); • перехват переданной по сети информации о пароле; • хранение пароля в доступном месте. 2. Вмешательство в функционирование компонентов парольной системы через: • внедрение программных закладок; • обнаружение и использование ошибок, допущенных на стадии разработки; • выведение из строя парольной системы. Некоторые из перечисленных типов угроз связаны с наличием так называемого человеческого фактора, проявляющегося в том, что пользователь может: • выбрать пароль, который легко запомнить и также легко подобрать; 4 ТОКБ Л_3 • записать пароль, который сложно запомнить, и положить запись в доступном месте; • ввести пароль так, что его смогут увидеть посторонние; • передать пароль другому лицу намеренно или под влиянием заблуждения. В дополнение к выше сказанному необходимо отметить существование "парадокса человеческого фактора". Заключается он в том, что пользователь нередко стремится выступать скорее противником парольной системы, как, впрочем, и любой системы безопасности, функционирование которой влияет на его рабочие условия, нежели союзником системы защиты, тем самым ослабляя ее. Защита от указанных угроз основывается на ряде перечисленных ниже организационно-технических мер и мероприятий. 2. Выбор паролей В большинстве систем пользователи- имеют возможность самостоятельно выбирать пароли или получают их от системных администраторов. При этом для уменьшения деструктивного влияния описанного выше человеческого фактора необходимо реализовать ряд требований к выбору и использованию паролей (табл. 2.1). Таблица 2.1 Требование к выбору пароля Получаемый эффект Установление минимальной Усложняет задачу злоумышленника при попытке поддлины пароля смотреть пароль или подобрать пароль методом "тотального опробования" Использование в пароле Усложняет задачу злоумышленника при попытке поразличных групп символов добрать пароль методом "тотального опробования" Проверка и отбраковка пароля по словарю Установление максимального срока действия пароля Усложняет задачу злоумышленника при попытке подобрать пароль по словарю Усложняет задачу злоумышленника по подбору паролей методом тотального опробования, в том числе без непосредственного обращения к системе защиты (режим off-line) Установление минимального Препятствует попыткам пользователя заменить пароль срока действия пароля на старый после его смены по предыдущему требованию Ведение журнала истории паролей Применение эвристического алгоритма, бракующего пароли на основании данных журнала истории Ограничение числа попыток ввода пароля Поддержка режима принудительной смены пароля пользователя Обеспечивает дополнительную степень защиты по предыдущему требованию Усложняет задачу злоумышленника при попытке подобрать пароль по словарю или с использованием эвристического алгоритма Препятствует интерактивному подбору паролей злоумышленником Обеспечивает эффективность требования, ограничивающего максимальный срок действия пароля 5 ТОКБ Л_3 Требование к выбору пароля Получаемый эффект Использование задержки при Препятствует интерактивному подбору паролей зловводе неправильного пароля умышленником Запрет на выбор пароля самим пользователем и автоматическая генерация паролей Принудительная смена пароля при первой регистрации пользователя в системе Исключает возможность подобрать пароль по словарю. Если алгоритм генерации паролей не известен злоумышленнику, последний может подбирать пароли только методом "тотального опробования" Защищает от неправомерных действий системного администратора, имеющего доступ к паролю в момент создания учетной записи Параметры для количественной оценки стойкости парольных систем приведены в табл. 2.2. Таблица 2.2 Параметр Способ определения Мощность алфавита паролей А Могут варьироваться для обеспечения заданного значения S(S=AL) Длина пароля L Мощность пространства паролей S Вычисляется на основе заданных значений Р, Т или V Скорость подбора паролей V: • Для интерактивного режима • Может быть искусственно увеличена для защиты определяется как скорость от данной угрозы. обработки одной попытки регистрации проверяющей стороной. • Для режима off-line (на основе свертки пароля) определяется как скорость вычисления значения свертки для одного пробного пароля • Задается используемым алгоритмом вычисления свертки. Алгоритм, имеющий медленные реализации, повышает стойкость по отношению к данной угрозе Срок действия пароля (задает Определяется исходя из заданной вероятности Р, или промежуток времени, по истечении полагается заданным для дальнейшего определения S которого пароль должен быть обязательно сменен) Т Вероятность подбора пароля в Выбирается заранее для дальнейшего определения S течение его срока действия или Т (подбор продолжается непрерывно в течение всего срока действия пароля) Р В качестве иллюстрации рассмотрим задачу определения минимальной мощности пространства паролей (зависящей от параметров А и L) в соответствии с заданной вероятностью подбора пароля в течение его срока действия. Задано Р=10-6. Необходимо найти минимальную длину пароля, которая 6 ТОКБ Л_3 обеспечит его стойкость в течение одной недели непрерывных попыток подобрать пароль. Пусть скорость интерактивного подбора паролей \/=10 паролей/мин. Тогда в течение недели можно перебрать 10x60x247= 100800 паролей. Далее, учитывая, что параметры S, V, Т и Р связаны соотношением Р P=V*T/S, получаем S=100*800/10-6 =1,008-1011 1011. Полученному значению S соответствуют пары: А =26, L=8 и А = 36, L=6. 3. Хранение и передача паролей по сети. Хранение паролей Другим важным аспектом стойкости парольной системы, является способ хранения паролей в базе данных учетных записей. Возможны следующие варианты хранения паролей: • в открытом виде; • в виде свёрток (хеширование); • зашифрованными на некотором ключе. Наибольший интерес представляют второй и третий способы, которые имеют ряд особенностей. Хеширование не обеспечивает защиту от подбора паролей по словарю в случае получения базы данных злоумышленником. При выборе алгоритма хеширования, который будет использован для вычисления сверток паролей, необходимо гарантировать несовпадение значений сверток, полученных на основе различных паролей пользователей. Кроме того, следует предусмотреть механизм, обеспечивающий уникальность сверток в том случае, если два пользователя выбирают одинаковые пароли. Для этого при вычислении каждой свертки обычно используют некоторое количество "случайной" информации, например, выдаваемой генератором псевдослучайных чисел. При шифровании паролей особое значение имеет способ генерации и хранения ключа шифрования базы данных учетных записей. Перечислим некоторые возможные варианты: • ключ генерируется программно и хранится в системе, обеспечивая возможность ее автоматической перезагрузки; • ключ генерируется программно и хранится на внешнем носителе, с которого считывается при каждом запуске; • ключ генерируется на основе выбранного администратором пароля, который вводится в систему при каждом запуске. Во втором случае необходимо обеспечить невозможность автоматического перезапуска системы, даже если она обнаруживает носитель с ключом. Для этого можно потребовать от администратора подтверждать продолжение процедуры загрузки, например, нажатием клавиши на клавиатуре. Наиболее безопасное хранение паролей обеспечивается при их хе7 ТОКБ Л_3 шировании и последующем шифровании полученных сверток, т.е. при комбинации второго и третьего способов. Введение перечисленных выше количественных характеристик парольной системы (см. табл.2.2) позволяет рассмотреть вопрос о связи стойкости парольной системы с криптографической стойкостью шифров в двух аспектах: при хранении паролей в базе данных и при их передаче по сети. В первом случае стойкость парольной системы определяется ее способностью противостоять атаке злоумышленника, завладевшего базой данных учетных записей и пытающегося восстановить пароли, и зависит от скорости "максимально быстрой" реализации используемого алгоритма хеширования. Во втором случае стойкость парольной системы зависит от криптографических свойств алгоритма шифрования или хеширования паролей. Если потенциальный злоумышленник имеет возможность перехватывать передаваемые по сети преобразованные значения паролей, при выборе алгоритма необходимо обеспечить невозможность (с заданной вероятностью) восстановить пароль при наличии достаточного количества перехваченной информации. Проиллюстрируем приведенные рассуждения на конкретном примере. Для шифрования паролей в системах UNIX до середины 1970-х годов использовался алгоритм, эмулирующий шифратор М-209 американской армии времён второй мировой войны. Это был надёжный алгоритм, но он имел очень быструю для тех лет реализацию. На компьютере PDP-11/70 можно было зашифровать 800 паролей в секунду, и словарь из 250000 слов мог быть проверен менее чем за 5 минут. С конца 70-х для этих целей стал применяться алгоритм шифрования DES. Пароль использовался для генерации ключа, на котором шифровалась некоторая постоянная для всех паролей величина (как правило, строка, состоящая из одних нулей). Для предотвращения одинаковых свёрток от одинаковых паролей в качестве дополнительного параметра на вход алгоритма вычисления свертки подавалось значение, вырабатываемое генератором псевдослучайных чисел. Реализации алгоритма DES работали значительно медленнее. На компьютере nVAX-ll (более быстром, чем PDP11/70) можно было сделать в среднем 3,6 операций шифрования в секунду. Проверка словаря из 250000 слов длилась бы 19 часов, а проверка паролей для 50 пользователей-40 дней. В последнее время в некоторых UNIXсистемах используется алгоритм MD5, ещё более медленный по сравнению с DES. Однако современные реализации криптографических алгоритмов позволяют производить сотни тысяч итераций алгоритма в секунду. Учитывая, что пользователи нередко выбирают недостаточно стойкие пароли, можно сделать вывод, что получение базы данных учетных записей или перехват переданного по сети значения свертки пароля представляют серьёзную угрозу безопасности парольной системы. Передача пароля по сети В большинстве случаев аутентификация происходит в распределённых 8 ТОКБ Л_3 системах и связана с передачей по сети информации о параметрах учетных записей пользователей. Если передаваемая по сети в процессе аутентификации информация не защищена надлежащим образом, возникает угроза ее перехвата злоумышленником и использования для нарушения защиты парольной системы. Известно, что многие компьютерные системы позволяют переключать сетевой адаптер в режим прослушивания адресованного другим получателям сетевого трафика в сети, основанной на широковещательной передаче пакетов данных. Напомним основные виды защиты сетевого трафика: • физическая защита сети; • оконечное шифрование; • шифрование пакетов. Распространены следующие способы передачи по сети паролей: • в открытом виде; • зашифрованными; • в виде свёрток; • без непосредственной передачи информации о пароле ("доказательство с нулевым разглашением"). Первый способ применяется и сегодня во многих популярных приложениях (например, TELNET, FTP и других). В защищенной системе его можно применять только в сочетании со средствами защиты сетевого трафика. При передаче паролей в зашифрованном виде или в виде сверток по сети с открытым физическим доступом возможна реализация следующих угроз безопасности парольной системы: • перехват и повторное использование информации; • перехват и восстановление паролей; • модификация передаваемой информации с целью введения в заблуждение проверяющей стороны; • имитация злоумышленником действий проверяющей стороны для введения в заблуждение пользователя. Схемы аутентификации "с нулевым знанием" или "с нулевым разглашением", впервые появились в середине 80-х-начале 90-х годов. Их основная идея заключается в том, чтобы обеспечить возможность одному из пары субъектов доказать истинность некоторого утверждения второму, при этом не сообщая ему никакой информации о содержании самого утверждения. Например, первый субъект ("доказывающий") может убедить второго ("проверяющего"), что знает определенный пароль, в действительности не передавая тому никакой информации о самом пароле. Эта идея и отражена в термине "доказательство с нулевым разглашением". Применительно к парольной защите это означает, что если на месте проверяющего субъекта оказывается злоумышленник, он не получает никакой информации о доказываемом утверждении и, в частности, о пароле. Общая схема процедуры аутентификации с нулевым разглашением состоит из последовательности информационных обменов (итераций) между 9 ТОКБ Л_3 двумя участниками процедуры, по завершению которой проверяющий с заданной вероятностью делает правильный вывод об истинности проверяемого утверждения. С увеличением числа итераций возрастает вероятность правильного распознавания истинности (или ложности) утверждения. Классическим примером неформального описания системы аутентификации с нулевым разглашением служит так называемая пещера АлиБабы. Пещера имеет один вход (рис.2.1), путь от которого разветвляется Рис. 2.1. Пример системы аутентификации с нулевым разглашением (пещера Али-Бабы) в глубине пещеры на два коридора, сходящихся затем в одной точке, где установлена дверь с замком. Каждый, кто имеет ключ от замка, может переходить из одного коридора в другой в любом направлении. Одна итерация алгоритма состоит из последовательности шагов: 1. Проверяющий становится в точку А. 2. Доказывающий проходит в пещеру и добирается до двери (оказывается в точке С или D). Проверяющий не видит, в какой из двух коридоров тот свернул. 3. Проверяющий приходит в точку В и в соответствии со своим выбором просит доказывающего выйти из определенного коридора. 4. Доказывающий, если нужно, открывает дверь ключом и выходит из названного проверяющим коридора. Итерация .повторяется столько раз, сколько требуется для распознавания истинности утверждения "доказывающий владеет ключом от двери" с заданной вероятностью. После i-й итерации вероятность того, что проверяющий попросит доказывающего выйти из того же коридора, в который вошел доказывающий, равна (1/2)i. Еще одним способом повышения стойкости парольных систем, связанной с передачей паролей по сети, является применение одноразовых (one10 ТОКБ Л_3 time) паролей. Общий подход к применению одноразовых паролей основан на последовательном использовании хеш-функции для вычисления очередного одноразового пароля на основе предыдущего. В начале пользователь получает упорядоченный список одноразовых паролей, последний из которых также сохраняется в системе аутентификации. При каждой регистрации пользователь вводит очередной пароль, а система вычисляет его свертку и сравнивает с хранимым у себя эталоном. В случае совпадения пользователь успешно проходит аутентификацию, а введенный им пароль сохраняется для использования в качестве эталона при следующей регистрации. Защита от сетевого перехвата в такой схеме основана на свойстве необратимости хеш-функции. Наиболее известные практические реализации схем с одноразовыми паролями – это программный пакет S/KEY и разработанная на его основе система OPIE. 11