Глава 2
Криптография в контексте
окружающего мира
Криптография — это искусство и наука шифрования. По крайней мере
так она начиналась. Сегодня понятие криптографии значительно расшири-
лось и включает в себя аутентификацию, цифровые подписи и множество
других элементарных функций безопасности. Криптография все еще оста-
ется искусством и наукой: чтобы построить хорошую криптографическую
систему, необходимо обладать глубокими научными знаниями и приличным
багажом той самой “черной магии”, которую называют опытом.
Криптография представляет собой весьма обширную область науки. На
конференциях по криптографии поднимаются самые разные темы, связанные
с компьютерной безопасностью, высшей математикой, экономикой, квантовой
физикой, гражданским и уголовным правом, статистикой, проектировани-
ем микросхем, экстремальным программированием, политикой, проблемами
пользовательского интерфейса и т.п. Эта книга посвящена очень небольшой
области криптографии, а именно ее практической стороне. Мы надеемся про-
демонстрировать вам, как реализовать криптографические методы в реаль-
ных системах.
Многообразие аспектов криптографии — вот то, что придает ей поистине
неповторимое очарование. По большому счету, криптография представляет
собой смесь самых разных областей науки. В ней всегда можно чему-нибудь
поучиться, а новые идеи приходят буквально отовсюду. С другой стороны,
такое многообразие является и одной из причин сложности криптографии.
Ее невозможно понять
целиком
. На свете нет ни одного человека, который
бы знал все или хотя бы почти все о криптографии. Разумеется, не знаем
этого и мы. Итак, вот вам первый урок криптографии: относитесь ко все-
25
26
Глава 2. Криптография в контексте окружающего мира
му критически. Не нужно слепо верить всему написанному, даже если это
научная книга.
2.1
Роль криптографии
Сама по себе криптография довольно бесполезна. Она должна быть ча-
стью гораздо более крупной системы. Мы любим сравнивать криптографию
с дверными замками. Замок как таковой никому не нужен. Его использова-
ние обретает смысл тогда, когда он становится одной из составляющих более
крупной системы, будь то дверь в здании, цепь, сейф или еще что-нибудь.
Замок — это просто крохотная часть большой системы безопасности. Это
же справедливо и в отношении криптографии: она представляет собой лишь
маленькую часть большой системы безопасности.
Тем не менее эта часть, несмотря на свою малость, весьма и весьма крити-
ческая. Криптография — это часть системы безопасности, которая разрешает
доступ к чему-либо одним людям, но не разрешает другим. Тут и начинаются
первые сложности. Большинство элементов системы безопасности напомина-
ют стены и заборы тем, что не пропускают внутрь
никого
. Криптография же
выполняет роль замка: она должна отличать “хороший” доступ от “плохого”.
Это намного сложнее, чем просто никого не пускать. Таким образом, крип-
тография и ее сопутствующие элементы образуют естественную мишень для
атаки в любой системе безопасности.
Из сказанного выше отнюдь не следует, что криптография всегда являет-
ся “слабым местом” в системе безопасности. Напротив, это случается крайне
редко. В реальной жизни даже плохо реализованный криптографический ме-
тод всегда оказывается намного лучше остальных компонентов системы без-
опасности. Вы, вероятно, видели дверь в банковское хранилище (по крайней
мере в кино) — этакую толстую тридцатисантиметровую дверь из закален-
ной стали с огромными болтами. Конечно же, она выглядит весьма внуши-
тельно. В цифровом мире, однако, обеспечение безопасности зачастую на-
поминает установку подобной двери в туристической палатке. Многие стоят
возле двери и спорят, насколько толстой она должна быть, но никто не до-
думывается взглянуть на саму палатку. Люди любят обсуждать длину клю-
ча в криптографических системах, а вот устранять переполнение буферов
на Web-серверах нравится им куда меньше. Результат вполне предсказуем:
злоумышленники добиваются переполнения буфера и не обременяют себя из-
лишними заботами по поводу криптографии. Криптография действительно
полезна только тогда, когда оставшаяся часть системы также безопасна.
Существует, однако, причина, по которой правильная реализация крипто-
графии очень важна даже в системах, имеющих другие слабые стороны. Если
2.2. Правило слабого звена
27
злоумышленнику удастся взломать криптографическую систему, его вряд ли
обнаружат. В системе не останется следов атаки, потому что доступ к ней
злоумышленника будет выглядеть как еще один “хороший” доступ. Это мож-
но сравнить со взломом в реальной жизни. Если грабитель взломает дверь
с помощью бензопилы, вы по крайней мере увидите, что ограбление произо-
шло. Если же грабитель подберет ключ, вы можете никогда не узнать о самом
факте ограбления. Большинство видов атак оставляют следы или каким-либо
образом “беспокоят” систему. В отличие от них, атака на криптографическую
систему может пройти быстро и незаметно, позволяя взломщику возвращать-
ся вновь и вновь. . .
2.2
Правило слабого звена
Наберите следующую сентенцию самым большим шрифтом, распечатайте
и приклейте над монитором:
Система безопасности надежна настолько, насколько надежно
ее самое слабое звено.
Читайте эту фразу изо дня в день, пытаясь осознать все выводы, кото-
рые из нее следуют. Правило слабого звена — это и есть основная причина,
затрудняющая реализацию хорошей системы безопасности.
Каждая система безопасности состоит из огромного количества составных
частей. Мы должны исходить из предположения, что наш противник очень
умен, а потому попытается нацелить свои действия на самое слабое место
системы. Неважно, насколько сильны ее остальные части. Как и в обычной
цепи, самое слабое звено всегда рвется первым. Прочность остальных звеньев
уже не имеет значения.
В свое время Нильс работал в здании, где все двери запирались на ночь.
Звучит вроде бы вполне безопасно, правда? Единственная проблема состояла
в том, что в здании был подвесной, “фальшивый” потолок. Любой человек
мог приподнять потолочные панели и пролезть над дверью или стеной. Если
снять потолочные панели, весь этаж выглядел бы как нагромождение очень
высоких перегородок с дверьми. И на этих дверях висели замки. Разумеет-
ся, наличие замков немного затрудняло задачу грабителя, но в то же время
не позволяло охраннику проверять офисы во время ночных обходов. Вообще
непонятно, к чему в данном случае привело запирание дверей: к улучшению
общей безопасности здания или, напротив, к ее ухудшению. В этом примере
правило слабого звена значительно снизило эффективность запирания две-
рей. Наличие замков могло улучшить прочность конкретного звена (двери),
однако в системе все равно оставалось слабое звено (потолок). Таким обра-
|