Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 13-16 / 2 / OC_16.doc
Скачиваний:
81
Добавлен:
04.04.2013
Размер:
989.18 Кб
Скачать

16.2.3 Уязвимость паролей

Чтобы понять природу атак, рассмотрим часто применяющуюся в систе­мах UNIX схему, в которой пароли никогда не хранятся в открытом виде. Вместо этого используется описанная ниже процедура (рис. 16.2, а). Каждый пользователь выбирает пароль длиной до восьми печатных знаков, который с помощью 7-битового кода АSСII преобразуется в 56-битовое значение. Это значение служит входным параметром для функции шифровки под названием сrypt(3). Алгоритм шифрования преобразуется с помощью 12-битового значения salt, которое обычно связано со временем выделения пароля пользователю. Модифицированный алгоритм выполняется с входными данными, состоящими из 64-битового блока нулей, в результате чего получается значение, которое используется в качестве входного значения для второго шифрования. Всего этот процесс повторяется 25 раз. Затем получившееся в результате 64-битовое выходное значение преобразуется в последовательность из 11 символов. После этого зашифрованный пароль сохраняется вместе с незашифрованным 12-битовым значением salt: в файле с паролями для данного идентификатора пользователя.

Значение salt используется с тремя целями.

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

  • Это значение эффективно увеличивает длину пароля, но при этом пользователю не нужно помнить еще два дополнительных символа. Таким образом, количество возможных паролей возрастает в 4096 раз, благодаря чему становится труднее отгадать пароль.

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

При входе в систему UNIX пользователь вводит свой идентификатор и пароль. Операционная система использует идентификатор в качестве указателя для файла с паролями, извлекая из него незашифрованное значение salt и зашиф­рованный пароль. Введенный пользователем пароль используется в качестве входного значения шифровальной программы, после чего результат ее работы сравнивается с извлеченным зашифрованным паролем. Если эти два значения совпадают, пароль принимается.

Шифровальная программа устроена так, чтобы воспрепятствовать атакам с отгадыванием паролей. Программные реализации алгоритма работают медленнее, чем аппаратные версии; кроме того, необходимость 25 итераций увеличивает затрачиваемое время в 25 раз.

б) Проверка пароля

Рис. 16.2. Схема паролей системы UNIX

Таким образом, для схемы паролей системы UNIX существуют две угрозы. Во-первых, пользователь может получить доступ к машине с помощью учетной записи гостя или каким-нибудь другим образом, а затем он на этой машине может запустить программу для отгадывания паролей, которая называется взломщиком паролей. Взломщику нужно суметь проверить сотни или тысячи возможных паролей используя небольшие вычислительные ресурсы. Кроме того, если злоумышленник в состоянии получить копию файла с паролями, то программу-взломщик можно будет запустить в свободное время на другой машине. Это позволяет перепробовать в течение небольшого отрезка времени тысячи и тысячи вариантов паролей.

Контроль доступа. Одним из способов предотвращения атаки со взломом пароля является перекрытие доступа к файлу с паролями. Если зашифрованная часть пароля доступна в файле только привилегированным пользователям, то взломщик не сможет прочитать этот файл, не зная пароля привилегированного пользователя. Недостатки такой стратегии:

  • Многие системы, в том числе и многие системы UNIХ, подвержены неожиданным взломам. Как только взломщик каким-то образом получит доступ к системе, он захочет узнать несколько паролей, чтобы по очереди использовать при регистрации разные идентификаторы, уменьшая тем самым риск быть обнаруженным. С другой стороны, зарегистрированный пользователь может захотеть узнать идентификатор и пароль другого пользователя, чтобы получить привиле­гированный доступ к данным или причинить вред системе.

  • Авария в системе защиты может сделать читаемым файл с паролями, дискредитируя таким образом все учетные записи.

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

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

Соседние файлы в папке 2