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

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

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

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

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

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

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

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

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

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

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

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

Уязвимости

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

— Уильям Кроуэлл, замдиректора АНБ США, на сенатских слушаниях 20 марта 1997 года.

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

Некоторые моменты в дальнейшем обсуждении могут показаться излишней паранойей, но такой подход необходим при обсуждении вопросов безопасности.

Компрометация закрытого ключа и ключевой фразы

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