39985

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

Контрольная

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

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

Русский

2013-10-13

24.56 KB

8 чел.

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 - учетные записи домена.


 

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

13276. Исследование двигателя постоянного тока параллельного возбуждения 36.5 KB
  Лабораторная работа П3 по дисциплине Электрические машины Исследование двигателя постоянного тока параллельного возбуждения Цель работы: исследование рабочих скоростных механических и регулировочных характеристик двигателя параллельного возбуждения. Сх...
13277. Исследование рабочих, скоростных и регулировочных характеристик двигателя параллельного возбуждения 249 KB
  Лабораторная работа П3. Исследование двигателя постоянного тока параллельного возбуждения. Цель работы: исследование рабочих скоростных и регулировочных характеристик двигателя параллельного возбуждения. = 220 В  220 В ABC V6 PH
13278. Исследование двигателя постоянного тока последовательного возбуждения 416 KB
  Лабораторная работа П4. Исследование двигателя постоянного тока последовательного возбуждения. Цель работы: ознакомление с методами пуска и регулирования частоты вращения двигателя последовательного возбуждения изучение его рабочих характеристик. Параметры дви
13280. Исследование трехфазного двухобмоточного трансформатора 625.5 KB
  Лабораторная работа Т1. Исследование трехфазного двухобмоточного трансформатора. Цель работы: ознакомление с конструкцией и принципом работы трехфазного двухобмоточного трансформатора а также определение параметров его схемы замещения в симметричных режимах при
13281. Побудова комбінаційних схем та побудова часових діаграм 3.84 MB
  У даній курсовій роботі буде даний один із логічних виразів, який буде розв’язуватися, як і в ручну так і за допомогою пакетів прикладних програм (ППП). А саме ППП Proteus та ППП ORCAD...
13282. Теорії міжнародної торгівлі 37.71 KB
  Оскільки, історично міжнародна торгівля передувала іншим формами міжнародних економічних відносин, першими зявилися теоретичні розробки (концепції), що стосувалися саме проблем міжнародної торгівлі і намагалися відповісти на практичні запитання
13283. ДЕФОРМАЦИИ РАСТЯЖЕНИЯ И ИЗГИБА 717 KB
  ДЕФОРМАЦИИ РАСТЯЖЕНИЯ И ИЗГИБА Задание. Определить модуль Юнга стальной проволоки с предельной относительной погрешностью не превышающей. Задание. Определить модуль Юнга дерева с предельной относительной погрешностью не превышающей...