Stenography

From The Black OP Security Wiki

Jump to: navigation, search
  Main Page >> Tutorial Directory >> Stenography

FAQ

Q. Is steganography the same thing as encryption?

A. No, encryptions goal is to make it so that data can not be recovered with out a key. Steganographys goal is to make it so the presence of data can not be connected. The two often compliment each other, for example most plausible deniability crypto-systems use steganography principles. Likewise, more steganography systems encrypt the data before hiding it in a cover file.

Q. Is steganography very good?

A. Steganography is not as "secure" as encryption is. Strong encryption can not be broken. The vast majority of steganography, possibly all of it, can have the hidden information detected with with careful analyitical techniques. If you use steganography, you are sort of hoping that no one tries and finds out that you are using it. Steganography is in many ways the same thing as plausible deniability. For example, if you send someone a text document steganographically hidden in an image file, you are trying to avoid detection and if you are detected you can use the defense that you were merely sending a picture. The adversary then needs to analyze the image and try and find the text file. In some cases they may be able to, in almost all cases they will be able to at least determine that something is hidden in the image file but they may not be able to determine what it is. This is especially true when you mix encryption with steganography, even if the adversary can prove you are using steganography they can not prove what you are hiding inside the cover files. Some steganographic techniques are better at hiding the fact that steganography is being used than others, but none of them are as solid at accomplishing their goals as encryption can be at accomplishing its goal.

Q. So how exactly is steganography helpful for me?

A. You can do many things with steganography.

Example One: You have a lot of sensitive text files. You encrypt them, but an adversary might force you to give up your password. So you can hide the encrypted text files in images, and many adversaries are going to overlook them.

Example Two: You need to communicate with a group of people about sensitive information, and want to avoid attracting attention for using encrypted communications. You can encrypt your communications, steganographically hide them in an image, and put them up on a website. Note that the people you are communicating with will need to know the password to uncover the hidden information, and you will need to think of a way to securely transfer it to them (asymmetric encryption).

Q. What all can be used as cover files?

A. You can use anything as a cover file, depending on the specific steganography program you are using. Commonly images are used. If you need to hide larger amounts of data, video files or audio files can also be used.


Q. Are there any named steganography standards? Like AES or Serpent are for encryption?

A. Yes, but steganography algorithms tend to be named after the software that they come from. One exception would be mirage, which is the name of an algorithm that to the best of my knowledge has still not been implemented.

Q. Don't terrorists use steganography?!

A. I have no idea, but even if they do it isn't as big of a deal as the news makes it out to be. I imagine most of this is fearmongering on the part of the media.

About

Steganography is the practice of hiding data in other data. This can be done in a number of ways, the easiest to explain (and one of the most popular) being least significant bit, or LSB. If you read the tutorial on computer forensics you will remember that computers work with binary code (1's and 0's, aka bits), and that an image is really a large string of bits, often broken down into 24 bit strings per pixel. The 24 bit string is further broken down into three 8 bit strings, with the three 8 bit strings representing red green and blue. The 8 bit string can represent 0-255 (2^8 = 256).

For example, (0, 0, 0) represents black while (255, 255, 255) is white. There are over 16 million possible colors that can be represented this way.

For example, a specific light blue color can be represented by the string (176, 224, 230) which in binary is 10110000 11100000 11100110

The color (177, 225, 231) is near identical as far as the human eye can tell, and the binary string is also near equal, only the 8th bit of the 3 strings changes:  10110001, 11100001, 11100111

These changes in the color will not make a noticeable difference to the human eye, but allow for bits to be stored inside a file by having the bits to hide replace the LSB of the strings that make up the image colors. This is especially handy when combined with encryption, where the

information looks random with out a key to decrypt it.



Can you see a difference between the two above images? Not really, but with the proper key, you could reveal a hidden bit string that forms an encrypted text document in the image on the bottom. Not much information can be hidden inside of an image, usually not much more than text messages in text files. If you use stegongraphy in video files, or audio files, you can hide quite a bit more. It should be possible to hide actual images inside of video files. Video steganography can use LSB as well, a video file is merely thousands of images compressed together and played back at a steady rate. Audio can be done the same way as well, and the human ear will not be able to discern the differences in sounds.

Note that the more information you hide steganographically, the more noise it will leave, and the easier it will be for an adversary to discover you are using it. Small amounts of data hidden in large files are very difficult to detect. Encryption should still be used though, steganography has the goal of hiding information, if it is discovered that steganography is being used you still need encryption to fall back on in order to keep the 'real' information obscured.

Personal tools