Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Практическая криптография

..pdf
Скачиваний:
6
Добавлен:
12.11.2023
Размер:
16.23 Mб
Скачать

2.4 Практическая паранойя

31

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

Проектировщики систем безопасности должны отталкиваться от того, что “ветер” коварен. Что, если бы он начал дуть не из стороны в сторону, а вверхвниз и притом постоянно изменял свое направление с такой частотой, чтобы мост вошел в резонанс? Проектировщики мостов сочтут подобные разгово­ ры нелепыми: “Ветер никогда так не дует". В этом плане проектировщикам мостов, конечно же, намного легче. Криптографы лишены и этого. Системы безопасности подвергаются нападению умных и коварных злоумышленников, поэтому необходимо уметь защищаться от всех типов атак.

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

2.4Практическая паранойя

Чтобы заниматься проектированием безопасных систем, необходимо само­ му стать хитрым и изворотливым. Найти слабые места в собственной работе сможет только тот, кто сам начнет думать как злоумышленник. Разумеется, это повлияет и на остальные аспекты вашей жизни. Каждый, кто работал

32

Глава 2. Криптография в контексте окружающего мира

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

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

2.4.1Критика

Профессиональная паранойя — это неотъемлемая составляющая коммер­ ции. Увидев на рынке новую систему, мы первым делом думаем о том, как бы ее взломать. Чем быстрее вы отыщете в системе слабое место, тем больше вы о ней узнаете. Нет ничего хуже, чем работать над системой долгие годы только затем, чтобы однажды услышать от случайного знакомого: “А что, если я нападу вот так?..” Наверное, никому бы не хотелось испытать подоб­ ный конфуз.

Работая в области криптографии, необходимо четко различать критику работы и критику самого человека. Любая работа — это всего лишь спорт, в котором есть свои правила. Если кто-нибудь предлагает что-нибудь, он ав­ томатически приглашает общественность покритиковать свое изобретение. Если вы взломаете одну из наших систем, мы громко поаплодируем и рас­ скажем об этом всему миру*2. Мы постоянно ищем слабые места везде и во всем, потому что это единственный способ научиться создавать безопасные системы. Запомните еще один урок: критика системы — это не критика вас лично. Без этого правила вы не выживете в мире криптографии, поэтому привыкайте к критике. Точно так же, отыскивая в чужой системе слабое ме-

*Но помните: тот факт, что вы ие параноик, еще не означает, что вы не попадете в сети, расставленные другим параноиком.

2В зависимости от ситуации, мы можем поругать себя за то, что сами не обнаружили слабое место в своей системе, но это уже совсем другая история.

2.4 Практическая паранойя

33

сто, критикуйте систему, а не ее разработчиков. В криптографии нападки на личности будут восприняты так же негативно, как и везде.

Кажущийся враждебный настрой криптографов то и дело приводит к недоразумениям. Люди, далекие от криптографии, часто воспринимают кри­ тику работы, выполненной человеком, как критику самого человека и за­ тем жалуются на наши дурные манеры. В 1999 году на одной конференции рассматривались блочные шифры, использующие алгоритм AES. Создатель шифра Magenta не смог приехать на конференцию и прислал вместо себя своего студента. Между тем у шифра сразу же обнаружился серьезный недо­ статок, и через каких-нибудь пять минут после начала доклада Magenta был, что называется, разгромлен в пух и прах сразу несколькими слушателями. Это было очень интересно. Нескольким лучшим криптографам мира пред­ ставили новый блочный шифр, и они раскритиковали его на глазах у всей остальной публики. Это обычный порядок вещей. Еще один слушатель, до этого практически не имевший дела с криптографией, написал очерк о своем посещении конференции. Ему показалось, что все нападки были направлены в адрес самого студента, и он был поражен невероятно грубым поведением аудитории. Реакция этого человека вполне понятна. Во многих кругах наше­ го общества критика идеи или предложения автоматически означает критику самого автора. В криптографии, однако, мы просто не можем себе этого поз­ волить.

Еще хуже, когда под прицелом критиков оказываются разработчики, ко­ торые случайно забрели в область криптографии. Такие люди воспринимают критику своей работы как нападки на них лично со всеми вытекающими от­ сюда последствиями. Иногда приходится вести себя тактично, однако это ме­ шает донести до собеседника свою мысль. Если мы скажем что-то наподобие: “Здесь могут быть небольшие недочеты в системе безопасности”, то непремен­ но получим ответ: “О, не волнуйтесь, мы это исправим”, даже если проблема заключается в самой структуре системы. Практика показывает, что донести до оппонента можно только конкретизированную мысль: “Если мы сделаем то-то и то-то, безопасность будет нарушена”. С другой стороны, сказав это разработчику системы, вы обрекаете себя на неприятности. К сожалению, гармоничного решения этой проблемы не существует.

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

34Глава 2. Криптография в контексте окружающего мира

2.5Модель угроз

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

Очень важно знать, от чего вы пытаетесь защититься. Решить этот на первый взгляд простой вопрос намного сложнее, чем кажется. В чем имен­ но состоит угроза? Большинство компаний защищают свои локальные сети брандмауэрами, в то время как наиболее разрушительные атаки обычно ис­ ходят изнутри. Тут брандмауэр бесполезен. Каким бы хорошим он ни был, он не защитит вас от коварного сотрудника. Налицо неудачное построение модели угроз.

В качестве еще одного примера можно привести протокол защищенных электронных транзакций (Secure Electronic Transaction — SET), который при­ меняется для защиты электронных платежей, выполняемых в Internet с по­ мощью кредитных карт. Одна из особенностей протокола SET заключается в шифровании номера кредитной карты, чтобы злоумышленник, перехва­ тивший номер, не мог его скопировать. Это хорошая идея. Вторая же осо­ бенность, состоящая в том, что даже продавец не видит номера кредитной карты покупателя, гораздо менее удачна.

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

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

Протокол SET обладает еще одним, гораздо более серьезным изъяном. Недавно один голландский банк, услугами которого пользуется Нильс, пред­ ложил своим клиентам пластиковые карты с поддержкой SET. В качестве одного из главных аргументов в пользу приобретения такой карты банк на­ зывала улучшенную безопасность при совершении покупок через Internet.

2.5 Модель угроз

35

Однако данный аргумент оказался не более чем фальшивкой. Покупать то­ вары через Internet с помощью обычной электронной карты вполне безопасно. Номер кредитной карты не является каким-либо секретом: вы сообщаете его каждому продавцу, у которого что-нибудь покупаете. Настоящим гарантом покупки является ваша подпись, так как именно она авторизует транзакцию. Если у продавца украдут номер вашей кредитной карты, вам могут припи­ сать несуществующие покупки, однако, поскольку эти транзакции не будут подтверждены вашей собственноручной подписью (или PIN-кодом), закон­ ного основания для снятия денег с вашего счета не будет. В большинстве подобных случаев достаточно просто обратиться с жалобой, чтобы получить свои деньги обратно. Разумеется, процедура получения новой кредитной кар­ ты с другим номером может доставить некоторые неудобства, однако на этом все и заканчивается. С протоколом SET все обстоит по-другому. Для авто­ ризации транзакций SET применяет цифровую подпись пользователя (более подробно это рассматривается в главе 13, “Алгоритм RSA”). На первый взгляд это более безопасно, чем использование только номера кредитной карты. Но взгляните на данную ситуацию с другой стороны. Теперь вся ответственность по выполнению транзакций с компьютера пользователя ложится на самого пользователя. А что, если его компьютер подвергнется нападению вируса, который взломает программное обеспечение SET? Такое программное обес­ печение может подписать не ту транзакцию, и пользователь потеряет деньги.

Итак, с точки зрения пользователя, протокол SET обеспечивает безопас­ ность хуоюе, чем обычная кредитная карта. Используя обычную кредитную карту, пользователь всегда сможет вернуть несправедливо снятые с его сче­ та деньги. Применение протокола SET делает пользователя более уязвимым. Таким образом, хотя SET повышает безопасность системы электронных пла­ тежей в целом, он переносит остаточный риск с продавца и/или банка на пользователя. Модель угроз пользователя, которую можно было описать сле­ дующим образом: “я потеряю деньги только тогда, когда кто-нибудь слишком хорошо подделает мою подпись”, изменится и будет выглядеть так: “я поте­ ряю деньги тогда, когда кто-нибудь слишком хорошо подделает мою подпись или мой компьютер подвергнется нападению вируса”.

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

36Глава 2. Криптография в контексте окружающего мира

2.6Криптография — это не решение

Разумеется, криптография не решит проблем безопасности. Она может стать как частью решения, так и частью самой проблемы. Во многих ситуа­ циях появление криптографии только усугубляет проблему, а улучшения от ее применения весьма и весьма сомнительны.

Как защитить автомобиль от угонщика? Самый простой способ — непо­ средственно защитить машину физически. Просто не подпускайте к ней ни одного прохожего. Это не слишком удобно, поэтому мы предпочитаем устано­ вить на машине замок и носить с собой ключ. Поскольку машина закрыта, ее можно оставить на улице. Теперь у злоумышленника есть два способа проник­ нуть в машину. Он может сломать систему блокировки дверей (в том числе разбить окно) или же украсть ключи от машины, которые необходимо защи­ щать физически. Как видите, теперь у нас два объекта нападения: система блокировки дверей и ключи. Появление ключей помогло угонщику, создав новый объект нападения. Основное преимущество ключей состоит в том, что защитить их физически гораздо легче, чем машину. Поскольку данное пре­ имущество перевешивает дополнительный риск, связанный с возможностью поломки замка, применение ключей повышает безопасность машины.

В цифровом мире все происходит несколько иначе. Предположим, у вас на компьютере есть секретный файл, который никто не должен прочитать. Вы можете просто защитить файловую систему от неавторизованного до­ ступа или же зашифровать файл и защитить ключ. Зашифрованный файл больше не представляет собой какого-либо секрета, поэтому вы, как обычный человек, скорее всего, не будете охранять этот файл слишком уж тщатель­ но (в этом он сходен с машиной, оставленной на улице). Но где же хранить ключ? Хорошие ключи слишком сложны для запоминания. Некоторые про­ граммы сохраняют ключ на диске — в том самом месте, где хранился зашиф­ рованный файл. Теперь у злоумышленника появляется два способа добраться

ксодержимому файла. Любая атака, которая в первом случае могла привести

кпохищению секретного файла, теперь с таким же успехом может привести

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

Криптография имеет множество областей применения. Она является не­ отъемлемой частью многих хороших систем безопасности. Неправильное при­ менение криптографии, напротив, существенно ослабляет безопасность.

2.7 Криптография очень сложна

37

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

2.7Криптография очень сложна

Криптография ужасно сложна. Даже опытные эксперты разрабатывают системы, которые через несколько лет оказываются безжалостно взломан­ ными. Это случается настолько часто, что уже никого не удивляет. Прави­ ло слабого звена и противоборствующее окружение существенно усложняют и без того нелегкую жизнь криптографов.

Еще одной важной проблемой является недостаточный объем тестирова­ ния. Никто не знает, как убедиться в том, что система действительно без­ опасна. Лучшее, что можно сделать, — это опубликовать систему, чтобы на нее взглянули другие эксперты. Обратите внимание, что вторая часть этого метода вовсе не выполняется автоматически: существует масса опубликован­ ных систем, на которые никто так и не обратил внимания. Даже конференции и научные статьи удостаиваются лишь поверхностных обзоров. Эти обзоры направлены на то, чтобы отличить хорошие статьи от плохих, а не на про­ верку безопасности систем или правильности результатов. Разумеется, обо­ зреватели все же проводят некоторую проверку, однако на более тщательный анализ статьи у них просто не остается времени. (В конце концов, обозрева­ телям редко платят за их работу, и, когда в свободное время им приходится анализировать по 20-30 статей, они, скорее всего, не будут делать это слиш­ ком тщательно.)

Существует несколько небольших областей криптографии, в которых мы разбираемся довольно хорошо. Это вовсе не означает, что они просты; это лишь говорит о том, что мы работаем над ними уже несколько десятиле­ тий и — смеем надеяться — знаем их проблематику. Данная книга в основ­ ном посвящена этим областям криптографии. Здесь мы попытались собрать и упорядочить все то, что знаем о разработке и построении практических криптографических систем.

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

38

Глава 2. Криптография в контексте окружающего мира

raphy [86] — и решил разработать собственную систему. На нашей памяти это никогда не приводило к хорошим результатам, по крайней мере за последнее десятилетие. Представьте себе студента архитектурного института, который после года обучения решил спроектировать мост качественно новой конструк­ ции через Берингов пролив. Стали бы мы строить и использовать этот мост без более глубокого изучения предложенной модели? Конечно, нет. Между тем, когда дело касается криптографии, люди почему-то охотно платят за реализацию систем, разработанных новичками. А поскольку плохая крипто­ графическая система ничем не отличается от хорошей криптографической системы до тех пор, пока на нее не нападут, некоторые клиенты впадают в заблуждение и покупают подобные продукты.

Не верьте распространенному мифу о том, что криптография проста. Это не так.

2.8Криптография — это самая простая часть

Тем не менее, несмотря на сложность самой криптографии, она остается одной из наиболее простых частей системы безопасности. Криптографиче­ ский компонент, как и дверной замок, имеет довольно четкие границы и тре­ бования. Дать четкое определение системе безопасности в целом намного сложнее, поскольку она включает в себя слишком много аспектов. Вопро­ сы наподобие организационных процедур, применяемых для предоставления доступа, и процедур, которые применяются для проверки соответствия дру­ гим процедурам, весьма сложны в решении, поскольку связаны с постоянно меняющейся ситуацией. Еще одной серьезной проблемой компьютерной без­ опасности является отвратительное качество практически всего программ­ ного обеспечения. О какой безопасности может идти речь, если программы, установленные на компьютере пользователя, содержат тысячи дефектов, ко­ торые приводят к появлению “дыр” в системе безопасности!

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

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

2.9 Рекомендуемая литература

39

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

2.9Рекомендуемая литература

Все, кто интересуются криптографией, должны прочитать книгу Дэвида Кана (David Kahn) The Codebreakers [45]. В ней содержится история крип­ тографии с древнейших времен до XX века. Помимо всего прочего, автор описывает множество проблем, с которыми сталкивались и продолжают стал­ киваться разработчики криптографических систем во всем мире.

Книга, которую вы сейчас держите в руках, в некотором смысле явля­ ется продолжением первой книги Брюса Шнайера Applied Cryptography [86], которая охватывает намного больший диапазон тем и содержит специфика­ ции всех рассматриваемых в ней алгоритмов. Тем не менее в ней отсутствуют детали разработки реальных систем, которые обсуждаются в книге Практи­ ческая криптография.

По части цифр и фактов ничто не может сравниться с книгой Менезеса (Menezes), ван Ооршота (van Oorschot) и Вэнстоуна (Vanstone) Handbook of Applied Cryptography [64]. Этот невероятно полезный справочник — на­ стоящая энциклопедия криптографии, но, как и все энциклопедии, едва ли подходит для глубокого изучения темы.

Предыдущая книга Брюса Secrets and Lies [88] содержит хорошее объяс­ нение общих проблем компьютерной безопасности, а также роли криптогра­ фии в ее обеспечении. И разумеется, лучшим пособием по проектированию систем безопасности является книга Росса Андерсона (Ross Anderson) Secu­ rity Engineering [1]. Обе книги весьма важны для понимания криптографии в контексте окружающего мира.

Глава 3

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

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

3.1 Шифрование

Шифрование — это и есть первоначальное назначение криптографии. На рис. 3.1 изображена общая схема обмена данными, требующая применения шифрования. Пользователи А и Б хотят общаться друг с другом. (В англо­ язычной литературе по криптографии для обозначения пользователей и зло­ умышленников принято применять личные имена, в частности Alice, Bob и Eve.) К сожалению, в общем случае канал общения не является безопас­ ным. Он прослушивается злоумышленником Е. Каждое сообщение т , кото­ рое пользователь А отсылает пользователю Б, получает и злоумышленник Е. (Это же справедливо и для сообщений, которые пользователь Б отсылает пользователю А, за исключением того, что пользователи А и Б меняются ме­ стами. Если удастся защитить сообщения пользователя А, то это же решение можно применить и для защиты сообщений пользователя Б, поэтому в даль­ нейшем будем говорить только о сообщениях, отсылаемых пользователем А пользователю Б.) Что же нужно сделать, чтобы злоумышленник Е не смог читать сообщения?

Чтобы злоумышленник Е не смог понять сообщения, которыми обмени­ ваются пользователи А и Б, применяется схема шифрования, представлен­ ная на рис. 3.2. Вначале пользователи А и Б договариваются о применении секретного ключа К е. Для этого им следует воспользоваться каналом об­ щения, который не может прослушиваться злоумышленником Е (например,