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 по нескольким причинам:

  1. crypt считается весьма незащищённым от атак методом полного перебора (в дистрибутив обычно входит GnuPG, который достаточно криптографически стоек по современным меркам).
  2. На ранних этапах развития 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] использует простую статистическую модель для отсеивания неподходящих паролей и не требует вмешательства пользователя.

Примечания

[править | править код]
  1. Макилрой, Дуглас A Research Unix reader: annotated excerpts from the Programmer’s Manual. CSTR. Bell Labs. 139. 1971—1986. Дата обращения: 8 сентября 2015. Архивировано 11 ноября 2017 года.
  2. Peter Selinger: ccrypt Архивная копия от 22 февраля 2011 на Wayback Machine. Июль 27, 2008.
  3. Bob Baldwin: Crypt Breaker’s Workbench Архивная копия от 18 августа 2011 на Wayback Machine, 1984—1985.
  4. Peter Selinger: unixcrypt-breaker Архивная копия от 19 сентября 2015 на Wayback Machine. Июль 27, 2008.