crypt — бібліотечна функція, яка використовується для обчислення хешу пароля, який може бути використаний для зберігання паролів облікових записів користувачів, зберігаючи при цьому їх відносно прихованими (в passwd файлі). На виході функції не просто хеш, а рядок тексту, який також містить сіль, хеш-алгоритм який використовується і параметри, з якими був отриманий хеш, наприклад кількість раундів і інші опції. Цей вихідний рядок потім можна зберігати в простому текстовому файлі.
Більш формально, crypt надає криптографічні функції формування ключа для перевірки пароля і зберігання в системах Unix.
Стосунок до Unix утиліти crypt
В операційних системах UNIX є однойменна утиліта , яку часто плутають з бібліотечною функцією C. Щоб розрізняти їх, на системну утиліту зазвичай посилаються як crypt(1) (документована в секції 1 довідника UNIX), а на бібліотечну функцію — як crypt(3) (документована в секції 3).
Деталі
Одна і та ж функція crypt використовується як для генерування нового хешу для зберігання, так і для обчислення хешу пароля, що перевіряється із записаною сіллю для порівняння.
Сучасні реалізації Unix crypt(3) підтримують різні схеми хешування. Зокрема, хеш-алгоритм може бути визначений по унікальному ідентифікатору з префікса в остаточному тексті хешу, який де-факто відповідає стандарту Modular Crypt Format (MCF).
Бібліотечна функція crypt()
також входить в мови програмування Perl, PHP, , Python і Ruby.
Підтримувані функції формування ключа
З плином часу вводяться різні алгоритми. Щоб підтримувати зворотню сумісність, автори почали використовувати конвенції з серіалізації в хешах паролів, який пізніше був названий Modular Crypt Format (MCF). Оскільки ніякого стандарту спочатку не було, старі crypt(3) хеші можуть відрізнятися від схеми до схеми. Під час [en] був сформований наступний формат:
$<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]]
де
id
— ідентифікатор схеми хешування, яка відображає алгоритм (наприклад, 1 для схеми з алгоритмом MD5, 5 для SHA-256 і т.д.)param
— ім'я параметра,value
— його значення: параметри складності, наприклад число раундівsalt
— Base64 закодована сільhash
— Base64 закодований результат хешування пароля і солі.
На жаль, цей стандарт виробився не відразу і не всі схеми слідують йому.
Схема | Алгоритм | Приклад |
---|---|---|
DES | Kyq4bCxAXJkbg | |
_ | BSDi | _EQ0.jzhSVeUyoSqLupI |
1 | MD5 | $1$etNnh7FA$OlM7eljE/B7F1J4XYNnk81 |
2, 2a, 2x, 2y | bcrypt | $2a$10$VIhIOofSMqgdGlL4wzE//e.77dAQGqntF/1dT7bqCrVtquInWy2qi |
3 | NTHASH | $3$$8846f7eaee8fb117ad06bdd830b7586c |
5 | SHA-256 | $5$9ks3nNEqv31FX.F$gdEoLFsCRsn/WRN3wxUnzfeZLoooVlzeF4WjLomTRFD |
6 | SHA-512 | $6$qoE2letU$wWPRl.PVczjzeMVgjiA8LLy2nOyZbf7Amj3qLIl978o18gbmysdkz7uepq9tmmqxxytirs12pln.2Q/6Xscao0 |
md5 | Solaris MD5 | $md5,rounds=5000$GUBv0xjJ$$mSwgIswdjlTY0YxV7HBVm0 |
sha1 | PBKDF1 з SHA-1 | $sha1$40000$jtNX3nZ2$hBNaIXkt4wBI2o5rsi8KejSjNqIq |
Підтримка в операційних системах
Scheme id | Scheme | Linux (glibc) | FreeBSD | NetBSD | OpenBSD | Solaris | MacOS |
---|---|---|---|---|---|---|---|
DES | y | y | y | y | y | y | |
_ | BSDi | y | y | y | y | ||
1 | MD5 | y | y | y | y | y | |
2, 2a, 2x, 2y | bcrypt | y | y | y | y | ||
3 | NTHASH | y | |||||
5 | SHA-256 | 2.7+ | 8.3+ | y | |||
6 | SHA-512 | 2.7+ | 8.3+ | y | |||
md5 | Solaris MD5 | y | |||||
sha1 | PBKDF1 з SHA1 | y |
Архаїчні Unix-схеми
BigCrypt — це модифікація DES, що використовується в HP-UX, Digital Unix, і OSF/1. Головна відмінність з DES в тому, що BigCrypt використовує всі символи пароля, а не тільки перші 8 і тому має хеш різної довжини.
Crypt16 — це невелика модифікація DES, яка підтримує паролі до 16 символів. Використовувалася в Ultrix і Tru64.
Linux
Стандартна бібліотека мови Сі, що використовується майже у всіх дистрибутивах Linux, надає реалізацію функції crypt, яка підтримує DES, MD5 і (починаючи з версії 2.7) сімейство алгоритмів хешування SHA-2. Ulrich Drepper, супроводжуючий glibc, відхилив підтримку bcrypt, оскільки він не був схвалений NIST.
Mac OS
У MacOS X нативна crypt()
надає обмежену функціональність, підтримуючи тільки DES і BSDi. В OS X використовується окрема система для своїх хешів.
Примітки
- Simson Garfinkel, Alan Schwartz, Gene Spafford. "Practical Unix & Internet Security" [ 31 липня 2020 у Wayback Machine.]. 2003. section "4.3.2.3 crypt16( ), DES Extended, and Modular Crypt Format" [ 18 червня 2018 у Wayback Machine.]. "The Modular Crypt Format (MCF) specifies an extensible scheme for formatting encrypted passwords. MCF is one of the most popular formats for encrypted passwords"
- "Modular Crypt Format: or, a side note about a standard that isn’t" [ 9 вересня 2017 у Wayback Machine.].
- . Архів оригіналу за 11 червня 2018. Процитовано 16 квітня 2018.
- . Архів оригіналу за 16 квітня 2018. Процитовано 16 квітня 2018.
- . Архів оригіналу за 16 квітня 2018. Процитовано 16 квітня 2018.
- . Архів оригіналу за 2 жовтня 2012. Процитовано 9 лютого 2013.
- . Архів оригіналу за 26 жовтня 2012. Процитовано 16 квітня 2018.
- . Архів оригіналу за 3 жовтня 2011. Процитовано 16 квітня 2018.
- . Архів оригіналу за 27 січня 2017. Процитовано 21 березня 2016.
- . Архів оригіналу за 7 липня 2017. Процитовано 16 квітня 2018.
- . Архів оригіналу за 7 липня 2017. Процитовано 16 квітня 2018.
- . Архів оригіналу за 17 квітня 2018. Процитовано 16 квітня 2018.
Посилання
- Вихідний код crypt(3) [ 21 липня 2021 у Wayback Machine.] з сьомої редакції Unix систем (реалізує DES)
- Приклад використання [ 17 квітня 2018 у Wayback Machine.]
- Онлайн генерація glibc2 сумісного crypt(3)[недоступне посилання]
- Реалізація .NET [ 17 квітня 2018 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
crypt bibliotechna funkciya yaka vikoristovuyetsya dlya obchislennya heshu parolya yakij mozhe buti vikoristanij dlya zberigannya paroliv oblikovih zapisiv koristuvachiv zberigayuchi pri comu yih vidnosno prihovanimi v passwd fajli Na vihodi funkciyi ne prosto hesh a ryadok tekstu yakij takozh mistit sil hesh algoritm yakij vikoristovuyetsya i parametri z yakimi buv otrimanij hesh napriklad kilkist raundiv i inshi opciyi Cej vihidnij ryadok potim mozhna zberigati v prostomu tekstovomu fajli Bilsh formalno crypt nadaye kriptografichni funkciyi formuvannya klyucha dlya perevirki parolya i zberigannya v sistemah Unix Stosunok do Unix utiliti cryptV operacijnih sistemah UNIX ye odnojmenna utilita yaku chasto plutayut z bibliotechnoyu funkciyeyu C Shob rozriznyati yih na sistemnu utilitu zazvichaj posilayutsya yak crypt 1 dokumentovana v sekciyi 1 dovidnika UNIX a na bibliotechnu funkciyu yak crypt 3 dokumentovana v sekciyi 3 DetaliOdna i ta zh funkciya crypt vikoristovuyetsya yak dlya generuvannya novogo heshu dlya zberigannya tak i dlya obchislennya heshu parolya sho pereviryayetsya iz zapisanoyu sillyu dlya porivnyannya Suchasni realizaciyi Unix crypt 3 pidtrimuyut rizni shemi heshuvannya Zokrema hesh algoritm mozhe buti viznachenij po unikalnomu identifikatoru z prefiksa v ostatochnomu teksti heshu yakij de fakto vidpovidaye standartu Modular Crypt Format MCF Bibliotechna funkciya crypt takozh vhodit v movi programuvannya Perl PHP Python i Ruby Pidtrimuvani funkciyi formuvannya klyuchaZ plinom chasu vvodyatsya rizni algoritmi Shob pidtrimuvati zvorotnyu sumisnist avtori pochali vikoristovuvati konvenciyi z serializaciyi v heshah paroliv yakij piznishe buv nazvanij Modular Crypt Format MCF Oskilki niyakogo standartu spochatku ne bulo stari crypt 3 heshi mozhut vidriznyatisya vid shemi do shemi Pid chas en buv sformovanij nastupnij format lt id gt lt param gt lt value gt lt param gt lt value gt lt salt gt lt hash gt de id identifikator shemi heshuvannya yaka vidobrazhaye algoritm napriklad 1 dlya shemi z algoritmom MD5 5 dlya SHA 256 i t d param im ya parametra value jogo znachennya parametri skladnosti napriklad chislo raundiv salt Base64 zakodovana sil hash Base64 zakodovanij rezultat heshuvannya parolya i soli Na zhal cej standart virobivsya ne vidrazu i ne vsi shemi sliduyut jomu Shema Algoritm Priklad DES Kyq4bCxAXJkbg BSDi EQ0 jzhSVeUyoSqLupI 1 MD5 1 etNnh7FA OlM7eljE B7F1J4XYNnk81 2 2a 2x 2y bcrypt 2a 10 VIhIOofSMqgdGlL4wzE e 77dAQGqntF 1dT7bqCrVtquInWy2qi 3 NTHASH 3 8846f7eaee8fb117ad06bdd830b7586c 5 SHA 256 5 9ks3nNEqv31FX F gdEoLFsCRsn WRN3wxUnzfeZLoooVlzeF4WjLomTRFD 6 SHA 512 6 qoE2letU wWPRl PVczjzeMVgjiA8LLy2nOyZbf7Amj3qLIl978o18gbmysdkz7uepq9tmmqxxytirs12pln 2Q 6Xscao0 md5 Solaris MD5 md5 rounds 5000 GUBv0xjJ mSwgIswdjlTY0YxV7HBVm0 sha1 PBKDF1 z SHA 1 sha1 40000 jtNX3nZ2 hBNaIXkt4wBI2o5rsi8KejSjNqIqPidtrimka v operacijnih sistemahScheme id Scheme Linux glibc FreeBSD NetBSD OpenBSD Solaris MacOS DES y y y y y y BSDi y y y y 1 MD5 y y y y y 2 2a 2x 2y bcrypt y y y y 3 NTHASH y 5 SHA 256 2 7 8 3 y 6 SHA 512 2 7 8 3 y md5 Solaris MD5 y sha1 PBKDF1 z SHA1 y Arhayichni Unix shemi BigCrypt ce modifikaciya DES sho vikoristovuyetsya v HP UX Digital Unix i OSF 1 Golovna vidminnist z DES v tomu sho BigCrypt vikoristovuye vsi simvoli parolya a ne tilki pershi 8 i tomu maye hesh riznoyi dovzhini Crypt16 ce nevelika modifikaciya DES yaka pidtrimuye paroli do 16 simvoliv Vikoristovuvalasya v Ultrix i Tru64 Linux Standartna biblioteka movi Si sho vikoristovuyetsya majzhe u vsih distributivah Linux nadaye realizaciyu funkciyi crypt yaka pidtrimuye DES MD5 i pochinayuchi z versiyi 2 7 simejstvo algoritmiv heshuvannya SHA 2 Ulrich Drepper suprovodzhuyuchij glibc vidhiliv pidtrimku bcrypt oskilki vin ne buv shvalenij NIST Mac OS U MacOS X nativna crypt nadaye obmezhenu funkcionalnist pidtrimuyuchi tilki DES i BSDi V OS X vikoristovuyetsya okrema sistema dlya svoyih heshiv PrimitkiSimson Garfinkel Alan Schwartz Gene Spafford Practical Unix amp Internet Security 31 lipnya 2020 u Wayback Machine 2003 section 4 3 2 3 crypt16 DES Extended and Modular Crypt Format 18 chervnya 2018 u Wayback Machine The Modular Crypt Format MCF specifies an extensible scheme for formatting encrypted passwords MCF is one of the most popular formats for encrypted passwords Modular Crypt Format or a side note about a standard that isn t 9 veresnya 2017 u Wayback Machine Arhiv originalu za 11 chervnya 2018 Procitovano 16 kvitnya 2018 Arhiv originalu za 16 kvitnya 2018 Procitovano 16 kvitnya 2018 Arhiv originalu za 16 kvitnya 2018 Procitovano 16 kvitnya 2018 Arhiv originalu za 2 zhovtnya 2012 Procitovano 9 lyutogo 2013 Arhiv originalu za 26 zhovtnya 2012 Procitovano 16 kvitnya 2018 Arhiv originalu za 3 zhovtnya 2011 Procitovano 16 kvitnya 2018 Arhiv originalu za 27 sichnya 2017 Procitovano 21 bereznya 2016 Arhiv originalu za 7 lipnya 2017 Procitovano 16 kvitnya 2018 Arhiv originalu za 7 lipnya 2017 Procitovano 16 kvitnya 2018 Arhiv originalu za 17 kvitnya 2018 Procitovano 16 kvitnya 2018 PosilannyaVihidnij kod crypt 3 21 lipnya 2021 u Wayback Machine z somoyi redakciyi Unix sistem realizuye DES Priklad vikoristannya 17 kvitnya 2018 u Wayback Machine Onlajn generaciya glibc2 sumisnogo crypt 3 nedostupne posilannya Realizaciya NET 17 kvitnya 2018 u Wayback Machine