ГЛАВА VII
ИДЕНТИФИКАЦИЯ ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
Если не я за себя, то кто за меня?
Гегель
·
Введение в
идентификацию программного обеспечения
· Технологии защиты авторских прав
· Несколько слов об электронной цифровой подписи
В этой главе рассмотрим особый подход к защите авторских
прав на программные продукты. Подчеркнем, что все методы, алгоритмы и механизмы
защиты программ, рассмотренные в предыдущих главах, основаны на противодействии
либо копированию программных продуктов (воспроизведению), либо модификации и/или
использованию программных продуктов неавторизованными лицами. Возможен также и
альтернативный подход к защите авторских прав в сфере программного обеспечения.
Это идентификация программного обеспечения.
Введение
в идентификацию программного обеспечения
В основе идентификации программного обеспечения лежит идея
сопровождения каждого экземпляра (копии) программного продукта скрытой
информацией об управлении правами. Впоследствии при наличии спора между
потенциальными авторами (либо между автором и лицом, незаконно использующим программный
продукт) подтвердить факт авторства можно, раскрыв информацию об управлении
правами, внедренную в спорный экземпляр программного продукта.
Напомним, что закон так определяет понятие информации об
управлении правами [13, ст. 4].
Информация об управлении правами -
любая информация, которая идентифицирует автора,
произведение ... или
информация об условиях
использования произведения ... и
любые цифры или
коды, в которых представлена такая информация,
когда любой из
этих элементов информации приложен
к экземпляру произведения...
Устранение или изменение любой электронной информации об
управлении правами без разрешения правообладателя является нарушением
авторского права [13, ст. 39, п.5].
Если учесть еще и то обстоятельство, что при рассмотрении
спора в суде лица, участвующие в деле, имеют право представлять доказательства,
участвовать в исследовании доказательств, представлять свои доводы и
соображения по всем возникающим в ходе судебного разбирательства вопросам и
т.п., то становится очевидной необходимость предусмотреть возможность защиты
своих прав заранее самим разработчиком программного продукта.
Итак, внесение информации об управлении правами ставит
автора в более выгодное положение и в случае возникновения конфликтной ситуации
содействует защите прав автора.
Информация об управлении правами, внедренная в экземпляр
(копию) программного продукта, должна быть скрыта, иначе нарушитель легко
сможет устранить или изменить ее.
Таким образом, для предварительной защиты программного
продукта автору необходимо решить три вопроса:
1)
о
содержании информации об управлении правами;
2)
о
способе внедрения информации в каждый экземпляр продукта;
3)
о
методах сокрытия информации об управлении правами.
Содержанием информации об управлении правами может быть
любая информация, идентифицирующая автора (разработчика), а также любая
информация, идентифицирующая программный продукт (конкретную копию). В
дальнейшем информацию об управлении правами будем называть коротко идентификатором программного продукта.
Коды, в которых представлена информация об управлении правами, будем
называть идентификационными (авторскими)
метками.
На практике разработчики в
качестве идентификационной метки используют идентификатор автора. Это может
быть текстовая информация с именем разработчика и/или авторский код,
представляющий собой уникальное число. Кроме того, идентификатор может включать
также адрес, E-mail, телефон и т.п. Программный
продукт идентифицируется, как правило, названием, номером версии, датой выхода
версии и другими характеристиками. Подчеркнем, что автор вправе использовать
любую необходимую информацию.
Способ внедрения информации об управлении правами зависит, во-первых, от назначения, типа и
формата программного продукта, а во-вторых, от возможности скрыть информацию в
программном продукте определенного формата.
Скрыть информацию об
управлении правами, равно как и любую другую информацию, можно двумя путями.
Первый путь - скрыть содержание информации. Отметим, что
при этом факт наличия (передачи) информации остается известным.
Второй путь - скрыть сам факт наличия (передачи) информации.
Содержание при этом может быть открытым.
Сокрытие содержания информации (смысла) может быть произведено
с помощью методов и алгоритмов криптографии. Другими словами, чтобы скрыть
содержание информации, необходимо ее зашифровать.
Методы, с помощью которых можно скрыть факт наличия (передачи)
информации, изучает другая дисциплина - стеганография
(от греч. «тайнопись»). Методы и способы внедрения скрытой информации в
файлы изучает компьютерная стеганография.
Необходимо обратить внимание, что в случае, когда для сокрытия
информации об управлении правами применены только методы криптографии,
злоумышленнику для устранения идентификатора достаточно просто обнулить байты,
содержащие идентификатор, при этом нет необходимости вскрывать алгоритм или
ключ шифрования. Следовательно, для надежного сокрытия информации об управлении
правами необходимо скрыть сам факт использования защиты такого рода, либо
сделать неизвестным место, в котором записан идентификатор, то есть необходимо
использовать прежде всего стеганографические методы.
! |
Механизм защиты, основанный на использовании методов двух защитных
дисциплин - криптографии и компьютерной стеганографии, - является более
эффективным по сравнению с механизмом, использующим методы только одной
защитной дисциплины.
В настоящее время на практике широко используются технологии и системы защиты авторских прав на
мультимедийную и текстовую продукцию.
Информация об управлении правами легко может быть закодирована
в текстовых и HTML-файлах. Например, для текстовых файлов можно
использовать метод скрытых гарнитур шрифтов: необходимо в очертаниях символов
текста сделать малозаметные искажения, которые будут нести смысловую нагрузку.
В HTML-файлы в конец каждой строки можно добавить определенное число
пробелов, кодирующих идентификатор или сообщение, которое необходимо скрыть.
Технологии защиты авторских прав
Наиболее развитыми представляются технологии защиты авторских
прав на мультимедийную продукцию. Системы защиты авторских прав сопровождают
информацией об управлении правами объекты, представляющие собой цифровое
содержание: графические файлы, аудио- и видеофайлы.
Предлагаемые на рынке программного обеспечения технологии и
системы защиты авторских прав используют методы цифровой стеганографии.
Широко известен метод авторской метки в последние биты
данных, представленных в цифровом виде. Метод основывается на двух положениях:
1)
органы
чувств человека неспособны различить малые изменения в очертаниях, цвете или
яркости изображения, качестве звука;
2)
оцифрованные
данные можно исказить без потери информационного содержания.
В частности, модификация
младших, наименее значимых битов данных, представленных в цифровом виде, с
точки зрения органов чувств человека не приведет к изменению функциональности и
даже качества изображения или звука. Таким образом, вполне можно сохранить
авторскую информацию в младших битах оцифрованных данных.
! |
Заметим, что
идентификационные метки, скрытые в последних битах цифровой информации не являются
помехоустойчивыми, то есть при искажениях или сжатии изображения с потерей
данных идентификационная метка теряется.
На практике используются и другие методы компьютерной
стеганографии, а также широкополосные сигналы и элементы теории шума.
Относительно исходного изображения метка является некоторым дополнительным
шумом, но так как шум в сигнале присутствует всегда, его незначительное
возрастание за счет внедрения метки не дает заметных на глаз искажений. Кроме
того, метка рассеивается по всему исходному изображению, в результате чего
становится более устойчивой к вырезанию [27]. Например, авторская информация
скрывается путем фазовой модуляции информационного сигнала (несущей) с
псевдослучайной последовательностью чисел. Предлагается также использовать
другой алгоритм: имеющийся диапазон частот делится на несколько каналов и
передача производится между этими каналами [27].
Самой известной технологией в области защиты прав автора на
графическую информацию является технология Digital Water Marc (цифровой водяной знак) компании Digimarc Corporation.
Специальный
программный продукт PictureMarc (ключевая часть технологии)
позволяет внедрять в изображение цифровую метку, содержащую авторскую
информацию об управлении правами. Цифровая метка при этом кодируется величиной
яркости пикселей, что определяет стойкость цифрового идентификатора (метки) при
различных трансформациях графического файла (редактирование, уменьшение/увеличение
изображения, преобразование в другой формат, сжатие). Более того, цифровая
метка, внедренная таким способом, не будет потеряна даже после печати и
последующего сканирования.
|
Но следует учесть, что
цифровая метка не может быть ни изменена, ни удалена из маркированного
изображения.
Считывается цифровая метка с
помощью другой программы - ReadMarc.
Цифровая метка Digital Water Marc содержит информацию о создателе файла-изображения
(идентификатор создателя - уникальное число) и атрибуты изображения, а также
может содержать информацию об организации (идентификатор организации),
изображении (идентификатор изображения), информацию о лицензионном соглашении
(идентификатор лицензионного соглашения), которая позволяет проследить соблюдение
лицензионного соглашения по данному изображению. Для получения собственного
идентификатора (идентификатора создателя) пользователь обязан
зарегистрироваться в сервисном центре компании Digimarc (MarcCentre).
Технология Digital Water Marc встроена в
виде модуля plug-in в программные продукты Adobe и Corel.
На рынке программного обеспечения в настоящее время предлагается
множество систем и технологий, работающих по принципу, аналогичному цифровому
водяному знаку. Обычно их называют системами цифровых водяных знаков.
! |
Заметим, что существуют и
программы, удаляющие цифровые метки из файлов, содержащих изображения.
Наиболее известны
две из них: UnZign и StirMark, которые, правда,
анонсированы в качестве средств тестирования стойкости меток, встраиваемых
системами цифровых водяных знаков. Использование этих программ показывает, что
на сегодняшний день водяные знаки всех производителей уничтожаются без заметного
ухудшения качества изображения. Отметим, что возможность существования программ,
удаляющих цифровые метки, обусловлена известностью и доступностью способа
внедрения цифровых меток.
Несмотря на
низкую стойкость цифровых меток, цифровые стеганографические технологии и системы
успешно применяются на практике для защиты авторских прав создателей мультимедийной
продукции при распространении их продуктов в компьютерных сетях и на цифровых
носителях: компакт-дисках, цифровых музыкальных дорожках и видео.
Для защиты своих прав на программу разработчику следует
заранее предпринять действия, обеспечивающие ему в случае необходимости
доказательство факта авторства. Такими действиями может быть регистрация
программы и/или сопровождение программы информацией об управлении правами. Преимущества
автора, зарегистрировавшего программный продукт, отмечались выше. Остановимся
на основных моментах сопровождения программ информацией об управлении правами.
Обратим внимание еще раз на тот факт, что конфликтная ситуация
в отношении права авторства на программу либо на незаконное использование
программы может быть рассмотрена судом. Суд может использовать информацию об
управлении правами, сопровождающую объект спора, в качестве улики, подтверждающей
авторство и/или незаконное использование программы.
Внедрение в программу и сопровождение программы информацией об
управлении правами назовем идентификацией
программы.
Напомним, что из положений законодательства об авторском
праве на компьютерные программы следует, что разработчику прежде всего
необходимо защищать исходный текст программы и/или объектный код программы.
Так как распространение программ в основном происходит путем
создания копий выполнимых файлов, а не исходных текстов программ, внедрять
информацию об управлении правами следует непосредственно в объектные коды
программ либо сопровождать объектные коды специальными механизмами, обеспечивающими
взаимосвязь кодов программы с соответствующими идентификационными метками.
Заметим, что при внедрении авторской информации непосредственно
в текст программы разработчик сталкивается с современными оптимизирующими
компиляторами.
Для идентификации
программ можно использовать методы компьютерной стеганографии. Применение
компьютерной стеганографии для
внедрения идентификационных меток в объектные коды обусловлено тем, что,
во-первых, существует возможность видоизменить объектный код программы без потери
ее функциональности, во-вторых, существует возможность внести определенное
количество байтов, несущих информационную нагрузку.
Подчеркнем, что применение методов цифровой стеганографии для внедрения идентификационных меток весьма
сомнительно: в отличие от данных, содержащих оцифрованное изображение или звук,
которые могут быть до некоторой степени видоизменены без потери качества
изображения или звука, коды и данные программы требуют абсолютной точности.
Рассмотрим методы компьютерной стеганографии, которые могут
быть применены для внедрения в программы цифр и кодов, в которых представлена
информация об управлении правами.
В отдельную группу можно
выделить методы, основанные на наличии свободных участков в объектных кодах
программ, хранящихся в исполнимых файлах:
·
существуют
свободные полностью или частично секторы файла;
·
структуры
заголовков файлов в формате EXE, Pоrtable Executable,
New Executable содержат зарезервированные
поля;
·
существуют
пустоты между сегментами исполняемого кода
·
и
др.
Осторожное внедрение авторской информации в
свободные участки, во-первых, гарантирует правильную работу изменяемого
объектного кода программы, а, во-вторых, не изменяет размер файла.
! |
При внедрении идентификационных меток в свободные
участки в объектных кодах программ, необходимо предотвращать возможность
удаления идентификационных меток способом, при котором нарушитель без анализа конкретных
мест внесения метки может просто «обнулить» все имеющиеся свободные участки.
В другую группу методов компьютерной стеганографии можно
объединить способы изменения объектных кодов, базирующиеся на положении о том,
что объектный код содержит информацию (описательного характера), модификация
которой также не приведет к потере правильного функционирования программы. Так,
например, форматы выполнимых файлов (EXE, Pоrtable Executable,
New Executable) таковы, что изменение
значений некоторых полей не скажется на выполнении программы. Кроме того, объектные
коды содержат текстовую информацию, изменение которой никак не повлияет на
работу программы.
И в третью группу методов отнесем методы, которые базируются
на вирусной технологии внедрения в выполнимые файлы. В частности, можно
дополнить объектный код программы некоторым модулем (набором команд, фрагментом
кода), изменив при этом соответствующие
характеристики (параметры) файла. Например, приписав информацию об управлении
правами в конец файла в формате типа EXE, необходимо изменить
значение поля длины файла в его заголовке. Можно внедрить в объектный код
модуль, осуществляющий проверку наличия информации об управлении правами перед
загрузкой программы, и не выполнять программу в случае модификации и/или
удаления идентификационной метки. При этом необходимо изменить значение поля
длины файла, а также точку входа в таблице настройки адресов и т.п.
Технологии
внедрения компьютерных вирусов в файлы были рассмотрены в первой части учебного
пособия [1]. Здесь подчеркнем только, что все
методы внедрения компьютерных вирусов в выполнимые файлы являются
методами компьютерной стеганографии и могут быть использованы для внедрения
кодов, представляющих авторскую информацию, в выполнимые файлы.
Итак, существует
достаточно способов для внедрения в программу скрытой информации об управлении
правами. Заметим, что использование
оригинальных алгоритмов и приемов, а также использование недокументированных
возможностей операционной системы повысит надежность защиты.
Очевидно, что
идентификационные метки должны быть защищены от несанкционированной модификации
и/или удаления, а также от потери доступа к ним. Другими словами, метки должны
быть стойкими к попыткам модификации и/или удаления неавторизованными лицами.
Стойкость идентификационных
меток прежде всего определяется методами, с помощью которых метки внедряются в
программу. Повысить стойкость идентификационных меток можно также дополнительной
маскировкой. Для этого можно предварительно зашифровать метки.
! |
Заметим, что если идентификационная метка зашифрована, убедительность
улики, подтверждающей право автора, увеличивается.
Для увеличения стойкости идентификационных меток можно
также рекомендовать подход, используемый технологией идентификации программных
продуктов [28]. Технология идентификации программных продуктов специально
разработана для создания практического
средства (автоматизированная система) идентификации программ, предназначенного
для внедрения идентификационных меток в объектные коды готовых программ. Рассмотрим
моменты данной технологии, связанные с увеличением стойкости идентификационных
меток.
Технология идентификации
программ использует комплексный
подход к обеспечению стойкости идентификационных меток с обязательным учетом психологических факторов. Подход
основан на необходимости создать у нарушителя чувство психологического напряжения,
обеспокоенности, сомнения, заставить его помнить, что в похищенном программном
коде могут сохраняться средства защиты прав автора. Поэтому предлагается внесение не одной, а некоторого количества
идентификационных меток, а также оповещение о том, что эти метки присутствуют в
программе.
Стеганографические методы
внедрения идентификационных меток, используемые технологией, изменяются от
простых к более сложным, преднамеренно предоставляя возможность раскрытия и
удаления меток специалистам с различным уровнем квалификации.
Автор технологии
рассчитывает на то, что обнаружив часть меток, нарушитель будет считать, что обнаружил
их все, и прекратит дальнейший поиск.
Кроме этого, технология
идентификации программ предполагает использование авторских меток двух типов.
Во-первых, в виде идентификатора создателя с использованием имени разработчика
или названия фирмы-производителя; во-вторых, в виде некоторого авторского сообщения
(ключ, пароль). Использование меток только первого типа снижает надежность
защиты, так как знание нарушителем личных данных создателя является мощным
ключом для выявления и удаления меток. В то же время они являются и необходимыми
с психологической точки зрения: именно метки данного типа предполагается
скрывать менее надежно, для того, чтобы преднамеренно дать возможность
нарушителю раскрыть такую метку.
Количество внедряемых меток
вычисляется с помощью функции, зависящей от авторского сообщения и параметров
идентифицируемого объекта, которая возвращает различные значения для разных программ,
поэтому нарушителю неизвестно заранее количество меток, идентифицирующих
программу..
По желанию
пользователя, применяющего автоматизированную систему идентификации программ, в
объектный код может быть встроен модуль, в задачу которого входят функции проверки
наличия идентификационных меток перед запуском программы, а также восстановление
модифицированных и/или удаленных меток в случае, если осталась хотя бы одна из
них.
Особо подчеркнем,
что все метки, внедряемые в программный код с помощью рассматриваемой автоматизированной
системы идентификации, различны. Следовательно, обнаружить их методом поиска
повторяющихся участков кода невозможно.
Таким образом,
нарушитель только тогда сможет удалить идентификатор программы, когда найдет
все места внедрения меток одновременно, что является весьма трудоемкой задачей,
так как метки внедряются с помощью классических и специально разработанных
методов компьютерной стеганографии; маскируются классическими и специально
разработанными методами криптографии, а их количество заранее неизвестно.
Несколько слов об электронной цифровой подписи
Многие специалисты в качестве средства защиты прав автора
на компьютерные программы называют электронную цифровую подпись.
Электронная цифровая подпись используется при передаче информации
в компьютерных сетях для аутентификации автора (создателя) передаваемой
информации и, кроме того, служит для доказательства (проверки) того факта, что
подписанное сообщение или данные не были модифицированы.
Электронная цифровая подпись строится на основе двух компонент:
во-первых, содержания информации, которая подписывается, во-вторых, личной
информации (код, пароль, ключ) того, кто подписывает. Очевидно, что изменение
каждой компоненты приводит к изменению электронной цифровой подписи.
Схемы, применяемые для создания электронной цифровой подписи,
подробно изложены в литературе, например, в учебном пособии Харин Ю.С., Берник
В.И., Матвеев Г.В. «Математические основы криптологии» [21]. Поэтому здесь
заметим только, что большинство алгоритмов создания электронной цифровой
подписи основаны на шифровании с открытым ключом.
|
При использовании
электронной цифровой подписи для защиты авторских прав на компьютерные
программы необходимо учитывать, что
электронная цифровая подпись только тогда может выступать в качестве информации
об управлении правами на компьютерную программу, если она приложена к каждому
экземпляру (копии) программы.
___________________________________________________________
Подробнее
1.
Методы
компьютерной стеганографии - Б.В. Артехин. Стеганография [29]; В.А. Клопов,
О.В. Мотуз. Основы компьютерной стеганографии [30]; М. Тигулев. «Стеганозавр,
или Тайнопись на кормпьютере» [34].
2.
Технологии
и системы защиты авторских прав на мультимедийную продукцию - А. Николенко.
«Этот цифровой, цифровой мир...» [31].
3.
История
стеганографии - В каждом рисунке солнце [32].
4.
Стеганографические
программные продукты - А. Карасев. «Компьютерная тайнопись» [33].
5.
Технология
Digital Water Marc - сайт
компании DigiMakc по адресу www.digimarc.com; Николенко
А. «Американская цифровая мечта» [35].
6.
Математические
основы электронной цифровой подписи -
Харин Ю.С., Берник В.И., Матвеев Г.В. «Математические основы криптологии» [21] стр. 263-285.