According to numerous articles
and press releases
, Facebook will be using a new software package called PhotoDNA developed by Microsoft and donated to NCMEC. It uses a technique called "robust hashing" and is based on work by Dartmouth's Hany Farid
It's easy to demand that something be done about child pornography, but much harder to actually curb it. Computer vision is useful for simple things (like reading license plate numbers), but it has its limitations. Most people have experienced the "CAPTCHA" technology to block spam where you have to read a series of letters or do something similar. Why does that work? Because humans can recognize things in images that computers can't.
However, it is possible for a computer to tell whether an image is identical to known child pornography. Law enforcement and ISPs currently use a type of hashing known as SHA-1
. ISPs would calculate the SHA-1 hashes of images uploaded to their servers, compare them to hash values of known child pornography, and then take action if they detected a match. An automated approach like this is very important for big players like Facebook that may have millions of images uploaded every day. Having humans review all content isn't feasible.
The problem with the SHA-1 hashing was that it would only work if one image was exactly identical to another. So let's say someone took a known CP image and slightly cropped or resized it. The automated image recognition breaks because the files are no longer exactly the same. This is what PhotoDNA addresses. Note that even PhotoDNA only works with known CP images. So if a predator creates his own CP and uploads it, the system won't recognize it. (This happened with John Huitema
, who recently pleaded guilty to victimizing a 2-year-old girl and producing child pornography.)
The information about how PhotoDNA works is pretty limited, since it's mostly in the form of Microsoft press releases. So there are still a number of unanswered questions. It sounds like the image is converted into black and white, resized to a standard size, broken up into small blocks, and the digital signature is calculated for each block. So this is supposed to detect images that have been altered, and Microsoft said that their testing had yielded some promising results.
It does sound like PhotoDNA will be more robust than SHA-1 hashing, but there's not much information available on its limitations or future directions. It's also not possible for regular people to download the software and play with it. Some image manipulation involves discarding a lot of information. Would PhotoDNA be able to detect a preview-sized image of known child pornography that someone was advertising on another site? The "digital fingerprint" seems to rely a lot on edge detection and intensity. What happens if someone alters a photo in a way that changes the edge information, e.g., by adding another object or lettering?
Some of the Facebook problem children have also shared CP videos. It does not sound like PhotoDNA is currently being applied to that, and I'd be curious what the potential was in this area. Some video codecs contain I-frames
, which could probably be analyzed this way.
Ironically, Windows Live has apparently had some major problems with child pornography. Has Microsoft tried applying PhotoDNA to its own network? If not, why not? If so, why doesn't it work better?