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