Скриване на данни в данни, Windows IT Pro
![]() |
Екран 1. Пример за съдържанието на шифрован текстов файл. |

Стеганографията е метод за скриване на информация. Ако целта на криптографията е да направи едно съобщение нечетливо за тези, за които не е предназначено, тогава задачата на стеганографията е да направи така, че външни лица изобщо да не заподозрат предаването на съобщението. И въпреки че има много методи за стеганография, същността на въпроса е същата. Нека разгледаме по-отблизо различните методи на стеганография, които ви позволяват да скриете данни ръчно или автоматично с помощта на програма.
Стеганографски методи
Някои от методите на стеганография са ни познати от шпионски филми – невидимо мастило, вграждане на невидими съобщения в текст и използването на микроточки (за повече информация относно тези методи вижте страничната лента „Други видове стеганография“). С развитието на компютрите и мрежите се появиха нови начини за скриване на информация, например:
Стеганографски процес
Цялостният процес на стеганография може да бъде изразен с формулата:
Където cover_medium е основният файл, съдържащ скритите_данни, криптирани със stego_key. Резултатът е stego_medium медия, която е от същия тип като оригиналния файл cover_medium. Въпреки това файлът cover_medium (и следователно stego_medium) е незабележимо стандартно изображение или аудио файл. Ще взема файлове с изображения като пример, така че вместо термините cover_medium и stego_medium ще използвам съответно cover_image и stego_image.
Преди да обсъдим как да скриете данни в изображение, нека ви напомня за формата за съхранение на файлове с изображения. Изображението е двоичнофайл, който съдържа информация за цвета и яркостта на всяка точка от изображението (пиксел). Обикновено се използва 8-битово или 24-битово цветово представяне.
В 8-битово изображение всяка точка съответства на 8-битово цветово описание от палитра от 256 цвята. 24-битовото представяне на изображението дава много по-разнообразна палитра - могат да се използват повече от 16 милиона цвята. В 24-битово изображение всеки пиксел се съхранява в три байта, които описват яркостта на трите основни цвята – червен, зелен, син (Red, Green, Blue, RGB).
HTML форматът за описание на цвета на страниците в Интернет използва 24-битово представяне на цветовете. RGB стойността, представена от шест шестнадесетични цифри, се използва за описание на цвета. И така, представяне на оранжев цвят, който има 100% червено, 50% зелено и 0% синьо, ще изглежда така.
За 100% червено:
След това 50% зелено:
И накрая, 0% циан:
Които заедно образуват #FF7F00 представянето за оранжево в HTML кода. Символът хеш показва шестнадесетична стойност.
Размерът на файла на изображението е пряко свързан с броя на пикселите и точността на цветовото представяне. И така, 8-битово цветно изображение от 640 * 480 пиксела ще отнеме 307 KB (640 * 480 * 1 байта), а 24-битово изображение от 1024 * 768 ще отнеме 2,36 MB (1024 * 768 * 3 байта).
Както виждаме, цветните изображения са доста големи. За щастие има няколко налични метода за компресиране за намаляване на изискванията за съхранение и предаване на цветни изображения. Форматите BMP и GIF използват алгоритми за компресия без загуби за точно възстановяване на оригиналното изображение. Има и алгоритми за компресиране с изкривяване на информацията, пример еслужи JPG формат. В този случай възстановеното изображение е почти същото като оригинала, но все пак има някои разлики. Въпреки че и двата вида алгоритми могат да се използват за стеганография, инструментите за стеганография за JPG са много по-сложни от тези за BMP и GIF.
Как да скриете данните ръчно
Най-лесният начин да скриете данните е да замените най-малко значимия бит (Least Significant Bit, LSB - най-малко значимият бит). Същността на този метод е, че се взема двоичното представяне на секретната информация hidden_data и във всеки байт от оригиналното изображение на cover_image, ниският LSB бит се презаписва. Ако използвате 24-битово изображение като cover_image, промените ще бъдат фини и невидими с просто око. За да скриете девет бита данни, да речем 101101101, трябва да промените само 3 пиксела (9 байта) в RGB кодиране:
Променяйки най-малко значимата цифра от ляво на дясно отгоре надолу, получаваме резултата (променените цифри са с удебелен шрифт)
За да се кодират успешно девет бита секретни данни, беше необходимо да се заменят само четири бита от оригиналното изображение, което е приблизително 50% от най-малко значимите битове. Същият метод може да се използва за сиви и 8-битови цветни изображения. Вярно е, че в осембитово цветно изображение изкривяването ще бъде по-забележимо.
Използването на стеганография не гарантира абсолютна защита, тъй като ако някой целенасочено търси тайни съобщения, те могат да бъдат открити и в този случай. Има цяло изкуство за анализиране, откриване и дешифриране на методите на стеганографията. Един от начините за откриване на съобщение, скрито от метода LB, е да се анализира цветовата палитра на изображението. Мнозинствоизображенията имат собствена цветова палитра. Изображение, съдържащо секретна информация, ще има "двойна" палитра, тъй като някои от LSB битовете ще бъдат променени. Ако анализът на изображението разкрие твърде много „двойни“ цветове, много вероятно е в изображението да е скрито тайно послание.
Въпреки че анализът на стеганографските методи може да разкрие скрити послания, количеството информация, което трябва да се анализира, прави задачата изключително трудна. Да кажем, че има подозрение, че има данни в изображение, публикувано на сайт за интернет търг. И какво, изтеглете от мрежата и анализирайте всички стотици или хиляди изображения, съхранени на сайта? Едва ли някой ще го направи.
Скриване на секретни данни с помощта на програми
Ако желаете, можете да намерите много програми за стеганография за почти всяка платформа. Ето списък на някои популярни безплатни софтуери за Windows 2000 и Windows NT:
Нека да разгледаме по-отблизо как да използвате S-Tools. Тази програма ви позволява да скриете данни във файлове с изображения във формати .bmp, .gif и в звукозаписи във формат .wav. Програмата е лесна за използване: просто плъзнете файл със запис на изображение или звук (cover_medium) в прозореца на работещата програма S-Tools, след това плъзнете файла hidden_data върху него и посочете stego_key. Резултатът от програмата ще бъде файлът stego_medium.
Например, избрах файла 5th_wave.gif (cover_image) като носител и го плъзнах в прозореца на програмата. Бележката в долния ред казва, че можете да скриете изображение до 138 547 байта във файла. Избрах файла virusdetectioninfo.txt от 14 KB и го плъзнах върху изображението. Екран 2 показва диалогов прозорец, който се отваря и ви казва какво ще се случи.6019 байта данни са скрити и се предлага да се въведе допълнителна фраза - парола за криптиране на скрития текст. Въведох паролата два пъти и потвърдих криптирането с IDEA алгоритъма по подразбиране.
![]() |
Екран 2. Скриване на текстовия файл във файла с изображение. |
Екран 3 показва полученото изображение, съдържащо моето криптиране. При визуално сравнение изображенията са идентични.
![]() |
Екран 3. Сравнете изображението, съдържащо скритите данни (вдясно) с оригинала (вляво). |
Получателят на това съобщение ще плъзне файла в прозореца на S-Tools, ще щракне с десния бутон върху снимката и ще избере Reveal. Правилната парола, въведена в диалоговия прозорец, ще прочете информацията, скрита в изображението, както показва Фигура 4. За да запишете декриптираните данни във файл, просто щракнете върху OK.
![]() |
Екран 4: Извличане на текстов файл от файл с изображение. |
Прилагане на стеганография в реалния живот
Други видове стеганография
Докато повечето съвременни стеганографски методи използват сложна технология, има други методи, които изискват малко или никакви изчисления. Един от често срещаните прости стеганографски методи е null chipper - съобщението е криптирано от първите (или други фиксирани) букви от всяка дума от очевидно безобидно текстово съобщение. Например, шпионин по време на Първата световна война може да изпрати следното съобщение по телеграфа:
РЕШЕНИЕТО НА ПРЕЗИДЕНТА ЗА ЕМБАРГОТО ТРЯБВА ДА БЪДЕ ОБЯВЛЕНО НЕЗАБАВНО. ТЕЖКА СИТУАЦИЯ, ЗАСЯГАЩА МЕЖДУНАРОДНОТО ПРАВО. ИЗЯВЛЕНИЕ ПРЕДВЕЩАВА РАЗРУШЕНИЕ НА МНОГО НЕУТРАЛНИ. ЖЪЛТИ ЖУРНАЛИОБЕДИНЯВАЩО ИЗКЛЮЧИТЕЛНО НАЦИОНАЛНОТО ВЪЛНЕНИЕ.» („Президентският указ за ембаргото трябва да бъде приложен незабавно. Сериозната ситуация засяга международното право. Изявлението предсказва колапс на много неутрални държави. Таблоидната преса раздува националните настроения.“)
Друг метод на стеганография е използването на шаблони (лист хартия със слотове за букви) или набор от предварително дефинирани позиции на страница, в която съобщението е криптирано. В този случай изпращачът и получателят трябва да използват идентични шаблони или набори от правила. Опциите за метода на шаблона включват:
- пунктирани точки на картата, което ви позволява да изберете желаните букви;
- умишлени грешки за подчертаване на отделни букви или думи;
- незабележими промени в интервалите между думите или буквите;
- използване на малко по-различни шрифтове за подчертаване на букви и думи (няма да забележите разликата между Courier и Courier New, освен ако специално не търсите разликата).
Някои стеганографи смятат, че говорителите на навахо кодове на морската пехота на САЩ, използвани по време на Втората световна война, са вид стеганография. Съобщенията не бяха криптирани, но обикновеният текст беше език, който японците не разбираха.
Най-старият метод на стеганография е използван от египетските фараони - да обръснат главата на куриера, да татуират послание върху кожата и да изчакат да порасне нова коса. Получателят на съобщението отново обръсна куриера и можеше да прочете скритото съобщение. Този метод всъщност не изисква специални технически средства и директно изразява смисъла на стеганографията - да се скрие написаното.
Дялматериал с колеги и приятели