Програми за цифрова стеганография и методи за изпълнение
Цифрова стеганография
Възможността да се скрият някои данни в други може да позволи на нападателя тайно да открадне много чувствителна информация.
- Стеганография, не стенография
- Стеганография: Малко теория
- Стеганографията на практика
- Програми за стеганография
- ImageSpyer G2
- StegoTC G2TC
- червен jpeg
- DarkCryptTC и проектът Zarya
Проблемът със скриването на данни тревожи човечеството от древни времена. Шифърите обикновено се използват за защита на информация. Тяхната надеждност може да е различна, но докато врагът успее да я разбие, информацията вече ще е стара.
В ерата на цифровите технологии ситуацията се промени донякъде: изчислителните възможности на компютрите непрекъснато се увеличават и освен това се появи огромен брой комуникационни канали, чрез които може да се предава информация. В същото време кражбата на данни стана много по-лесна.
Ако по-рано не съвсем честен служител трябваше да скрие хартиено копие, за да извади някакъв таен чертеж или документ, тогава в ерата на цифровите технологии стана много по-лесно да се извадят тайни. Шифрованият файл може да бъде изпратен по мрежата или може да бъде пуснат на преносим носител, USB флаш устройство и скрит в джоб.
Следващата очевидна стъпка в това "конкуренция на броня и снаряд" би трябвало да бъде криптирането на информацията, извършено с по-нататъшно предаване през описаните по-горе канали. Но самият опит за прехвърляне на файл, който не може да бъде прочетен навън, би трябвало да предизвика сериозно подозрение сред охранителите и да бъде блокиран от съответния софтуер. Но можете да опитате да скриете криптираните даннивътре в друго съдържание. Така плавно се приближихме до основната тема на тази статия - стеганографията.
Стеганография, не стенография
Статията в Wikipedia ни казва, че стеганографията (буквално преведена от гръцки като „криптография“) е наука за скритото предаване на информация чрез запазване на самия факт на предаване в тайна. За разлика от криптографията, която крие съдържанието на тайно съобщение, стеганографията крие самия факт на съществуването му. Въпреки че обикновено тези две технологии се използват заедно.
Но в статията ще опиша използването на стеганография като средство за кражба на данни. Нека започнем, като разгледаме някои теоретични въпроси. Веднага ще направя резервация, че като говоря за техническите методи за прилагане на стеганография, ще засегна само цифровата стеганография, тоест скриването на информация в други цифрови данни. В същото време няма да засягам методи, базирани на използването на запазени дялове на твърд или флопи диск от различни файлови системи или методи, свързани с особеностите на функционирането на различни хардуерни платформи и операционни системи. В тази статия ще се интересуваме само от файлове с различни формати и възможността за създаване на кешове в тях.
Стеганография: Малко теория
На първо място, предлагам да разгледаме основните алгоритми, които се използват за стеганография.
Нека разгледаме малък пример. Да кажем, че имаме 8-битово изображение в нива на сивото. 00h (00000000b) е черен, FFh (11111111b) е бял. Има общо 256 степени ( ). Да предположим също, че съобщението се състои от 1 байт - например 01101011b. Когато използваме двата най-малко значими бита в описанието на пикселите, имаме нужда от 4 пиксела. Да кажем, че са черни. След това пикселите, съдържащи скритотосъобщението ще изглежда така: 00000001 00000010 00000010 00000011. Тогава цветът на пикселите ще се промени: първият - с 1/255, вторият и третият - с 2/255 и четвъртият - с 3/255. Такива градации не само са незабележими за хората, но може и изобщо да не се показват при използване на изходни устройства с ниско качество.

Трябва да се отбележи, че LSB методите са нестабилни към различни видове "шум". Например, ако върху предаденото съдържание се наложат „боклуци“, това изкривява както оригиналното съдържание, така и (което е особено важно за нас) скритото съобщение. Понякога дори става нечетливо. Подобна техника се използва за други формати.
И третият метод е да се използват особеностите на файловите формати. Например, това може да бъде запис на информация в метаданните, използвани от даден файлов формат, или в различни други неизползвани запазени полета. Например, това може да бъде документ на Microsoft Word, вътре в който ще бъде скрита информация, която не се показва по никакъв начин при отваряне на документа.
Аудио стеганография
Друг метод за скриване на информация, който е приложим само за аудио файлове, е ехо методът. Той използва неравномерно разстояние между ехото, за да кодира поредица от стойности. В общия случай е възможно да се създадат условия, при които тези сигнали да бъдат невидими за човешкото възприятие. Ехо сигналът се характеризира с три параметъра: начална амплитуда, степен на затихване и закъснение. Когато се достигне определен праг между сигнала и ехото, те се смесват. В този момент човешкото ухо вече не може да прави разлика между двата сигнала. Две различни закъснения се използват за указване на логическа нула и единица. И двете трябва да са по-ниски от прагачувствителността на ухото на слушателя към полученото ехо.
На практика обаче този метод също не е много надежден, тъй като не винаги е възможно да се определи точно кога е предадена нула и кога е предадена единица, и в резултат на това има голяма вероятност за изкривяване на скритите данни.
Друг случай на използване на стеганография в аудио файлове е фазовото кодиране. Оригиналният звуков елемент е заменен от относителна фаза, която е тайното послание. Фазата на последователните елементи трябва да се добави по такъв начин, че да се поддържа относителната фаза между оригиналните елементи, в противен случай ще има изкривяване, забележимо за човешкото ухо.
Днес фазовото кодиране е един от най-ефективните методи за скриване на информация.
Стеганографията на практика
С това мисля, че можем да приключим с теорията и трябва да преминем към практическите аспекти на прилагането на стеганографията. Няма да описвам комерсиални решения, а ще се огранича до история за малки безплатни помощни програми, които нападателят може лесно да използва, дори без да има администраторски права в системата.
Програми за стеганография
Като файл за съхранение на данни използвах изображение 1680x1050, запазено в различни формати: BMP, PNG, JPEG. Скритият документ беше текстов файл с размер около 40 Kb. Всички описани програми се справиха със задачата: текстовият файл беше успешно записан и след това извлечен от изходния файл. В същото време не са открити забележими изкривявания на картината. Следните помощни програми могат да бъдат изтеглени от сайта.
Авторът на всички програми, разгледани в този преглед, е Александър Мясников.
ImageSpyer G2
Помощна програма за скриване на информация в графични файловеизползване на криптография. В същото време се поддържат около 30 алгоритъма за криптиране и 25 хеш функции за криптиране на контейнери. Скрива количество, равно на броя на пикселите в изображението. По избор е налично скрито компресиране на данни.

Помощната програма е съвместима с Windows 8. Форматите BMP, JPEG, WMF, EMF, TIFF могат да се използват като изходни графични файлове.
Изтеглете ImageSpyer G2 безплатно, можете да следвате тази връзка.
StegoTC G2TC
Плъгинът за стеганографско архивиране (wcx) за Total Commander ви позволява да скриете данни във всяко изображение, като същевременно поддържа BMP, TIFF и PNG формати.
Безплатно изтегляне на StegoTC G2, можете да следвате тази връзка.

Професионалната разширена версия на RedJPEG XT е допълнена с маскиране на факта на инжектиране и подобрена процедура за инициализиране на шифъра на потока въз основа на характеристиките на изображението. x86 и x86-64 компилации са включени.
Има и RedJPEG XT за TS WCX плъгин Total Commander, който има подобна функционалност.
Изтеглете RedJPEG безплатно, можете да следвате тази връзка.
DarkCryptTC и проектът Zarya
Тази програма може да се нарече най-мощното стеганографско решение. Той поддържа над сто различни симетрични и асиметрични крипто алгоритми. Включва поддръжка за собствена плъгин система, предназначена за блокови шифри (BlockAPI), текстова, аудио и графична стеганография (включително истинска JPEG стеганография), мощен генератор на пароли и система за унищожаване на информация и ключове.

Списъкът с поддържаните формати е наистина впечатляващ: *.txt, *.html, *.xml, *.docx, *. odt, *.bmp, *jpg, *.tiff, *.png, *.jp2, *.psd, tga, *.mng, *.wav, *.exe, *.dll.
Наборът от програми за стеганография не е твърде голям, но е напълно достатъчен за ефективно скриване на информация във файлове с различни формати.
Изтеглете DarkCryptTC безплатно, можете да следвате тази връзка.
Също така, на нашия сайт има други материали, свързани със стеганографията. За да търсите всички програми и книги, потърсете думата "Стеганография"
Направи си сам стеганография
За тези, които са запознати с програмирането, по-специално с Visual Studio и C#, мога също да препоръчам доста интересен сайт, където можете да намерите изходните текстове на стеганографски помощни програми за различни формати на данни: за работа с графични формати и за скриване на информация, например в ZIP архиви. Общият принцип на такова преобразуване е да се използват заглавките на архивираните файлове. Фрагментът на изходния код за работа с ZIP архиви изглежда така:
private void ZipFiles(string destinationFileName, ↵ string password) FileStream outputFileStream = ↵ new FileStream(destinationFileName, ↵ FileMode.Create); ZipOutputStream zipStream = ↵ нов ZipOutputStream(outputFileStream); bool isCrypted = невярно; ако (парола != null && парола.Дължина > 0) < //шифроване на zip файла, ако е дадена парола zipStream.Password = парола; isCrypted = вярно; > foreach(ListViewItem viewItem в lvAll.Items) inputStream = нов FileStream(viewItem.Text, ↵ FileMode.Open); zipEntry = нов ICSharpCode.SharpZipLib.Zip.ZipEntry( ↵ Path.GetFileName(viewItem.Text)); zipEntry.IsVisible = viewItem.Checked; zipEntry.IsCrypted = isCrypted; zipEntry.CompressionMethod = ↵ CompressionMethod.Deflated; zipStream.PutNextEntry(zipEntry); CopyStream(inputStream, zipStream); inputStream.Close(); zipStream.CloseEntry(); > zipStream.Finish(); zipStream.Close(); >
На посочения сайт можете да намерите много примери за изходни кодове с всякаква сложност, така че изучаването на практически реализации на стеганографията за тези, които желаят, няма да бъде трудно.