Ханаанский бальзам


Основная неприятность, связанная с плохой системой защиты, в том, что она выглядит точно так же, как и хорошая система защиты. Невозможно обнаружить разницу по их внешнему виду. Обе системы дают одни и те же обещания по надежности защиты, обе имеют одинаковые функции. Обе даже могут использовать одинаковые алгоритмы: тройной DES, 1024-битный RSA и т.д. Обе могут использовать одинаковые протоколы, реализовывать одни и те же стандарты и быть поддержаны одними и теми же промышленными кругами. Тем не менее одна система защищает вашу информацию, а другая – нет.

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

Нельзя сказать, что на рынке систем защиты информации нет хороших криптографических средств. Они есть. Есть производители, которые пытаются создать хорошие средства и давать честную рекламу. Есть также производители, которые считают, что их средства хороши, хотя это не так – просто они недостаточно компетентны, чтобы обнаружить разницу. Есть и такие, кто просто хочет быстро заработать, и совершенно не беспокоится о том, достаточно ли хороши их средства защиты.

Большинство средств защиты попадает в среднюю категорию: задуманные с хорошими намерениями, но имеющие дырки. О причинах этого я писал в предыдущих выпусках CRYPTO-GRAM[link1], здесь же вкратце напомню: каждый может создать криптографическое средство, которое он сам не сможет взломать. Это означает, что появляется некто с благими намерениями и с новыми идеями, или по меньшей мере с идеями, о которых он никогда раньше не слышал. Он не может взломать свою систему и уверен, что он только что открыл магический эликсир, которым можно вылечить все проблемы защиты. И даже если все понимают, что магического эликсира не существует, сложность создания по-настоящему защищенных средств вместе с легкостью внесения ошибок делают плохие криптографические средства правилом, а не исключением.

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

Например, вот абзац из одной из последних полученных мной по электронной почте реклам ханаанского бальзама:

"Encryptor 4.0 использует уникальный алгоритм инкрементального сдвига базы собственной разработки. Дешифрование практически невозможно; даже если кто-то декомпилирует нашу программу и узнает алгоритм, дешифрование файла зависит от точного знания пароля (ключа шифрования). Даже если кто-то подбирёт ключ шифрования, файл будет расшифрован правильно только в том случае, если ключ шифрования совпал с исходным на 100 процентов. Прочтите ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ на нашем веб-сайте[link2]."

Я просмотрел их веб-сайт; шанс, что этот продукт представляет хоть минимальную ценность, равна нулю.

Ранее я говорил о создании надежных средств защиты, использовании проверенных математических методов и консервативного образа мышления. Здесь я хочу поговорить о некоторых общих признаках, характеризующих ханаанский бальзам, и о том, как вы можете составить представление о продукте по его рекламе. Эти симптомы – не абсолютная истина, но позволяют сложить достаточно точное мнение.

Симптом № 1: Псевдоматематическое кудахтанье


В вышеприведенной цитате обратите внимание на "уникальный алгоритм инкрементального сдвига базы собственной разработки". Кто-нибудь понимает, что это значит? Есть ли какие-нибудь научные работы, обсуждающие этот алгоритм? Много умных слов подряд вовсе не означают надежную защиту.

У Meganet на веб-сайте[link3] можно обнаружить следующий перл:

"В основе VME находится виртуальная матрица, матрица двоичных значений, размер которой теоретически бесконечен, и таким образом она не имеет избыточности. Зашифровываемые данные сравниваются с данными в виртуальной матрице. Как только обнаруживается совпадение, создается набор указателей, показывающих, как найти это место в виртуальной матрице. Этот набор указателей (который не несет никакой информации, если неизвестна соответствующая виртуальная матрица) затем зашифровывается множеством различных алгоритмов на различных стадиях для достижения лавинного эффекта. Результат – зашифрованный файл, который, даже если его дешифровать, будет содержать не настоящую информацию, а только набор указателей. Учитывая, что каждый сеанс VME имеет уникальную, отличающуюся от предыдущих виртуальную матрицу, и что расположение данных внутри виртуальной матрицы абсолютно случайно и неизбыточно, нет никакого способа определить исходную информацию по набору указателей."

Сущая бессмыслица даже для эксперта.

У US Data Security[link4] еще один перл: "С математической точки зрения, алгоритм ТТМ интуитивно понятен и менее обременителен при использовании, чем методы, основанные на теории чисел". SuperKrypt[link5] пытается впечатлить аббревиатурой: "Продукты SuperKrypt используют метод группового шифрования DNGT", что бы это ни означало. А Cennoid[link6] просто не понимает то, о чем он говорит: "Так как длина ключа и ключевая структура изменяются, и так как механизм шифрования не использует никаких математических алгоритмов, восcтановление исходных данных невозможно, и подбор так же невозможен".

Дело в том, что, как и медицина, криптография – это наука. В криптографии имеется некоторый объем знаний, и ученые постоянно пополняют его: разрабатывают новые и взламывают существующие криптографические методы, создают теоретические основания и т.д. Любой, кто явно не владеет языком криптографии, не сможет разобраться в существующей криптографической литературе, и очень маловероятно, что он изобретет что-нибудь стоящее. Это выглядит примерно так же, как если ваш доктор вдруг начинает говорить про "энергетические волны и целительные вибрации". Вам стоит забеспокоиться.

Симптом № 2: Новые математические методы


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

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

Симптом № 3: Закрытая криптография


Я обещаю не произносить очередную речь о проблемах, связанных с криптографическими методами, которые их разработчики держат в секрете. Я просто считаю это одним из предупреждающих знаков. Так что когда компания вроде GenioUSA[link7] отказывается сообщить, какой алгоритм они используют (они утверждают, что это "алгоритм симметричного шифрования мирового класса", чем бы это ни было), вы должны подумать дважды, прежде чем использовать их продукт (между прочим, в настоящее время он полностью взломан).

Еще одна компания, Crypt-o-Text[link8], обещает "сложный алгоритм шифрования собственной разработки", и что "нет абсолютно никакого способа узнать, какой пароль был использован, путем изучения шифртекста". Он был полностью взломан в обозрении InfoWorld.

Этим отличаются не только маленькие компании. Axent однажды попробовал подсунуть XOR в качестве алгоритма шифрования. Уловка проходила до тех пор, пока кто-то не проанализировал скомпилированный код, и вот тут всё и открылось...

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

Симптом № 4: Исключительное невежество


Некоторые компании делают настолько ужасные заявления, что становится очевидно, что они просто ничего не понимают в этой области. TriStrata[link9] утверждает про свой алгоритм шифрования: "Так как криптографическая схема TriStrata очень проста и имеет очень низкую вычислительную сложность, клиентская часть может размещаться на самых разных системах – от сервера до ноутбука". Понимают ли они, что практически любой алгоритм шифрования требует очень мало ресурсов и может уместиться на ноутбуке, что DES, RSA и SHA могут быть реализованы в 8-битных смарт-картах, что некоторые кандидаты на AES требуют всего 17 тактов процессора на каждый байт и могут быть реализованы аппаратно при помощи нескольких тысяч вентилей?

GenioUSA объясняет, почему они не используют криптосистемы с открытым ключом в своем продукте:

"Шифрование с открытым ключом означает в точности то, что в генерации, контроле целостности и защите всех ключей и паролей, используемых для шифрования ваших писем, документов и файлов, участвуете не только вы одни. Шифрование с открытым ключом – великолепная технология для обмена информацией с теми, кому вы не можете доверить ваши секретные ключи и/или не можете обменяться секретными ключами. Мы процитируем одно предложение с одной хорошо известной веб-страницы: "Все известные криптосистемы с открытым ключом, однако, уязвимы для определенных видов атак и, таким образом, должны использовать ключи в десятки раз длиннее, чем те, которые обсуждались ранее, для того, чтобы достичь того же уровня защищенности."

Какие выводы? Эта компания просто не поняла, в чем же смысл.

Симптом № 5: Нелепые длины ключей


Jaws Technology[link10] хвалится: "Благодаря статистически невзламываемому 4096-битному ключу алгоритма JAWS L5, вы можете быть уверены в безопасности ваших наиболее ценных файлов". Meganet зашел еще дальше : "Симметричные ключи длиной 1 миллион бит – конкуренты предлагают только 40-160 бит!!"

Чем длиннее ключ, тем лучше, но только до определенного предела. AES будет поддерживать ключи длиной 128, 192 и 256 бит. Это гораздо больше, чем может потребоваться в обозримом будущем. По правде говоря, мы даже не можем себе представить мир, в котором возможен полный перебор всех ключей длиной 256 бит. Это потребует каких-то фундаментальных открытий в физике и в нашем понимании устройства Вселенной. В криптосистемах с открытым ключом аналогичным свойством обладают ключи длиной 2048 бит: более длинные ключи использовать бессмысленно.

Это следует рассматривать как частный случай Симптома № 4: хотите ли вы доверить разработку криптографического средства компании, которая не понимает, что означает длина ключа?

Симптом № 6: Одноразовые блокноты


Одноразовые блокноты совершенно бесполезны для коммерческих криптографических средств. Они годятся для шпионов, вооруженных только карандашом и бумагой, они годятся для телеграфной "горячей линии" между США и Россией, но они совершенно не годятся для вас. Подавляющее большинство компаний, заявляющих, что они реализуют одноразовый блокнот, ошибаются. На самом деле они реализуют нечто, что они считают одноразовым блокнотом. Настоящий одноразовый блокнот, как можно доказать, абсолютно защищен (от некоторых типов атак), но он и совершенно непрактичен.

Elementrix, ныне не функционирующий, несколько лет назад объявил о выходе продукта, реализующего одноразовый блокнот, и отказался дать комментарии, когда было показано, что никакого одноразового блокнота в его продукте нет. Ciphile Software[link11] просто пытается ввести в заблуждение: "Original Absolute Privacy – Level3 – это автоматизированный генератор псевдо-одноразовых блокнотов с очень развитыми и мощными дополнительными возможностями". Что бы это означало?

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

Ultimate Privacy[link12], может быть, действительно использует одноразовый блокнот (хотя они заявляют, что используют и Blowfish, что меня настораживает):

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

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

Симптом № 7: Безосновательные заявления


Jaws Technologies говорит о своей новой технологии шифрования: "Этот одобренный учеными криптографический продукт – самый сильный коммерческий программный продукт такого типа в мире". Одобренный кем? Веб-сайт не дает ответа на этот вопрос. Самый сильный в мире при каком сравнении? Нет ответа...

UBE98[link13] расшифровывается как "невзламываемое шифрование", и оно было таким до тех пор, пока кто-то не потратил день на то, чтобы его взломать. Веб-сайт содержит все те же нелепые заявления: "Один из наиболее сильных алгоритмов шифрования, доступных в Великобритании, в программе, настолько простой в использовании, что ей смогут пользоваться все!" Ура. SenCrypt[link14] рекламирует себя как "самый невзламываемый криптографический алгоритм, изобретенный человечеством". Дважды ура.

Некоторые компании заявляют о защите "военного уровня" (military-grade). Это бессмысленный термин. Нет такого стандарта. И, как минимум в США, военная криптография недоступна для использования негосударственными структурами (хотя подрядчики, работающие по государственным заказам, могут получить такие средства для выполнения секретных контрактов).

Другие компании заявляют, что прочие алгоритмы "взломаны", не сообщая подробностей. Или что криптография с открытым ключом бесполезна. Не верьте такой ерунде. Если заявление кажется высосанным из пальца, скорее всего, так оно и есть. Если компания заявляет, что ее продукты прошли анализ у криптографов, поинтересуйтесь их именами. Попросите копию отчета. Counterpane Systems[link15] анализирует множество продуктов, и наши клиенты могут публиковать эти отчеты, если пожелают.

Симптом № 8: Доказательства защищенности


Есть два сорта шарлатанских доказательств. Первые – это настоящие математические доказательства, которые, однако, не имеют никакого отношения к реальному уровню защищенности. Вторые – это подделки под доказательства. Meganet утверждает, что есть доказательство того, что их алгоритм VME обладает той же стойкостью, что и одноразовый блокнот. Их "доказательство" представляет собой объяснение того, как работает одноразовый блокнот, магическое заклинание "VME имеет аналогичные эмпирические образцы поведения, что доказывает, что он так же стоек и невзламываем, как одноразовый блокнот" и результаты некоторых статистических тестов. Это даже отдаленно не напоминает доказательство.

Более тонкий вопрос – системы, защищенность которых можно доказать по-настоящему. Такие существуют. Летом 1998 года IBM подняла большой шум в прессе по поводу их доказуемо защищенной системы, что, по их заявлениям, могло произвести революцию в мире криптографии. (Обсуждение можно найти здесь[link16].) С тех пор про эту систему ничего не слышно. Это была действительно великолепная научная работа, но к сожалению математические доказательства не имеют почти никакого отношения к защищенности конкретных продуктов.

Симптом № 9: Приз за взлом


Я писал[link17] на эту тему в декабре 1998 года. Здесь достаточно будет сказать, что объявление приза за взлом системы защиты вовсе не дает гарантии ее невзламываемости, и, как правило, означает, что разработчики не понимают, что следует сделать, чтобы показать, что система хорошо защищена.

Заключение: Что такое "хорошо" и что такое "плохо"


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

Для дальнейшего чтения рекомендую перечень часто задаваемых вопросов "Snake Oil FAQ"[link18] – превосходный источник информации по сомнительным криптографическим продуктам и хороший способ повысить чувствительность вашего детектора халтуры.

Брюс Шнайер[link19]
Перевод © Станислав Асанов[link20]


Ссылки
[link1] http://www.schneier.com/crypto-gram.html

[link2] http://ten4.com/encryptor

[link3] http://www.meganet.com/

[link4] http://www.usdsi.com

[link5] http://www.superkrypt.com/

[link6] http://www.cennoid.com

[link7] http://www.geniousa.com/genio/

[link8] http://www.savard.com/crypt-o-text/

[link9] http://www.tristrata.com

[link10] http://www.jawstech.com/

[link11] http://www.ciphile.com

[link12] http://www.ultimateprivacy.com

[link13] http://www.parkie.ndirect.co.uk/

[link14] http://www.ionmarketing.com/

[link15] http://www.counterpane.com/

[link16] http://www.schneier.com/crypto-gram-9809.html#cramer-shoup

[link17] http://www.schneier.com/crypto-gram-9812.html#contests

[link18] http://www.interhack.net/people/cmcurtin/snake-oil-faq.html

[link19] http://www.schneier.com

[link20] mailto:acm@int.spb.ru