Blacklist: image, onion and eepsite hashes

This search engine does not index child sexual abuse material. We do not want to be the only index that recognises it either, so we publish what we have confirmed: an md5 hash for every image we blacklisted, on the Tor and I2P sides together, and an md5 hash for every onion service and every eepsite that served one of them. Another search engine can use the same hashes to filter the same material out of its results. The lists are identical on both of our mirrors.

This page in other languages: English · 日本語 · 繁體中文 · 简体中文 · Русский · Español · Español (México) · Português · Português (Brasil) · Deutsch · Italiano · Polski

What is in the lists

The lists come from our own moderation, not from a third party: an image is blacklisted when our review tools or a vetted, human-confirmed signature identify it as child sexual abuse material or as related illegal material, and every onion service and eepsite we found serving one of those images is recorded with it. Nothing in these lists is a guess, and nothing is listed because of the name of a site or because of a keyword.

A hash is a one-way value. It identifies content, and it cannot be turned back into the content. We publish hashes and not images, an address is published only as a hash, and neither list can be used to find the material. They are made to recognise it and to leave it out.

The image hash

Each line of the image list is the md5 hash of the bytes of one image our moderation blacklisted, on either network, exactly as the md5sum utility computes it for the same file:

md5sum <file>

Because the hash follows the bytes, the same image has the same hash wherever it is served from, whatever it is called and however it was re-encoded. That is the property that makes the list useful, and it is also why a hash identifies content and never a person.

The onion hash

Each line of the onion list is the md5 hash of one onion hostname, taken over the lowercase address including its .onion suffix. This is the same recipe ahmia.fi publishes:

echo -n "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvab.onion" | md5sum

For the example address abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvab.onion the result is d8604171b8f0441a72a574c3661d9d58.

The address itself is never published in this list. A service appears here when one of the images we blacklisted was actually served from it, not because it links to something, not because of what it is called, and not because the host is blocked for another reason.

The i2p eepsite hash

The I2P list follows the same rule for eepsites. Each line is the md5 hash of one I2P hostname, taken over the lowercase address including its suffix: a b32 address with its .b32.i2p ending, a named eepsite with its .i2p one:

echo -n "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrst.b32.i2p" | md5sum

For the example address abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrst.b32.i2p the result is 4c5e146a233d1c32593e385bbd27c355.

As on the Tor side, the address itself is never published. An eepsite appears here when one of the images we blacklisted was actually served from it.

The lists

All three lists are plain text: one 32-character lowercase md5 hash per line, nothing else, no header and no comments. They are rebuilt and republished regularly and served with a twelve-hour cache.

A hash in these lists is a record of what we found and blacklisted, not proof that whoever served it still does.

  • Blacklisted image hashes
    The md5 hash of every image our moderation blacklisted, on either network.
    /blacklist/image-hashes
  • Onion services that served them
    The md5 hash of every onion hostname one of those images was served from.
    /blacklist/onion-hashes
  • I2P eepsites that served them
    The md5 hash of every I2P hostname one of those images was served from.
    /blacklist/i2p-hashes

How to use them

Hash what you serve with the same rule, an image file or a hostname, and compare the result against these lists. A match means we hold a moderation verdict for it: for an image, that a reviewer or a confirmed signature marked it as child sexual abuse material; for a host, that it served such an image. Neither list is complete, and a host can start serving blacklisted material after the last time we looked at it.