Crypt (C)crypt — бібліотечна функція, яка використовується для обчислення хешу пароля, який може бути використаний для зберігання паролів облікових записів користувачів, зберігаючи при цьому їх відносно прихованими (в passwd файлі). На виході функції не просто хеш, а рядок тексту, який також містить сіль, хеш-алгоритм який використовується і параметри, з якими був отриманий хеш, наприклад кількість раундів і інші опції. Цей вихідний рядок потім можна зберігати в простому текстовому файлі. Більш формально, crypt надає криптографічні функції формування ключа для перевірки пароля і зберігання в системах Unix. Стосунок до Unix утиліти cryptВ операційних системах UNIX є однойменна утиліта crypt, яку часто плутають з бібліотечною функцією C. Щоб розрізняти їх, на системну утиліту зазвичай посилаються як crypt(1) (документована в секції 1 довідника UNIX), а на бібліотечну функцію — як crypt(3) (документована в секції 3). ДеталіОдна і та ж функція crypt використовується як для генерування нового хешу для зберігання, так і для обчислення хешу пароля, що перевіряється із записаною сіллю для порівняння. Сучасні реалізації Unix crypt(3) підтримують різні схеми хешування. Зокрема, хеш-алгоритм може бути визначений по унікальному ідентифікатору з префікса в остаточному тексті хешу, який де-факто відповідає стандарту Modular Crypt Format (MCF)[1][2][3]. Бібліотечна функція Підтримувані функції формування ключаЗ плином часу вводяться різні алгоритми. Щоб підтримувати зворотню сумісність, автори почали використовувати конвенції з серіалізації в хешах паролів, який пізніше був названий Modular Crypt Format (MCF). Оскільки ніякого стандарту спочатку не було, старі crypt(3) хеші можуть відрізнятися від схеми до схеми. Під час змагання з хешування паролів[en] був сформований наступний формат[9]:
де
На жаль, цей стандарт виробився не відразу і не всі схеми слідують йому.
Підтримка в операційних системах
Архаїчні Unix-схемиBigCrypt — це модифікація DES, що використовується в HP-UX, Digital Unix, і OSF/1. Головна відмінність з DES в тому, що BigCrypt використовує всі символи пароля, а не тільки перші 8 і тому має хеш різної довжини[10]. Crypt16 — це невелика модифікація DES, яка підтримує паролі до 16 символів. Використовувалася в Ultrix і Tru64[11]. LinuxСтандартна бібліотека мови Сі, що використовується майже у всіх дистрибутивах Linux, надає реалізацію функції crypt, яка підтримує DES, MD5 і (починаючи з версії 2.7) сімейство алгоритмів хешування SHA-2. Ulrich Drepper, супроводжуючий glibc, відхилив підтримку bcrypt, оскільки він не був схвалений NIST[12]. Mac OSУ MacOS X нативна Примітки
Посилання
|