CarrierEdit
Nośnik jest sygnałem, strumieniem lub plikiem danych, w którym ukryte dane są ukryte poprzez dokonanie subtelnych modyfikacji. Przykłady obejmują pliki audio, pliki graficzne, dokumenty i pliki wykonywalne. W praktyce, nośnik powinien wyglądać i działać tak samo jak oryginalny, niezmodyfikowany nośnik i powinien wydawać się łagodny dla każdego, kto go bada.
Pewne właściwości mogą wzbudzić podejrzenia, że plik zawiera ukryte dane:
- Jeśli ukryte dane są duże w stosunku do zawartości nośnika, jak w pustym dokumencie o rozmiarze megabajta.
- Używanie przestarzałych formatów lub słabo obsługiwanych rozszerzeń, które łamią powszechnie używane narzędzia.
Wymogiem kryptograficznym jest, aby nośnik (np. zdjęcie) był oryginalny, a nie był kopią czegoś publicznie dostępnego (np., pobranego). Dzieje się tak dlatego, że publicznie dostępne dane źródłowe mogłyby zostać porównane z wersją z osadzoną ukrytą wiadomością.
Słabszym wymogiem jest to, że osadzona wiadomość nie zmienia statystyk nośnika (lub innych metryk) w taki sposób, że obecność wiadomości jest wykrywalna. Na przykład, jeśli najmniej znaczące bity czerwonego kanału kamery-pikseli obrazu mają rozkład gaussowski biorąc pod uwagę stałe kolorowe pole, prosta steganografia obrazu, która produkuje losowy rozkład tych bitów może pozwolić na dyskryminację obrazów stego od niezmienionych.
Sama objętość nowoczesnych (ca 2014) i inane mediów o wysokiej przepustowości (np, youtube.com, źródła bittorrent. eBay, Facebook, spam, itp.) zapewnia wiele okazji do ukrytej komunikacji.
ChainEdit
Ukryte dane mogą być podzielone między zestaw plików, tworząc łańcuch nośników, który ma tę właściwość, że wszystkie nośniki muszą być dostępne, niezmodyfikowane i przetwarzane w odpowiedniej kolejności w celu odzyskania ukrytych danych. Ta dodatkowa cecha bezpieczeństwa jest zwykle osiągana przez:
- użycie innego wektora inicjalizacyjnego dla każdego nośnika i przechowywanie go wewnątrz przetwarzanych nośników -> CryptedIVn = Crypt( IVn, CryptedIVn-1 )
- zastosowanie innego algorytmu kryptograficznego dla każdego nośnika i wybranie go za pomocą equiprobabilistycznego algorytmu zależnego od porządku łańcucha
Solidność i kryptografiaEdit
Narzędzia do steganografii mają na celu zapewnienie solidności wobec nowoczesnych metod kryminalistycznych, takich jak steganaliza statystyczna. Taka odporność może być osiągnięta przez zrównoważone połączenie:
- procesu kryptografii opartego na strumieniu;
- procesu wybielania danych;
- procesu kodowania.
Jeśli dane zostaną wykryte, kryptografia pomaga również zminimalizować wynikające z tego szkody, ponieważ dane nie są ujawnione, a jedynie fakt, że przesłano sekret. Nadawca może być zmuszony do odszyfrowania danych po ich wykryciu, ale można wykorzystać szyfrowanie zaprzeczające, aby odszyfrowane dane wydawały się łagodne.
Solidne oprogramowanie steganograficzne opiera się na wielowarstwowej architekturze z głębokim, udokumentowanym procesem obfuskacji.
Silnik nośnikaEdit
Silnik nośnika jest rdzeniem każdego narzędzia steganograficznego. Różne formaty plików są modyfikowane na różne sposoby, aby potajemnie umieścić w nich ukryte dane. Algorytmy przetwarzania obejmują:
- Wstrzykiwanie (podejrzane ze względu na niezwiązany z treścią przyrost rozmiaru pliku)
- Generowanie (podejrzane ze względu na możliwość śledzenia wygenerowanych nośników)
- Zastępowanie danych pomocniczych i metadanych
- Zastępowanie LSB lub adaptacyjne
- Manipulowanie przestrzenią częstotliwości
.