- •Безопасность
- •Аппаратное обеспечение
- •Программное обеспечение
- •Линии связи и сети
- •15.2. Защита
- •Защита памяти
- •Контроль доступа, ориентированный на пользователя
- •Контроль доступа, ориентированный на данные
- •15.3. Взломщики
- •Методы вторжения
- •Защита паролей
- •Уязвимость паролей
- •Контроль доступа
- •Стратегии выбора паролей
- •Выявление вторжений
- •15.4. Зловредное программное обеспечение
- •Зловредные программы
- •Логические бомбы
- •Троянские кони
- •Природа вирусов
- •Виды вирусов
- •Макровирусы
- •Подходы к борьбе с вирусами
- •Обобщенное дешифрование
- •Цифровая иммунная система
- •15.5. Системы с доверительными отношениями
- •Защита от троянских коней
- •15.6. Безопасность операционной системы windows 2000
- •15.7. Резюме, ключевые термины и контрольные вопросы
- •Контрольные вопросы
- •15.8. Рекомендуемая литература
- •Приложение. Шифрование
- •Стандартное шифрование
- •Стандарт шифрования данных
- •Тройной алгоритм шифрования данных
- •Улучшенный стандарт шифрования
- •Шифрование с открытым ключом
- •А.2. Архитектура протоколов tcp/ip
- •Уровни протокола tcp/ip
- •Приложения tcp/ip
- •Б.1. Мотивация
- •Б.З. Преимущества объектно-ориентированного подхода
- •Б.2. Объектно-ориентированные концепции
- •Структура объектов
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Включение
- •Список литературы
Контроль доступа
Одним из способов предотвращения атаки со взломом пароля является перекрытие доступа к файлу с паролями. Если зашифрованная часть пароля доступна в файле только привилегированным пользователям, то взломщик не сможет прочитать этот файл, не зная пароля привилегированного пользователя. В [SPAF92] приведено несколько недостатков такой стратегии.
Многие системы, в том числе и многие системы UNIX, подвержены неожиданным взломам. Как только взломщик каким-то образом получит доступ к системе, он захочет узнать несколько паролей, чтобы по очереди использовать при регистрации разные идентификаторы, уменьшая тем самым риск быть обнаруженным. С другой стороны, зарегистрированный пользователь может захотеть узнать идентификатор и пароль другого пользователя, чтобы получить привилегированный доступ к данным или причинить вред системе.
Авария в системе защиты может сделать читаемым файл с паролями, дискредитируя таким образом все учетные записи.
Некоторые пользователи имеют учетные записи на других машинах, расположенных в иных областях защиты, где они используют тот же пароль. Поэтому если на указанных машинах пароли доступны для чтения кому угодно, это может привести к дискредитации рассматриваемой системы.
Таким образом, более эффективная стратегия могла бы заключаться в том, чтобы заставить пользователей выбирать пароли, не поддающиеся легкому разгадыванию.
Стратегии выбора паролей
Урок, который можно извлечь из двух описанных выше экспериментов (см. табл. 15.2 и 15.3), заключается в том, что если пользователи при выборе паролей предоставлены самим себе, то у многих из них они будут слишком короткими или такими, которые легко отгадать. Когда же пользователям назначаются пароли, состоящие из восьми случайным образом выбранных печатаемых символов, эффективный взлом паролей практически невозможен. Однако в этом случае большинство пользователей будут не в состоянии запомнить свои пароли. К счастью, даже если ограничить множество символьных строк теми вариантами, которые вполне запоминаемы, количество элементов этого множества будет все еще достаточно велико для того, чтобы их легко можно было отгадать. Таким образом, позволяя пользователям выбирать запоминающиеся пароли, нужно исключить такие, которые легко отгадать. Для этого используются четыре основных метода:
повышение уровня образования пользователя;
пароли, сгенерированные компьютером;
реактивная проверка паролей;
упреждающая проверка паролей.
Можно рассказывать пользователям о том, как важно использовать пароли, которые трудно отгадать, а также о том, как выбирать надежные пароли. Стратегия, заключающаяся в повышении уровня образования пользователей (user education), вряд ли будет успешной в большинстве ситуаций, в особенности там, где много пользователей или большая текучесть кадров. Многие пользователи просто проигнорируют подобные указания. Другие же не смогут оценить надежность выбранного пароля. Например, многие пользователи ошибочно считают, что изменение порядка символов в слове на противоположный или написание в нем последней буквы в верхнем регистре существенно усложняет отгадывание пароля.
Использование паролей, сгенерированных с помощью компьютера (computer-generated passwords), также может привести к проблемам. При выборе слишком необычных паролей пользователям будет трудно их запомнить, и они будут стараться где-то их записать. Вообще говоря, опыт показывает, что схемы компьютерного генерирования паролей плохо воспринимаются пользователями. В стандарте FIPS PUB 181 представлен автоматический генератор паролей. В этом стандарте имеется не только описание используемого подхода, но и полный листинг исходного кода на С, на котором реализован данный алгоритм. В процессе работы алгоритма генерируются легкие для произношения слоги, которые потом объединяются в слово. При образовании слогов и слов используется генератор случайных чисел, с помощью которого генерируется случайный поток символов.
Стратегия с реактивной проверкой паролей (reactive password-checking) — это стратегия, при которой в системе периодически запускается своя собственная программа — взломщик паролей, пытающаяся отыскать легко отгадываемые пароли. Система отменяет все отгаданные пароли и сообщает об этом пользователю. Такая тактика имеет несколько недостатков. Во-первых, чтобы сделать все как следует, нужно интенсивно использовать ресурсы. Поскольку решительно настроенный оппонент, который имеет возможность похитить пароль, может посвятить этой задаче несколько часов и даже дней с полным использованием процессора, программа реактивной проверки паролей явно находится на невыгодных позициях. К тому же до того, как эта программа найдет имеющиеся уязвимые пароли, они остаются в системе.
Наиболее многообещающим подходом к повышению безопасности паролей является упреждающая проверка паролей (proactive password checker). В этой схеме пользователю предоставлена возможность выбирать свой собственный пароль. Однако во время выбора система проверяет, приемлем ли этот пароль, и если он недостаточно надежен, она его отвергает. Данный подход привлекателен тем, что при надлежащем контроле со стороны системы пользователи могут выбрать из довольно большого числа возможностей запоминающиеся пароли, которые, скорее всего, не будут отгаданы при атаке с использованием словаря.
В схеме с упреждающей проверкой паролей самое главное — установить удачный баланс между удобством пароля для пользователя и надежностью. Если система отвергает слишком большое количество паролей, пользователи будут жаловаться, что очень сложно подобрать пароль. Если же в системе используется некоторый простой алгоритм отбора приемлемых паролей, их взломщикам предоставляется зеленая улица. В заключительной части этого подраздела рассмотрим возможные варианты упреждающей проверки паролей.
Первый из них — это простая система с соблюдением определенных правил, например:
длина всех паролей должна быть не менее восьми символов;
среди первых восьми символов должны присутствовать хотя бы по одному такие, как прописная буква, строчная буква, цифра и символ пунктуации.
Эти правила должны быть дополнены советами пользователям. Хотя данный способ не имеет себе равных по простоте, он может оказаться недостаточно эффективным для того, чтобы противостоять взломщикам паролей. При использовании такой схемы взломщики будут предупреждены, какие пароли им не следует пробовать, но они все же могут попытаться взломать пароль.
Другой вариант рассматриваемого подхода заключается в том, чтобы просто составить большой словарь возможных "плохих" паролей. Когда пользователь выбирает пароль, система проверяет, нет ли этого пароля в списке. При таком способе есть две проблемы.
Пространство. Чтобы словарь работал эффективно, он должен быть очень большим. Например, словарь, который используется в исследовании университета Purdue [SPAF92], занимает более 30 Мбайт.
Время. Поиск в таком большом словаре может продолжаться довольно долго. Кроме того, чтобы проверить возможные перестановки слов из словаря, либо все эти варианты должны быть включены в словарь, что сделает его поистине огромным, либо длительность каждой проверки увеличивается за счет обработки перестановок.