(Note that these are not the same picture, because Decoy does not save or store the original version of either photo. It’s two pictures where I held the iPhone very close against a wall. So there’s a slight color variation)
That’s pretty useless—what you want is to look at some statistical measures of the empirical distributions of lower-order bits in these images. See e.g. this outdated page.
I don’t blame you for not spotting this, since these comments have gone really all over the place. But I did describe how an attacker would use LSB or Chi^2 analysis to determine:
For posterity here is that section: “Incidentally, regarding the specific details of such a detection method:
We (and the attacker) already know that the distribution of base64 characters in an AES-encrypted ciphertext is approximately random and follows no discernible pattern. We also know that the ciphertext is encoded into the last 2 bits of each 8-bit pixel. So, we can, with X amount of confidence, show that an image is not a Decoy if we extract the last 2 bits of each pixel and discover the resulting data is non-randomly distributed.
However, because it is possible for normal, non-Decoy, compressed JPEGs to exhibit a random distribution of the data in the last 2 bits of each pixel, the presence of randomness does not confirm that an image is a Decoy.
The only viable attack here would be to pull images which are “visually similar” (a trivial task by simply using Google image search), reduce them to the same size, compress them heavily, and then examine the last 2 bits of each of their pixels. If there is a significant difference in the randomness of the control images vs. the randomness of the suspected image, you could then suggest with X% confidence that the suspected image has been tampered with.
However, because it is possible for an image to be tampered with and yet NOT be a Decoy image, even then you could still not, with any legitimate amount of confidence, use such a test to state that an image is a Decoy.”
The point you’re missing is that the purpose of steganography is not to be noticed as opposed to “you can’t prove this beyond reasonable doubt”. If I run statistical analysis on the images in your phone and enough of them show suspicious randomness in LSBs, your steganography has failed already.
I’ve already said this like, five times, but I am giving you a pass here because there are a billion comments on this post and I wouldn’t expect someone to read all of them.
The primary protection isn’t steganography, it’s the AES encryption.
The goal of the steganography is a deterrent. As you said, to help you not be noticed. If someone is suspicious enough that they steal your images and run a statistical analysis of them, the whole conversation is moot because you’ve already been noticed.
So, I just don’t get it. What is your point here? That steganography has potential weaknesses? Is anyone suggesting otherwise?
Also just for the record, here are the relevant statements I made personally about Decoy:
The “decoy” pictures are indistinguishable from any other picture on your or your recipients’ camera rolls
Which, by request I clarified:
Without the password, even a skilled attacker cannot confirm the presence of any metadata.
[I]n terms of image quality, the picture is indistinguishable from any other compressed image.
An attacker cannot confirm your image is a Decoy. They can raise their confidence that steganography is taking place.
These clarifications were provided very early on in the conversation. It has since devolved into a criticism of steganography in general, which at no point have I ever tried to insinuate that steganography is anything other than security through obscurity.
Protection against what? Your lack of the threat model is tripping you up. If all you want is protection against a Fappening, you don’t need steganography, just encrypt images to binary blobs and you’re done.
If someone is suspicious enough that they steal your images
Why steal? Imagine a scenario: you’re drove to Canada from the US for a weekend and when you’re returning, a polite TSA officer asks for your phone and plugs it into a gizmo. The gizmo displays some blinkenlights, beeps, and the polite officer tells you that your phone is likely to have hidden encrypted information and would you mind stepping inside that office to have a conversation about it?
Encrypting your images has obvious benefits, but what exactly do you gain by keeping them inside other images as opposed to random binary files?
I specifically outlined the three primary attack types: fusking, stolen-phone, targeted attacks.
Imagine a scenario...
In that scenario, I would hope the “beyond a reasonable doubt” standard would apply (which this protocol passes). But if we’re assuming an evil government that doesn’t stick to that standard, the same hypothetical gizmo can be used to detect any encrypted data.
what exactly do you gain by keeping them inside other images as opposed to random binary files?
Convenience, a deterrent against attacks, and moderate protection.
Convenience: the iPhone doesn’t provide any sort of file system for you to store random binary files, and no supported protocol by which to transmit them anywhere. It does, however, have a very robust photo storage and transmission system and GUI.
Deterrent: In low-threat situations where potential attackers only have visual access to your images, there are no visual methods by which to distinguish your decoy pictures from normal pictures, and therefore make you a target.
Moderate protection: Any further compression or alteration of the decoy image will mung the data. Most (not all) means of transmitting images from an iPhone (social networking apps, email apps, online image storage services, etc.) will compress the image before sending/storing, which as mentioned will mung the encrypted data. Obviously this should not be relied on because there are means (albeit less convenient) of transmitting the data from your phone without compression.
In that scenario, I would hope the “beyond a reasonable doubt” standard would apply
No need for hope here. “Beyond a reasonable doubt” is a legal standard that applies to evidence presented in criminal prosecutions. It does not apply to investigations or, for example, things like being put on the no-fly list. Or the “next target for the drone assassination” list.
Moreover, at a border crossing the Fourth Amendment basically does not apply, too. A border control official can search all your belongings including your electronic devices without needing to show any cause, never mind about “reasonable doubt”. At the border, TSA can trawl through your laptop or phone at will.
Relevant quote: “[I]f we’re assuming an evil government that doesn’t stick to that standard, the same hypothetical gizmo can be used to detect any encrypted data.”
For what it’s worth, here is a sample of the noise distribution of the iPhone’s JPEG compression vs. Decoy
(iPhone on left, Decoy on right)
http://i.cubeupload.com/ujKps6.png
(Note that these are not the same picture, because Decoy does not save or store the original version of either photo. It’s two pictures where I held the iPhone very close against a wall. So there’s a slight color variation)
That’s pretty useless—what you want is to look at some statistical measures of the empirical distributions of lower-order bits in these images. See e.g. this outdated page.
I don’t blame you for not spotting this, since these comments have gone really all over the place. But I did describe how an attacker would use LSB or Chi^2 analysis to determine:
For posterity here is that section: “Incidentally, regarding the specific details of such a detection method:
We (and the attacker) already know that the distribution of base64 characters in an AES-encrypted ciphertext is approximately random and follows no discernible pattern. We also know that the ciphertext is encoded into the last 2 bits of each 8-bit pixel. So, we can, with X amount of confidence, show that an image is not a Decoy if we extract the last 2 bits of each pixel and discover the resulting data is non-randomly distributed.
However, because it is possible for normal, non-Decoy, compressed JPEGs to exhibit a random distribution of the data in the last 2 bits of each pixel, the presence of randomness does not confirm that an image is a Decoy.
The only viable attack here would be to pull images which are “visually similar” (a trivial task by simply using Google image search), reduce them to the same size, compress them heavily, and then examine the last 2 bits of each of their pixels. If there is a significant difference in the randomness of the control images vs. the randomness of the suspected image, you could then suggest with X% confidence that the suspected image has been tampered with.
However, because it is possible for an image to be tampered with and yet NOT be a Decoy image, even then you could still not, with any legitimate amount of confidence, use such a test to state that an image is a Decoy.”
The point you’re missing is that the purpose of steganography is not to be noticed as opposed to “you can’t prove this beyond reasonable doubt”. If I run statistical analysis on the images in your phone and enough of them show suspicious randomness in LSBs, your steganography has failed already.
I’ve already said this like, five times, but I am giving you a pass here because there are a billion comments on this post and I wouldn’t expect someone to read all of them.
The primary protection isn’t steganography, it’s the AES encryption.
The goal of the steganography is a deterrent. As you said, to help you not be noticed. If someone is suspicious enough that they steal your images and run a statistical analysis of them, the whole conversation is moot because you’ve already been noticed.
So, I just don’t get it. What is your point here? That steganography has potential weaknesses? Is anyone suggesting otherwise?
Also just for the record, here are the relevant statements I made personally about Decoy:
Which, by request I clarified:
These clarifications were provided very early on in the conversation. It has since devolved into a criticism of steganography in general, which at no point have I ever tried to insinuate that steganography is anything other than security through obscurity.
Protection against what? Your lack of the threat model is tripping you up. If all you want is protection against a Fappening, you don’t need steganography, just encrypt images to binary blobs and you’re done.
Why steal? Imagine a scenario: you’re drove to Canada from the US for a weekend and when you’re returning, a polite TSA officer asks for your phone and plugs it into a gizmo. The gizmo displays some blinkenlights, beeps, and the polite officer tells you that your phone is likely to have hidden encrypted information and would you mind stepping inside that office to have a conversation about it?
Encrypting your images has obvious benefits, but what exactly do you gain by keeping them inside other images as opposed to random binary files?
I specifically outlined the three primary attack types: fusking, stolen-phone, targeted attacks.
In that scenario, I would hope the “beyond a reasonable doubt” standard would apply (which this protocol passes). But if we’re assuming an evil government that doesn’t stick to that standard, the same hypothetical gizmo can be used to detect any encrypted data.
Convenience, a deterrent against attacks, and moderate protection.
Convenience: the iPhone doesn’t provide any sort of file system for you to store random binary files, and no supported protocol by which to transmit them anywhere. It does, however, have a very robust photo storage and transmission system and GUI.
Deterrent: In low-threat situations where potential attackers only have visual access to your images, there are no visual methods by which to distinguish your decoy pictures from normal pictures, and therefore make you a target.
Moderate protection: Any further compression or alteration of the decoy image will mung the data. Most (not all) means of transmitting images from an iPhone (social networking apps, email apps, online image storage services, etc.) will compress the image before sending/storing, which as mentioned will mung the encrypted data. Obviously this should not be relied on because there are means (albeit less convenient) of transmitting the data from your phone without compression.
No need for hope here. “Beyond a reasonable doubt” is a legal standard that applies to evidence presented in criminal prosecutions. It does not apply to investigations or, for example, things like being put on the no-fly list. Or the “next target for the drone assassination” list.
Moreover, at a border crossing the Fourth Amendment basically does not apply, too. A border control official can search all your belongings including your electronic devices without needing to show any cause, never mind about “reasonable doubt”. At the border, TSA can trawl through your laptop or phone at will.
Relevant quote: “[I]f we’re assuming an evil government that doesn’t stick to that standard, the same hypothetical gizmo can be used to detect any encrypted data.”