Я написал эту книгу во многом для того, чтобы исправить собственную ошибку.
Семь лет назад мною была написана книга «Прикладная криптография» («Applied Cryptography»). В ней я создал математическую утопию – алгоритмы, тысячелетиями хранящие ваши глубочайшие секреты, протоколы передачи данных, обеспечивающие воистину фантастические возможности: неконтролируемые извне финансовые операции, необнаружимую аутентификацию, анонимную оплату. И все это – незаметно и надежно. В моем видении криптография была великим технологическим уравнителем: с ее помощью каждому дешевому (и дешевеющему с каждым годом) компьютеру могла быть обеспечена такая же безопасность, как и компьютерам всемогущего правительства. Во втором издании той книги я зашел так далеко, что написал:
«Недостаточно защищать себя с помощью закона; мы нуждаемся и в том, чтобы защитить себя с помощью математики».
Все это – неправда. Криптография не может ничего подобного. И не потому, что она стала хуже с 1994 года или написанное мною тогда перестало быть правдой сегодня, но оттого, что криптография существует не в вакууме.
Криптография – это раздел математики и, как и прочие ее разделы, связана с числами, уравнениями и логикой. Безопасность – реальная, ощутимая безопасность, столь необходимая нам с вами, – связана с людьми: с уровнем их знаний, их взаимоотношениями и с тем, как они управляются с машинами. Информационная безопасность связана с компьютерами – сложными, нестабильными, несовершенными компьютерами.
Математика абсолютна; окружающий мир субъективен. Математика совершенна; компьютеры могут ошибаться. Математика логична; люди, как и компьютеры, ошибаются, они своевольны и едва ли предсказуемы.
Ошибка «Прикладной криптографии» была в том, что я рассуждал обо всем независимо от контекста. Я говорил о криптографии так, как будто она и есть Ответ™. Я был потрясающе наивен.
Результат же был вовсе плох. Читатели поверили, что криптография – род некоей магической пыли, которая покроет их программное обеспечение и сделает его неуязвимым. И они произносили магические заклинания вроде «128-битовый ключ» или «инфраструктура открытого ключа». Как-то однажды коллеги поведали мне, что мир наполнился плохими системами безопасности, сконструированными людьми, прочитавшими «Прикладную криптографию».
С момента написания той книги я занимался тем, что давал консультации по криптографии: по всем вопросам, связанным с разработкой и анализом систем безопасности. К своему несказанному удивлению, я обнаружил, что слабые места в системах безопасности отнюдь не определяются недостатками математических моделей. Они были связаны с аппаратурой, программами, сетями и людьми. Прекрасные математические ходы становились никчемными из-за небрежного программирования, гнусной операционной системы или просто выбора кем-то плохого пароля.
В поисках слабины я научился смотреть шире, рассматривая криптографию как часть системы. Я начал повторять пару сентенций, которые красной нитью проходят через всю эту книгу: «Безопасность – это цепь: где тонко, там и рвется» и «Безопасность – это процесс, а не продукт».
Любая реальная система – запутанная серия взаимодействий. Защита должна распространяться на все компоненты и соединения этой системы. И в этой книге я старался показать, что в современных системах настолько много компонентов и связей – некоторые из них неизвестны даже создателям, а тем более пользователям, – что угроза для безопасности всегда остается. Ни одна система не совершенна; ни одна технология не есть Ответ™.
Сказанное очевидно каждому, кто знаком с проблемами безопасности на практике. В реальном мире за словом «безопасность» скрывается ряд процессов. Это не только упреждающие мероприятия, но и обнаружение вторжения, его пресечение и целая судебная система, позволяющая выследить виновного и преследовать его по суду. Безопасность – не продукт, она сама является процессом. И если мы должны обеспечить безопасность нашей вычислительной системы, нам необходимо начать разработку этого процесса.
Несколько лет назад я слышал цитату, которую слегка изменил:
«Если вы думаете, что технология может решить проблемы безопасности, то вы не понимаете ни проблем безопасности, ни технологии».
Эта книга о проблемах безопасности, о технологических ограничениях и о поиске решения.