<< Предыдущая

стр. 8
(из 39 стр.)

ОГЛАВЛЕНИЕ

Следующая >>

вычислить ответ, совпадающий с ответом реального ключа.

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

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

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



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


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


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

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

Алгоритм, используемый в WinZip для проверки соответствия регистрационно-
го кода имени пользователя, много лет назад был раскрыт, и в Интернете мож-
но без труда найти исходные тексты и готовые программы, позволяющие
вычислить правильный регистрационный код для произвольного имени. Мало-
вероятно, что в WinZip Computing не знают о существовании генераторов кодов
46 Часть /. КОМУ нужна защита?

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


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

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

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


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

НЕСКОЛЬКО СЛОВ
О КРИПТОЛОГИИ

Глава 5. Базовые понятия

Глава 6. Криптография для нематематиков

Глава 7. Насколько надежны алгоритмы и протоколы

Глава 8. Рекомендации по выбору алгоритмов
48 Часть II. Несколько слов о криптологии
I

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


Базовые понятия


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


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. Базовые понятия 51_

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

5.3.2. Объекты и операции
Исходное, незашифрованное сообщение называется открытым текстом
(plain text). Зашифрованное сообщение называется шифртекстом (ciphertext).
Процесс преобразования открытого текста в шифртекст называется зашиф-
рованием (enciphering), а обратный процесс — расшифрованием (deciphering).
Термин шифрование (без приставок) в русскоязычной литературе обычно
обозначает и зашифрование, и расшифрование.
Зашифрование и расшифрование выполняются в соответствии с криптогра-
фическим алгоритмом (cryptographic algorithm). Как правило, криптографиче-
ский алгоритм содержит сменный элемент — криптографический ключ
(cryptographic key), позволяющий выбрать одно конкретное преобразование
из множества преобразований, реализуемых данным алгоритмом.
Существует два основных типа криптографических алгоритмов: симметрич-
ные, для которых ключ расшифрования совпадает с ключом зашифрования
или может быть легко из него получен, и асимметричные, использующие для
зашифрования и расшифрования два разных ключа. Асимметричные алго-
ритмы также называют алгоритмами с открытым ключом, и их история на-
чинается с 1975 года, в то время как симметричные алгоритмы использова-
лись многие тысячелетия.
Симметричные алгоритмы можно разделить на две категории. К первой ка-
тегории относятся алгоритмы, которые обрабатывают шифруемые данные
побитово (или посимвольно), и такие алгоритмы называют потоковыми
шифрами. Ко второй категории относят алгоритмы, производящие операции
над группами битов. Такие группы битов называют блоками, а алгоритмы —
блочными шифрами.
Получение открытого текста из шифртекста без знания правильного ключа
и/или всех деталей алгоритма является основной задачей криптоанализа и
называется дешифрованием. Попытка криптоанализа называется атакой.
52 Часть II. Несколько слов о криптологии

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

<< Предыдущая

стр. 8
(из 39 стр.)

ОГЛАВЛЕНИЕ

Следующая >>