Не столь важно защитить от копирования коммерческий продукт. В условиях конкуренции ключевым моментом является распространение продукта на рынке. Многие компании руководствуются принципом: пираты не причинят нам ущерба, если наша продукция не пользуется спросом. Это вроде того, как если кто-то принимает наши телепередачи вне нашей сети. Почти все те, кто крадет наши программы, не в состоянии заплатить за них. Однако когда эти пираты окажутся перед выбором, они будут покупать нашу продукцию, а не продукцию конкурентов. Пиратство оказывается неожиданным средством рекламы.
Компания Microsoft имела в виду именно это, когда переводила свои программы на китайский язык и распространяла их в этой стране. Было очевидно, что программы будут взламываться, но потери будут составлять меньше одной десятой со всех продаж. Часто цитировали слова одного из сотрудников Microsoft, Стивена Бальмера: «Готовность к тому, что ваши программы будут взламывать, означает, что вы понимаете – это будут ваши программы, а не конкурентов. Важно, чтобы в развивающихся странах на рынке были широко распространены краденые программы». Когда Китай войдет в число свободных стран, он будет ориентироваться на продукцию Microsoft. До тех пор Microsoft ничего не теряет. В этом состоит стратегия бизнеса[44].
Очень часто возникает необходимость уничтожения информации. Если вы хотите удалить секретный файл со своего компьютера, вам хочется быть уверенными в том, что никто впоследствии не сможет восстановить его. Если вы используете секретный ключ шифрования связи – телефонных переговоров, например, – вам хотелось бы, чтобы ключ был уничтожен по окончании разговора и никто не смог бы воспользоваться им.
Уничтожение информации оказывается делом гораздо более сложным, чем это можно себе представить.
Когда вы удаляете файл с магнитного диска (жесткого, гибкого диска), данные в действительности не уничтожаются. (Поэтому и возможно их восстановление с помощью утилиты unerase.) Файл попросту помечается как «удаленный», и впоследствии соответствующие биты перезаписываются новыми данными. Единственный способ полностью удалить файл с магнитного диска состоит в том, чтобы записать на его место другой файл. Некоторые утилиты удаления именно это и делают.
Менее известно, что существуют технологии, позволяющие восстановить удаленные данные, даже если на их место были записаны новые. Я не буду вдаваться в премудрости этой науки, но вы можете представить, что перезапись некоего фрагмента является попросту записью в его начало. Некоторые данные, расположенные ниже, сохраняются. И когда вы вновь производите перезапись, сохраняются фрагменты двух предыдущих записей, и т. д. Технология, известная под названием «магнитная микроскопия», позволяет восстановить данные после многократной перезаписи. Сколь много может быть перезаписей, точно не известно, некоторые утверждают, что до десяти.
Эти «микроскопы» достаточно дороги (хотя любительские версии дешевеют), и проверки такого рода доступны только государственным структурам. Если у вас возникает беспокойство в связи с интересом государственных служб, единственным действенным способом уничтожения информации на магнитном диске будет стереть его в порошок.
Уничтожить данные, оказавшиеся в аппаратуре, нелегко. Как SRAM, так и DRAM сохраняют некоторые следы данных после отключения питания. Биты, содержащиеся в RAM, могут быть восстановлены путем определения изменений содержимого ячейки памяти. Изменением температуры чипа и подаваемого напряжения можно достичь восстановления удаленных данных. Существует множество физических методов, которые применимы для этих целей.
Оборудование для военной криптографии в США построено таким образом, чтобы уничтожать, или «обнулять», ключи в случае вторжения. Это нелегкая задача, и тому есть две причины: удалить данные непросто, а кроме того, нужно еще успеть сделать это вовремя. Были разработаны специальные датчики, сигнализировавшие о попытках проникновения внутрь оборудования. Они реагируют на изменение различных параметров: напряжения и силы тока, освещенности и температуры. Однако если нападающий знает, что представляют собой эти датчики, он в состоянии их обойти. (Он может работать при таком освещении, к длине волны которого датчик нечувствителен, или может медленно изменять температуру, чтобы обмануть его, а также использовать множество других приемов.) Опять-таки, это проблема в первую очередь государственных структур, и она очень сложна.
Одна из основных трудностей состоит в том, что устройство должно обеспечивать полную сохранность ключей в нормальных условиях и полностью удалять их, не оставляя следов, в чрезвычайных ситуациях. Если используется хорошая технология обеспечения сохранности ключей, неизбежно возникают трудности С их уничтожением. Решить сразу обе противоречащие друг другу задачи весьма непросто.
Коммерческие системы сталкиваются с этой проблемой в тех случаях, когда требуется, чтобы владелец устройства, например смарт-карты или приемника передач платного телевидения, не мог добраться до его секретов. Я уже говорил о системах сопротивления вторжению и способах их преодоления. Техника «обнуления» позволяет обезопаситься от нападений этого рода. Однако существуют способы борьбы и с «обнулением». В основном коммерческие системы не приобретают права на использование «обнуления» (мне известно только одно устройство коммерческого назначения, имеющее государственный сертификат «обнуления» FIPS 140-3), поскольку стоит это весьма дорого.
Глава 17
Человеческий фактор
Обеспечить компьютерную безопасность трудно (может быть, даже невозможно), однако представьте на минуту, что нам это удалось сделать. Где необходимо, применяется мощная криптография, протоколы безопасности безупречно выполняют свои функции. В нашем распоряжении имеются как надежное оборудование, так и надежное программное обеспечение. Даже сеть, в которой мы работаем, совершенно безопасна. Чудесно!
К несчастью, этого еще недостаточно. Сделать что-либо полезное эта замечательная система может лишь при участии пользователей. И это взаимодействие человека с компьютером таит в себе наибольшую угрозу из всех существующих. Люди часто оказываются самым слабым звеном в системе мер безопасности, и именно они постоянно являются причиной неэффективности последних.
Когда я начинал давать консультации различным компаниям по вопросам криптографии, я обещал потенциальным клиентам, что смогу более или менее надежно защитить их данные, однако использование этих данных людьми будет представлять постоянную угрозу безопасности. С годами я стал более циничен и говорю будущим клиентам, что в отношении безопасности математический аппарат безупречен, компьютеры же уязвимы, сети вообще паршивы, а люди просто отвратительны. Я изучил множество вопросов, связанных с обеспечением безопасности компьютеров и сетей, и могу утверждать, что не существует решения проблемы человеческого фактора. Обезопасить что бы то ни было от воздействия человека вообще очень трудно.
Люди не понимают, что такое компьютер. Он представляется им загадочным «черным ящиком», в котором что-то происходит. Они доверяют его сообщениям и хотят лишь одного – чтобы их работа делалась.
Люди не понимают, что такое опасность, может быть, за исключением разве только случаев явной угрозы. Они запирают двери и задвигают шпингалеты на окнах. Идя по темной аллее, они стараются убедиться в том, что их никто не преследует. Но они не осознают скрытую опасность и не задумываются о том, что в сверток может быть заложена бомба или что продавец в уютном ночном магазинчике может продавать на сторону номера кредитных карт. И почему, собственно, они должны беспокоиться? Такое ведь почти никогда не случается.
Средства компьютерной безопасности работают в цифровом мире. Перевести информацию в царство цифр непросто, а сохранить ее там попросту невозможно. Помните «безбумажный офис» прошлого года?[45] Информация никогда не остается в компьютере и постоянно переносится на бумагу. С точки зрения взломщика, информация, хранящаяся в бумажных папках, ничуть не хуже той, что содержится в компьютерных папках[46]. Бумаги, выброшенные в корзину, часто представляют большую ценность, нежели содержащиеся в компьютере сведения. Их легче похитить и труднее пропустить что-либо важное. Компания, в которой тщательно шифруются все данные, но оставляются незапертыми кабинеты или не уничтожаются выброшенные в корзину бумаги, открывает себя для нападений.
Я намерен рассмотреть шесть аспектов проблемы человеческого фактора.
• Как люди воспринимают опасность.
• Как люди относятся к редко происходящим событиям.
• Как люди доверяют компьютерам, и почему это может быть столь опасно.
• Почему бесполезно просить людей принимать разумные меры безопасности.
• Какую опасность представляют внутренние враги.
• Что такое манипулирование людьми, и почему нападающим бывает легко получить секретные сведения.
Это все выглядит не слишком красиво.
Риск
Люди не умеют анализировать риски. Они не понимают, насколько это плохо, когда их система уязвима для нападений. В случае нападения они не приходят к обоснованному заключению о том, на что это похоже. Они не способны рассмотреть проблему безопасности и принять разумное решение о том, что же следует делать в этой ситуации.
Проблема состоит не только в недостатке информации, часто опасность оценивают совершенно неправильно, располагая при этом достаточными сведениями.
Изучение этого явления показывает, что чаще всего люди неправильно оценивают риск землетрясений, авиа– и автокатастроф, пищевых отравлений, несчастных случаев при прыжках с парашютом и т. д. и т. п. Переоценивают опасность в тех случаях, когда (1) невозможно повлиять на развитие событий (например, возможность отравиться в ресторане) и (2) средства массовой информации нагнетают обстановку (например, возможность стать жертвой террористического акта). Недооцениваются опасность обыденных вещей и риск в повседневных ситуациях (например, возможность упасть с лестницы или оказаться под колесами автомобиля). Конечно, недостаток информации усугубляет проблему.
Всякое событие имеет большую или меньшую вероятность. Существует определенная вероятность, что криптография, меры компьютерной безопасности окажутся действенными, что оценка опасности будет правильной. Опасность имеет свою вероятность, так же как и безопасность.
Чтобы прояснить понятие вероятности, сыграем с Алисой в нехитрую игру. Будем подбрасывать монетку, и если выпадет орел, то в выигрыше Алиса, если решка – выигрыш наш. Но сперва мы попросим показать нам монету, так как хотим убедиться в том, что она «правильная»[47]. Пожалуйста, говорит Алиса, можете рассмотреть ее со всех сторон.
Мы бросаем монету, и выпадает решка. Это единичное событие не несет никакой другой информации, кроме той, что по крайней мере одна из сторон монеты выглядит таким образом. Итак, мы бросаем монету десять раз, и в шести случаях выпадает орел. Означает ли это, что монета «неправильная»? Возможно. Алиса спешит заметить, что если бросать «правильную» монету по десять раз, то в 38% случаев шесть раз выпадет орел. Это означает, что если взять сотню «правильных» монет и бросать каждую из них по десять раз, то 38 монет из ста шесть раз упадут орлом вверх. Трудно заподозрить здесь жульничество.
Далее, мы бросаем монету сто раз, и в шестидесяти случаях выпадает орел. Алиса напоминает нам, что если подбрасывать «правильную» монету сериями по сто раз, в 2,3% случаев она может шестьдесят раз упасть орлом вверх. Монета все еще может считаться «правильной».
Предположим, мы бросили монету миллион раз. Наиболее правдоподобный результат должен быть таков: 500 000 раз выпал орел и столько же – решка. Однако в нашем случае он оказался иным: 600 000 раз выпал орел, а решка – 400 000. Несмотря на уверения Алисы в том, что такая возможность все же существует, хоть и одна на десять миллиардов, мы предпочитаем думать, что монета утяжелена с одной стороны. Хотя наша уверенность основана лишь на оценке вероятности, поверить в то, что монета «правильная», просто невозможно.
Теперь мы, скорее всего, откажемся использовать эту монету в игре с Алисой, хоть она и протестует, утверждая, что монета «правильная». Это будет благоразумное решение, несмотря на то что формально Алиса права. Невозможно доказать, что монета утяжелена, не разрезав ее на части и не взвесив их по отдельности. Все, что мы можем сделать в этой ситуации, это продолжать собирать все более убедительные свидетельства «неправильности» монеты.
Очень часто наша уверенность основана на повторяемости событий. Мы уверены в том, что Солнце взойдет на востоке потому, что так происходит каждое утро на протяжении миллиардов лет. Это обстоятельство, без сомнения, свидетельствует о том, что вероятность иного развития событий бесконечно мала. (Сейчас мы располагаем убедительными астрономическими доказательствами, но в прежние времена люди были уверены в том, что Солнце взойдет на востоке, задолго до того, как коперниканская система вытеснила птолемеевскую.) Мы верим в то, что вода, которую мы пьем, безопасна, потому что едва ли можем припомнить случай, когда мы ею отравились. (В некоторых странах третьего мира, впрочем, это далеко не распространенное убеждение.) Мы полагаемся, что официант не снимет лишние деньги с нашей кредитной карты, поскольку раньше официанты всегда были с нами честны. И мы верим в то, что сообщение, полученное по электронной почте, пришло именно от того лица, которое значится в заголовке, поскольку в пользу этого свидетельствует весь наш предшествующий опыт.
Многие криптографические методы существуют благодаря подобной уверенности. Большинство математических моделей основано на оценке вероятности. Криптография с привлечением открытого ключа использует простые числа, и лишь в одном случае из миллиарда число может оказаться в действительности не простым. Однонаправленные хэш-функции, возможно, уникальны: вероятность того, что два различных документа будут иметь одинаковое значение хэш-функций, составляет один к 2^80. Алгоритм шифрования AES предоставляет 2^128 различных ключей, таким образом, вероятность того, что нападающий с первого раза подберет ключ, составляет один к 2^128. Некоторых беспокоят эти цифры, и это объясняется их представлениями о том, что можно обеспечить абсолютную надежность. Однако наступление события, имеющего вероятность один к 2^80, гораздо менее правдоподобно, чем, например, возможность сделать ставку при игре в рулетку на один единственный номер и выиграть пятнадцать раз подряд или дважды подряд получить наилучший набор карт при игре в бридж, или возможность того, что при игре в покер четыре раза подряд придет флеш-рояль.
В этом смысле средства безопасности работают. Большинство устройств сигнализации имеют четырехзначный код, поэтому вероятность того, что взломщик сможет отключить сигнал тревоги, составляет одну десятитысячную. Если цифровой замок имеет три набора по 36 различных комбинаций, вероятность открыть его с первой попытки составляет один на 47 000. Отпечатки пальцев не настолько уникальны, как кажется: существует вероятность, составляющая 0,1%, что постороннее лицо будет идентифицировано как имеющее права доступа. Вот все, что хотелось сказать о вероятности.
Действия в чрезвычайных ситуациях
Опасность, таящаяся в компьютеризированных системах, состоит среди прочего в том, что они столь редко ошибаются, что люди не готовы к чрезвычайным ситуациям. Распространенное убеждение состоит в том, что компьютер не может ошибиться. На самом деле это происходит постоянно, и «плохие» хакеры рады воспользоваться этим.
Один мой приятель установил у себя дома сигнализацию. Когда она срабатывала, обслуживающая его компания должна была связаться с полицией. Приятель мог отправить сигнал, с помощью которого он сообщил бы компании о том, что это – ложная тревога (поскольку полицейским не хотелось выезжать по каждому вызову без разбора). Также имелся другой сигнал (duress code – сигнал о противозаконном принуждении под угрозой насилия) на всякий случай, который означал: «Мне в голову направлено ружье, и меня вынудили сообщить вам, что это была ложная тревога. Это неправда. Помогите!»
Однажды приятель нечаянно подал сигнал тревоги, и, конечно, уведомил компанию о том, что это была ошибка. Случайно он отправил после этого и сигнал, который мы только что описали. Он сразу осознал свою ошибку и исправил ее. Женщина, принимавшая сообщения, испытала огромное облегчение и сказала: «Благодарение Богу! Я не знала, что мне делать».
Когда сигнализация срабатывает несколько раз в неделю, даже если это ложная тревога, люди знают, что делать. Если же это случается раз в несколько лет, может оказаться, что никто не сталкивался с подобной ситуацией и не знает, как следует поступить. Самодовольные пользователи часто подвергаются нападениям. В этот момент они не отдают себе отчета в происходящем и видят причину неполадок в чем-то другом. Помните Чернобыль? «Эта красная лампочка никогда не загоралась раньше. Интересно, что это значит?…»
Именно поэтому всех нас еще в начальной школе обучают действиям по пожарной тревоге. Мы должны быть готовы к чрезвычайным ситуациям – учения помогают избежать паники и подготавливают нас к мысли, что нечто подобное может случиться. Я никогда не был на пожаре, но знаю, что делать в таком случае. Со мной, скорее всего, все будет в порядке. То же самое можно сказать о путешествиях по воздуху. Когда вдруг сверху падают кислородные маски, никто не собирается попусту отрывать пассажиров от чтения романов и заставлять выяснять, что означают эти глупые выходки… Кассир в банке тоже должен быть внимателен и в подозрительной ситуации не думать так: «Банковский компьютер велит мне выдать этому человеку миллион долларов наличными. Кто я такой, чтобы спорить с компьютером?» Диспетчер ядерного реактора должен быть готов к чрезвычайной ситуации, чтобы не размышлять, что же может означать мигание красной лампочки.
К несчастью, ложные тревоги столь часты, что люди привыкают не обращать на них внимания. «Эта красная лампочка никогда не загоралась раньше. Интересно, что это значит?…» Бывает, однако, еще хуже: «Красная лампочка постоянно вспыхивает, и это ровным счетом ничего не значит. Не стоит обращать внимания». (Вспомните сказку про пастушка, который кричал: «Волки! Волки!») Хуже всего, если надоедливую лампочку вовсе отключат. Этим объясняется эффективность атак, направленных на отказ в обслуживании, и некоторые их сценарии я приводил в главе 3.
Если нападающему удается сломать брандмауэр и перекрыть доступ к сети законным пользователям (атака, приводящая к отказу в обслуживании), они будут недовольны и потребуют, чтобы брандмауэр был отключен до тех пор, пока проблема не будет решена. Когда нападающему удастся вызвать постоянные сбои в работе засекреченной телефонной связи, люди, пользующиеся ею, потеряют терпение и станут вести переговоры по обычному телефону.
Такова человеческая природа. Людям хочется общаться друг с другом, и средства безопасности не должны, по меньшей мере, мешать им. Трудно представить себе, что люди откажутся от разговоров по телефону только потому, что зашифрованная связь не работает. Даже дисциплинированные военные не в силах удержаться от переговоров, когда не могут воспользоваться секретной связью; если уж они неспособны на это, не приходится ожидать такого геройства от простых смертных.
Взаимодействие человека с компьютером
Мы уже говорили о том, что наиболее небезопасна та система, которая не используется. И чаще всего безопасной системой не пользуются потому, что она вызывает раздражение.
Недавно я выполнял некую работу для одной международной корпорации. Беспокойство вызывало то обстоятельство, что ее руководство часто использовало незащищенную телефонную связь: обычные линии и сотовые телефоны; нередко ему приходилось пользоваться связью в других странах. Чем я мог им помочь? Можно было использовать средства шифрования переговоров, и мы обсудили эти возможности. Качество звука было ниже, чем у обычных телефонов, и оставляло желать лучшего. Инициализация алгоритма шифрования при звонке вызывала задержку на несколько секунд. Телефонные аппараты имели чуть большие размеры, нежели самые миниатюрные и модные сотовые телефоны. Однако переговоры были бы засекречены.
Руководство было не слишком довольно. Ему хотелось иметь безопасную связь, но оно не было готово смириться с плохой передачей звука и задержкой в начале разговора. В конце концов, оно вернулось к обычным незащищенным телефонам.
Люди стремятся к безопасности, но не хотят терпеть неудобства, которые возникают при использовании соответствующих средств. Полезно было бы побеседовать с людьми, которые помнят те времена, когда двери в их жилища были впервые оборудованы замками. Таких людей еще можно встретить в сельской местности. (В городах дома запирались столетиями, а в деревне люди долгое время обходились без запоров на дверях.) Они могут рассказать, каким наказанием были для них дверные замки. Приходилось вначале искать ключ, затем вставлять его в замок и проворачивать там… и все это лишь для того, чтобы попасть в свой собственный дом. Поначалу ключи забывали или вовсе теряли – все это вызывало досаду и раздражение. Конечно, преступность существовала всегда, и дверные замки были полезной вещью, однако люди противились новшествам. Я знаю людей, которые до сих пор оставляют двери незапертыми. (Порочное убеждение: «Со мной это никогда не случится» – чрезвычайно живуче.)
То же самое можно сказать и о средствах компьютерной безопасности. Разыщите людей, которые работали на компьютерах еще в ту эпоху, когда не существовали пароли, допуски и ограничения. Спросите их, как им понравилось введение мер безопасности? Поинтересуйтесь, не пытались ли они обойти средства безопасности просто потому, что так проще работать? Даже сегодня, когда неумолимо приближается срок сдачи работы, люди не долго думая легко игнорируют средства защиты. Они оставят открытым черный ход, облегчая посторонним проникновение внутрь здания, и выдадут свой пароль или уберут брандмауэр, лишь бы работа была выполнена. Джон Дейч (John Deutch), бывший директор ЦРУ, приносил домой секретные файлы на своем незащищенном портативном компьютере просто потому, что так было удобнее.
Безопасность – это некоторый компромисс. Средства безопасности проще в тех случаях, когда они видны пользователю и он вынужден иметь с ними дело, принимая адекватные решения, как, например, при проверке имени на цифровом сертификате. С другой стороны, пользователям не хочется иметь дело со средствами безопасности. Тот, кто разрабатывает защиту смарт-карты, тоже не хочет, чтобы средства безопасности были видны клиенту. Он знает, что люди считают меры безопасности обременительными и стараются обходить их по мере возможности, поэтому они каждый раз будут обманывать систему защиты карты. Людям нельзя доверить реализацию политики компьютерной безопасности, поскольку они столь безответственны, что оставляют незапертыми двери своих автомобилей, теряют бумажники и не могут удержаться и не выболтать кому попало девичью фамилию матери.
Люди ненадежны и не поступают должным образом. Исследования, проводившиеся в университете Карнеги-Меллона (Carnegie Mellon University) в 1999 году, показали, что большинство людей не умеют правильно использовать программу шифрования электронной почты PGP. Из двенадцати человек, участвовавших в эксперименте, восемь так и не удосужились узнать, как работает PGP 5.0. Четверо случайно отправляли незашифрованными сообщения, содержавшие конфиденциальную информацию. И это при том, что программа имеет удобный графический интерфейс (справедливости ради следует отметить, что версия PGP 6.0 и более поздние имеют лучший пользовательский интерфейс).
И конечно, от них нельзя ожидать разумных решений в вопросах безопасности. Можно было предположить, что после паники 1999 года в связи с вирусами Melissa и Worm.ExploreZip люди не станут открывать вложения, которых не ожидали увидеть в своей почте. Однако темпы распространения червя ILOVEYOU (и десятков его разновидностей) свидетельствуют о том, что люди ничему не учатся… особенно когда многие компании зарабатывают на том, что пользователи обмениваются любопытными вложениями.
Браузеры используют цифровые сертификаты для того, чтобы обеспечить безопасность соединений. Когда они получают сертификат, они не обязательно предоставляют сведения об идентификации тому, кто находится на другом конце соединения. Это имеет существенное значение для безопасности, поскольку соединение не может считаться безопасным, пока не будет известно, кто находится на другом его конце. Большинство людей не беспокоятся о том, чтобы взглянуть на сертификат, и даже не знают, что это следовало бы сделать (или как это можно сделать).
Те же браузеры могут выводить на экран предупреждения перед загрузкой апплетов Java. Пользователя спрашивают, доверяет ли он некоторому веб-серверу, с которого отправляется апплет. Пользователь не имеет представления о том, стоит ему доверять ему или нет. Или не беспокоится об этом. Если некто, бесцельно блуждающий по Интернету, щелкает на кнопке, обещающей вывести на экран пляшущих поросят, и получает предупреждение о возможных опасностях апплета, он сделает выбор в пользу поросят, а не стабильной безопасности своего компьютера. Если его попытаются образумить предупреждением вроде: «Апплет DANCING PIGS может содержать вредоносный код, способный вызвать непоправимые повреждения вашего компьютера, похитить все ваши сбережения и лишить вас способности к деторождению», он щелкнет ОК, даже не прочитав его. Через тридцать секунд он и не вспомнит, было ли подобное предупреждение.
Автоматизм действий пользователя
Когда в главе 6 я излагал основы криптографии, я говорил о том, как Алиса и Боб шифруют, расшифровывают, подписывают и верифицируют сообщения и документы. Например, я упоминал, как Алиса может применять шифрование с помощью открытого ключа: если она найдет ключ Боба в телефонной книге, она может использовать его для шифрования своего сообщения Бобу. На самом деле все совсем не так. Алиса никогда не шифрует и не подписывает свои сообщения Бобу. Она никогда не расшифровывает входящие сообщения. Она вообще не занимается криптографией. Все, что она делает, так это щелкает на соответствующей кнопке, а компьютер шифрует или подписывает сообщения и вообще делает то, чего хочет Алиса. В этом состоит принципиальное отличие.
Представьте себе, что в будущем мы будем постоянно подписывать цифровые документы. Как это будет выглядеть? Алиса составит документ с помощью некоторого приложения – текстового редактора, почтовой программы и т. п. – и щелкнет на определенном значке, чтобы сообщить о своей готовности подписать его. Приложение вызовет некоторую программу, которая создаст подпись. Алиса введет свой пароль (слово или целую фразу) или приложит палец к устройству идентификации, или еще каким-либо способом подтвердит, что она именно та, за которую себя выдает. Программа составит цифровую подпись и передаст ее вызвавшему приложению для присоединения к документу. Вуаля – подпись готова. Возможно, Алиса даже проверит подпись (снова с помощью компьютера), чтобы убедиться, что она правильная.
Это то, что я называю автоматизмом действий пользователя (human-computer transference). Алиса знает, чего она хочет, – подписать документ. Она должна иметь определенные гарантии того, что компьютер сделает именно то, что ей нужно. Однако обеспечить безопасность не так просто.
Предположим, мы хотим заставить Алису подписать нечто, что ей подписывать не хочется. Это легко сделать, если она поверит в то, что подписывает именно тот документ, который видит на экране. Нам нужно заставить компьютер обмануть Алису.
Мы напишем троянского коня, который будет размещаться в программе, создающей цифровую подпись. Этот троянский конь будет содержать документ, который мы хотим подсунуть Алисе, – несомненно, или что-нибудь постыдное, или сулящее выгоду, – и код для его подписания. Единственное, чего не хватает троянскому коню, – это ключа Алисы. Когда она вводит свой пароль, чтобы подписать какое-нибудь сообщение для нас, троянский конь подсовывает вместо него компрометирующий документ. Программа, создающая цифровую подпись, возвращает ее основному приложению, которое присоединяет подпись к документу, который Алиса действительно собиралась заверить. Если она попытается проверить подпись, троянский конь снова подсунет подделку, и программа, создавшая подпись, подтвердит, что она правильная. Таким образом, троянский конь может заставить компьютер солгать Алисе. Затем она отправляет нам свое сообщение с ошибочной подписью – составленной для совершенно другого документа. Мы присоединяем эту подпись к копии нашей подделки и звоним в Washington Post. Тем временем троянский конь самоуничтожается, и все возвращается в исходное состояние.
Это легко реализовать в среде Windows: можно создать макрос, который будет попросту наблюдать за «открытым файлом» диалога PGP, копировать свой собственный файл под именем того, который как раз собирается подписать Алиса, и впоследствии возвращать старый файл на место. Язык макрокоманд программы Word позволяет сделать это, поэтому совсем не трудно создать такой макровирус.
Это всего лишь один пример. Троянский конь может подсунуть для подписи оба документа и переслать подделку позже, в подходящий момент. Или просто похитить ключ Алисы.
В этом нет ничего сложного, программирование – простое дело. Во всяком случае, если мы достигнем успеха, мы завладеем опасным для Алисы документом с ее подписью. Мы можем размахивать им в суде или передать журналистам, обоснованно заявляя, что под документом стоит действительная подпись. Однако вероятнее всего, что нас постигнет неудача. Как только кто-нибудь напишет троянского коня, подделывающего подписи, он распространится повсеместно. И если документ будет предъявлен в суде, одна из сторон может представить свидетельство эксперта о существовании этого троянского коня и о том, с какой легкостью можно заставить кого угодно поставить свою подпись неведомо на чем. Примет ли суд эту подпись в качестве доказательства? Все зависит от обстоятельств, а не от математических методов.