Hide information in images using Steg

Slashdot it! Delicious Share on Facebook Tweet! Digg!

Getting Started with Steg

A whole range of steganographic applications are available to choose from in Linux, the most famous being OutGuess [2] and Steghide [3]. Both are command-line programs and therefore tend to deter beginners.

The Steg program [4], by contrast, is aimed at users who don't want to switch to a terminal to laboriously enter parameters, but who still want to configure the software manually in spite of the graphical user interface.

Steg is available for both 32- and 64-bit systems in the form of TGZ-compressed binaries. You need to download the appropriate, almost 8MB archive, extract it, and then switch to the newly created directory. Here you will find a shell script and a binary file as well as the various Qt libraries. If you are working with a Qt-based graphical user interface, such as KDE or TDE, you can launch Steg in the terminal using the ./steg call.

However, with systems without a Qt environment, you should execute the accompanying shell script to set the appropriate variables and then activate the tool. Steg displays the versions of the Qt libraries you're using on the home screen (see the "Version Problems" box).

Version Problems

Caution is advised with Linux distributions that natively use Qt libraries in version 4.8.6: They clash with version 4.8.4 used by Steg and make the software unusable, which then doesn't save steganographically modified container files. The only possible remedy is to uninstall the libqt4 libraries via the package manager. However, you should only interfere with the system like this if no other programs use Qt 4.8.6.

Instead of starting the software in the terminal, you can also manually create a corresponding menu item. Confirm the license when you first start it because Steg is not free software, but rather "freeware." A nondescript program window (Figure 1) with a menu and a button bar then opens; inactive buttons for improving orientation are grayed out.

Figure 1: Before loading the image, the program window is limited to the essentials.

You will find some information about the images in the gray boxes directly under the two images. The Available Space lines is at the bottom right in the program window. This specifies how many messages can be hidden up to what size in the active image without conspicuous inconsistencies in the color representation (Figure 2).

Figure 2: The window shows the original image on the left and the one with the hidden information on the right. Any differences are immediately noticeable.

Configuration Dialog

After importing the carrier medium, the tool activates the fourth button from the left in the upper button bar. It acts as a configuration dialog for the text to be embedded and is therefore also labeled Configuration .

The corresponding dialog consists of two tabs arranged horizontally at the top; the left one, named Common Options , is active. Enter an additional descriptive text up to 256 characters in the large input field.

This description does not display the application separately when extracting the message file. The software transfers the additional text to the steganogram if you place a checkmark in front of the Embed a text message: option via the input field (Figure 3).

Figure 3: You can define the type of encryption and an associated password, among other things, in the configuration dialog.

You can set up the encryption mode in the Crypto Options section below. Steg inherently encrypts all data to be embedded and provides different methods to do so. You can decide the method you want in the Crypto Mode selection field. The Auto option automatically encrypts the message file and the inputted additional text without having to specify a password or a key pair.

However, if you select the Symmetric PassPhrase option, you will need a password for encrypting and decrypting the steganogram, which you enter in the PassPhrase: input field below. The field initially appears with a red background.

The background color changes to green when you enter a suitable password. This prevents the use of weak passwords because Steg only accepts the password once the color has changed.

You will need the receiver's public key to embed data for the Asymmetric Unsigned option (which separates encryption and decryption), and you'll need your own private key to receive data.

The Asymmetric Signed option is the most secure form of encryption with which you use the receiver's public key and your own private key to embed data. However, when receiving a steganogram, embedded messages are encrypted using your private key.

The software expects you to specify the sender's public key for verifying data after successfully reconstructing embedded data. If this key is missing, Steg will inform you that the sender's identity couldn't be verified. The software provides you with an appropriate tool for generating the key. You can access it in the menu at Tools | RSA key-pair generator… .

You will find some options for embedding data in the Special Options tab in the configuration window. Different configurations options will appear here depending on the format you're using.

If you're using a compressed JPEG, in Smart Distribution , you can set up whether Steg should preferably embed the message file over the entire data carrier – this makes the statistical process of localizing steganographic modifications more difficult. The routine proceeds very conservatively when embedding data – meaning that less data can be hidden.

For uncompressed image formats, you should instead determine the intensity at which Steg should modify individual pixels separately by individual color percentages.

The software always works with the least significant bit. The higher you set the values in this dialog, the more likely the embedded message is to stand out. It is worth choosing the smallest possible values to avoid striking – and thus statistically valuable – changes to the container file.

Clicking OK at the bottom left of the dialog window applies the settings to the image on the right. If any changes to the original (shown on the left) stand out, you should modify the settings. A small button bar directly below both image windows lets you zoom in to each picture. Clicking the sixth button from the left in the main window, Hide Noise , will fill all the pixels with random data based on the current configuration so that you can see at a glance how the modified image when using the full embedding potential.

This step allows you to check the current settings before embedding real texts. If the results don't meet your expectations because, for example, the image modifications are noticeable (Figure 4), undo the last action by clicking the Revert option from the Edit menu in the menu bar at the top of the program window.

Figure 4: If the carrier file contains too much hidden data, this will be unpleasantly obvious through color distortions.

Buy this article as PDF

Express-Checkout as PDF

Pages: 4

Price $0.99
(incl. VAT)

Buy Ubuntu User

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Encrypting email with GnuPG

    US intelligence agencies tap into billions of call data and electronic messages monthly – reason enough to consider encrypting your email traffic.

  • Encrypted ZFS with Ubuntu

    ZFS is one of the most advanced filesystems, and now it can be used natively on Linux. One drawback is that native ZFS encryption is not available, but this article shows how use Linux's disk encryption to install Ubuntu onto an encrypted disk with ZFS.

  • Editing mail with Geary

    A new mail program for Linux, Geary, has finally arrived. The smart software brings some fresh air to the genre.

  • Convenient private cloud with Seafile

    After the Prism and Tempora revelations, the writing's on the wall: Your data stored on public clouds isn't safe from the clutches of security agencies. Help can come only from a self-administered solution – yet Seafile provides a simple and ingenious approach.

  • Creating bootable USB Drives with Etcher

    Etcher is an easy-to use graphical tool for making a bootable USB from an ISO file.