id: Гость   вход   регистрация
текущее время 19:30 04/12/2024
Владелец: SATtva (создано 14/09/2006 22:50), редакция от 01/07/2007 00:11 (автор: sunrise) Печать
Категории: криптография, инфобезопасность, алгоритмы, протоколы, безопасная разработка, сайт проекта, статьи
https://www.pgpru.com/Библиотека/Статьи/ПочемуВажноНеВыделяться
создать
просмотр
редакции
ссылки

Криптография: почему важно не выделяться


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


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


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

Использовать надёжные компоненты


Внедрять криптографию в компьютерные приложения также непросто. Большинство продаваемых криптографических разработок ненадёжны. Некоторые не действуют так, как их рекламируют. Одни имеют очевидные ошибки. Другие – менее явные. Иногда недоработки обнаруживаются быстро, а порой – только годы спустя (обычно по той лишь причине, что никто не потрудился поискать их пораньше). Случается, что проходят десятилетия, прежде чем находится новый математический подход для организации взлома.


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


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


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


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

Доверять известному


Рассмотрим протокол IPSec, IP security protocol. Он разрабатывался открытым комитетом с 1992 года и с самого начала был предметом изучения и значительного внимания общественности. Все понимали важность этого протокола и прилагали немалые усилия, чтобы сделать его так, как надо. Технические идеи выдвигались, взламывались, улучшались. Версии воплощались в коде и анализировались. Первый черновой вариант стандарта был опубликован в 1995-м. Аспекты обсуждались с точек зрения безопасности, производительности, простоты реализации, улучшения и использования.


В ноябре 1998 года комитет опубликовал сборник RFC – первый из ряда шагов, чтобы сделать IPSec общепризнанным Интернет-стандартом. Но он и по-прежнему изучается. Не так давно шифровальщики из Военно-морской Научно-исследовательской лаборатории обнаружили незначительную ошибку в реализации протокола. Работа продолжается, открыто, всеми и каждым, кто в ней заинтересован.


В то же время, в Microsoft разработали свой Протокол Туннелирования Точка-Точка (Point-to-Point Tunneling Protocol, PPTP), предназначенный практически для тех же целей. Они изобрели собственный протокол аутентификации, собственную хэш-функцию, собственный алгоритм генерации ключей. Каждый из компонентов имел ужасающие недостатки. Они использовали известный алгоритм шифрования, но использовали его столь ненадлежащим образом, что это перекрывало все его достоинства в безопасности. Они допустили ошибки в реализации, ещё более ослабляющие систему. Но так как всю эту работу они вели закрыто, никто не знал, что PPTP ненадёжен.


Microsoft реализовала PPTP в Windows 95 и NT и использовала его в своих программах построения виртуальных частных сетей (VPN). Только летом 1998-го Counterpane Systems опубликовала документ, описывающий все выявленные нами недостатки. Microsoft незамедлительно выпустила серию патчей, которые мы проанализировали и признали необходимыми. Однако они и близко не решали проблем в той степени, в какой Microsoft желала всех обнадёжить.


А ещё есть компании вроде TriStrata (см. статью "Ханаанский бальзам", – прим. пер.), заявляющие, что владеют некими ноу-хау в области безопасности, отказываясь раскрывать принципы их действия (поскольку те проходят процедуру патентования). Вы просто должны поверить им на слово. Они утверждают, что имеют новые алгоритмы и наборы протоколов, намного превосходящие все существующие на сегодня аналоги. И даже если они раскроют свою систему, факт, что она запатентована и является частной собственностью станет для большинства криптографов контрстимулом от проверки их заверений.

Полагаться на силу сообщества


Для защиты своей виртуальной частной сети вы, разумеется, можете воспользоваться любой из вышеназванных систем. Хотя каждая из них может иметь недоработки, вы хотите минимизировать свои риски. Прибегнув к IPSec, вы будете иметь гораздо большую уверенность в надёжности алгоритмов и протоколов. Конечно, продукт, тем не менее, может скрывать недостатки – ошибка может быть в реализации или в любом из дальних уголков кода, не описанных спецификациями стандарта IPSec, – но по крайней мере вы будете знать, что алгоритмы и протоколы подверглись такому уровню аналитической проверки, на который кандидаты от Microsoft и TriStrata могут даже не претендовать.


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


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


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

Следовать за большинством


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


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


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


В криптографии безопаснее следовать за большинством. Созданный "на коленке" алгоритм никогда не будет предметом сотен тысяч часов криптоанализа, как было в истории DES и RSA. Компания и даже индустриальная группа не сможет мобилизовать столько ресурсов, сколько было брошено, к примеру, на анализ протокола аутентификации Kerberos. Ничто не может сравниться с репутацией и надёжностью PGP после стольких лет построчного аудита кода, выполненного множеством людей в поисках ошибок и недоработок. Следуя за большинством, вы можете положится на криптоаналитическую оценку продукта международным сообществом, а не просто на пару недель работы какого-то аналитика. И остерегайтесь врача, который скажет: "Я изобрёл и запатентовал этот совершенно новый метод лечения с помощью маисового порошка. Прежде он не испытывался, но я просто уверен, что он лучше всего остального, и именно его-то я вам и пропишу". Есть хорошая причина, почему мы называем новую криптографию "ханаанским бальзамом".

Благодарности


Выражаю признательность Мэтту Блейзу за аналогию, открывшую эту колонку. Эта статья первоначально была опубликована в мартовском номере IEEE Computer за 1999 год.


© 1999 Брюс Шнайер
Перевод © 2004 SATtva

 
Комментариев нет [показать комментарии/форму]
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3