Cory Doctorow vat op Boing Boing onderzoek van Citizen Lab samen in ‘How Wechat censors images in private chat’:

Wechat maintains a massive index of the MD5 hashes of every image that Chinese censors have prohibited. When a user sends another user an image that matches one of these hashes, it's recognized and blocked at the server before it is transmitted to the recipient, with neither the recipient or the sender being informed that the censorship has taken place.

Separately, all images not recognized in the hash database are processed out-of-band. This processing includes checking for bitmaps representing text (to catch things like photos of banned articles) and also to see whether it is a partial match for an already-banned image (if it’s been resized, transformed, etc). Anything that is found to be “harmful content” (including material critical of the Chinese state) is removed from the chat on the sender and recipients' devices and the hash of that image is added to the blocklist.

In de analyse van Citizen Lab staan meer details:

  • WeChat implements realtime, automatic censorship of chat images based on text contained in images and on an image’s visual similarity to those on a blacklist
  • WeChat facilitates realtime filtering by maintaining a hash index populated by MD5 hashes of images sent by users of the chat platform
  • We compare levels of filtering across WeChat’s Moments, group chat, and 1-to-1 chat features and find that each has different images censored; we find that Moments and group chat are generally more heavily filtered than 1-to-1
  • WeChat targets predominantly political content including images pertaining to government and social resistance
  • WeChat’s image censorship is reactive to news events; we found censored images covering a wide range of events, including the arrest of Huawei’s CFO, the Sino-US Trade War, and the 2018 US Midterm Elections