Crypt (Unix)
Crypt | |
---|---|
Тип | Шифрование файлов |
Автор | Роберт Моррис |
Операционные системы | Research Unix V3-V7,OpenSolaris |
Языки интерфейса | Английский |
Аппаратные платформы | IA-32,x86-64 и другие |
Состояние | Устарела |
ВUNIX системахcrypt является устаревшейутилитой, предназначенной для шифрования файлов.
История
[править |править код]Crypt был созданРобертом Моррисом и впервые появился вVersion 3 Unix с целью стимулировать разработки по взлому шифров; в конечном итоге Моррис сам и взломалcrypt.Деннис Ритчи сумел автоматизировать процесс расшифровки, используя метод, предложенный Джеймсом Ридсом, и усовершенствованная версия алгоритма crypt появилась вVersion 7 Unix, которую Ридс иПитер Вейнбергер также взломали[1].
Связь с хеш-функцией
[править |править код]Существует такжекриптографическая хеш-функция с одноимённым названием —crypt. Несмотря на то, что и утилита crypt и функция crypt используются для шифрования данных, между ними нет ничего общего. Чтобы различать их, обычно ссылаются на системную утилиту какcrypt(1), так как она документирована в разделе 1руководства UNIX, а на криптографическую хеш-функцию какcrypt(3), так как она документирована в секции 3.
Командаcrypt(1)
[править |править код]crypt(1) является простой утилитой для шифрования/дешифровки данных. Как правило она используется в качестве программы-фильтра (программы, которая принимает на вход строку и возвращает другую строку), и которая традиционно основывается наалгоритме, использовавшемся в машинеЭнигма. Алгоритм считается чрезмернокриптографически уязвимым, чтобы обеспечить защиту отполного перебора ключей современным бытовымперсональным компьютером.
Некоторые версии UNIX поставлялись с даже более уязвимой версией командыcrypt(1), чтобы обеспечить выполнение современных законов, ограничивающих экспорт криптографического программного обеспечения. Некоторые из реализаций crypt фактически являлись реализациямишифра Цезаря.
crypt(1) на Linux
[править |править код]Дистрибутивы Linux обычно не включают в себя UNIX-совместимую версиюcrypt по нескольким причинам:
- crypt считается весьма незащищённым от атак методомполного перебора (в дистрибутив обычно входитGnuPG, который достаточно криптографически стоек по современным меркам).
- На ранних этапах развития Linux были опасения, чтоcrypt может не удовлетворить требованиямITAR по экспорту криптографического программного обеспечения; по этой причине утилита была исключена из большинства дистрибутивов, разрабатывавшихся вСША (разработчики предлагают пользователям скачатьGnuPG или аналогичное программное обеспечение самостоятельно, иногда предоставляяскрипты для автоматизации процесса установки).
Исходный код для нескольких старых версий программыcrypt доступен вархиве The Unix Heritage Society.
Последняя версия кода доступна в проектеOpenSolaris.
В настоящее время на Linux доступны усовершенствованныесимметричные криптосистемы (они такжепортируемы на любую другуюUNIX-подобную операционную систему), включаяmcrypt иccrypt[2]. Несмотря на то, что эти программы позволяют использовать весьма сложные алгоритмы шифрования, с помощью опций командной строки можно задать им режим работы, совместимый с классическимcrypt(1).
Взлом crypt(1)
[править |править код]Программы для взлома шифров crypt(1) широко доступны. В 1984—1985 Боб Балдвин создал программу Crypt Breaker’s Workbench[3], которая является интерактивной утилитой, предоставляющей пользователю последовательно 'догадки' о пароле, а пользователь должен выбирать из них наиболее подходящий. Unixcrypt-breaker Питера Селингера[4] использует простую статистическую модель для отсеивания неподходящих паролей и не требует вмешательства пользователя.
Примечания
[править |править код]- ↑Макилрой, Дуглас A Research Unix reader: annotated excerpts from the Programmer’s Manual. CSTR. Bell Labs. 139. 1971—1986 (неопр.). Дата обращения: 8 сентября 2015. Архивировано 11 ноября 2017 года.
- ↑Peter Selinger:ccryptАрхивная копия от 22 февраля 2011 наWayback Machine. Июль 27, 2008.
- ↑Bob Baldwin:Crypt Breaker’s WorkbenchАрхивная копия от 18 августа 2011 наWayback Machine, 1984—1985.
- ↑Peter Selinger:unixcrypt-breakerАрхивная копия от 19 сентября 2015 наWayback Machine. Июль 27, 2008.
Ссылки
[править |править код]- Исходный код для crypt(1) изOpenSolaris (опубликован после смягчения экспортных ограничений)
- Исходный код для crypt(1) изVersion 7 Unix
- Исходный код для crypt(1) изVersion 6 Unix (реализация криптосистемы на основе машиныM-209 созданнойБорисом Хагелиным)
- Пример кода SHA-512, баш-скрипт и егоописание.