Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
К_Глава 10_Безопасность.doc
Скачиваний:
98
Добавлен:
19.05.2015
Размер:
2.17 Mб
Скачать

5.2 Аутентификация

Определение аутентификации. Пароли.

Аутентификация (authentication) предотвращает доступ к сети нежелательных лиц и разрешает вход для легальных пользователей. Термин «аутентификация» в переводе с латинского означает : «установление подлинности». Аутентифика­цию следует отличать от идентификации. Идентификаторы пользователей ис­пользуются в системе с теми же целями, что и идентификаторы любых других объектов, файлов, процессов, структур данных, но они не связаны непосредст­венно с обеспечением безопасности. Идентификация заключается в сообщении пользователем системе своего идентификатора, в то время как аутентифика­ция — это процедура доказательства пользователем того, что он есть тот, за кого себя выдает, в частности, доказательство того, что именно ему принадлежит вве­денный им идентификатор.

В процедуре аутентификации участвуют две стороны: одна сторона доказывает свою аутентичность, предъявляя некоторые доказательства, а другая сторона — аутентификатор — проверяет эти доказательства и принимает решение. В каче­стве доказательства аутентичности используются самые разнообразные приемы:

  • аутентифицируемый может продемонстрировать знание некоего общего для обеих сторон секрета: слова (пароля) или факта (даты и места события, про­звища человека и т. п.);

  • аутентифицируемый может продемонстрировать, что он владеет неким уни­кальным предметом (физическим ключом), в качестве которого может высту­пать, например, электронная магнитная карта;

  • аутентифицируемый может доказать свою идентичность, используя собст­венные биохарактеристики: рисунок радужной оболочки глаза или отпечатки пальцев, которые предварительно были занесены в базу данных аутентификатора.

Сетевые службы аутентификации строятся на основе всех этих приемов, но ча­ще всего для доказательства идентичности пользователя используются пароли. Для снижения уров­ня угрозы от раскрытия паролей администраторы сети, как правило, применяют встроенные программные средства для формирования политики назначения и использования паролей:

  • задание максимального и минимального сроков дейст­вия пароля,

  • хранение списка уже использованных паролей,

  • управление поведе­нием системы после нескольких неудачных попыток логического входа и т. п.

  • перехват паролей по сети можно предупредить путем их шифрования перед пе­редачей в сеть.

Легальность пользователя может устанавливаться по отношению к различным системам. Так, работая в сети, пользователь может проходить процедуру аутен­тификации и как локальный пользователь, который претендует на использование ресурсов только данного компьютера, и как пользователь сети, который хочет получить доступ ко всем сетевым ресурсам.

В качестве объектов, требующих аутентификации, могут выступать не только пользователи, но и различные устройства, приложения, текстовая и другая информация.

По-английски процесс входа в систему называется login (log in) и происходит от слова log, которое обозначает регистрационный журнал или процесс записи в такой журнал. В обычном английском языке такого слова нет, но в компьютерной лексике слова login и logout прижились очень прочно.

Наиболее точным переводом слова login является регистрация. Соответственно, процесс выхода называется logout. Пароль представляет собой последовательность символов. Предполагается, что пользователь запоминает ее и никому не сообщает. Этот метод хорош тем, что для его применения не нужно никакого дополнительного оборудования — только клавиатура, которая может использоваться и для других целей. Но этот метод имеет и ряд недостатков. Использование паролей основано на следующих трех предположениях: - пользователь может запомнить пароль;- никто не сможет догадаться, какой пароль был выбран;- пользователь никому не сообщит свой пароль.

Если вдуматься, первые два требования отчасти противоречат друг другу. Количество легко запоминаемых паролей ограничено и перебрать все такие пароли оказывается не так уж сложно. Этот вид атаки на систему безопас­ности известен как словарная атака (dictionary attack) и при небрежном отношении пользователей к выбору паролей представляет большую опасность.

Словарная атака в исполнении червя Морриса.

Возможности словарной атаки впервые были продемонстрированы в 1987 году молодым тогда студентом Робертом Моррисом . Разра­ботанная им программа — "Червь Морриса" — использовала словарную атаку и последующий вход в систему с подобранным паролем как один из основных способов размножения. Червь использовал для распространения и другие приемы, продемонстрировавшие не только специфические изъяны тогдашних ОС семейства Unix, но и несколько фундаментальных проблем компьютерной безопасности.

Червь Морриса использовал при подборе паролей следующие варианты:

  • входное имя пользователя, входное имя с символами в обратном порядке — "задом наперед";

  • компоненты полного имени пользователя— имя (first name), фамилию (last name) и другие элементы, если они есть;

  • те же компоненты, но задом наперед;

  • слова из заранее определенной таблицы, содержащей 400 элементов.

Большая часть успешно подобранных паролей была взята из таблицы. После поимки червя таблица была опубликована с тем, чтобы пользователи не по­вторяли старых ошибок. С первого взгляда видно, что таких "легко запоминаемых" вариантов довольно много — никак не меньше нескольких сотен. Набор их вручную занял бы очень много времени, но для компьютера несколько сотен вариантов – это доли секунды.

Многослойная защита с помощью пароля

Первый слой зашиты от подбора пароля заключается именно в том, чтобы увеличить время подбора. Обнаружив неправильный пароль, наученные горьким опытом современные системы делают паузу, прежде чем позволят повторную попытку входа с того же терминального устройства. Такая пауза может длиться всего одну секунду, но даже этого достаточно, чтобы увеличить время подбора пароля от долей секунды до десятков минут.

Второй слой защиты заключается в том, чтобы усложнить пароль и тем са­мым увеличить количество вариантов. Даже очень простые усложнения сильно увеличивают перебор. Так, простое требование использовать в паро­ле буквы и верхнего, и нижнего регистров увеличивает перебор в 2 в степени n раз, где n— длина пароля. В большинстве современных систем пароль обязан иметь длину не менее шести символов, т. е. количество вариантов увеличи­вается в 64 раза. Требование использовать в пароле хотя бы один символ, не являющийся буквой, увеличивает число вариантов в 6х43 — 258 раз (в наборе ASCII 43 небуквенных графических символа). Вместо десятков минут подбор пароля, который содержит буквы разных регистров и хотя бы один спецсимвол, займет много дней.

Третий слой защиты. Ограничение числа попыток. Все современные системы позволяют задать число неудачно набранных паролей, после которого имя блокируется. Это число всегда больше единицы, потому что пользователь — это человек, а людям свойственно ошибаться, но в большинстве случаев такой предел задается не очень большим — обычно 5—7 попыток. Однако, этот метод имеет и оборотную сторону — его можно использовать для блоки­ровки пользователей. Интересный вариант того же метода заключается в увеличении паузы между последовательными неудачными попытками хотя бы в арифметической прогрессии.

Четвертый слой защиты. Наконец, последний слои защиты — это оповещение пользователя (а иногда и администратора системы) о неудачных попытках входа. Если пользовать сам только что нажал не ту кнопку, он при входе увидит, что была одна неудачная попытка, и не будет волноваться; однако, если есть сообщения о дополнительных неудачных попытках, время побеспокоиться и разобраться, что же происходит.

Безопасное хранение паролей

При использовании паролей возникает отдельная проблема безопасного хранения базы данных со значениями паролей. Как правило, даже администратор системы не может непосредственно получить значения паролей пользователей:

  • Если бы администратор системы знал пользовательские пароли, то взломщик, сумевший выдать себя за администратора, так же получал бы доступ к этим паролям. После этого взломщик мог бы легко маскиро­ваться под других пользователей, что сильно усложнило бы обнаружение взлома.

  • Если администратор знает только административный пароль, для лише­ния его административных привилегий достаточно сменить этот пароль. Если же бывший администратор имел доступ ко всей базе данных о па­ролях, он по-прежнему будет иметь возможность доступа к системе, что может оказаться нежелательным.

Для обеспечения секретности паролей обычно используют одностороннее шифрование, или хэширование, при котором по зашифрованному значению нельзя восстановить исходное слово. Практически все современные системы хранят данные о паролях в односторонне зашифрованном виде в файле, недоступном для чтения обычным пользователям. Поставщики некоторых систем, например Windows NТ/2000/ХР, даже отказываются публиковать информацию о формате этой базы данных, хотя это само по себе вряд ли способно помешать квалифицированному взломщику.

Криптографические методы аутентификации.

Многие системы аутентификации используют для самой аутентификации или представления контекста доступа алгоритм шифрования с открытым ключом RSA. Способы аутентификации, основанные на RSA, сводятся к следующему алгоритму.

  • Система А генерирует последовательность байтов, обычно случайную, кодирует ее своим ключом и посылает системе В.

  • Система В раскодирует ее своим ключом. Это возможно, только если системы владеют парными ключами.

  • Системы тем или иным способом обмениваются "правильными" значе­ниями зашифрованной посылки.

В вычислительных сетях процедуры аутентификации часто реализуются теми же программными средствами, что и процедуры авторизации. В отличие от аутентификации, которая распознает легальных и нелегальных пользователей, систем авторизации имеет дело только с легальными пользователями, которые уже успешно прошли процедуру аутентификации. Цель подсистем авторизации состоит в том, чтобы предоставить каждому легальному пользователю именно те виды доступа и к тем ресурсам, которые были для него определены администратором системы.