WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     || 2 | 3 | 4 | 5 |
-- [ Страница 1 ] --

ДМИТРИЙ И ВЗЛОМА ИНФОРМАЦИИ САНКТ-ПЕТЕРБУРГ 2004 Содержание Посвящается 1 Введение 3 ЧАСТЬ I. КОМУ НУЖНА ЗАЩИТА? 5 Глава ]. Общие сведения о защите информации 7 1.1. Что и от чего защищать 7 1.1.1.

Характеристики информации 7 1.1.2. Угрозы безопасности 10 1.1.3. Потенциальный противник 1.2. Задачи информационной безопасности 13 Глава 2. Основные способы обеспечения защиты 17 2.1. Общая классификация 2.2. Технические защиты 19 2.3. Методы решения задач информационной безопасности 20 Глава 3. Когда защиты слишком много 29 3.1. Неудобства для пользователя 30 3.2. Снижение производительности 3.3. Сбои в системе защиты 32 3.4. Материальные затраты пользователей 35 3.5. Здравый смысл 35 Содержание Глава 4. Методы оценки эффективности защиты 39 4.1. Оценка обычных программ 39 4.1.1. Качество программ 39 4.1.2. Надежность программ 40 4.1.3. Экономическая эффективность программ 40 4.2. Оценка средств защиты 41 4.2.1. Качество защиты 41 4.2.2. Надежность защиты 4.2.3. Экономическая защиты ЧАСТЬ II. НЕСКОЛЬКО СЛОВ О КРИПТОЛОГИИ Глава 5. Базовые понятия 5.1. Происхождение названий 5.2. Криптография и наука 5.3. Терминология 5.3.1. Участники взаимодействия 5.3.2. Объекты и операции 5.4. Криптографические примитивы 5.4.1. Алгоритмы шифрования 5.4.2. Криптографические хэш-функции 5.4.3. Криптографические генераторы псевдослучайных чисел 5.5. Модели основных криптоаналитических атак 5.5.1. Атака на основе только шифртекста 5.5.2. Атака на основе открытого текста 5.5.3. Атака на основе подобранного открытого текста 5.5.4. Атака на основе адаптивно подобранного открытого текста 5.6. Анализ стойкости криптографических примитивов Глава 6. Криптография для нематематиков 6.1. Открытая криптография в России 6.2. Литература по криптологии 6.3. Что нужно знать программисту 6.3.1. Блочные шифры Потоковые шифры Содержание 6.3.3. Алгоритмы с открытым ключом 6.3.4. Хэш-функции 6.3.5. Генераторы случайных чисел 6.3.6. Криптографические протоколы 6.4. Разработка собственных криптографических алгоритмов Глава 7. Насколько надежны алгоритмы и протоколы 7.1. Слабости в алгоритмах 7.2. Ошибки в кодировании алгоритмов 7.3. Многократное использование ключа потокового шифра 7.4. Ошибки генераторах псевдослучайных чисел 7.5. Блочный шифр режиме простой замены 7.6. Использование обратимых хэш-функций 7.7. Точное следование протоколам Глава 8. Рекомендации по выбору алгоритмов 8.1. Конкурсы по выбору стандартов шифрования 8.1.1. Стандарт шифрования США 8.1.2. Европейские криптографические схемы 8.1.3. Стандарт 18033 8.1.4. Стандарт шифрования Японии 8.2. Практические рекомендации известных специалистов 8.3. Патенты на алгоритмы и протоколы ЧАСТЬ III. КАК НЕ НАДО ЗАЩИЩАТЬ ПРОГРАММЫ Глава 9. Актуальные задачи защиты программ 9.1. Модели распространения программного обеспечения 9.1.1. Бесплатные программы (Freeware) 9.1.2. Почти бесплатные программы 9.1.3. Программы, показывающие рекламу 9.1.4. Коммерческие программы (Commercial) 9.1.5. Почти работоспособные программы 9.1.6. Условно бесплатные продукты (Shareware) 9.2. От чего защищают программы Содержание 9.3. Основные форматы исполняемых файлов 9.4. Особенности внутреннего устройства исполняемых файлов в 32-битовых версиях Windows Глава 10. Регистрационные коды для программ 10.1. Требования и классификация 10.2. Методы проверки регистрационных кодов ПО 10.2.1. "Черный 10.2.2. Сложная математическая задача 10.2.3. Табличные методы 10.3. Какой метод выбрать Глава 11. Привязка к носителям информации Ключевые дискеты 11.2. Привязка к компакт-дискам Простейшие защиты 11.2.2. Диски большой емкости 11.2.3. Отклонение от стандарта записи на диск 11.2.4. Физические ошибки на диске 11.3. Система защиты StarForce Professional 11.3.1. Общая характеристика защиты Модель задержек при чтении информации с компакт-диска 11.3.3. Как StarForce проверяет диск Способ обхода защиты Резюме по защите StarForce Глава 12. Аппаратные ключи защиты 12.1. Классификация ключей 12.2. Модификация кода и эмуляция 12.3. Ключи с памятью 12.4. Ключи с неизвестным алгоритмом 12.5. Атрибуты алгоритмов 12.6. Ключи с таймером 12.7. Ключи с известным алгоритмом Содержание 12.8. Ключи с программируемым алгоритмом 12.9. Что происходит на практике 12.10. Выводы о полезности аппаратных ключей Глава 13. Использование навесных защит 13.1. Какую защиту обеспечивают протекторы 13.2. Как работают протекторы 13.3. Сценарии атаки 13.4. Борьба технологий защиты и взлома 13.5. Несколько интересных протекторов 13.5.1. ASProtect 13.5.2. Armadillo 13.5.3. 13.5.4. HASP Envelope 13.5.5. StarForce 13.6. Что плохого в протекторах 13.6.1. Расход памяти 13.6.2. Безопасность 13.6.3. Нестабильность Глава 14. Приемы, облегчающие работу противника 14.1. Осмысленные имена функций 14.2. Транслируемые языки 14.3. Условно бесплатные и Demo-версии 14.3.1. Ограничение функциональности 14.3.2. Ограничение периода использования 14.3.3. Программы с возможностью регистрации 14.4. Распределенные проверки 14.5. Инсталляторы с защитой 14.5.1. с паролем 14.5.2. Norton Secret Stuff 14.5.3. Package For The Web Содержание ЧАСТЬ IV. ОСНОВНЫЕ АСПЕКТЫ ЗАЩИТЫ ДАННЫХ Глава 15. Обеспечение 15.1. Архивация с шифрованием 15.1.1. 15.1.2. ARJ 15.1.3. RAR 15.2. Секретность в реализации Microsoft 15.2.1. Microsoft Word и Excel 15.2.2. Microsoft Access 15.2.3. Microsoft Money 15.2.4. Encrypted File System 15.3. Шифрование дисков 15.3.1. Stacker 15.3.2. Diskreet 15.3.3. BootLock 15.4. Документы PDF 15.4.1. Password Security (Standard Security Handler) 15.4.2. Другие модули защиты от Adobe 15.4.3. SoftLock 15.4.4. Crypto 15.4.5. Panasonic Crypto 15.4.6. KEY-LOK 13 (BPTE_rotl3) 15.4.7. 15.4.8. Liebherr (LEXC_Liebherr_Security) 15.4.9. DocuRights 15.4.10. FileOpen Publisher 15.4.11. FileOpen 15.4.12. Другие модули защиты 15.5. Уничтожение информации Глава 16. Особенности реализации DRM 16.1. Что такое DRM 16.2. Возникновение DRM 16.3. Очевидное препятствие Содержание IX 16.4. Защита электронных книг 16.4.1. Adobe PDF Merchant 16.4.2. Adobe DRM 16.4.3. Общая проблема с DRM для PDF 16.4.4. Microsoft LIT 16.4.5. рынка электронных книг 16.5. Digital Property Protection Глава 17. Стеганографическая защита данных 17.1. Защита программ в исходных текстах 17.2. Защита от утечек информации 17.3. Альтернатива DRM Глава 18. Причины ослабления средств защиты Непрофессионализм Иллюзия простоты 18.1.2. Излишнее усердие 18.2. Влияние законодательства 18.3. Претензии на универсальность 18.4. Погоня за прибылью 18.5. Технологические причины 18.5.1. Эффективность разработки 18.5.2. Преемственность 18.6. Отсутствие ответственности 18.7. Сложность контроля ЧАСТЬ V. ЗАМЕТКИ ОБ ИССЛЕДОВАНИЯХ СРЕДСТВ ЗАЩИТЫ Глава 19. Кому это нужно 19.1. Время создавать защиту 19.2. Время исследовать защиту 19.2.1. Власть и деньги 19.2.2. Самозашита Содержание 19.2.3. Слава 19.2.4. Удовольствие 19.2.5. Справедливость 19.3. Синтез и анализ Глава 20. Интернет кладезь информации 20.1. Что искать в Интернете 20.2. Как и где искать 20.2.1. Google 20.2.2. Google groups 20.2.3. Babel Fish 20.2.4. The Wayback Machine 20.2.5. FTP Search 20.2.6. networks 20.2.7. Распродажи 20.3. Саморазвитие и интеллектуальные игры Глава 21. Инструментарий исследователя. 21.1. Классификация инструментов 21.2. Анализ кода программ 21.3. Работа с ресурсами 21.4. Доступ к файлам и реестру 21.5. Содержимое оперативной памяти 21.6. Устройства ввода и вывода 21.7. Сообщения Windows 21.8. Сетевой обмен 21.9. Вызовы библиотечных функций Глава 22. Реконструкция криптографических протоколов 22.1. Область применения 22.2. Идентификация криптографической библиотеки 22.3. Идентификация криптографических примитивов 22.3.1. Идентификация функций по шаблонам 22.3.2. Константы в алгоритмах 22.3.3. Принцип локальности Содержание Протоколирование 22.5. Внесение искажений Глава 23. Чего ожидать в будущем 23.1. Концепции безопасности 23.2. Перспективы развития криптографии 23.2.1. Потребность в новых криптографических примитивах 23.2.2. Надежные, но не всегда работающие протоколы 23.3. Защита программ 23.4. Защита данных 23.5. Методы анализа программ Благодарности Список использованных источников Посвящается Оксане, Егору и Полине Саше Каталову Лене Павловской и Сереже Осокину Маше Ручке и Игорю Марине Портновой и Леониду Агранонику Джеку Палладино (Jack Palladino) Эдмунду (Edmund Hintz) Полу Хольману (Paul И многим другим, чья поддержка и помощь помогли выжить и победить.

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

Этому есть несколько причин.

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

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

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

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

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

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

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

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

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

Часть I КОМУ НУЖНА ЗАЩИТА?

Глава 1. Общие сведения о защите информации Глава 2. Основные способы обеспечения защиты Глава 3. Когда защиты слишком много Глава 4. Методы оценки эффективности защиты Часть I. Кому нужна защита Эта часть вводная. Вряд ли она будет очень интересна профессионалам в области защиты информации, т. к. призвана донести до читателя основные понятия и предметной области, а также общее представление о том, что может и чего не может информационная безопасность. Однако, наверняка, даже хорошо знакомые с данной темой люди смогут найти для себя в этой части что-то новое.

Глава Общие сведения о защите информации Перед тем как начинать рассмотрение вопросов защиты информации, стоит более или менее формально определить, что скрывается за терминами "ин формационная и "защита информации". Прежде всего, оба этих словосочетания являются переводом на русский язык английского тер мина "information security". Словосочетание безопасность" имеет скорее научный, теоретический окрас, а "защита информации" обыч но используется при описании практических мероприятий. Однако, в лом, они являются синонимами, и в книге между ними не будет делаться каких-либо различий.

Мы будем оперировать термином "информация" в максимально широком его понимании. Информацией являются любые данные, находящиеся в памяти числительной системы, любое сообщение, пересылаемое по сети, и любой файл, хранящийся на каком-либо носителе. Информацией является любой ре зультат работы человеческого разума: идея, технология, программа, различные данные (медицинские, статистические, финансовые), независимо от формы их представления. Все, что не является физическим предметом и может быть ис пользовано человеком, описывается одним словом — информация.

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

1.1.1. Характеристики информации Прежде всего, у каждой "единицы" защищаемой информации есть несколь ко которые необходимо учитывать:

статичность;

размер и тип доступа;

8 Часть Кому нужна защита?

время жизни;

стоимость создания;

стоимость потери конфиденциальности;

• стоимость скрытого нарушения О стоимость утраты.

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

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

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

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

Стоимость создания является численным выражением совокупности ресур сов (финансовых, человеческих, временнь/х), затраченных на создание ин формации. Фактически, это ее себестоимость.

Стоимость потери конфиденциальности выражает потенциальные убытки, которые понесет владелец информации, если к пей получат неавторизован Глава 1. Общие сведения о защите информации доступ сторонние лица. Как правило, стоимость потери конфиденци альности многократно себестоимость информации. По истече нии времени жизни информации стоимость потери ее конфиденциальности становится равной нулю.

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

Модификации может подвергаться не только непосредственно текст сооб щения или документа, но также дата отправки или имя автора.

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

Четыре различных стоимости, перечисленные выше, могут очень по-разному соотноситься друг с другом. Рассмотрим два примера.

Представим следующую ситуацию. Человек при помощи специализирован ной программы заносит информацию обо всех своих счетах и финансовых операциях в базу данных. Вследствие особенностей налоговой системы по добная практика является обычной для жителей некоторых стран. Стои мость создания подобной базы данных складывается преимущественно из времени, потраченного на ее заполнение актуальными данными. Финансо вая информация, по большому счету, является конфиденциальной. Для того чтобы защитить эту информацию от потенциальных похитителей, почти все программы ведения личной финансовой истории, такие как Microsoft Money или Intuit Quicken, позволяют зашифровать базу данных и защитить ее па ролем. Утечка информации крайне нежелательна, но однозначно оценить величину возможного ущерба довольно тяжело. Для кого-то потеря конфи денциальности финансовой информации пройдет бесследно, для кого-то создаст значительные трудности. Если в базу будут внесены скрытые изме нения, это может привести к ошибкам в налоговой отчетности, а это, в свою очередь, чревато серьезными последствиями, вплоть до уголовного преследования. Ущерб от утраты содержимого зашифрованной базы зачас тую оказывается больше ущерба от нарушения конфиденциальности вслед ствие попадания базы в чужие руки. В таком случае при утере пароля к базе владелец обратиться в компанию, оказывающую услуги по восстанов лению забытых паролей.

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

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

Скрытое нарушение целостности в данном случае почти не имеет смысла.

Даже если противнику удастся подменить в карте секретный ключ, владелец карты не сможет не заметить, что не в состоянии расшифровать старые общения, а создаваемая подпись не опознается как принадлежащая ему, т. к. опубликованный открытый ключ не соответствует новому секретному ключу. То же самое произойдет и при утрате карты или ключа. Как видно, в этом случае, несмотря на невозможность повторного создания карты с тем же самым секретным ключом, утрата карты потери конфиденци альности. Именно поэтому современные смарт-карты не позволяют прочитать секретный ключ стандартными средствами, а при попытке физического вмеша тельства во "внутренности" карты, данные просто уничтожаются.

Угрозы безопасности При рассмотрении вопросов безопасности информационных систем практи чески все авторы выделяют три вида угроз безопасности:

угрозы конфиденциальности информации;

угрозы целостности информации;

угрозы отказа в обслуживании.

Рассмотрим их подробнее.

Нарушение конфиденциальности возникает тогда, когда к какой-либо инфор мации получает доступ лицо, не на это права. Этот вид угроз, по жалуй, наиболее часто в реальном мире. Именно для уменьшения подобных угроз рекомендуется хранить в сейфах документы, содержащие сек ретные сведения, а при работе с такими документами вводить специальные за щитные процедуры (допуски, журналы регистрации и т. п.).

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

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

Глава 1. Общие сведения о защите информации 1.1.3. Потенциальный противник Теперь, когда мы рассмотрели свойства информации и угрозы ее безопасно сти, осталось определить, кто попытаться реализовать эти угрозы.

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

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

С правительственными агентствами связан еще один нюанс. Законодатель ство многих стран содержит статьи, регулирующие использование средств информационной безопасности и, в частности, криптографии. Так в течение многих лет существовали и повсеместно применялись экспортные ограни чения правительства США, направленные на запрет продажи за границу программного обеспечения, использующего стойкие криптографические алгоритмы. Разрешенная длина ключа составляла 40 бит, что на момент вве дения ограничений позволяло защищать информацию от противника одиночки, т. к. перебор комбинаций на персональном компьютере тре бовал нескольких десятков, если не сотен лет непрерывной работы процес сора. А Агентство Национальной Безопасности США (National Security Agency, NSA) могло, используя имеющийся в наличии парк вычислитель ных систем, взломать 40-битовый шифр течение нескольких дней, а то и часов. Суммарная вычислительная мощность, доступная Агентству Нацио нальной Безопасности (АНБ), возможно, самая большая в мире. По некото рым данным, финансирование АНБ превышает суммарное финансирование ЦРУ и ФБР. И при этом про само АНБ известно крайне мало, даже сущест вует полушутливая расшифровка аббревиатуры NSA: No Such Agency (Нет Такого Агентства).

С ростом производительности вычислительных систем 40-битовый ключ стал явно недостаточным, и производителям программного обеспечения пришлось пускаться на различные ухищрения. Так, например, в Lotus Notes для шифрования отсылаемых сообщений использовался 64-битовый ключ, 12 Часть Кому нужна защита?

что обеспечивало высокий уровень стойкости, хотя и не являлось абсолют ной защитой. Но интернациональная (экспортная) версия Lotus Notes посы лала вместе с каждым сообщением 24 бита из ключа, тем самым уменьшая эффективную длину ключа до 40 бит. Эти 24 бита зашифровывались с ис пользованием открытого ключа, принадлежащего АНБ, и помещались в так называемое поле сокращения перебора factor Reduction Field, WRF).

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

При оценке возможностей потенциального противника не стоит упускать из виду и тот факт, что технический прогресс не стоит на месте и каждый день появляются более мощные более эффективные технологии, а иногда и принципиально новые методы атаки. Все это необходимо учиты вать при выборе средств защиты для информации с относительно большим сроком Если 5 лет назад полный перебор всех возможных комбинаций 40-битового ключа шифрования на одном компьютере считался практически непосиль ной задачей, то сейчас (в 2004 году) документ в формате Microsoft Word или PDF, защищенный ключом такой длины, может быть расшифрован меньше чем за неделю. В качестве наибольшего достижения, демонстрирующего возможности современных распределенных вычислительных систем, можно назвать отыскание полным перебором 64-битового ключа алгоритма RC5, занявшее 1757 дней (почти 5 лет!) и законченное 14 июля 2002 года.

Еще одной хорошей иллюстрацией прогресса технических средств являются оценки стоимости взлома алгоритма шифрования DES (Data Encryption Standard). DES представляет собой модификацию шифра Lucifer, разрабо танного компанией IBM и представленного на рассмотрение правительства США в 1975 году. Внесенные в Lucifer изменения, прежде всего, коснулись длины ключа: она была сокращена со 112 до 56 бит по решению АНБ.

23 ноября 1976 DES был утвержден в качестве федерального стандарта шифрования США и разрешен к использованию во всех несекретных пра вительственных каналах связи. А января 1977 года было опубликовано официальное описание стандарта, вступившего в силу 6 месяцев спустя.

В статье, опубликованной в 1977 году, известные специалисты в области криптографии Уитфилд Диффи (Whitfield Diffie) и Мартин Хеллман (Martin Hellman) описали проект специализированной вычислительной машины для взлома DES. По их оценкам, она обошлась бы в 20 миллионов долларов Глава 1. Общие сведения о защите информации и была бы способна найти нужный ключ максимум за 20 часов работы.

В 1981 году Диффи изменил свои оценки, увеличив стоимость до 50 мил лионов долларов, а время вскрытия — до двух суток. В 1993 году Майкл Винер (Michael Wiener) спроектировал машину стоимостью 1 миллион долларов, которая должна была находить ключ максимум за 7 часов. Весной 1998 года общественная организация Electronic Frontier Foundation (EFF) рировала специализированный компьютер стоимостью 250 тысяч долларов, который за 56 часов расшифровал сообщение, зашифрованное DES. В янва ре 1999 года DES был взломан за 22 часа путем совместного использования 100 тысяч персональных компьютеров и машины, построенной EFF. Сейчас производительность процессоров выросла в несколько раз по с 1999 годом, и стоимость взлома DES сократилась еще сильнее. Хотя о полном переборе 256 возможных ключей DES на одном персональном компьютере говорить пока не приходится.

1.2. Задачи информационной безопасности Так с чем же имеет дело информационная безопасность? Далее следует спи сок основных целей и задач, решение которых она должна обеспечить (в скобках приведены английские эквиваленты):

О секретность (privacy, confidentiality, secrecy);

целостность (data integrity);

идентификация (identification);

аутентификация (data origin, authentication);

О уполномочивание контроль доступа (access control);

право собственности (ownership);

сертификация (certification);

подпись (signature);

неотказуемость (non-repudiation);

• датирование (time stamping);

расписка в получении (receipt);

аннулирование (annul);

анонимность (anonymity);

свидетельствование (witnessing);

подтверждение (confirmation);

ратификация (validation).

14 Часть I. Кому нужна защита?

Рассмотрим каждую из перечисленных задач подробнее.

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

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

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

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

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

Аутентификация является необходимым дополнением к идентификации и предназначена для подтверждения истинности (аутентичности) пользова теля, предъявившего идентификатор. Неанонимный пользователь должен получить возможность работать только после успешной аутентификации.

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

Глава 1. Общие сведения о защите информации Доступ должны иметь только уполномоченные пользователи, и попытки доступа должны протоколироваться.

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

Право собственности обычно является составной частью системы контроля доступа.

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

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

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

Датирование часто применяется совместно с подписью и позволяет зафик сировать момент подписания документа. Это может быть полезно, напри мер, для доказательства первенства, если один документ был подписан не сколькими пользователями, каждый из которых утверждает, что именно он является автором документа. Кроме этого датирование широко используется в сертификатах, которые имеют ограниченный срок действия. Если действи тельный сертификат был использован для подписи, а затем соответствую щей службой сертифицирующего центра была проставлена метка времени, то такая подпись должна признаваться правильной и после выхода серти фиката из употребления. Если же отметка времени отсутствует, то после 16 Часть I. Кому нужна защита?

истечения срока действия сертификата подпись не может быть признана корректной.

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

— удостоверение (подтверждение) факта создания или существования информацией некоторой стороной, не являющейся созда телем.

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

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

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

Глава Основные способы обеспечения защиты Наверное, потребность в защите информации появилась одновременно с самой информацией. И возможные методы защиты информации почти всегда определялись формой ее представления и предполагаемыми способа ми использования.

2.1. Общая классификация В первом приближении все методы защиты информации можно разделить на три класса:

законодательные;

административные;

• технические.

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

Административные методы заключаются в определении процедур доступа к защищаемой информации и строгом их выполнении. Контроль над со блюдением установленного порядка возлагается на специально обученный 18 Часть I. Кому нужна защита?

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

Технические методы защиты, в отличие от законодательных и администра тивных, призваны максимально избавиться от человеческого фактора. Дей ствительно, соблюдение законодательных мер обуславливается только добропорядочностью и страхом перед наказанием. За соблюдением админи стративных мер следят люди, которых можно обмануть, подкупить или за пугать. Таким образом, можно избежать точного исполнения установленных правил. А в случае применения технических средств зашиты перед потенци альным противником ставится некоторая техническая (математическая, фи зическая) задача, которую ему необходимо решить для получения доступа к информации. В то же время легитимному пользователю должен быть досту пен более простой путь, позволяющий работать с предоставленной в его распоряжение информацией без решения сложных задач. К техническим методам защиты можно отнести как замок на сундуке, в котором хранятся книги, так и носители информации, самоуничтожающиеся при попытке не правомерного использования. Правда, такие носители гораздо чаще встре чаются в приключенческих фильмах, чем в реальности.

Самоуничтожающиеся DVD-диски Компания Disney объявила о выходе на рынок в августе 2003 года пробной партии самоуничтожающихся DVD-дисков. Такие диски можно будет использо вать только в течение 48 часов после вскрытия упаковки. Затем поверхность Глава 2. Основные способы обеспечения защиты диска должна почернеть, что сделает невозможным прохождение лазерного луча DVD-проигрывателя.

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

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

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

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

Применительно к информационной безопасности, технические методы за щиты призваны обеспечить решение всех задач, перечисленных в разд. 1.2.

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

Методы, не имеющие математического обоснования стойкости, проще всего рассматривать как "черный ящик" — некоторое устройство, которому на вход подаются данные, а на выходе снимается результат. Процессы, проис ходящие внутри "черного ящика", предполагаются неизвестными и непод властными ни пользователю, ни потенциальному противнику. Собственно, стойкость таких методов основывается именно на предположении, что "ящик" никогда не будет вскрыт и его внутреннее устройство не будет про анализировано. Однако в реальной жизни случается всякое, и иногда или возникает ситуация, при которой раскрывается устройство "черного ящика", 20 Часть I. Кому нужна защита?

или упорному исследователю удается разгадать алгоритмы, функционирование зашиты, без вскрытия самого "ящика". При этом стой кость системы защиты становится равна нулю. Методы защиты, функцио нирующие по принципу "черного ящика", называют Security Through Obscu rity (безопасность через неясность, незнание).

Особенность методов защиты, имеющих обоснование стой кости, заключается в том, что их надежность оценивается, исходя из пред положения открытости внутренней структуры. То есть предполагается, что потенциальному противнику известны в деталях все алгоритмы и протоко лы, использующиеся для обеспечения защиты. И, тем не менее, противник должен быть не состоянии обойти средства защиты, т. к. для этого ему надо решить некоторую математическую проблему, которая на момент раз работки защиты не имела эффективного решения. Однако существует веро ятность того, что через некоторое время будет разработан эффективный ал горитм решения математической проблемы, лежащей в основе метода защиты, а это неминуемо приведет к снижению ее стойкости. Большинство методов, имеющих математическое обоснование стойкости, относятся к мето дам криптографии (см. гл. 5). И именно криптографические методы в основ ном позволяют эффективно решать задачи информационной безопасности.

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

2.3. Методы решения задач информационной безопасности Для обеспечения секретности в подавляющем большинстве случаев исполь зуются методы криптографии. Современные алгоритмы шифрования при условии обеспечения секретности ключа предоставляют возможность защи ты даже от таких противников, как правительственные агентства. Однако существуют ситуации, когда секретность одних и тех же данных должна обеспечиваться только при попытке выполнения запрещенных действий, а в остальных случаях доступ к данным должен быть свободным.

Защита содержимого DVD-диски с кинофильмами могут быть записаны для какого-то определенного региона (Северная Америка, Европа и т. д.) и должны без проблем воспроизво диться на проигрывателях этого региона. Но диск, купленный в США, не должен воспроизводиться на DVD-проигрывателе, купленном в Европе. Также не должно быть возможным извлечение содержимого диска на персональном ком пьютере. Однако интуитивно понятно, что если данные на DVD-диске зашиф рованы и какой-то DVD-проигрыватель может их воспроизвести, значит, диск Глава 2. Основные способы обеспечения защиты вместе с проигрывателем содержат достаточно информации для расшифровки содержимого диска. Отсюда следует вывод, что ключ шифрования присутству ет в системе, а значит, выполнив те же действия, что выполняет DVD проигрыватель, можно расшифровать содержимое диска. Получается, что криптография не способна обеспечить секретность в таких сложных условиях, и защиту приходится основывать запутывании процесса извлечения содержи мого диска. Стоит заметить, что для DVD-дисков задача защиты пока так и не была решена эффективно.

С непреднамеренными нарушениями целостности, возникающими из-за ошибок при передаче данных по каналам связи или сбоев при чтении носи телей информации, можно бороться путем добавления избыточности к за щищаемой информации, что позволит обнаружить и иногда даже исправить случайно возникающие ошибки. Для этого существует целая теория помехо устойчивого кодирования. В большинстве современных архиваторов (про грамм для сжатия данных) для контроля целостности распакованного файла алгоритм (Cyclic Redundant Code, 32-разрядный цикли ческий избыточный код). Перед упаковкой файла для него вычисляется зна чение CRC32, которое вместе со сжатыми данными в архиве.

После распаковки снова вычисляется CRC32, и если вычисленное значение не совпало с сохраненным в архиве, файл признается поврежденным. Одна ко для защиты от умышленного внесения изменений данный метод не под ходит — противнику не составит большого труда подкорректировать данные, вычислить от них CRC32 и сохранить исправленные версии в архиве. Даже если противник не имеет возможности исправлять контрольную сумму, ис пользовать CRC32 для защиты не стоит, т. к. этот алгоритм является обра тимым — изменением всего четырех байт в файле можно добиться любого нужного значения CRC32. Поэтому для зашиты от нарушений целостности целесообразно использовать стойкие криптографические хэш-функции (hash function), предотвращающие внесение изменений в защищаемые данные, вместе с шифрованием, препятствующим подмене значения хэш-функции.

Для этих целей можно использовать шифрование как с секретным, так и с открытым При идентификации, как правило, не возникает особенных сложностей:

пользователь предъявляет свой идентификатор, а система принимает Идентификатором может являться вводимое с клавиатуры имя пользователя, информация, содержащаяся на магнитной полосе пластиковой карты или в памяти смарт-карты, или какой-либо биометрический показатель (отпеча ток пальца, форма руки, голос, рисунок радужной оболочки глаза и т. д.).

Но почти всегда сразу за идентификацией следует аутентификация, т. к. кор ректность идентификатора, за исключением биометрического, не гарантирует, что предъявлен владельцем, а не неким посторонним лицом.

Часть Кому нужна защита?

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

Это может быть пароль, PIN-код (Personal Identification Number, персональ ный идентификационный номер) и т. п. Проверяющая сторона на основе имеющейся у нее информации (хэша пароля, зашифрованного значения PIN кода) принимает решение об аутентичности (подлинности) пользователя.

Правильное решение задач идентификации и последующей аутентификации включает в себя решение нескольких подзадач.

Обеспечить невозможность успешного повторения идентификации и ау тентификации путем перехвата сетевого трафика и повторной отсылки правильных ответов. Для этого используется запрос/ответ (challenge/response), когда проверяющая сторона присылает некоторый случайный запрос (challenge), который используется при аутентификации для преобразования введенных пользователем данных перед отправкой их проверяющей стороне. При таком подходе перехват сетевого трафика оказывается бесполезным — проверяющая сторона каждый раз присыла ет новый запрос, на который существует правильный от вет, который невозможно быстро вычислить, не зная секретной инфор мации (пароля или PIN-кода).

Аутентификация сетевых подключений в Windows 95/ 5 января 1999 года компания LOpht опубликовала статью о найденной уязвимо сти в реализации схемы запрос/ответ при подключении сетевых ресурсов Windows 95/98. Как оказалось, при попытках подключения Windows 95/98 посы лает один и тот же запрос в течение примерно 15 минут, и за это время про тивник может подключиться к сетевому ресурсу от имени того пользователя, чью попытку аутентификации удалось перехватить.

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

паролей для LANMAN-аутентификации В таких операционных системах, как Windows NT/2000, могут храниться две версии хэшей пароля. Одна версия используется собственными средствами безопасности Windows NT, а другая нужна для обеспечения совместимости с про токолом аутентификации применяемым, в частности, в Windows 95/98.

Глава 2. Основные способы обеспечения защиты Собственный хэш Windows NT достаточно стойкий, и по значению хэша практи чески невозможно найти пароль, использующий цифры, буквы в разных регист рах и знаки препинания и имеющий длину более 8 символов. Однако процеду ра вычисления хэша имеет несколько особенностей, которые значительно ослабляют уровень защиты.

При вычислении хэша LANMAN-пароль, длина которого не должна превышать 14 символов, разбивается на 2 части по 7 символов, и хэш для каждой части вычисляется отдельно. Таким образом, при подборе пароля максимальная длина проверяемых слов составляет всего 7 символов, что делает возможным даже полный перебор всех вариантов пароля.

Если пароль не длиннее 7 символов, то вторая часть остается пустой и порож дает всегда одно и то же значение хэша. Это позволяет по второй половине хэша сразу определить пароли, которые короче 8 символов.

Так как обе части пароля обрабатываются независимо, для паролей длиной от 8 до 12 символов вторая часть может быть найдена максимум перебором всех пятисимвольных комбинаций, что не займет очень много времени. Иногда зна ние окончания пароля позволяет угадать все слово.

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

Функция вычисления хэша LANMAN не использует подмешивание "соли" (salt) — случайной несекретной величины, делающей значение хэша уникаль ным для каждого пользователя, даже если пароли совпадают. Эта особенность позволяет тратить на подбор пароля для любого числа пользователей практи чески одинаковое время, т. к. на каждого дополнительного пользователя до бавляется лишь одна операция сравнения, которая выполняется в тысячи раз быстрее, чем вычисление хэша.

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

Минимизировать вероятность ошибок первого рода (отказ в доступе ле гитимному пользователю) и второго рода (предоставление доступа поль зователю, не имеющему на это права). При использовании биометрики для идентификации и/или аутентификации ошибки первого и второго рода играют значительную роль, т. к. биометрика при оценке степени совпадения измеренной биофизической характеристики и ранее Часть I. Кому нужна защита?

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

Если же требования к точности совпадения повысить, легальные пользо ватели достаточно часто будут получать отказ в доступе. Хорошо настро енная система идентификации по отпечаткам пальцев необоснованно от казывает в доступе примерно в одном случае из 50 и ошибочно пропускает одного нелегального пользователя из миллиарда.

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

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

Биометрика может применяться либо для идентификации совмещенной с аутен тификацией, либо только для аутентификации. При первом подходе снятая биометрическими методами характеристика сравнивается с учетными запися ми всех пользователей, зарегистрированных в системе, и если точность совпа дения превышает установленное значение, пользователь считается идентифи цированным и аутентифицированным. Второй подход требует предоставления идентификатора (имени пользователя, пластиковой карты), а биометрические методы лишь подтверждают его аутентичность. Этот способ хоть и является менее удобным для пользователей, имеет несколько преимуществ. Во-первых, требуется сравнить снятую характеристику только с одним сохраненным значе нием, а не со всеми. Это может оказаться очень существенным, когда число зарегистрированных пользователей измеряется тысячами. А во-вторых, при наличии традиционного идентификатора гораздо проще пресекать многократ ные попытки входа в систему нелегального пользователя — достаточно ввести ограничение на максимальное количество попыток входа одного пользователя Глава 2. Основные способы обеспечения за фиксированный период времени (например 3 раза в течение 5 минут). Если же явно выраженный идентификатор отсутствует, можно ограничивать только интенсивность попыток идентификации на одном рабочем месте, но в некото рых случаях (например на проходной большого завода) это нецелесообразно.

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

Существует две основных модели разграничения доступа: мандатная и дис креционная.

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

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

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

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

При использовании криптографии с открытым ключом большой проблемой является доверие к подлинности открытого ключа адресата. Сам открытый I. Кому нужна защита?

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

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

Так, например, любой криптопровайдер (Cryptographic Service Provider, CSP — модуль, отвечающий за поддержку криптографических функций че рез стандартный программный интерфейс), используемый в современных версиях Windows, должен быть предварительно сертифицирован компанией Microsoft.

КЛЮЧИ в библиотеке ADVAPI32.DLL В январе 2003 года в конференции появилось сообщение, ка сающееся процедуры подписания криптопровайдеров в Windows. В сообщении утверждалось, что отсутствие желания каждый раз обращаться в Microsoft и тратить несколько дней на подписание разрабатываемого модуля подтолкну ло к поиску более эффективного решения. Это решение заключалось в факто ризации (разложении на простые сомножители) модуля 512-битового ключа RSA, используемого при проверке подписи и хранящегося в библиотеке ADVAPI32.DLL. По утверждению автора сообщения для факторизации потре бовалось чуть больше двух месяцев. Вычисления выполнялись на кластере из 10 машин с процессорами Pentium-Ill, работающими на частотах от 500 до 1200 МГц. Однако строгих доказательств выполненной факторизации, похоже, опубликовано не было.

На самом деле, в библиотеке операционных систем семейства NT (Windows NT, 2000 и находится не один, а целых три RSA-ключа, замас Глава 2. Основные способы обеспечения защиты кированных одинаковым образом. Два из них имеют длину 1024 бита, а один действительно 512 бит.

Кстати, в году один из разработчиков компании анализируя от ладочную информацию из Service 5 для Microsoft Windows 4, обнару жил символьные метки для двух ключей. Одна из меток называлась "KEY", а другая — "NSAKEY", что недвусмысленно дает понять, кто является вла дельцем второго ключа.

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

Подписание модулей расширения для программ семейства Adobe Acrobat Программы семейства Adobe Acrobat имеют возможность подключать модули расширения (plug-ins), предназначенные для увеличения функциональности.

Чтобы модуль расширения мог быть загружен в программу Adobe Acrobat Reader, он должен быть подписан разработчиком. А в некоторых режимах, со пряженных с поддержкой (Digital Rights Management, управление цифро выми правами), разрешается загрузка только модулей, сертифицированных и подписанных компанией Adobe.

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

Описание данной уязвимости было опубликовано CERT (Computer Emergency Response Team, бригада неотложной компьютерной помощи), и Adobe обещала устранить дефект в еще не вышедшей на тот момент версии Acrobat Reader 6.

Но Acrobat Reader 6 уже вышел, и он продолжает загружать модули расшире ния, подписанные разработчиками старым уязвимым способом.

Решение таких задач, как расписка в получении, свидетель ствование и датирование, тесно связано с решением задач сертификации и 28 Часть /. Кому нужна защита?

подписи и тоже обеспечивается методами асимметричной криптографии.

Аннулирование заключается в обновлении списков отозванных сертифика тов (Certificate Revocation List, CRL) и списков отмены удостоверяющих центров (Authority Revocation List, ARL). Самым сложным здесь является необходимость обеспечить регулярную и своевременную доставку списков отмены до того, как скомпрометированный ключ будет применен со злым умыслом.

Компрометация сертификатов Microsoft Corporation 30 и 31 января 2001 года удостоверяющий центр компании VeriSign выдал два цифровых сертификата лицу, выдавшему себя путем обмана за работника компании Microsoft. Эти сертификаты могут быть использованы для подписания компонентов ActiveX, макросов Microsoft Office и других исполняемых модулей.

VeriSign добавил эти сертификаты в свой список отозванных сертификатов сразу же после обнаружения обмана. Но сертификаты, выпускаемые VeriSign для подписания исполняемого кода, не содержат указания на центр распро странения списков отмены (CRL Distribution Point, CDP). Из-за этого программ ное обеспечение Windows не способно автоматически получить информацию о том, что сертификат был отозван, пока Microsoft выпустит, а пользователь не установит соответствующее исправление.

Для обеспечения анонимности разработаны специальные криптографиче ские протоколы. Они позволяют выполнять такие операции, как тайное компьютеризированное голосование и анонимные не отслеживаемые деньги для оплаты товаров и через Интернет.

Глава Когда защиты Один из важных вопросов, нуждающихся в рассмотрении, заключается в том, стоит ли усиливать защиту, если для этого есть хоть какая-то воз можность, или может возникнуть ситуация, в которой усиление защиты пойдет не на пользу, а во вред?

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

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

С продуктами, относящимися ко второй категории, все обстоит иначе. Для них обеспечение безопасности не является основной задачей. Например, Microsoft поддерживает возможность шифрования документов, но при этом Word — текстовый редактор, а не средство для защиты файлов с по мощью криптографии. Поэтому к нему предъявляются иные требования, чем к системам обеспечения безопасности.

Прежде всего, обеспечение защиты не должно создавать значительных не удобств. Если на дверь квартиры установить 12 замков, злоумышленнику, наверное, будет труднее проникнуть внутрь. Однако человеку, живущему в этой квартире, придется слишком много времени тратить на отпирание 30 Часть I. Кому нужна защита?

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

Кроме в процессе эксплуатации изделия могут случаться непредвиден ные или незапланированные сбои. Любой замок в какой-то момент может перестать работать. Причины могут быть разные: заводской брак, отсутствие смазки или ржавчина, сточившийся или погнутый ключ и даже просто проходящий мимо школьник, ради развлечения засунувший спичку в механизм замка. Но результат будет один — замок не удастся отпе реть, и человек не сможет попасть в свою квартиру, хотя имеет на это пол ное право и даже не терял ключи. Интуитивно понятно, что чем больше замков (или уровней защиты) используется, тем больше вероятность отказа хотя бы одного из них. Но отказа любого элемента системы чтобы вся система перестала функционировать.

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

Замки всего лишь пример из реального мира. Но пространство информаци онных технологий подчиняется тем же самым принципам, и найти схожие примеры совсем несложно.

3.1. Неудобства для пользователя Один из распространенных способов защиты программ от несанкциониро ванного копирования (тиражирования) связан с использованием регистра ционного кода, который пользователь должен ввести в окне регистрации для получения работоспособной версии программы. Регистрационный код, как правило, вычисляется автором (владельцем прав) или распространите лем (продавцом) программного продукта на основании предоставленной пользователем информации (например его имени и названия компании, в которой он работает). Процедура вычисления может быть основана на некотором секретном алгоритме, разработанном автором, или на крипто графии с открытым ключом. В обоих случаях в программе должен присутст вовать обратный алгоритм, позволяющий проверить правильность регистра ционного кода. Но в случае применения криптографии с открытым ключом, зная алгоритм проверки, математически сложно полностью воссоздать алго ритм вычисления регистрационного кода. А при использовании секретного алгоритма чаще всего обращение алгоритма проверки после его извлечения из программы не является математически сложной задачей.

Глава 3. Когда защиты слишком много 31_ Для обеспечения заданного уровня стойкости необходимо использовать ключи не короче определенной длины. Но использование длинных ключей может создавать неудобства пользователю.

Длинные регистрационные ключи В случае применения криптографии с открытым ключом существует минималь ный размер блока, который получается в результате вычисления значения криптографической функции. Для алгоритма (с ключом длиной 1024 бита) размер зашифрованного блока составляет также бита или 128 байт. Так как с клавиатуры, в общем случае, можно ввести не всевозмож ные символы, то двоичные данные, полученные в результате шифрования, преобразуют в текст, например с помощью алгоритма При этом каж дые 6 входных бит преобразуются в 8, т. е. размер блока данных увеличивает ся на одну треть и превращается из 128 в 171 символ. Даже если максимально использовать все 95 символов ASCII, вводимых со стандартной клавиатуры, произвольное двоичное сообщение длиной 128 байт удастся закодировать в Таким образом, пользователь, не имеющий доступа к Интернету, может ока заться перед необходимостью ввести с клавиатуры присланную ему по факсу или бумажной почтой строку длиной более 150 символов. Более того, строка будет состоять не из простых для восприятия слов, а из бессмысленной смеси всевозможных печатных знаков, в которых очень легко ошибиться. А если поль зователь, находящийся вдали от факсимильного аппарата, захочет, чтобы ему продиктовали его регистрационный код по телефону? Вряд ли человек, про шедший через подобную процедуру, порекомендует кому-нибудь из своих дру зей приобрести лицензию на такую программу.

3.2. Снижение производительности Производительность (скорость выполнения) тоже довольно часто страдает, если защищаемая программа злоупотребляет функциями зашиты.

Чрезмерное потребление процессорного времени В одной из программ, играющих в (по-другому крестики нолики на большом поле), для защиты от исследования применялся следую щий подход. Программа была упакована и зашифрована, и при загрузке в па мять сама себя расшифровывала и подготавливала к работе. При этом вместо прямых вызовов функций из библиотек Windows, таких как kernel32.dll, user32.dll или gdi32.dll, выполнялись вызовы небольших процедур. Каждая из Часть /. Кому нужна этих процедур вычисляла контрольную сумму определенного фрагмента про граммы в памяти и на основании полученного значения вычисляла адрес биб лиотечной функции, которой необходимо передать управление. Если в про грамме происходили малейшие изменения, например в отладчике задавалась точка останова путем изменения одного байта, контрольная сумма оказыва лась иной и переход осуществлялся по неверному адресу.

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

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

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

3.3. Сбои в системе защиты Увеличение сложности защитного механизма, возможно, способно повысить уровень защищенности и снизить вероятность несанкционированного дос I Глава 3. Когда защиты слишком много тупа до пренебрежимо малой величины. Но при этом резко возрастет веро ятность отказа в доступе легитимному пользователю.

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

G при установке программы необходимо собрать как можно больше ин формации о среде функционирования (модель и частота процессора, имя производителя материнской платы, серийный номер жесткого диска и т. д.);

в различные области файловой системы каталог Windows, случайно выбранные каталоги на диске) и системные области операци онной системы (реестр Windows) заносятся записи-метки, позволяющие контролировать неизменность среды функционирования и целостность других меток;

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

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

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

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

Ложное срабатывание защиты Современные вычислительные системы стали настолько сложны и разнооб разны, что гарантировать безошибочность выполнения в них даже самых про Часть I. Кому нужна защита?

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

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

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

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

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

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

И тут служба технической поддержки оказывается перед сложной задачей — как по полученной от пользователя (и почти всегда неполной) информации оп ределить, что же случилось на самом деле? Если нарушение защиты проявля ется как неадекватное поведение программы, то с чем столкнулся пользова тель: с реакцией защиты или действительно с ошибкой в программе? Даже если пользователь получает недвусмысленное сообщение о нарушении защи ты, но сама защита очень разветвленная и многоуровневая, как выявить истин ную причину сбоя, если у других людей все работает, а у него — нет?

Глава 3. Когда защиты слишком много 3.4. Материальные затраты пользователей Когда человек приобретает программный продукт, защищенный от несанк ционированного тиражирования, он хочет купить только сам продукт, а за щиту ему навязывают. Более того, он за эту защиту еще и вынужден пла тить — аппаратный ключ, идущий в комплекте с программой, стоит даже в небольших партиях несколько десятков долларов. Разумеется, разработчик в каждую продаваемую копию закладывает стоимость ключа. Если защита не использует аппаратных элементов, все равно на ее разработку или при обретение были затрачены материальные ресурсы, и эти затраты необходи мо окупить. Следовательно, стоимость продукта для конечного пользователя все равно повышается.

Закон Российской Федерации защите прав потребителей" Второй пункт 16 статьи Закона РФ "О защите прав потребителей" гласит:

"Запрещается обусловливать приобретение одних товаров (работ, услуг) обя зательным приобретением иных товаров (работ, услуг). Убытки, причиненные потребителю вследствие нарушения его права на свободный выбор товаров (работ, услуг), возмещаются продавцом (исполнителем) в полном объеме".

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

Несмотря на то, что данная статья присутствует в Законе давно и программы, защищенные аппаратными ключами, продаются не один год, о прецедентах по ка не известно.

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

Ведь деньги платились ради автоматизации некоторого а не для "развлечений" в виде потерянного 36 Часть I. Кому нужна защита?

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

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

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

Однако в большинстве случаев разработчикам рано или поздно приходится считаться с мнением пользователей, чтобы их не потерять.

Активация программных продуктов Компания Intuit Inc., специализирующаяся на разработке программного обеспе чения для учета финансов, в числе прочих выпускает и программу для подготовки налоговой отчетности. В версии TurboTax для 2002 налогового года Intuit, оправдывая свои действия борьбой с использованием нелицензион ных версий TurboTax, реализовала систему активации, подобную той, что ис пользуется сейчас во многих продуктах корпорации Microsoft. По грубым оцен кам для 98 % пользователей активация через Интернет не создала практически никакого неудобства. Но у 2 % возникли сложности. И к тому же активация по зволяла полноценно использовать TurboTax только на одном компьютере.

В результате многие пользователи отказались от использования TurboTax в пользу его давнего конкурента — программного продукта выпускаемо го компанией Block А как минимум один из пользователей подал су дебный иск против компании Intuit в защиту прав всех пользователей TurboTax для 2002 налогового года. Иск основывался на утверждении, что Intuit занима ется нечестным бизнесом, недостаточно полно информируя о механизмах ак тивации и последствиях их использования клиентов до того, как они приобретут программный продукт.

Негативная реакция пользователей заставила Intuit заявить в мае 2003 года об исключении процедуры активации из будущих версий TurboTax. Кстати, компа ния H&R Block, которая сначала сама планировала ввести процедуру актива ции для своих продуктов, после неудачи отказалась от этих планов. Более того, факт отсутствия активации в TaxCut использовался в слогане рекламной кампании как очевидное преимущество.

Корпорация Microsoft нашла компромиссное решение для активации. Основной массе пользователей при установке, например, любой современной версии операционной системы Windows необходимо проходить процедуру активации.

Глава 3. Когда защиты слишком много В то же время существуют так называемые корпоративные лицензии, позво ляющие быстро установить Windows на большое число компьютеров, не затра чивая время на активацию. Microsoft предпочла предоставить своим крупным клиентам такую возможность, хотя было очевидно, что утечка регистрационного номера всего одной корпоративной лицензии приведет к появлению огромного числа нелегальных, но полностью работоспособных копий Windows (что на практике и случилось с Windows причем пиратские версии ХР с регистра ционным номером от корпоративной лицензии появились в Интернете ранее чем за месяц до официального начала продаж этой операционной системы).

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

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

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

4.1.1. Качество программ Если результат работы программы соответствует ожиданиям пользователей или даже превосходит их, то программу считают качественной. Критерий качества применяется для сравнения результатов которые можно выполнить более чем одним способом. Так при умножении двух чисел мо жет получиться только один возможный результат, и если в какой-то про грамме получается другое значение, то правильно будет охарактеризовать программу не как низкокачественную, а как неверно выполняющую расче ты. Но, например, при решении дифференциальных уравнений можно ис пользовать различные численные методы интегрирования, и за большее или меньшее время получить отличающиеся по значениям результаты. При этом несовпадение результатов (как по значению, так и по затраченному време ни) обусловлено не ошибками в программе, а свойствами того или иного метода интегрирования и выбранным значением шага (увеличение шага, как правило, приводит к уменьшению времени вычислений, но снижению точ ности). Качественной будет считаться та программа, которая в подавляющем большинстве случаев удовлетворяет всем требованиям, предъявляемым Часть I. Кому нужна защита?

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

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

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

Так, например, почти любой пользователь Microsoft Office сталкивался с си туацией, когда Word закрывался с сообщением об ошибке и результаты боты, выполненной с момента последнего сохранения (или автосохране ния), оказывались потерянными. Но условия, при которых Word дает сбой, у каждого могут быть индивидуальными. Более того, ошибка вполне могла произойти не в самой программе текстового редактора, а в одном из общих компонентов Microsoft Office или Windows, используе мых редактором Word.

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

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

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

4.2. Оценка средств защиты Теперь рассмотрим, что изменится при использовании таких критериев, как качество, надежность и эффективность в приложении к защиты.

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

Удивительная программа eBook Pro Разработчики программы eBook Pro во всю рекламируют свое детище как "единственный программный продукт во вселенной, способный обеспечить Ва шей информации практически 100% защиту от взлома". Поверить рекламе, которая обещает именно то, что хочется получить, очень легко. Правда, вскоре неминуемо выяснится, что, нажав комбинацию клавиш можно вы делить весь видимый текст, а затем скопировать его в буфер обмена. Кроме того, незащищенные копии HTML-страниц и картинок остаются после просмот ра в директории, хранящей кэшированные файлы Internet Explorer. И наконец, выполнив анализ работы программы, можно будет узнать, что защита заключа ется в наложении при помощи операции XOR на каждый байт защищаемых дан ных последовательно всех байтов строки "encrypted" (зашифровано), что экви валентно наложению однобайтовой константы. При этом не обеспечивается никакой секретности и реальной защиты, т. к. остается возможность извлече ния защищенной информации без подбора ключа или иных длительных опера ций. Скорее всего разработчики программы просто не знали, что любое число последовательных вычислений XOR С константой может быть сведено к одному вычислению XOR.

Дополнительную информацию о свойствах продукта можно получить от других пользователей или самостоятельно разбираясь в особенностях функ Часть Кому нужна защита?

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

Результаты официального тестирования ключей HASP Аппаратные ключи для защиты программного обеспечения от несанкциониро ванного тиражирования HASP (Hardware Against Software Piracy), производи мые компанией Aladdin Knowledge Systems, Ltd., наверное, являются наиболее распространенными ключами в России. По результатам тестирования, прове денного Национальной Тестовой Лабораторией США (National Software Testing Labs, NSTL), ключи HASP были названы лучшими 2 раза подряд. Согласно от чету NSTL, датированному январем 1999 года, сравнительное тестирование ключей разных производителей велось по пяти категориям: безопасность, про стота использования, совместимость, возможности сетевых ключей и универ сальность. Ключи HASP оказались лидерами во всех пяти категориях и, следо вательно, стали безусловными победителями.

Казалось бы, такой серьезной организации, как NSTL, можно доверять. Но есть несколько нюансов, ставящих под сомнение истинность вердикта, вынесенного NSTL.

Прежде всего, при тестировании сравнивались ключи только двух семейств:

HASP от компании Aladdin и Sentinel от компании Rainbow Technologies исключено, что ключи Rainbow Sentinel являются наиболее значимым конкурен том для Aladdin HASP, но на момент тестирования на рынке были представле ны ключи и других производителей, сравнение с которыми не проводилось.

Глава 4. Методы оценки эффективности защиты Но, самое главное, на момент опубликования отчета NSTL в Интернете можно было найти достаточное количество статей, руководств и даже исходных тек стов программ, в деталях описывающих внутреннее устройство ключей HASP, включая алгоритм вычисления секретной функции HaspCode и быстрого поиска пароля для доступа к ключу. Грубо говоря, существовал хорошо документиро ванный инструментарий, позволяющий при наличии физического доступа к ключу HASP за пару минут получить всю информацию, необходимую для по строения полного эмулятора, способного на любой корректный запрос к ключу вычислить ответ, совпадающий с ответом реального ключа.

Эмуляции поддаются и другие ключи, но, например, у ключей секретная функция может эмулироваться только таблично (см. гл. 9), а самая трудная для эмуляции часть ключей HASP — секретная функция оказалась скомпрометирована. По одной версии раскры тие алгоритма HaspCode было произведено исследователем программ, пи савшим статьи под псевдонимом по другой — произошла утечка сек ретной информации из компании Aladdin.

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

Стоит отметить, что с появлением ключей семейства HASP4 в арсенал разработчи ка добавились две секретных функции: HaspEncodeData и HaspDecodeData. Это привело к невозможности полной эмуляции ключей HASP4.

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

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

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

Если речь идет о защите программного продукта от несанкционированного копирования (тиражирования), то основная цель защиты не сделать невоз можным нелегальное использование программного обеспечения, а повысить прибыли от продаж защищаемой программы. Следовательно, сложность и такой защиты не обязательно должны быть высокими.

WinZip Одним из самых популярных форматов сжатия данных среди пользователей операционных систем семейства Windows был и остается ZIP, разработанный компанией PKWARE, Inc. Столь широкое распространение этот формат полу чил совсем не из-за технических особенностей, таких как очень быстрое сжатие или высокая степень упаковки, существуют архивные форматы и поддержи вающие их программы, превосходящие ZIP практически по всем характеристи кам. Скорее всего, ZIP обязан своей популярностью условно бесплатной про грамме WinZip. Согласно пресс-релизу от 21 ноября 2000 года, на тот момент только с Download.com, принадлежащего компании CNET Networks, Inc., WinZip скачали более 27 миллионов раз, а июль 2003 года число скачанных копий превысило 100 миллионов.

WinZip является условно бесплатным (shareware) продуктом. Любой пользова тель имеет право установить WinZip себе на компьютер и использовать его бесплатно в течение дней с тестовыми и ознакомительными целями. При этом программа является полностью функциональной, но иногда появляется окно-напоминание с предложением купить WinZip, По истечении тестового пе риода необходимо либо приобрести лицензию на использование WinZip, либо удалить программу с компьютера. После оплаты стоимости лицензии пользо ватель получает регистрационный код, соответствующий его имени. После ввода правильного кода в соответствующем окне WinZip программа считается зарегистрированной и перестает беспокоить пользователя предложением со вершить покупку.

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

вероятно, что в WinZip Computing не знают о существовании генераторов кодов 46 Часть /. КОМУ нужна защита?

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

Пример сознательного использования слабых механизмов защиты программ можно усмотреть в действиях компании Microsoft.

Регистрация продуктов Microsoft Долгие годы продукты компании Microsoft (операционные системы, офисные продукты) не использовали сколько-нибудь стойкой защиты от несанкциониро ванного тиражирования. Имея оригинальный дистрибутив, можно было при же лании установить его на любое число компьютеров. И не считалось большим преступлением, хотя и являлось нарушением лицензии, когда купленный какой нибудь компанией программный продукт устанавливался работником не только на офисный, но и на домашний компьютер, чтобы иметь больше возможностей для изучения и освоения новых функций. Похоже, такая ситуация вполне уст раивала популяризация собственного программного обеспечения явно шла на пользу компании. А когда пользователь принимал решение о по купке программного обеспечения для домашнего компьютера, выбор чаще па дал на продукты Microsoft, ведь с ними он уже был хорошо знаком.

Когда на рынке операционных систем для персональных компьютеров с про цессорами семейства х86 компания Microsoft стала безусловным лидером, она приняла решение об изменении правил игры и ввела активацию программных продуктов. Теперь устанавливать дополнительные копии стало довольно труд но. Но если бы активация была заложена в продукты Microsoft с самого начала, не известно, как сложилась бы судьба Microsoft.

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

Часть II О Глава 5. Базовые понятия Глава 6. Криптография для нематематиков Глава 7. Насколько надежны алгоритмы и протоколы Глава 8. Рекомендации по выбору алгоритмов Часть II. Несколько слов о Эта часть поможет читателям поближе познакомиться с криптографией — наукой, предоставившей инструментарий для защиты сохраняемой и пере даваемой информации от любого противника. В следующих четырех главах о криптографии рассказывается без использования сложного математиче ского языка, и при этом подробно рассматриваются распространенные ошибки, допускаемые при реализации средств защиты, использующих криптографию.

Глава Базовые понятия Практически ни одна современная книга, посвященная информационной безопасности, не обходится без упоминания о криптографии. И на это есть серьезные причины: криптография — один из основных инструментов, ис пользующихся при защите информации.

5.1. Происхождение названий Термин шифр (cipher) происходит от арабского слова "цифра" — арабы пер выми стали защищать текст, заменяя буквы цифрами.

Криптография (cryptography) дословно переводится как "тайнопись", искус ство тайного письма (от греческих слов kryptos — тайный и grapho — пишу).

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

Параллельно с методами шифрования разрабатывались и методы взлома шифров. Исследованием криптографических алгоритмов с целью оценки их стойкости и поиска слабых мест занимается криптоанализ (cryptanalysis).

Традиционно криптоанализ применялся для чтения перехваченных сообще ний без ключа или даже метода шифрования. Криптография и крип тоанализ являются двумя базовыми составляющими одной науки — логии (cryptology).

Существует также раздел информационной безопасности, по наименованию созвучный с криптографией — стеганография (steganography). Его название происходит от греческих слов stege — крыша и grapho — пишу. Стеганография занимается вопросами скрытной передачи информации, когда ставится задача предотвратить раскрытие противником не только содержимого сообщения, но даже и самого факта, что сообщение было отправлено. Стеганография может 50 Часть II. Несколько слов о криптологии использовать элементы криптографии, но является совершенно отдельным от криптологии направлением и в данной части книги подробно не рас сматривается.

5.2. Криптография и наука Долгое время криптография была больше искусством, чем наукой. Создате ли шифров, придумывая алгоритмы преобразования, действовали во многом "на удачу", т. к. в их распоряжении не было подходящей математической теории, способной формализовать криптографические операции и перевести их на язык науки.

Первой работой, радикально изменившей такое положение вещей, принято считать статью американского инженера и математика Клода Шеннона (Claud Shannon) "Теория связи в секретных системах" ("The Communication Theory of Secrecy Systems"), опубликованную в 1949 году в журнале Bell System Technical Journal. Содержимое этой статьи основано на секретном докладе "Математическая теория криптографии", датированном 1 сентября 1945 года. Разумеется, статья была опубликована только после того, как доклад оказался рассекречен.

Статья Шеннона сразу перевела криптографию в разряд точных наук, фак тически сделав ее разделом математики. А этап развития криптографии и криптоанализа до 1949 года теперь иногда называют донаучной криптологией.

Кстати, примечательно, что первая программируемая вычислительная ма шина, носившая имя "Colossus", была создана в Англии в 1943 году. Разра ботчиками машины были Макс Ньюмен (Max Newman) и Томми Флауэрс (Tommy Flowers). В работах активное участие принимал английский матема тик Алан Тьюринг (Alan Turing). Вычислительная машина для взлома шифра "Enigma", использовавшегося Германией во время второй мировой войны. Таким образом, можно считать, что информатика и вычис лительная техника появились благодаря потребностям криптоанализа.

5.3. Терминология 5.3.1. Участники взаимодействия При любом информационном обмене существует отправитель сообщения (sender) и его получатель (recipient). Частным случаем этой схемы является ситуация, когда отправитель и получатель — одно и то же лицо, а сообще ние передается не в пространстве, а во времени. Именно так может быть Глава 5. Базовые понятия описан процесс хранения информации на внешнем носителе или в памяти компьютера.

Зачастую отправитель желает, чтобы на всем пути следования содержимое сообщения сохранялось в тайне, т. е. чтобы злоумышленник (intruder), пере хвативший сообщение, не смог понять его смысл. Также в некоторых случа ях у злоумышленника есть возможность воздействовать на содержимое со обшений (изменять, удалять, создавать новые сообщения). Подразумевается, что в распоряжении злоумышленника находятся все существующие на на стоящий момент технические средства, которые могут помочь в решении его задач.

5.3.2. Объекты и операции Исходное, незашифрованное сообщение называется открытым текстом (plain text). Зашифрованное сообщение называется (ciphertext).

Процесс преобразования открытого текста в шифртекст называется зашиф рованием (enciphering), а обратный процесс — расшифрованием (deciphering).

Термин шифрование (без приставок) в русскоязычной литературе обычно обозначает и зашифрование, и расшифрование.

Зашифрование и расшифрование выполняются в соответствии с криптогра фическим алгоритмом (cryptographic algorithm). Как правило, криптографиче ский алгоритм содержит сменный элемент — криптографический ключ (cryptographic key), позволяющий выбрать одно конкретное преобразование из множества преобразований, реализуемых данным алгоритмом.

Существует два основных типа криптографических алгоритмов: симметрич ные, для которых ключ расшифрования совпадает с ключом зашифрования или может быть легко из него получен, и асимметричные, использующие для зашифрования и расшифрования два разных ключа. Асимметричные алго ритмы также называют алгоритмами с открытым ключом, и их история на чинается с 1975 года, в то время как симметричные алгоритмы использова лись многие тысячелетия.

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

Получение открытого текста из шифртекста без знания правильного ключа и/или всех деталей алгоритма является основной задачей криптоанализа и называется дешифрованием. Попытка криптоанализа называется атакой.

52 Часть II. Несколько слов о Раскрытие ключа шифрования без привлечения методов криптоанализа на зывается компрометацией.

К криптографическим функциям, кроме алгоритмов зашифрования и рас шифрования, относят и некоторые другие операции. Так, например, крип тографические хэш-функции (cryptographic hash-functions) применяются для значения хэша (hash value), называемого еще сооб щения (message digest). Также существуют криптографические генераторы псевдослучайных чисел (random number generator).

5.4. Криптографические примитивы 5.4.1. Алгоритмы шифрования Основная задача криптографии — обеспечение секретности — реализуется при помощи алгоритмов шифрования. Эти алгоритмы, по определению, яв ляются обратимыми, т. к. в противном случае восстановить зашифрованные данные будет не всегда возможно.

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

В'некоторых алгоритмах зашифрование и расшифрование могут выполнять ся одной и той же функцией.

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

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

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

В современных шифрах применяют другой подход, определяемый принци пом Керкхоффса (Kerckhoffs). Согласно этому принципу в криптосистеме Глава 5. Базовые понятия используется сменный элемент, называемый ключом, и секретность шифра обеспечивается секретностью ключа шифрования, а не алго ритма. Таким образом, открытое опубликование всех деталей реализации криптографического алгоритма не должно снижать надежность шифра, если ключ шифрования сохраняется в секрете. Кроме того, смена ключа выпол няется гораздо проще, чем смена алгоритма, особенно если шифрование реализовано аппаратно.

Хороший алгоритм шифрования имеет следующие статистические характе ристики:

отсутствие статистической зависимости между открытым текстом и шифр текстом;

О по статистическим характеристикам не отличим от истинно случайной последовательности;

изменение любого бита в ключе шифрования при неизменном открытом тексте приводит к изменению примерно 50% бит шифртекста (для сим метричных алгоритмов);

изменение любого бита в блоке открытого текста при неизменном ключе шифрования приводит к изменению примерно 50% бит шифртекста (для блочных алгоритмов).

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

Криптографические хэш-функции применяются в криптографии повсемест но: в протоколах аутентификации, цифровой подписи, в генераторах псев дослучайных последовательностей и т. д.

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

Криптографическая должны быть однонаправленной. То есть, зная значения хэша, злоумышленник не должен иметь эффективной воз можности найти исходное сообщение. Более того, не должно быть эффек тивного способа найти любое сообщение, вычисление хэш-функции от ко 54 Часть II. Несколько слов о криптологии торого даст требуемое значение хэша (хотя таких сообщений бесконечно много, т. к. количество разных выходных значений определяется размером хэша, а множество входных сообщений безгранично).

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

5.4.3. Криптографические генераторы псевдослучайных чисел Случайные числа требуются в криптографии очень часто. Симметричный ключ шифрования должен выбираться случайным образом. При генерации ключей для асимметричной криптосистемы необходимо иметь достаточно большой объем случайных данных. Корректная реализация асимметричных криптоалгоритмов, например RSA, требует добавлять к каждой порции от крытого текста несколько случайных байт.

Однако в компьютере, в общем случае, нет хорошего источника случайно сти, способного выдавать значительные объемы истинно случайных данных.

Поэтому в криптографии находят широкое применение генераторы псевдо случайных чисел.

Псевдослучайные данные совсем не то же самое, что истинно случайные.

Генератор псевдослучайных чисел использует детерминированный ачгоритм и выдает последовательность значений, зависящую от начального значения (seed value), загруженного в генератор. Зная начальное значение, легко по вторить последовательность, выдаваемую генератором.

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

• последовательность, выдаваемая алгоритмом генерации псевдослучайных чисел, должна иметь как можно больший период;

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

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

Такие функции генерации псевдослучайных чисел, как, например, rand из стандартной библиотеки языка С, не удовлетворяют ни одному из Глава 5. Базовые понятия ленных требований. Поэтому не стоит пользоваться для защиты информа ции генераторами, встроенными в языки программирования, если достовер но не известна их криптографическая стойкость.

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

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

При оценке стойкости того или иного алгоритма шифрования рассматривают несколько наиболее распространенных моделей криптоаналитических атак.

5.5.1. Атака на основе только шифртекста При выполнении этой атаки криптоаналитику доступно некоторое количе ство шифртекстов, являющихся результатом применения одного алгоритма шифрования.

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

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

Данная атака является самой слабой и неудобной для криптоаналитика.

5.5.2. Атака на основе открытого текста При выполнении этой атаки криптоаналитик имеет доступ не только • к шифртекстам, но и к соответствующим им открытым текстам.

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

56 Часть II. Несколько слов о криптологии Открытые тексты, необходимые для данной атаки, могут быть получены из разных источников. Например, если известно, что передается зашифрован ный файл с определенным именем, то по расширению часто можно сделать предположение о содержимом определенных фрагментов файла, например заголовка.

Данная атака сильнее, чем атака на основе только шифртекста.

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

Задача криптоаналитика точно такая же, что и при атаке на основе откры того текста: определить использованный ключ шифрования или найти иной способ расшифровывать сообщения, зашифрованные на том же ключе.

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

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

5.5.4. Атака на основе адаптивно подобранного открытого текста Этот вариант является расширением атаки на основе подобранного откры того текста. Отличие заключается в том, что, получив шифртекст, соответст вующий выбранному открытому тексту, криптоаналитик может принять ре шение, какой открытый текст он хочет зашифровать в следующий раз.

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

Адаптивность (обратная связь) данной атаки дает преимущество перед про стой атакой на основе подобранного открытого текста, где все открытые тексты выбирались до начала атаки.

Глава 5. Базовые понятия 5.6. Анализ стойкости криптографических примитивов Несмотря на многовековую историю криптографии и криптоанализа, до сих пор не существует математического аппарата, позволяющего доказать, что ключ шифрования определенного алгоритма невозможно найти более эф фективно, чем полным перебором ключевого пространства. Скорее всего, такой математический аппарат не будет разработан и в обозримом будущем.

Однако прежде чем использовать любой криптографический алгоритм, не обходимо получить подтверждение его надежности.

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

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

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

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

Проверить надежность нового алгоритма без привлечения криптографиче ской общественности под силу разве что таким организациям, как АНБ.

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

Алгоритм шифрования А В качестве наглядного примера опасности, связанной с засекречиванием дета лей реализации алгоритмов шифрования, можно привести историю поточного шифра А5, применяемого для шифрования сеансов телефонной связи между трубкой абонента и базовой станцией в европейской системе мобильной циф ровой связи GSM (Group Special Mobile).

Шифр А5 был разработан в 1989 году и существует в двух версиях: А5/1 — "сильная" версия шифра, разрешенная к применению только в некоторых стра нах, и А5/2 — "ослабленная" версия, разрешенная к свободному применению.

В 1989 широкая публикация алгоритмов не была распространенным под ходом, и детали построения А5 оказались засекречены.

Но как бы строго ни контролировались коммерческие секреты, широкое рас пространение продукции рано или поздно приводит к утечкам информации.

В случае с GSM утечки начались в начале 90-х годов. Британская телефонная компания передала всю документацию Брэдфордскому университету, не по требовав от него подписать соглашение о неразглашении. Часть информации попала в Интернет, а к 1994 году основные детали алгоритма А5 стали обще доступны. В конце концов, кембриджские ученые Майк (Mike Roe) и Росс Ан i дерсон (Ross Anderson) опубликовали в Интернете примерную схему алгоритма.

В начале года в ассоциации разработчиков смарт-карт (Smart-Card Developer Association, SDA) были полностью восстановлены и проверены на реальных тестовых векторах схемы алгоритмов А5/1 и А5/2. Почти сразу после этого бы ла предложена атака, позволяющая вскрывать шифр А5/2 на персональном компьютере всего за миллисекунд.

В декабре 1999 года израильскими математиками Шамиром (Adi Shamir) и Алексом Бирюковым (Alex была опубликована еще одна работа, в ко торой описан нетривиальный, но по теоретическим расчетам очень эффектив ный метод вскрытия алгоритма А5/1. Этот метод требует предварительных вычислений и позволяет находить ключ за 1 секунду на персональном компью тере, имеющем 128 Мбайт оперативной памяти 150 Гбайт дискового про странства, путем анализа выхода алгоритма в течение первых двух минут те лефонного разговора.

Глава 5. Базовые понятия Однако интуитивно понятно, что отсутствие успешных результатов крип тоанализа конкретного алгоритма еше не гарантирует, что эти результаты не появятся в будущем. Работы по усовершенствованию методов криптоанализа ведутся постоянно, и нет никакой гарантии, что не удастся найти эффек тивные методы взлома существующих шифров.

Экспертная оценка применяется аналогичным образом и для проверки криптографической стойкости хэш-функций и генераторов псевдослучайных чисел.

Глава Криптография для нематематиков Многие люди, пытающиеся заняться глубоким изучением криптографии, могут столкнуться с тем, что эта задача им не под силу. Уж слишком серь езная математическая подготовка требуется для того, чтобы детально пони мать, как строить надежные алгоритмы и как выполнять их криптоанализ.

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

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

Правда, 2 июня 1989 года Постановлением Государственного комитета СССР по стандартам № 1409 был утвержден и введен в действие (с июля 1990 года) ГОСТ 28147-89 "Системы обработки информации. Защита крип тографическая. Алгоритм криптографического преобразования".

Общее описание ГОСТ 28147- Настоящий стандарт устанавливает единый алгоритм криптографического преобра зования для систем обработки информации в сетях электронных вычислительных 62 Часть II. Несколько слов о криптологии машин (ЭВМ), отдельных вычислительных комплексах и ЭВМ, который определяет правила шифрования данных и выработки Алгоритм криптографического преобразования предназначен для аппаратной или программной реализации, удовлетворяет криптографическим требованиям и по своим возможностям не накладывает ограничений на степень секретности защищаемой информации.

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

Стоит напомнить, что в США первый стандарт шифрования DES был опуб ликован и вступил в силу в 1977 году, на 13 лет раньше, чем ГОСТ 28147-89.

Трудно сказать точно, в какой именно момент в криптографии произошел информационный прорыв. Скорее всего, когда в России доступ в Интернет появился у значительного числа обычных пользователей, т. е. в первой по ловине 90-х годов XX века. В Интернете обнаружились ресурсы, содержа щие огромные объемы информации по криптологии: описания криптогра фических алгоритмов и протоколов, по криптоанализу, исходные тексты и т. д. В таких условиях криптография как наука не могла больше оставаться секретной, к тому же развитие средств коммуникации в России выявило потребность в криптографии не только для спецслужб, но и для коммерческих структур.

Государство не осталось безучастным к возникшей открытости криптогра фии, и 3 апреля 1995 года под давлением ФАПСИ (Федерального агентства правительственной связи и информации при Президенте Российской Феде рации) появился Указ Президента Российской Федерации № 334 "О мерах по соблюдению законности в области разработки, производства, реализации и эксплуатации шифровальных средств, а также предоставления услуг в об ласти шифрования информации". Ниже приводится небольшая выдержка из этого Указа.

Указа № 334 (пункт 4) В интересах информационной безопасности Российской Федерации и усиления борьбы с организованной преступностью запретить деятельность юридических и физических лиц, связанную с разработкой, производством, реализацией и эксплуатацией шифровальных средств, а также защищенных технических средств хранения, обработки и передачи информации, предоставлением услуг в области шифрования информации, без лицензий, выданных Федеральным агентством правительственной связи и информации при Президенте Глава 6. Криптография для нематематиков ской Федерации в соответствии с Законом Российской Федерации "О феде ральных органах правительственной связи и информации".

Указ № 334 недвусмысленно запрещает использование криптографии без лицензии даже физическими лицами. Основной аргумент ФАПСИ, касаю щийся положений Указа, сводился к тому, что нельзя допустить попадания средств защиты информации в руки террористов. Однако программное обеспечение, предназначенное для криптографической защиты информа ции, в отличие от специализированных средств шифрования связи, может легко быть получено через Интернет любым человеком или организацией.

По мнению общественной некоммерческой ассоциации "РусКрипто", несо вершенство законов, принятых в первую очередь под давлением ФАПСИ, реально сдерживает развитие не только криптографии как науки, но и це лого сегмента рынка Российской экономики, связанного с системами защи ты информации. И исправить сложившуюся ситуацию можно только после внесения смягчающих поправок в законодательство.

Таким образом, правовое поле в вопросах, касающихся разработки и при менения криптографических средств, все еще находится в стадии формиро вания, и законодателям предстоит большая работа в данном направлении.

Кстати, указом Президента России от 11 марта 2003 года ФАПСИ было расформировано, а его функции распределены между Федеральной службой безопасности и Министерством обороны.

Pages:     || 2 | 3 | 4 | 5 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.