Коли Unix перестав зберігати паролі в чистому тексті?


37

Коли Unix відійшов від зберігання чітких текстових паролів у passwd? Також коли було введено тіньовий файл?


Ви щось шукали?
Кен Шарп

Відповіді:


62

Про ранню історію зберігання паролів Unix читайте Роберт Морріс та Кен Томпсон " Захист паролів: історія справ" . Вони пояснюють, чому і як раніше системи Unix придбали більшість функцій, які досі розглядаються як важливі особливості зберігання паролів (але зроблено краще).

  • Перші системи Unix зберігали паролі в простому тексті. Unix Third Edition представив cryptфункцію, яка хешує пароль. Це описується як "шифрування", а не "хешування", оскільки сучасна криптографічна термінологія ще не була створена, і вона використовувала алгоритм шифрування, хоча і нетрадиційним способом. Замість того, щоб зашифрувати пароль ключем, який було б тривіально скасовувати, коли у вас є ключ (який потрібно було б зберігати в системі), вони використовують пароль як ключ.
  • Коли Unix перейшов з більш раннього шифру на сучасний DES , це також зробилося повільніше, повторивши DES кілька разів. Я точно не знаю, коли це сталося: V6? V7?
  • Просто хешування пароля є вразливим для атак з декількома цілями: хеште всі найпоширеніші паролі раз і назавжди, а також знайдіть у таблиці з паролями відповідність. Включення солі в механізм хешування, де кожен рахунок має унікальну сіль, перемагає цю попередню обчислення. У 1979 році Unix придбала сіль у сьомому виданні .
  • Unix також придбала правила складності паролів, такі як мінімальна довжина в 1970-х.

Спочатку хеш паролів знаходився у файлі, який читається загалом /etc/passwd. Поміщення хешу в окремий файл, до /etc/shadowякого тільки система (і системний адміністратор) міг отримати доступ, була однією з багатьох новинок, що надходять від Sun, починаючи з SunOS 4 в середині 1980-х. Він поступово поширювався на інші варіанти Unix (частково через сторонній тіньовий набір , нащадок якого досі використовується в Linux) і не був доступний скрізь до середини 1990-х років.

З роками алгоритм хешування удосконалювався. Найбільшим стрибком став алгоритм на основі MD5 на основі Poul-Henning Kamp в 1994 році, який замінив алгоритм на основі DES на кращий дизайн. Це зняло обмеження на 8 символів пароля та 2 символи солі та збільшило повільність. Див. Розділ IEEE's Developing with open source software , січень – лютий. 2004, с. 7–8 . Алгоритми на основі SHA-2, які сьогодні є фактично стандартними, базуються на тому ж принципі, але з дещо кращим внутрішнім дизайном і, що найважливіше, налаштованим коефіцієнтом повільності.


До речі, сіль - це те, що шифрується.
Джошуа

Для тих , хто не має переглядач Postscript, я знайшов PDF - копію документа Morris & Thompson тут
grahamj42

8

У мене ще немає першоджерела, але відповідно до цього довіру TrustedSec (моє наголос):

Ранні системи зберігали паролі в простому тексті, але з часом це було замінено на більш безпечні форми зберігання паролів. Роберт Морріс розробив крипту на базі шифрованої машини m-209, і вона з'явилася у версії 3 Unix , хоча Crypt не використовувався для зберігання паролів до 6-го видання Unix (1974).

За даними багатьох джерел, версія 3 UNIX була випущена в лютому 1973 року .

З оригіналу статті Томпсона та Морріса ми можемо підтвердити, що спочатку зберігання в прямому тексті було використано:

Система UNIX вперше була реалізована з файлом паролів, який містив фактичні паролі всіх користувачів, і з цієї причини файл паролів повинен був бути сильно захищений від того, щоб бути прочитаним чи записаним.

/ etc / shadow з'явилося в декількох гілках UNIX, як зазначено в інших відповідях.


6

Згідно історії розділ в Вікіпедії PASSWD сторінці

Затінення паролів вперше з'явилося в системах Unix з розвитком SunOS в середині 1980-х років [10] System V Release 3.2 в 1988 році і BSD4.3 Reno в 1990 році. Але постачальники, які виконували порти з попередніх версій UNIX, не завжди включали нові функції затінення паролів у своїх випусках, залишаючи користувачів тих систем, які піддаються атакам файлових паролів.

Системні адміністратори можуть також організувати зберігання паролів у розподілених базах даних, таких як NIS та LDAP, а не у файлах кожної підключеної системи. Що стосується NIS, механізм тіньового пароля часто все ще використовується на серверах NIS; в інших розподілених механізмах проблема доступу до різних компонентів аутентифікації користувача вирішується механізмами захисту базового сховища даних.

У 1987 році автор оригінального пакета паролів Shadow, Джулі Хо, пережив комп'ютерний злом і написав початковий випуск Shadow Suite, що містить команди login, passwd та su. Оригінальний реліз, написаний для операційної системи SCO Xenix, швидко перейшов на інші платформи. Комплект Shadow Suite був перенесений в Linux в 1992 році, через рік після первинного оголошення проекту Linux, і він був включений у багато ранніх дистрибутивів і продовжує включатися у багато поточних дистрибутивів Linux.


5
Нетіньове зберігання паролів! = Незахищене зберігання в простому тексті.
rackandboneman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.