39985

Функции шифрования пароля в Unix и Windows

Контрольная

Информатика, кибернетика и программирование

Поле пароль x будет содержать либо реальный зашифрованный пароль либо его обозначение как в данном примере. При регистрации в системе UNIX программа getty требует ввести имя пользователя и запускает программу входа в систему а та в свою очередь запрашивает пароль но не декодирует его. Фактически программа bin login шифрует пароль введенный пользователем а затем сравнивает полученное значение с тем которое хранится в etc psswd. Если данные совпадают то пароль был введен правильно.

Русский

2013-10-13

24.56 KB

9 чел.

5. Функции шифрования пароля в Unix и Windows

Шифрование пароля в Unix

  1.  Из исходного пароля берутся первые восемь байт. Также выбирается 12-битная случайная привязка (salt). Затем к этим двум параметрам применяется специальная функция шифрования, состоящая из 25 повторений чуть измененного алгоритма DES, которая дает на выходе 64-битное значение.
  2.  Привязка преобразуется в два читабельных ASCII-символа, а хэш - в 11 символов.
  3.  При входе пользователя в систему вызывается та же функция с введенным паролем и привязкой, полученной из /etc/passwd. Если результат оказывается равным значению, хранящемуся в файле, то аутентификация считается состоявшейся.

ХРАНЕНИЕ ПАРОЛЕЙ

Каждая запись в файле паролей /etc/passwd имеет формат

userid:password:UID:GID:Comment:Home

directory:shell

и выглядит, к примеру, следующим образом:

chare:x:500:500:Chris Hare:/home/chare:/bin/bash

Поле «идентификатор пользователя» (chare) содержит реальное название бюджета пользователя. Поле пароль (x) будет содержать либо реальный зашифрованный пароль, либо его обозначение (как в данном примере). Наличие последнего свидетельствует об использовании скрытого файла. Поле «номер пользователя» (500) представляет собой уникальный идентификатор, с помощью которого система различает пользователей. Номер группы (500) позволяет определить, к какой группе принадлежит пользователь и какая ему соответствует запись в файле /etc/group. Комментарии или поле GECOS (Chris Hare) могут содержать любую текстовую информацию, необходимую для идентификации. Как правило, здесь записывается имя пользователя и другие данные, например номер телефона или название отдела. Домашний каталог (/home/chare) указывает, куда помещается пользователь в момент первоначальной регистрации в системе, а исходный командный процессор (/bin/bash) определяет, какой интерпретатор команд применяется.

МЕТОДЫ ШИФРОВАНИЯ ПАРОЛЕЙ

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

При регистрации в системе UNIX программа getty требует ввести имя пользователя и запускает программу входа в систему, а та, в свою очередь, запрашивает пароль, но не декодирует его. Фактически, программа /bin/login шифрует пароль, введенный пользователем, а затем сравнивает полученное значение с тем, которое хранится в /etc/passwd. Если данные совпадают, то пароль был введен правильно.

Самым популярным методом шифрования стало применение улучшенного стандарта на шифрование данных (Data Encryption Standard, DES). Сам стандарт DES представляет собой систему с симметричным ключом, т. е. один и тот же ключ служит и для шифрования, и для дешифровки. Если бы алгоритм не был усовершенствован, то два пользователя с одним и тем же паролем могли получить одно и то же зашифрованное значение. 

ШИФРОВАНИЕ ПАРОЛЕЙ В UNIX С ПОМОЩЬЮ DES

Обращение к методу шифрования паролей в UNIX выполняется с помощью системного вызова crypt(3).

Истинное значение, которое хранится в /etc/passwd, получается путем использования пароля пользователя для шифрования 64-разрядного блока нулей с помощью вызова crypt(3). «Чистый текст» — это пароль пользователя, который является ключом данной операции. Итоговый «закодированный текст» представляет собой зашифрованный пароль. «Чистый текст» (также называемый незакодированным текстом) — исходное незашифрованное сообщение. Закодированный текст — сообщение после шифрования.

Алгоритм crypt(3) базируется на стандарте DES, разработанном в Национальном институте стандартов и технологий (National Institute of Standards and Technology, NIST). В обычном случае для шифрования исходного текста, в DES часто называемого «чистым текстом», применяется 56-разрядный ключ, состоящий, например, из восьми 7-разрядных символов. Этот «чистый текст», как правило, имеет в длину 64 бита. Вот почему UNIX распознает только первые восемь символов пароля, введенного пользователем. Полученный в итоге закодированный текст невозможно расшифровать, не зная значения исходного ключа.

При вызове crypt(3) в UNIX используется модифицированная версия указанного метода, при этом декларируется, что «чистый текст» преобразуется в блок нулей. Новое шифрование закодированного текста с помощью пароля пользователя в качестве ключа еще больше усложняет этот процесс. Так повторяется 25 раз, а затем полученные в итоге 64 разряда разделяются на 11 печатных символов и сохраняются в файле паролей.

Роберт Моррис и Кен Томсон, первыми реализовавшие технологию crypt(3) в UNIX, опасались, что с появлением микросхем с поддержкой DES на аппаратном уровне защиту системы UNIX можно будет легко преодолеть. Чтобы ликвидировать эту угрозу, они предложили использовать «крупинку соли» — 12-разрядное число, применяемое для модификации результата работы DES. Это число может принимать значения от 0 до 4095. В итоге каждый возможный пароль можно представить в файле паролей одним из 4096 способов. Разные пользователи на одной и той же машине могут использовать один и тот же пароль, и никто, даже системный администратор, не будет об этом знать.

Когда запускается программа /bin/passwd для создания нового пароля, она выбирает значение «крупинки соли» в зависимости от времени дня, которое затем применяется для модификации пароля пользователя. Чтобы предотвратить маловероятную возможность задания другого значения «крупинки соли» при следующей регистрации пользователя, UNIX хранит эту величину в /etc/passwd. Фактически, данное значение представлено в виде первых двух символов зашифрованного пароля. Такой механизм гарантирует, что пароль может быть зашифрован снова и ему будет найдено соответствие.


Шифрование пароля в Windows

Алгоритмы шифрования. 
Формирование NT-хэша
1. Пароль пользователя преобразуется в Unicode-строку. 
2. Генерируется MD4-хэш на основе данной строки. 
3. Полученный хэш шифруется алгоритмом DES, ключ составляется на основе RID пользователя. 

LM-хеш или LAN Manager хеш один из форматов используемых для хранения пользовательских паролей меньше 15 символов длиной.
Формирование LM-хэша
1. Пароль пользователя преобразуется в верхний регистр и дополняется нулями до длины 14 байт. 
2. Полученная строка делится на две половинки по 7 байт и каждая из них по отдельности шифруется алгоритмом DES. В итоге получаем хэш длиной 16 байт (состоящий из двух независимых половинок длиной по 8 байт). 
3. Полученный хэш шифруется алгоритмом DES, ключ составляется на основе RID пользователя.

4. В windows 2000 и выше оба полученых хэша дополнительно шифруются алоритмом RC4 с помощью ключа, известного как «системный ключ» или bootkey, сгенерированого утилитой syskey, и шифруются довольно хитрым образом. 

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

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

Windows NT для хэширования паролей пользователей использует 2 алгоритма: LM, доставшийся нам в наследство от сетей Lan Manager, в основе которого лежит простейшее преобразование DES, и NT, на основе функции хэширования MD4.
LM, как более слабый и уязвимый, по умолчанию не поддерживается новейшими системами Windows Vista и Windows 7, однако его можно включить. Более того, прослеживается тенденция его полного исключения или замещения. Важно знать, что при установленной опции хэширования LM (а она по умолчанию включена в Windows XP), все пароли пользователей считаются достаточно уязвимыми. Как правило, для взлома большинства таких паролей требуется несколько минут.
NT-хэш лишен недостатков, присущих LM-хэшу. Следовательно, подобрать правильный пароль к известному NT-хэшу значительно сложнее, чем к многострадальному LM. Но имеющаяся тенденция увеличения вычислительных возможностей современных компьютеров, особенно при использовании графических карт, возможно, в скором будущем сделают и этот стандарт уязвимым для потенциальных злоумышленников.

LM и NT хэши имеют фиксированный размер - 16 байт и могут хранится в двух хранилищах: SAM - для обычных учетных записей и Active Directory - учетные записи домена.


 

А также другие работы, которые могут Вас заинтересовать

16512. ПРАВИЛА ВИКОНАННЯ ЕЛЕКТРИЧНИХ СХЕМ ЦИФРОВОЇ ТЕХНІКИ 143.5 KB
  Лабораторна робота 3 Тема: ПРАВИЛА ВИКОНАННЯ ЕЛЕКТРИЧНИХ СХЕМ ЦИФРОВОЇ ТЕХНІКИ Електрична схема це конструкторський документ в якому умовними графічними позначеннями УГП показано складові частини виробу і звязки між ними. Їх виконують у відповідності д...
16513. Прикладная численная математика 134 KB
  Лабораторная работа №5 Прикладная численная математика 1.1 Вычисление определенных интегралов В MATLAB определены команды quad и quadl для приближенного вычисления определенных интегралов I = dx. Команда quad или quadl имеет следующие модификации: quad'fx' ab; quad'fx' a...
16514. Вычисление пределов – команда limit 62 KB
  Лабораторная работа №6 1.1 Вычисление пределов команда limit Для вычисления пределов функции Fx заданной в аналитическом символьном виде служит команда limit которая используется в одном из следующих вариантов: limitFxa возвращает предел символьного выражения F
16515. Разложение в ряд Тейлора – команда taylor 208.5 KB
  Лабораторная работа №7 1.1 Разложение в ряд Тейлора команда taylor В задачах аппроксимации и приближения функций fx важное место занимает их разложение в ряд Тейлора в окрестности точки a: fx = . Частным случаем этого ряда при a = 0 является ряд Маклорена: fx = ...
16516. ИЗМЕРЕНИЕ ПАРАМЕТРОВ СИГНАЛОВ И ЦЕПЕЙ 789.5 KB
  ИЗМЕРЕНИЕ ПАРАМЕТРОВ СИГНАЛОВ И ЦЕПЕЙ Методические указания к лабораторной работе № 1 по курсам Основы теории цепей Теория электрических цепей для студентов направлений Радиотехника Телекоммуникации Информационная безопасность В методических...
16517. ПРОСТЕЙШИЕ ЭЛЕКТРИЧЕСКИЕ ЦЕПИ ПРИ ГАРМОНИЧЕСКОМ ВОЗДЕЙСТВИИ 141 KB
  ПРОСТЕЙШИЕ ЭЛЕКТРИЧЕСКИЕ ЦЕПИ при гармоническом воздействии Методические указания к лабораторной работе №2 по курсам Основы теории цепей Теория электрических цепей для студентов направлений Радиотехника Телекоммуникации Информационная безопа
16518. АНАЛИЗ СЛОЖНЫХ ЛИНЕЙНЫХ ЦЕПЕЙ 186.5 KB
  АНАЛИЗ СЛОЖНЫХ ЛИНЕЙНЫХ ЦЕПЕЙ Методические указания к лабораторной работе № 3 по курсам Основы теории цепей Теория электрических цепей для студентов направлений Радиотехника Телекоммуникации Информационная безопасность АНАЛИЗ СЛОЖНЫХ ЛИНЕЙ...
16519. ИНДУКТИВНО-СВЯЗАННЫЕ ЦЕПИ 188.5 KB
  ИНДУКТИВНОСВЯЗАННЫЕ ЦЕПИ Методические указания к лабораторной работе № 4 по курсам Основы теории цепей Теория электрических цепей для студентов направлений Радиотехника Телекоммуникации Информационная безопасность Составители Е.В. Вострец
16520. ИССЛЕДОВАНИЕ ЧАСТОТНЫХ ХАРАКТЕРИСТИК 126.5 KB
  ИССЛЕДОВАНИЕ ЧАСТОТНЫХ ХАРАКТЕРИСТИК Методические указания к лабораторной работе № 5 по курсам Основы теории цепей Теория электрических цепей для студентов направлений Радиотехника Телекоммуникации Информационная безопасность Составител...