Стеганографія

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Стеганогра́фія — (з грец. στεγανός — прихований + γράφω — пишу) — тайнопис, при якому повідомлення, закодоване таким чином, що не виглядає як повідомлення — на відміну від криптографії. Таким чином непосвячена людина принципово не може розшифрувати повідомлення — бо не знає про факт його існування.

Якщо криптографія приховує зміст повідомлення, то стеганографія приховує сам факт існування повідомлення.

Історія[ред.ред. код]

Перший запис про використання стеганографії зустрічається в трактаті Геродота «Історія», що відноситься до 440 році до н. е.[1] У трактаті були описані два методи приховування інформації. Демарат відправив попередження про майбутній напад на Грецію, записавши його на дерев'яну підкладку воскової таблички до нанесення воску. Другий спосіб полягав у наступному: на поголену голову раба записувалося необхідне повідомлення, а коли його волосся відростало, він вирушав до адресата, який знову голив його голову і зчитував доставлене повідомлення.

У Китаї листи писали на смужках шовку. Для приховування повідомлень смужки з текстом листа згорталися в кульки, покривалися воском і потім ковталися посильними.

У XV столітті чернець Трітеміус (1462–1516), який займався криптографією і стеганографією, описав багато різних методів прихованої передачі повідомлень. Пізніше, в 1499 році, ці записи були об'єднані в книгу «Steganographia». [2]

Метод приховування інформації за допомогою мікроточки з'явилися відразу ж після винаходу Даґером фотографічного процесу, і вперше у військовій справі були використані в часи франко-пруської війни1870 році), але широкого застосування до Другої світової війни цей метод не мав.

В березні 2000 року 17-річна американська школярка Вівіана Риска (Viviana Risca) створила алгоритм, який може «ховати» повідомлення в генну послідовність ДНК. На конкурсі молодих вчених компанії Intel Science Talent Search вона продемонструвала технологію впровадження комп'ютерних повідомлень в генну послідовність молекули. [3]

Методи[ред.ред. код]

Розглядаючи програмні засоби захисту, доцільно спинитись на стеганографічних методах. Слово «стеганографія» означає приховане письмо, яке не дає можливості сторонній особі взнати про його існування. Одна з перших згадок про застосування тайнопису датується V століттям до н. е. Сучасним прикладом є випадок роздрукування на ЕОМ контрактів з малопомітними викривленнями обрисів окремих символів тексту — так вносилась шифрована інформація про умови складання контракту.

Комп'ютерна стеганографія базується на двох принципах. По-перше, аудіо- і відеофайли, а також файли з оцифрованими зображеннями можна деякою мірою змінити без втрати функціональності. По-друге, можливості людини розрізняти дрібні зміни кольору або звуку обмежені. Методи стеганографії дають можливість замінити несуттєві частки даних на конфіденційну інформацію. Сімейна цифрова фотографія може містити комерційну інформацію, а файл із записом сонати Гайдна — приватний лист.

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

Щодо впровадження засобів програмно-технічного захисту в ІС, розрізняють два основні його способи:

  • додатковий захист — засоби захисту є доповненням до основних програмних і апаратних засобів комп'ютерної системи;
  • вбудований захист — механізми захисту реалізуються у вигляді окремих компонентів ІС або розподілені за іншими компонентами системи.

Перший спосіб є гнучкішим, його механізми можна додавати і вилучати за потребою, але під час його реалізації можуть постати проблеми забезпечення сумісності засобів захисту між собою та з програмно-технічним комплексом ІС. Вмонтований захист вважається більш надійним і оптимальним, але є жорстким, оскільки в нього важко внести зміни. Таким доповненням характеристик способів захисту зумовлюється те, що в реальній системі їх комбінують.

Класифікація стеганографії[ред.ред. код]

В кінці 90-х років виділилося кілька напрямків стеганографії:

  • Класична стеганографія
  • Комп'ютерна стеганографія[4]
  • Цифрова стеганографія

Класична[ред.ред. код]

Одним з найпоширеніших методів класичної стеганографії є використання симпатичних чорнил (невидимих). Зазвичай процес запису здійснюється наступним чином: перший шар — наноситься важливий запис невидимим чорнилом, другий шар — запис видимими чорнилом, що нічого не значить.

Текст, записаний такими чорнилом, проявляється лише за певних умов (нагрівання, освітлення, хімічний проявник і т. д.).

Винайдені ще в I столітті н. е. Філоном Александрійським, ними користувались як в середньовіччі, так і в новітній час, наприклад, у листах революціонерів з російських в'язниць. Написаний звичайним молоком текст на папері між рядків видимого тексту, проявляється при нагріванні над полум'ям (зазвичай свічки).

Існує також чорнило з хімічно нестабільним пігментом. Написане цими чорнилом виглядає як написане звичайною ручкою, але через певний час нестабільний пігмент розкладається, і від тексту не залишається і сліду. Хоча при використанні звичайної кулькової ручки текст можна відновити по деформації паперу, цей недолік можна усунути за допомогою м'якого пишучого вузла, на зразок фломастера.

В якості симпатичних чорнил можуть бути використані найрізноманітніші речовини: лимонна кислота, віск, яблучний сік, молоко, сік цибулі, слина, пральний порошок, аспірин, крохмаль з різними хімічними чи фізичними «декодерами»: температура, сода, йод, солі, заліза, ультрафіолетове світло, для воску навіть крейда чи зубний порошок.

Комп'ютерна стеганографія[ред.ред. код]

Комп'ютерна стеганографія — напрям класичної стеганографії, засноване на особливостях комп'ютерної платформи. Приклади — стеганографічна файлова система StegFS для Linux, приховування даних в невикористовуваних областях форматів файлів, підміна символів в назвах файлів, текстова стеганографія і т. д. Наведемо деякі приклади:

  • Використання зарезервованих полів комп'ютерних форматів файлів — суть методу полягає в тому, що частина поля розширень, не заповнена інформацією про розширення, за замовчуванням заповнюється нулями. Відповідно ми можемо використовувати цю «нульову» частину для запису своїх даних. Недоліком цього методу є низька ступінь скритності і малий обсяг переданої інформації.
  • Метод приховування інформації в невикористовуваних місцях гнучких дисків — при використанні цього методу інформація записується в невживані частини диска, наприклад, на нульову доріжку. Недоліки: маленька продуктивність, передача невеликих за обсягом повідомлень.
  • Метод використання особливих властивостей полів форматів, які не відображаються на екрані — це метод ґрунтується на спеціальних «невидимих» полях для отримання виносок, покажчиків. До прикладу, написання чорним шрифтом на чорному тлі. Недоліки: маленька продуктивність, невеликий обсяг переданої інформації.
  • Використання особливостей файлових систем — при зберіганні на жорсткому диску файл завжди (не рахуючи деяких ФС, наприклад, ReiserFS) займає ціле число кластерів (мінімальних адресуються обсягів інформації). До прикладу, в раніше широко використовуваної файлової системи FAT32 (використовувалася в Windows98/Me/2000) стандартний розмір кластера — 4 Кб. Відповідно для зберігання 1 Кб інформації на диску виділяється 4 Кб інформації, з яких 1Кб потрібен для зберігання файлу,, а інші 3 ні на що не використовуються — відповідно їх можна використовувати для зберігання інформації. Недолік даного методу: легкість виявлення.

Цифрова стеганографія[ред.ред. код]

Розвиток засобів цифрової обчислювальної техніки дав поштовх для розвитку комп'ютерної стеганографії, яка ґрунтується на вбудовуванні секретного повідомлення в цифрові дані, що, як правило, мають аналогову природу (аудіозаписи, зображення, відео). Можливе також вбудовування інформації в текстові та скомпресовані файли.

Цифрова стеганографія — напрям класичної стеганографії, заснований на захованні або впровадженні додаткової інформації в цифрові об'єкти, викликаючи при цьому деякі спотворення цих об'єктів. Але, як правило, дані об'єкти є мультимедіа-об'єктами (зображення, відео, аудіо, текстури 3D-об'єктів) та внесення спотворень, які знаходяться нижче межі чутливості середньостатистичної людини, не призводить до помітних змін цих об'єктів.

Крім того, в цифрованих об'єктах, спочатку мають аналогову природу, завжди присутній шум квантування; також, при відтворенні цих об'єктів з'являється додатковий аналоговий шум і нелінійні спотворення апаратури, все це сприяє більшій непомітності прихованої інформації.

Мережева стеганографія[ред.ред. код]

Останнім часом набули популярності методи, коли прихована інформація передається через комп'ютерні мережі з використанням особливостей роботи протоколів передачі даних. Такі методи одержали назву «мережна стеганографія». Цей термін вперше ввів Кжіштоф Джіпйорскі (Krzysztof Szczypiorski) в 2003 році. Типові методи мережевий стеганографії включають зміна властивостей одного з мережевих протоколів. Крім того, може використовуватися взаємозв'язок між двома або більше різними протоколами з метою більш надійного приховування передачі секретного повідомлення. Мережева стеганографія охоплює широкий спектр методів, зокрема:

  • WLAN стеганографія ґрунтується на методах, які використовуються для передачі стеганограм в бездротових локальних мережах (Wireless Local Area Networks). Практичний приклад WLAN стеганографії — система HICCUPS (Hidden Communication System for Corrupted Networks).
  • LACK стеганографія — приховування повідомлень під час розмов з використанням IP-телефонії. Наприклад: використання пакетів, що затримуються, або навмисно пошкоджуються та ігноруються приймачем (цей метод називають LACK — Lost Audio Packets Steganography), або приховування інформації в полях заголовку, які не використовуються.

VoIP (англ. voice over IP) — технологія передачі медіа даних в реальному часі за допомогою сімейства протоколів TCP/IP. IP-телефонія — система зв'язку, при якій аналоговий звуковий сигнал від одного абонента дискретизується (кодується в цифровий вигляд), компресується і пересилається по цифрових каналах зв'язку до іншого абонента, де проводиться зворотна операція — декомпресія, декодування і відтворення. Розмова відбувається у формі аудіо-потоків за допомогою протоколів RTP (Real-Time Transport Protocol)

LACK — це метод стеганографії для IP-телефонії, який модифікує пакети з голосовим потоком. Він використовує те, що в типових мультимедійних комунікаційних протоколах, таких як RTP, надмірно затримані пакети вважаються приймачем марними і відкидаються.

Принцип функціонування LACK виглядає наступним чином. Передавач (Аліса) вибирає один з пакетів з голосового потоку і його корисне навантаження замінює бітами таємного повідомлення — стеганограмою, яка вбудовується в пакет. Потім обраний пакет навмисно затримується. Кожного разу, коли надмірно затриманий пакет досягає отримувача, незнайомого з стеганографічною процедурою, він відкидається. Однак, якщо отримувач (Боб) знає про прихований зв'язок, то замість видалення отриманих RTP пакетів, він вилучає приховану інформацію[5].

Алгоритми[ред.ред. код]

Існуючі алгоритми вбудовування таємної інформації можна поділити на декілька підгруп:

  • Працюючі з самим цифровим сигналом. Наприклад, метод LSB (Least Significant Bit);
  • «Впаювання» прихованої інформації. В даному випадку відбувається накладення приховуваного зображення (звуку, іноді тексту) поверх оригіналу. Часто використовується для вбудовування ЦВЗ (цифровий водяний знак).
  • Використання особливостей форматів файлів. Сюди можна віднести запис інформації в метадані або в різні інші не використовувані зарезервовані поля файлу.

За способом вбудовування інформації стегоалгоритми можна розділити на лінійні (адитивні: А17, А18, Ь18Б, А21, А25), нелінійні та інші.

LSB (Least Significant Bit)[ред.ред. код]

LSB (Least Significant Bit, найменший значущий біт) — суть цього методу полягає в заміні останніх значущих бітів у контейнері (зображення[6], аудіо[7] або відеозапису) на біти приховуваного повідомлення. Різниця між порожнім і заповненим контейнерами повинна бути не відчутна для органів сприйняття людини.

Принцип цього методу полягає в наступному: Припустимо, є 8-бітне зображення в градаціях сірого. 00h (00000000b) позначає чорний колір, FFh (11111111b) — білий. Усього є 256 градацій (2 ^ 8). Також припустимо, що повідомлення складається з 1 байта — наприклад, 01101011b. При використанні 2 молодших біт в описах пікселів, нам буде потрібно 4 пікселя. Припустимо, вони чорного кольору. Тоді пікселі, що містять приховане повідомлення, будуть виглядати наступним чином: 00000001 00000010 00000010 00000011. Тоді колір пікселів зміниться: першого — на 1/255, другого і третього — на 2/255 і четвертого — на 3/255. Такі градації, мало того що непомітні для людини, можуть взагалі не відобразитися при використанні низькоякісних пристроїв виведення. В ролі базового контейнера пропонується використовувати файли BMP-зображень високої роздільності з глибиною кольору 24 та 32 біти, таємне зображення може мати розширення .BMP, .GIF, .PNG, .JPEG.

Недоліком методу LSB є чутливість до розміру зображення, тобто чим менший розмір зображення, тим більше будуть відрізнятися два сусідні пікселі, тому пропонується використовувати зображення з великою роздільністю. Також метод «видає себе» при побітовому перегляді зображення, де чітко видно області зображення в які «вбудовано» таємну інформацію. Попри це, метод запису Least Sagnificant Bit є досить популярним, стійким та простим в реалізації.

Підвиди LSB-алгоритмів для растрових зображень без палітри[ред.ред. код]

BlindHide (приховування наосліп). Найпростіший алгоритм: дані записують, починаючи з верхнього лівого кута зображення до правого нижнього — піксел за пікселем. Приховані дані програма записує у наймолодших бітах кольорів пікселя. Приховані дані розподіляються у контейнері нерівномірно. Якщо приховані дані не заповнять повністю контейнер, то лише верхня частина зображення буде засміченою.

HideSeek (заховати-знайти). Цей алгоритм у псевдовипадковий спосіб розподіляє приховане повідомлення у контейнері. Для генерації випадкової послідовності використовує пароль. Дещо «розумніший» алгоритм, але все ж не враховує особливостей зображення-контейнера.

FilterFirst (попередня фільтрація). Виконує фільтрацію зображення-контейнера — пошук пікселів, у які записуватиметься прихована інформація (для яких зміна наймолодших розрядів буде найменш помітною для ока людини).

BattleSteg (стеганографія морської битви). Найскладніший і найдосконаліший алгоритм. Спочатку виконує фільтрацію зображення-контейнера, після чого прихована інформація записується у «найкращі місця» контейнера у псевдовипадковий спосіб (подібно, як у HideSeek).

Інші методи приховування інформації в графічних файлах орієнтовані на формати файлів з втратою, наприклад, JPEG. На відміну від LSB вони більш стійкі до геометричних перетворень. Це виходить за рахунок варіювання в широкому діапазоні якості зображення, що призводить до неможливості визначення джерела зображення.

Цифрові водяні знаки (ЦВЗ)[ред.ред. код]

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

Цифровий водяний знак (ЦВЗ) — технологія, створена для захисту авторських прав мультимедійних файлів та інтелектуальної власності контейнера (Intellectual Property). Зазвичай цифрові водяні знаки невидимі. Однак ЦВЗ можуть бути видимими на зображенні або відео. Зазвичай це інформація являє собою текст або логотип, який ідентифікує автора.

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

ЦВЗ можна також використовувати для виявлення потенційних піратів: під час продажу в зображення вбудовують інформацію про час продажу та інформацію про покупця. Ключовою відмінністю ЦВЗ від звичайного приховання інформації є наявність активного противника. Наприклад, використовуючи ЦВЗ для захисту авторського права, активний противник намагатиметься видалити чи змінити вбудовані ЦВЗ. Тому основною вимогою є стійкість вбудованих даних до атак. Таємність не є настільки важливою, як у прихованій комунікації.

Програмні реалізації[ред.ред. код]

Примітки[ред.ред. код]

  1. Fabien A. P. Petitcolas, Ross J. Anderson and Markus G. Kuhn. Information Hiding: A Survey 87 (1999) С. 1062–1078. — DOI:10.1109/5.771065.
  2. Reeds, Jim (1998). «Solved: The ciphers in book III of Trithemius's Steganographia». Cryptologia.  (PDF, 209KiB)
  3. «2001 Intel Science Talent Search Winners». 
  4. Пузиренко, Олександр (2006). «Комп’ютерна стеганографія. Теорія і практика». Монографія.  (PDF, 6,03MB)
  5. Коркач І.В., Пирогова Ю.І. Використання технологій IP-телефонії для прихованої передачі інформації. 9 Інформаційна безпека людини, суспільства, держави (2012) С. 124–128. — DOI:004.056.5 (045).
  6. Пузиренко, Олександр (2005). «Використання пакету Mathcad v.12 для стеганографічного приховання секретних повідомлень у графічних файлах». Стаття.  (PDF, 403,38kB)
  7. Пузиренко, Олександр (2005). «Використання пакету Mathcad v.12 для стеганографічного приховання секретних повідомлень в аудіофайлах». Стаття.  (PDF, 264,33kB)


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.