Книга: Введение в криптографию

Берегитесь ханаанского бальзама

Берегитесь ханаанского бальзама

Приобретая новый криптографический продукт, всегда возникает вопрос: можно ли ему доверять? Даже лично изучив исходные тексты программы, далеко не каждый имеет математическое образование, чтобы судить о надёжности реализации криптосистемы. И будь вы даже опытным криптографом, незначительные уязвимости алгоритмов всё же могут остаться незамеченными.

В начале 70-х, ещё учась в колледже, я придумал, как тогда полагал, блестящую шифровальную схему. Простой поток псевдослучайных чисел объединялся с потоком открытого текста, производя шифртекст. Это должно было сделать его устойчивым к любому статистическому анализу, не позволяя взломать шифр даже самым могучим разведслужбам. Я почувствовал такое самодовольство!

Годы спустя я обнаружил такую же схему в ряде консультативных статей и вводных материалов по криптографии. Как мило, другим криптологам на ум пришла та же мысль! К сожалению, схема была представлена как простое домашнее задание по использованию элементарных криптоаналитических техник для её тривиального взлома. Вот и вся моя блестящая идея…

Из этого горького опыта я вынес, как легко, разрабатывая шифровальный алгоритм, впасть в ложное чувство защищённости. Большинство людей не предполагают, насколько это трудно изобрести алгоритм, который бы выдержал продолжительную атаку профессионального и обладающего огромными ресурсами оппонента. Многие заурядные разработчики создали равно неэффективные шифровальные схемы (зачастую одну и ту же схему), и некоторые из них были включены в коммерческие программные продукты, проданные за хорошие деньги тысячам ничего не подозревающих пользователей.

Это то же самое, что продавать автомобильные ремни безопасности, которые красивы и удобны, но мгновенно раскрываются даже в самом мягком крэш-тесте. Полагаться на них будет даже хуже, чем не пристёгивать ремень вообще. Никто и не поймёт, что он бесполезен, пока не попадёт в настоящую автокатастрофу. Используя слабый криптопродукт, вы, ничего не подозревая, можете поставить ценную информацию под угрозу, тогда как не сделали бы этого, вовсе не имея криптографических средств. Возможно, вы даже никогда не узнаете, что ваши данные были похищены.

Иногда в коммерческих продуктах реализован федеральный Стандарт шифрования данных — DES — весьма неплохой блочный шифр (за исключением слишком короткого ключа), рекомендованный правительством для коммерческого использования (но не для секретной информации, что довольно странно. Хммм). DES может работать в нескольких режимах, одни из которых лучше, чем другие. Правительство особо указывает не использовать при пересылке сообщений самый простой и слабый — электронную шифрокнигу (electronic codebook, ECB). Вместо него оно предлагает более стойкие и комплексные режимы гаммирования с обратной связью(cipher feedback, CFB) и сцепления блоков шифртекста (cipher block chaining, CBC).

К несчастью, большинство исследованных мною в начале 1990-х, когда я только опубликовал PGP, коммерческих пакетов использовали именно режим ECB. В беседах с некоторыми из авторов подобных разработок они отвечали, что никогда и не слышали о режимах CBC или CFB и не знают о слабостях ECB. В тех же продуктах иногда реализуются неадекватные и небезопасные протоколы управления ключами. Один тот факт, что они не изучили даже основ криптографии, чтобы понимать такие элементарные вещи, ничуть не воодушевляет. Кроме того, нередко такие программные продукты содержат альтернативный более быстрый алгоритм, который может быть использован вместо медленного DES. Разработчик программы, как правило, считает свой собственный быстрый алгоритм столь же надёжным, сколь и DES, но после разговора с ним я обычно выяснял, что это лишь вариация на тему моего собственного "блестящего" изобретения студенческих лет. Возможно он даже не понимает, как работает его алгоритм, но горячо уверяет меня, что это — великолепная схема, на которую можно положиться. Я знаю, что он считает свой алгоритм безупречным, но как мне проверить надёжность, не изучив его?

Справедливости ради стоит отметить, что компании, специализирующиеся на криптотехнологиях, не выпускают таких кошмарно слабых программ.

Но даже действительно хорошие программы, применяющие DES в верном режиме, всё же имеют проблемы. Обычный DES использует 56-битовый ключ, слишком короткий по сегодняшним меркам, который может быть с лёгкостью взломан полным перебором на специальных высокоскоростных машинах. Жизнь DES подошла к концу, равно завершилась жизнь всех его реализаций.

Есть компания под названием AccessData, торгующая очень дешёвой программой, которая взламывает шифровальные схемы, встроенные в WordPerfect, Lotus 1-2-3, MS Excel, Symphony, Quattro Pro, Paradox, MS Word и PKZIP. Она не просто угадывает пароль, а производит настоящий криптоанализ. Некоторые люди покупают её, когда забывают пароли к собственным файлам. Силовые структуры тоже её покупают, чтобы читать файлы, которые изымают в ходе обысков. Я разговаривал с Эриком Томпсоном, автором программы, и он признался, что ей требуется всего доля секунды, чтобы взломать пароль, но он добавил несколько циклов задержки для замедления процесса, дабы он не казался покупателю столь элементарным.

В некотором смысле криптография аналогична фармацевтике. Её надёжность представляется критически важной. Плохой пенициллин на вид ничем не отличается от хорошего. Если с вашим текстовым редактором что-то не так, вы это увидите, но как вы определите надёжность своего криптографического пакета? Шифртекст, произведённый слабым алгоритмом, выглядит так же убедительно, как и шифртекст, сгенерированный стойким алгоритмом. В этом деле много ханаанского бальзама[16]. Много знахарских снадобий. В отличие от торгашей лекарствами древности, нынешние разработчики обычно даже не догадываются, что их продукты — ханаанский бальзам. Возможно, они неплохие программные инженеры, но, как правило, даже не знакомы с научными трудами по криптографии. Но продолжают считать, что могут написать хороший криптопродукт. А почему бы и нет? В конце концов, интуитивно это кажется несложным, а их программы вроде бы функционируют нормально.

Каждый, кто считает, что изобрёл безупречный криптографический алгоритм, либо невероятно редкостный гений, либо наивный дурак. К сожалению, порой мне приходится иметь дело с такими потенциальными криптографами, которые хотят внести в PGP свои "улучшения", добавив алгоритм собственной разработки.

Я вспоминаю случившуюся в 91-ом году беседу с Брайеном Сноу, высокопоставленным криптографом из АНБ. Он сказал, что никогда бы не поверил в надёжность алгоритма, созданного тем, кто для начала "не набил собственных шишек", потратив достаточно времени на взлом кодов. В этом есть смысл. Я обнаружил, что практически никто из мира коммерческой криптографии не подходит под такой критерий."Да, — добавил он с самоуверенной ухмылкой. — И это делает нашу работу в АНБ значительно проще". Пугающая мысль. Ведь я тоже не подхожу.

Правительство тоже приторговывало ханаанским бальзамом. После Второй мировой войны Соединённые Штаты продали германские шифровальные машины "Энигма" странам третьего мира. Но правительство не сообщило, что в ходе войны Союзники вскрыли код "Энигмы", факт, остававшийся засекреченным в течение десятилетий. Даже сегодня во многих UNIX-системах алгоритм "Энигмы" применяется для шифрования файлов, отчасти и потому, что правительство создало юридические преграды для использования чего-то лучшего. Оно даже пыталось предотвратить первоначальную публикацию RSA в 1977-м. И многие годы препятствовало практически всем попыткам коммерческой разработки эффективного криптофона для массового потребителя.

Главной задачей Агентства национальной безопасности США является сбор разведданных, главным образом путём скрытого прослушивания и перехватов частных гражданский коммуникаций (см. книгу Джеймса Бэмфорда"Дворец головоломок"). АНБ накопило значительные навыки и опыт по взлому кодов. Если люди не могут воспользоваться надёжными средствами шифрования, это делает задачу АНБ ещё более лёгкой. Агентство также отвественно за одобрение и рекомендацию криптоалгоритмов. Некоторые критики видят в этом конфликт интересов, например, как если посадить лисицу сторожить курятник. В 1980-х АНБ продавливало собственный симметричный шифровальный алгоритм (Утверждённая программа COMSEC), принципы действия которого отказывалось раскрывать, ссылаясь на"секретность информации". Агентство хотело, чтобы все просто приняли его на веру. Но любой криптолог скажет вам, что грамотно спроектированный алгоритм не нуждается в защите для сохранения надёжности. Защиты требуют только ключи. Как же в таком случае можно убедиться, что засекреченный алгоритм АНБ действительно безопасен? Агентству не составит большого труда разработать такой алгоритм, который только оно сможет взломать.

На момент первоначальной публикации PGP, качество коммерческих криптопродуктов в США определялось тремя главными факторами:

Во-первых, почти тотальной некомпетентностью разработчиков коммерческих криптографических решений (хотя после выпуска PGP наметились сдвиги). Каждый программист воображал себя криптографом, что вело к профанации крипторазработок и распространению продуктов крайне низкого качества.

Во-вторых, систематическим вмешательством АНБ с целью подавить все разработки хороших коммерческих криптотехнологий мерами юридического запугивания и экономического давления. Часть этого давления выразилась в строгом экспортном контроле продуктов шифрования, который, по законам рынка программного обеспечения, имел результирующий эффект и в подавлении внутренних криптографических разработок.

Третьим методом подавления являлось предоставление патентов на все алгоритмы шифрования с открытым ключом единственной компании, что позволяло давлением на эту критическую точку ограничивать распространение технологии в целом (в итоге осенью 95-го этот патентный картель развалился).

Совместный эффект всех этих факторов состоял в том, что до момента публикации PGP в США не было ни одного общедоступного универсального продукта, обеспечивающего шифрование с высокой степенью криптографической защиты.

Я не так уверен в надёжности PGP, как был когда-то уверен в своей "блестящей" шифровальной схеме. Будь это так, это было бы дурным симптомом. В то же время я не думаю, что PGP содержит какие-то зияющие дыры (хотя и убеждён, что в нём есть ошибки). Для реализации в нём я избрал лучшие алгоритмы из опубликованных в гражданской криптологической литературе. Эти алгоритмы были индивидуально детально изучены. Я знаю многих ведущих мировых криптографов, с некоторыми из них обсуждал большинство алгоритмов и протоколов, задействованных в PGP. Программа была годы в разработке и уже хорошо изучена. И я не работаю на АНБ. Но вы не обязаны мне верить, ведь её исходные тексты опубликованы именно с целью свободного изучения.

И ещё один момент в пользу надёжности и целостности PGP: после его первоначальной свободной публикации в 1991 году я провёл три года под уголовным преследованием Таможенной службой США за распространение программы за рубеж, с перспективой суда и многих лет тюремного заключения. Кстати, почему-то правительство не реагировало на другое криптографическое ПО, но только PGP вывел его из себя. Говорит ли вам это что-нибудь о стойкости PGP? Я заработал свою репутацию на криптографической целостности своих продуктов. Я не предам своих обязательств нашим гражданским и конституционным правам, ради которых рисковал собственной свободой. Я не позволю программе, автором которой являюсь, иметь секретные "потайные ходы".

Оглавление книги


Генерация: 1.594. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз