В этой книге Брюс Шнайер — автор нескольких бестселлеров и признанный специалист в области безопасности и защиты информации, — опираясь на собственный опыт, разрушает заблуждения многих, уверенных в конфиденциальности и неприкосновенности информации. Он разъясняет читателям, почему так сложно предотвратить доступ третьих лиц к личной цифровой информации, что нужно знать, чтобы обеспечить ее защиту, сколько средств следует выделять на обеспечение корпоративной безопасности и многое, многое другое.
Краткое содержание
Предисловие
Глава 1. Введение
Часть I. Ландшафт
Глава 2. Опасности цифрового мира
Глава 3. Атаки
Глава 4. Противники
Глава 5. Потребность всекретности
Часть II. Технологии
Глава 6. Криптография
Глава 7. Криптография вконтексте
Глава 8. Компьютерная безопасность
Глава 9. Идентификация иаутентификация
Глава 10. Безопасность компьютеров в сети
Глава 11. Сетевая безопасность
Глава 12. Сетевые защиты
Глава 13. Надежность программного обеспечения
Глава 14. Аппаратные средства безопасности
Глава 15. Сертификаты иудостоверения
Глава 16. Уловки безопасности
Глава 17. Человеческий фактор
Часть III. Стратегии
Глава 18. Уязвимости иихландшафт
Глава 19. Моделирование угроз и оценки риска
Глава 20. Политика безопасности и меры противодействия
Глава 21. Схемы нападений
Глава 22. Испытание иверификация программных продуктов
Глава 23. Будущее программных продуктов
Глава 24. Процессы безопасности
Глава 25. Заключение
Послесловие
Источники
Алфавитный указатель
Предисловие
Глава 1. Введение
Системы
Системы и безопасность
Часть I. Ландшафт
Глава 2. Опасности цифрового мира
Неизменная природа атаки
Изменяющаяся природа атаки
Автоматизация
Действие на расстоянии
Распространение технических приемов
Упреждающие меры вместо ответных
Глава 3. Атаки
Преступные атаки
Мошенничество
Аферы
Разрушительные атаки
Кража интеллектуальной собственности
Присвоение личности
Кража фирменной марки
Судебное преследование
Вмешательство в частные дела
Наблюдение
Базы данных
Анализ трафика
Широкомасштабное электронное наблюдение
Атаки ради рекламы
Атаки, приводящие к отказам в обслуживании
«Законные» атаки
Глава 4. Противники
Хакеры
Преступники-одиночки
Злонамеренные посвященные лица
Промышленный шпионаж
Пресса
Организованная преступность
Полиция
Террористы
Национальные разведывательные организации
Информационные воины
Глава 5. Потребность всекретности
Секретность
Многоуровневая секретность
Анонимность
Коммерческая анонимность
Медицинская анонимность
Секретность и правительство
Аутентификация
Целостность
Аудит
Электронные деньги
Упреждающие меры
Часть II. Технологии
Глава 6. Криптография
Симметричное шифрование
Типы криптографических атак
Распознавание открытого текста
Коды аутентификации сообщений
Односторонние хэш-функции
Шифрование открытым ключом
Схемы цифровой подписи
Генераторы случайных чисел
Длина ключей
Глава 7. Криптография вконтексте
Длина ключа и безопасность
Одноразовое кодирование
Протоколы
Криптографические протоколы Интернетa
Типы атак, направленных на протоколы
Выбор алгоритма или протокола
Глава 8. Компьютерная безопасность
Определения
Контроль доступа
Модели безопасности
Ядра безопасности и надежная вычислительная база
Тайные каналы
Критерии оценки
Будущее безопасных компьютеров
Глава 9. Идентификация иаутентификация
Пароли
Биометрические данные
Опознавательные знаки доступа
Протоколы аутентификации
Однократная регистрация
Глава 10. Безопасность компьютеров в сети
Разрушительные программы
Компьютерные вирусы
Черви
Троянские кони
Современные разрушительные программы
Модульная программа
Переносимый код
JavaScript, Java и ActiveX
Безопасность Веб
Взлом URL
Cookies
Веб-сценарии
Веб-конфиденциальность
Глава 11. Сетевая безопасность
Как работает сеть
Безопасность IP
Безопасность DNS
Нападения типа «отказ в обслуживании»
Распределенные нападения типа «отказвобслуживании»
Будущее сетевой безопасности
Глава 12. Сетевые защиты
Брандмауэры
Демилитаризованные зоны
Частные виртуальные сети
Системы обнаружения вторжений
Приманки и сигнализации
Сканеры уязвимостей
Безопасность электронной почты
Шифрование и сетевая защита
Глава 13. Надежность программного обеспечения
Дефектный код
Нападения на дефектный код
Переполнения буфера
Вездесущность ошибочного кода
Глава 14. Аппаратные средства безопасности
Сопротивление вторжению
Нападения через побочные каналы
Атаки против смарт-карт
Глава 15. Сертификаты иудостоверения
Доверенные третьи лица
Удостоверения
Сертификаты
Проблемы с традиционными PKI
PKI в Интернете
Глава 16. Уловки безопасности
Правительственный доступ к ключам
Безопасность баз данных
Стеганография
Скрытые каналы
Цифровые водяные знаки
Защита от копирования
Уничтожение информации
Глава 17. Человеческий фактор
Риск
Действия в чрезвычайных ситуациях
Взаимодействие человека с компьютером
Автоматизм действий пользователя
Внутренние враги
Манипулирование людьми
Часть III. Стратегии
Глава 18. Уязвимости и их ландшафт
Методология атаки
Меры противодействия
Ландшафт уязвимых точек
Физическая безопасность
Виртуальная безопасность
Доверенности
Жизненный цикл системы
Разумное применение мерпротиводействия
Глава 19. Моделирование угроз и оценки риска
Честные выборы
Защита телефонов
Безопасность электронной почты
Смарт-карты «электронный бумажник»
Оценка рисков
Сущность моделирования угроз
Ошибки в определении угроз
Глава 20. Политика безопасности и меры противодействия
Политика безопасности
Доверяемое клиенту программноеобеспечение
Банковские автоматы
Компьютеризированные лотерейныетерминалы
Смарт-карты против магнитных карт
Рациональные контрмеры
Глава 21. Схемы нападений
Основные деревья атак
Деревья атак PGP
Дерево атак PGP
Дерево атак для чтения сообщения электроннойпочты
Создание и использование деревьев атак
Глава 22. Испытание иверификация программных продуктов
Неудачи испытаний
Выявление недостатков защиты продуктов при использовании
Открытые стандарты и открытые решения
Перепроектирование и закон
Состязания по взломам и хакерству
Оценка и выбор продуктов безопасности
Глава 23. Будущее программных продуктов
Сложность программного обеспечения ибезопасность
Новые технологии
Научимся ли мы когда-нибудь?
Глава 24. Процессы безопасности
Принципы
Разделяйте
Укрепите самое слабое звено
Используйте пропускные пункты
Обеспечьте глубинную защиту
Подстрахуйтесь на случай отказа
Используйте непредсказуемость
Стремитесь к простоте
Заручитесь поддержкой пользователей
Обеспечьте гарантию
Сомневайтесь
Обнаружение и реагирование
Обнаруживайте нападения
Анализируйте нападения
Ответьте на нападение
Будьте бдительны
Контролируйте контролеров
Устраните последствия нападения
Контратака
Управляйте риском
Аутсорсинг процессов безопасности
Глава 25. Заключение
Послесловие
Источники
Алфавитный указатель
ОТРЫВОК
Глава 1. Введение
В марте 2000 года я занимался тем, что собирал воедино сведения из различных источников о событиях, связанных с проблемой компьютерной безопасности. Вот эти сведения.
Кто-то взломал веб-сайт SalesGate.com (электронная коммерция B2B, business-to-business) и украл около 3000 записей, содержащих номера кредитных карт клиентов и информацию частного характера. Часть этой информации он поместил в Интернете.
В течение нескольких лет частная информация утекала с веб-сайтов (таких как Intuit) к рекламодателям (например, DoubleClick). Когда посетители производили расчеты на сайте Intuit, вводимая ими информация посылалась и на DoubleClick благодаря ошибке, допущенной программистами при создании сайта. Все это происходило без ведома пользователей и, что более удивительно, без ведома Intuit.
Осужденный за свои преступления хакер Кэвин Митник в показаниях Конгрессу сказал, что наиболее уязвимое место в системе безопасности — «человеческий фактор». Он зачастую выведывал пароли и другую секретную информацию, действуя под чужим именем.
Опрос службы Гэллапа показал, что каждый третий из тех, кто делает покупки через Интернет, будет делать их, пожалуй, менее охотно в свете последних событий, связанных с проблемами безопасности.
Частные данные клиентов, заказывавших PlayStation 2 на веб-сайте корпорации Sony, «утекли» к неким другим клиентам. (Это — актуальная проблема всех типов сайтов. Многие посетители «отмечаются» на них в надежде получить информацию о покупателях сайта.)
Директор ЦРУ отрицал, что Соединенные Штаты участвовали в экономическом шпионаже, но не стал отрицать существования обширной разведывательной сети, называемой ECHELON.
Некто Пьер-Гай Лавойе, 22 лет, был осужден в Квебеке за взлом системы безопасности нескольких правительственных компьютеров США и Канады. Он провел 12 месяцев в заключении.
Министерство обороны Японии приостановило внедрение новой компьютерной системы безопасности после того, как установило, что программное обеспечение было разработано членами секты Аум Синрике.
Глава 1. Введение
Новый почтовый вирус, названный «Чудесный парк» (Pretty Park), распространился через Интернет. Это новая разновидность вируса, появившегося годом раньше. Он рассылался автоматически по всем адресам, имеющимся в почте пользователей программы Outlook Express.
Novell и Microsoft продолжают препираться по поводу замеченных ошибок всистеме безопасности Active Directory операционной системы Windows 2000: кто из них должен обеспечивать параметры безопасности, установленные вами для своего каталога (я лично верю, что это конструктивный недостаток Windows, а не ошибка).
Двое сицилианцев (Джузеппе Руссо и его жена Сандра Элазар) были арестованы за кражу через Интернет около тысячи кредитных карт США. Они использовали эти карты для закупки лучших товаров и лотерейных билетов.
Отражена серия атак, направленных на отказ в обслуживании, проведенных хакером (на самом деле — скучающим подростком) по имени Кулио (Coolio). Он признал, что в прошлом вскрыл около 100 сайтов, в том числе сайт криптографической компании RSA Security и сайт, принадлежащий государственному департаменту США.
Злоумышленники организовали атаки, приведшие к отказам в обслужива нии на веб-сайте компании Microsoft в Израиле.
Джонатан Босанак, известный как Гетсби (Gatsby), был приговорен к 18месяцам заключения за взлом сайтов трех телефонных компаний.
Военные Тайваня объявили, что обнаружили более 7000 попыток со стороны китайских хакеров войти в систему безопасности страны. Эта жуткая статистика не была конкретизирована.
Вот еще несколько сообщений о нарушениях систем безопасности в марте 2000 года:
Лазейка, обнаруженная в Microsoft Internet Explorer 5 (в Windows 95, Windows 98, Windows NT 4.0 и Windows 2000), позволила злоумышленнику создать веб-страницу, дающую ему возможность запустить любую программу на компьютере посетителя сайта.
Модифицировав URL, некий нарушитель сумел полностью обойти механизм аутентификации, защищающий удаленных пользователей серверов Axis StarPoint CD-ROM.
Обнаружено, что если атакующий пошлет Netscape Enterprise Server 3.6 некое длинное сообщение, то переполнение буфера приведет к прекращению работы программы, а атакующий сможет выполнить в этом случае на сервере любой код.
Стало известно, что некоторые атаки (приводящие к отказу в обслужива нии или направленные на подавление сценария CGI) могут быть проведены таким образом, что программа RealSecure Network Intrusion Detection их не обнаружит.
Выяснилось, что, посылая определенный URL на сервер, обслуживаемый программой ColdFusion компании Allaire, злоумышленник может получить
Глава 1. Введение
сообщение об ошибке, содержащее информацию о физических адресах различных файлов.
Omniback — это система резервного копирования компании Hewlett-Packard. Злоумышленник может использовать ее для проведения атаки, приводящей к отказу в обслуживании.
Эмулятор DOS Dosemu, поставляемый с Corel Linux 1.0, имеет слабое место, позволяющее пользователю выполнять привилегированные команды.
Манипулируя значениями некоторых параметров DNSTools 1.8.0, злоумышленник может воспользоваться недостатками программы и выполнить произвольный код.
Пакет InfoSearch для работы с CGI автоматически конвертирует текстовые документы в HTML. Ошибка в CGI-сценарии позволяет нарушителю выполнять на сервере команды на уровне привилегий веб-сервера.
Найдены слабые места в почтовой программе The Bat!, позволяющие злоумышленникам красть файлы с компьютеров пользователей.
Clip Art Gallery компании Microsoft позволяет пользователю загружать файлы с клипами с веб-страниц. При определенных условиях видоизмененный файл клипа может вызвать выполнение произвольного кода на компьютере пользователя.
Если вы посылаете определенное имя пользователя и пароль (даже если он неправильный) на FTP-сервер 3.5 Bison Ware, он выйдет из строя.
Используя специальным образом модифицированные URL, злоумышлен ник может повредить Windows 95 и Windows 98 на компьютерах пользователей.
Ниже представлен список 65 веб-сайтов, которые, согласно информации, опубликованной на сайте attrition.org, были обезображены в течение месяца. В данном контексте слово «обезображены» означает, что некто вскрыл сайт и заменил главную страницу.
Tee Plus; Suede Records; Masan City Hall; The Gallup Organization; Wired Connection; Vanier College; Name Our Child; Mashal Books; Laboratorio de Matematica Aplicada da Universidade Federal do Rio de Janeiro; Elite Calendar; Parliament of India; United Network for Organ Sharing; UK Jobs; Tennessee State University; St. Louis Metropolitan Sewer District; College of the Siskioyous; Russian Scientific Center for Legal Information; Ministry of Justice; RomTec Plc; Race Lesotho; Monmouth College; Association of EDIUsers; Bitstop, Inc; Custom Systems; Classic Amiga; 98 Sskate; CU Naked; Korea National University of Education; PlayStation 2; Assotiation for Windows NT User Group Bloem S.A.; Aware, Inc.; Ahmedabad Telephone Online Directory; Ahmedabad Telecom District; Fly Pakistan: Quality Business Solutions; Out; Internet Exposure; Belgium Province de Hainvan Wervings en Sectiebureaus; Engineering Export Promotion Council, Ministry of Commerce, India; AntiOnline's Anticode; Pigman; Lasani; What Online; Weston High
School; Vasco Boutique; True Systems; Siemens Italy; Progress Korea; Phase Device Ltd.; National Postal Mail Handlers Union; Metrics; Massachusetts Higher Education Network; The London Institute; Fort Campbell School System; and MaxiDATA Tecnologia e Informatica Ltda.
Системы
И наконец, атаки на домашний компьютер, принадлежащий одному моему другу и подсоединяющийся к Интернету через модем:
двадцать шесть просмотров с целью обнаружить слабые точки;
четыре обнаруженные попытки взлома компьютера во время поиска слабых точек;
множество других хакерских трюков.
Фиксируя подобные события только в течение первой недели марта 2000 года, я воистину устал от этого занятия.
Обозревая получившийся список, можно сказать, что устрашающе действует прежде всего большое разнообразие проблем, слабых точек и атак. Слабые места имеются в программах, которые мы считаем защищенными; есть они даже в самих системах безопасности. Некоторые из них присутствуют в системах электронной коммерции, при конструировании которых наверняка учитывались вопросы безопасности . Одни из них есть в новых программах, другие— в программах, которые продаются уже в течение многих лет. Нередко поставщики программного обеспечения никак не хотят согласить
ся, что у их продукции имеются проблемы с безопасностью.
Первые семь дней марта 2000 года не были исключением. И в другие недели случались подобные происшествия, а некоторые из них были еще показательнее. Действительно, факты говорят о том, что положение вещей ухудшается: число «дыр» в системах безопасности, взломов и отказов постоянно возрастает. Даже если мы будем больше знать о безопасности (как сконструировать криптографические алгоритмы, как построить безопасную операционную систему), все равно обеспечить полную безопасность будет невозможно. Почему это так и что можно с этим сделать— и является предметом
нашего разговора.
Системы
Понятие «система» относительно ново для науки. Восточные философы уже давно рассматривали мир как единую систему, состоящую из различных компонентов, но в западной традиции было принято разделять его на отдельные явления, развивающиеся в различных направлениях.
Машины только недавно стали системами. Подъемный блок — это машина; но лифт — это комплексная система, включающая много различных механизмов. Системы взаимодействуют: лифт взаимодействует с электрической системой здания, с его системой пожарной безопасности и, возможно, даже с его системой защиты окружающей среды. Компьютеры, взаимодействуя, образуют сети; сети, взаимодействуя, образуют более крупные сети… в общем, вы уловили идею.
Адмирал Грейс Хоппер говорил: «Жизнь была проще перед Второй мировой войной. После этого у нас появились системы». Это — очень проницательный взгляд на вещи.
Если вы используете концепцию систем, можно проектировать и строить в более крупном масштабе. Есть разница между созданием особняка и небоскреба, орудия и ракеты Patriot, посадочной полосы и аэропорта. Каждый может изготовить
Глава 1. Введение
светофор, но разработать городскую систему транспортного контроля значитель но сложнее.
Интернет , возможно, наиболее сложная система, которая когда-либо разрабатывалась. Она включает в себя миллионы компьютеров, объединенных в непредсказуемо сложные физические сети. На каждом компьютере работают сотни программ, некоторые из них взаимодействуют с программами, установленными на том же компьютере, другие — через сеть с программами, установленными на удаленных компьютерах. Система принимает сигналы от миллионов пользователей, часто одновременно.
Один человек сказал: «Сэр, это зрелище подобно собаке, стоящей на задних лапах. Удивительно не то, что она делает это недостаточно хорошо, а то, что она вообще способна это делать».
Системы имеют несколько интересных свойств, которые уместно здесь обсудить.
Во-первых, они сложны. Механизмы просты: молоток, дверные петли, нож для бифштексов. Системы же намного сложнее: они имеют компоненты, петли обратной связи, среднее время отклика, инфраструктуру. Цифровые системы весьма затейливы: даже простая компьютерная программа состоит из тысяч строчек кода, описывающего всевозможные разновидности различных операций. Сложная программа имеет тысячи компонентов, которые могут работать как по отдельности, так и во взаимодействии друг с другом. Именно для сложных цифровых систем было разработано объектно-ориентирова
нное программирование .
Во-вторых, системы взаимодействуют , формируя еще более крупные системы. Это может быть сделано намеренно — программисты используют объекты, чтобы дробить большие системы на малые, инженеры подразделяют большие механические системы на малые подсистемы, и так далее, — или происходит естественным образом. Изобретение автомобиля привело к развитию современной системы дорог и магистралей, а она, в свою очередь, взаимодействуя с другими системами, существующими в нашем мире, породила то, что мы называем мегаполисом. Система контроля авиалиний взаимодейст
вует с навигационной системой самолета и с системой предсказания погоды. Тело человека взаимодей ствует с другими человеческими организмами и с другими системами на планете. Интернет переплетается со всеми наиболее важными системами в нашем обществе.
В-третьих, системы обладают неожиданными свойствами . Другими словами, они иногда могут делать вещи, которых разработчики и пользователи не ожидают от них. Телефонная система, например, породила новый способ взаимодействия людей. (Александр Грэхем Белл не имел представления, что телефон станет прибором для осуществления персональной связи, — он предполагал использовать его для сообщений о приходе телеграммы.) Автомобили изменили пути, на которых люди встречаются, назначают свидания и влюбляются. Системы защиты окружающей среды в зданиях оказывают вли
яние на здоровье людей, что также сказывается на работе системы здравоохранения. Системы обработки текстов изменили способ их написания. У Интернета полно неожиданных свойств: вспомните об электронных покупках, виртуальном сексе, совместном авторстве.
Системы и безопасность
И — четвертое: в системах имеются «баги»1 . Они являются особой разновидностью ошибки. Их наличие — неожиданное свойство системы, не предусмотрен ное при ее создании. «Баги» принципиально отличаются от сбоев. Если где-то происходит сбой, продолжение работы невозможно. Когда же имеется «баг», работа продолжается, хотя объект, ее производящий, ведет себя «плохо»: возможно, неустойчиво, возможно, необъяснимо. «Баги» — уникальное свойство систем. Машины могут ломаться или портиться, или не работать вовсе, но только системы могут иметь «баги».
Системы и безопасность
Все перечисленные свойства оказывают влияние на безопасность систем. Ухищрения — вот точное определение для безопасности на сегодняшний день, поскольку обезопасить сложную систему, подобную Интернету, трудно именно в силу ее сложности. Безопасность систем — дело сложное, а безопасность сложных систем в особенности.
Обычный для компьютеризованных систем механизм тиражирования игнорирует наличие системы как таковой и сосредоточен на отдельных машинах — такова технология... Поэтому мы загружены работой по выработке технологий безопасности: криптография, брандмауэры, инфраструктура ключей общего доступа, сопротивление несанкционированному доступу. Эти технологии просты для понимания и обсуждения и достаточно просты в использовании. Но было бы наивно полагать, что они способны неким таинственным образом наполнить системы свойством:
Security
(<тип уважения = 'секретность'> Безопасность уважение>)
Увы, так не случается, и подтверждение тому можно видеть в моем отчете за 7дней марта 2000 года. Причина большинства событий, связанных с нарушением безопасности, коренится в четырех свойствах систем, рассмотренных ранее:
Сложность. Проблемы безопасности в Active Directory операционной системы Windows 2000 прямо вытекают из сложности любой компьютерной системы каталогов. Я думаю, что они зиждятся на недостатке, заложенном при проектировании: Microsoft применила конструкторское решение, обеспечивающее удобство пользователям, но небезупречное с точки зрения безопасности.
Взаимодействие . Взаимодействие между программным обеспечением веб-сайта Intuit и программным обеспечением DoubleClick, производящее отображение объявлений пользователей, привело к утечке информации от одного к другому.
Неожиданность . Судя по сообщениям в прессе, программиcты Sony не знают, как происходит утечка информации о кредитных картах от одного пользователя к другому. Она просто происходит.
1 От английского bug (жучок). Однозначного русского перевода не существует. — Примеч. ред.
Глава 1. Введение
«Баги». Уязвимость Netscape Enterprise Server 3/6 была следствием программного «бага». Нарушитель мог использовать этот «баг», породив проблему для безопасности.
Многие страницы этой книги (особенно в третьей ее части) посвящены детальному объяснению, почему безопасность мыслится как система внутри большой системы, но пока я хочу, чтобы для начала вы просто держали в голове две вещи.
Первое — это соотношение между теорией и практикой безопасности. Существует целая куча теорий безопасности: теория криптографии, теория брандмауэров и обнаружения вторжения, теория биометрик. В истории полно примеров, когда система была основана на великой теории, но терпела поражение на практике. Йоги Берра однажды сказал: «В теории нет различия между теорией и практикой. Напрактике есть».
Теоретические изыскания лучше всего подходят для идеальных условий и лабораторных установок. Самая популярная шутка на занятиях физикой в моем колледже была: «Рассмотрим сферическую корову с равномерно распределенной плотностью». Некоторые вычисления мы можем производить только для идеализированной системы: реальный мир гораздо сложнее, чем теория. Цифровые системы безопасности также подчиняются этому закону: мы можем сконструировать идеализированные операционные системы так, что они, вероятно, будут безопасными, но мы не можем заставить их действ
ительно безопасно работать в реальном мире. В реальном мире существуют несоответствия проекту, неприметные изменения и неправильные реализации.
Реальные системы не подчиняются теоретическим решениям. Совпадения случаются только тогда, когда сферическая корова обладает такими же неожиданны ми свойствами, как и реальная Буренка. Именно по этой причине ученые — не инженеры.
Вторая важная вещь, которую нужно помнить — это соотношение между предупреждением, обнаружением и реагированием. Хорошая защита объединяет все три звена: безопасное хранилище, чтобы сохранить ценности, сигнализацию, чтобы обнаружить грабителей, если они захотят туда проникнуть, и полицию, которая отреагирует на сигнал тревоги и поймает грабителей. В системах компьютер ной безопасности наблюдается тенденция полагаться в основном на упреждающие меры: криптография, брандмауэры и т. д. В большинстве случаев в них не заложено обнаружения и почти никогда
нет реагирования и преследования. Такая стратегия оправдана только тогда, когда предупредительные меры совершенны: впротивном случае кто-нибудь наверняка сможет сообразить, как их обойти. Большинство уязвимых мест и, соответственно, нападений, описанных в данном разделе, — это результат несовершенства превентивных механизмов. В реальности же нашего мира обнаружение и реагирование очень существенны.
Секреты и ложь. Безопасность данных в цифровом мире. / Б. Шнайер - СПб: Питер, 2003. - 368 с.
|