В связи с постоянным повышением уровня развития информационных технологий с каждым годом электронные документы становятся всё более удобными и востребованными в использовании и начинают доминировать над традиционными бумажными носителями информации. Поэтому очень важно вовремя обратить внимание на защиту содержания информации не только на традиционных бумажных носителей, но и на электронных документах. Каждая крупная компания, которая имеет коммерческие, государственные и иные тайны, хочет предотвращать возможные утечки информации и компрометации секретных сведений, а при обнаружении утечки принимать меры по прекращению утечек и выявлению нарушителя.
Немного о вариантах защиты
Для выполнения данных задач вводят определенные защитные элементы. Такими элементами могут-быть штрих-коды, видимые метки, электронные метки, но самыми интересными являются скрытые метки. Одними из самых ярких представителей являются водяные знаки, они могут быть нанесены на бумагу либо добавляться перед печатью на принтере. Уже ни для кого не секрет, что принтеры ставят свои водяные знаки (желтые точки и прочие метки) при печати, но мы будем рассматривать другие артефакты, которые могут быть проставлены на экране компьютера, на рабочем месте сотрудника. Такие артефакты генерируются специальном программным комплексом, который дорисовывает артефакты поверх рабочего пространства пользователя, минимизируя заметность самих артефактов и не мешая работе пользователя. Эти технологии имеют древние корни с точки зрения научных разработок и используемых алгоритмов представления скрытой информации, но в современном мире достаточно редко встречаются. В основном данный подход встречаются в военной сфере и на бумажных носителях, для оперативного выявления недобросовестных служащих. Коммерческую среду данные технологии только начинают осваивать. Сейчас активно начинают применяться видимые водяные знаки для защиты авторских прав разных медиа файлов, а вот невидимые встречаются достаточно редко. Но они и вызывают самый большой интерес.
Артефакты безопасности
Невидимые для человека Водяные знаки образуют разные артефакты, которые могут быть в принципе незаметны глазу человека, могут маскироваться в изображении в виде очень маленьких точек. Мы рассмотрим видимые объекты, так как невидимые глазу могут находиться за пределами стандартного цветового пространства большей части мониторов. Данные артефакты имеют особую ценность, в связи с их высокой степенью невидимости. Однако сделать полностью невидимыми ЦВЗ невозможно. В процессе их внедрения в изображение вносятся определенного рода искажения изображения контейнера, на нем появляются некого рода артефакты. Рассмотрим 2 типа объектов:
- Цикличные
- Хаотичные (внесенные путем преобразования изображения)
Цикличные представляют собой определенную конечную последовательность повторяющихся элементов, которая повторяется ни раз на изображении экрана (Рис. 1).
Хаотичные артефакты могут быть вызваны разного рода преобразованиями накладываемого изображения (Рис. 2), например, внедрение голограммы.
Рис. 1 Цикличные артефакты
Рис. 2 Хаотичные артефакты
Для начала рассмотрим варианты распознания цикличных артефактов. Такими артефактами могут быть:
- текстовые водяные знаки, повторяющиеся по всему экрану
- бинарные последовательности
- набор хаотичных точек в каждой ячейке сетки
Все перечисленные артефакты наносятся непосредственно поверх отображаемого контента, соответственно их можно распознать путем выявления локальных экстремумов гистограммы каждого из цветовых каналов и соответственно вырезать все остальные цвета. Этот способ подразумевает работу с комбинациями локальных экстремумов каждого из каналов гистограммы. Проблема упирается в поиск локальных экстремумов на достаточно, сложном изображении с множеством резко переходящих деталей, гистограмма выглядит очень пилообразной, что делает данный подход неприменимым. Можно попытаться применять различные фильтры, но они внесут свои искажения, которые в конечном счете могут привести к невозможности выявления водяного знака. Так же есть вариант распознавания данных артефактов с помощью определенных детекторов границ (например, детектор границ Канни). Данные подходы имеют своё место для достаточно резких по переходу артефактов, детекторами можно выделить конуры изображений и в дальнейшем выбрать цветовые диапазоны внутри контуров для бинаризации изображения с целью дальнейшего выделения самих артефактов, но данные методы требуют достаточно тонкой настройки для выделения требуемых контуров, а также последующей бинаризации самого изображения относительно цветов в выделенных контурах. Данные алгоритмы считаются достаточно ненадежными и стараются использовать более стабильные и не зависящие от вида цветовых составляющих изображения.
Рис. 3 Водяной знак после преобразования
Что же касается хаотичных артефактов, о которых говорилось ранее, алгоритмы их распознавания будут кардинально другими. Поскольку образование хаотичных артефактов предполагается путем наложения на изображение некоего водяного знака, который трансформируют каким-либо из преобразований (например, дискретным преобразование Фурье). Артефакты от таких преобразований распределены по всему экрану и сложно выявить их закономерность. Исходя из этого водяной знак будет расположен по всему изображению в виде «случайных» артефактов. Распознание такого водяного знака сводится к прямому преобразованию изображения с помощью функций преобразований. Результат преобразования представлен на рисунке (Рис. 3).
Но возникает ряд проблем, которые препятствуют распознаванию водяного знака в не идеальных условиях. В зависимости от типа преобразования могут быть разные сложности, например, невозможность распознавания при документе, полученном путем фотографирования под большим углом относительно экрана или просто снимок достаточно плохого качества, или захват экрана, сохраненный в файле со сжатием с большими потерями. Все эти проблемы ведут к усложнению выявления водяного знака, в случае со снимком под углом необходимо применять либо более сложные преобразования, либо применять аффинные преобразования для изображения, но ни одно ни другое не гарантирует полное восстановление водяного знака. Если рассмотреть случай с захватом экрана возникают две проблемы, первая — это искажения при отображении на самом экране, вторая — это искажения при сохранении самого изображения с экрана. Первую достаточно сложно контролировать ввиду того, что существуют матрицы для мониторов разного качества, и ввиду отсутствия того или иного цвета интерполируют цвет в зависимости от своего цветового представления, тем самым внося искажения в сам водяной знак. Вторую ещё сложнее, ввиду того что можно сохранить скриншот в любом формате и соответственно потерять часть цветового диапазона, следовательно, мы можем просто потерять сам водяной знак.
Проблемы внедрения
В современном мире существует достаточно много алгоритмов внедрения водяных знаков, но ни один не гарантирует 100% возможность дальнейшего распознания водяного знака после его внедрения. Основную сложность представляет определение комплекса условий воспроизведения, которые могут возникнуть в каждом конкретном случае. Как говорилось ранее сложно создать распознающий алгоритм, который бы учитывал все возможные особенности искажений и попыток повреждений водяного знака. Например, если на текущее изображение применить Гауссов фильтр, и при этом артефакты на исходном изображении были достаточно мелкими и контрастными на фоне изображения, то распознать их становится либо невозможно, либо часть водяного знака будет потеряна. Рассмотрим случай фотоснимка, с большой долей вероятности на нем будет муар (Рис. 5) и «сетка» (Рис. 4). Муар возникает из-за дискретности матрицы экрана и дискретности матрицы снимающей аппаратуры, в этой ситуации получается наложение двух сетчатых изображений друг на друга. Сетка скорее всего частично перекроет артефакты водяного знака и вызовет проблему распознавания, муар в свою очередь в некоторых методах внедрения водяного знака делает невозможным его распознание, так как он перекрывает часть изображения с водяным знаком.
Рис. 4 Сетка изображения
Рис. 5 Муар
Для того чтобы повысить порог возможности распознания водяных знаков необходимо применять алгоритмы, основанные на самообучаемых нейронных сетях и в процессе эксплуатации, которые будут сами обучаться распознаванию образов водяных знаков. Сейчас существует огромное количество нейросетевых инструментов и сервисов, например, от Google. При желании можно найти набор эталонных изображений и научить нейронную сеть распознавать необходимые артефакты. Данный подход имеет самые перспективные шансы на выявление даже сильно искаженных водяных знаков, но для быстрого выявления требует больших вычислительных мощностей и достаточно долгое обучение для корректного выявления.
Всё описанное кажется достаточно простым, но чем глубже погружаешься в данные вопросы тем больше понимаешь, что для распознавания водяных знаков необходимо потратить много времени на реализацию любого из алгоритмов, и ещё больше времени на доведение его до нужной вероятности распознавания каждого изображения.