Nous avons écrit il y a deux semaines un article sur la stratégie adoptée par Cloudflare pour lutter contre les contenus pédopornographiques. Nous avons commencé à travailler avec le National Center for Missing and Exploited Children (Centre national pour les enfants disparus et exploités, ou NCMEC), l’organisation américaine chargée de la suppression de ces contenus répugnants, dans les mois qui ont suivi notre lancement public en 2010. Ces neuf dernières années, notre équipe Trust & Safety a collaboré avec le NCMEC, Interpol et près de 60 autres organismes publics et privés du monde entier pour concevoir notre programme. Nous sommes fiers du travail que nous avons accompli pour supprimer des contenus pédopornographiques d’Internet.

Les cas les plus choquants sont, à certains égards, les plus faciles à traiter pour nous. Bien que Cloudflare ne soit pas en mesure de supprimer les contenus hébergés sur d’autres sites, nous arrêtons de fournir nos services aux sites lorsqu’il apparaît clairement qu’ils ont pour vocation de partager des contenus pédopornographiques, ou si leurs administrateurs et leurs hébergeurs ne font pas le nécessaire pour supprimer ces contenus. Lorsque nous fermons un site web, nous purgeons nos caches (l’opération dure quelques secondes à l’échelle mondiale) et l’empêchons de pouvoir à nouveau utiliser le réseau de Cloudflare.

Les cas difficiles

Les cas les plus difficiles à traiter sont ceux dans lesquels l’un de nos clients permet à ses utilisateurs de publier des contenus (par exemple, les forums de discussion) et que l’un d’eux publie des contenus pédopornographiques, que le site subit un piratage informatique ou qu’un employé malveillant enregistre des contenus pédopornographiques sur ses serveurs. Nous avons vu de nombreux cas où des services bien intentionnés sont complètement pris au dépourvu par la présence de contenus pédopornographiques sur leurs sites. Bien que, dans ces cas, on ne puisse pas parler d’intention ou de malveillance, il est néanmoins indispensable d’identifier et de supprimer rapidement ces contenus.

Nous sommes donc fiers aujourd’hui de contribuer à résoudre ces cas difficiles. À compter d’aujourd’hui, chaque client de Cloudflare pourra activer l’outil de détection de contenus pédopornographiques. Au fur et à mesure que cet outil passera du stade du développement à celui de la production, il procédera au contrôle de toutes les propriétés Internet ayant activé la détection de ces contenus illégaux. Cloudflare vous enverra automatiquement un avertissement lorsqu’il détectera des contenus pédopornographiques, bloquera l’accès à ces contenus (en affichant le code d’état 451 « Bloqué pour raisons légales ») et prendra les mesures nécessaires pour assurer le signalement approprié de ces contenus conformément aux obligations légales.

La détection des contenus pédopornographiques sera accessible via le tableau de bord de Cloudflare, sans frais supplémentaires, pour tous les clients, quelle que soit la formule souscrite. Vous trouverez cet outil dans l’onglet « Mise en cache » de votre tableau de bord. Nous espérons qu’en mettant gratuitement cet outil à la disposition de tous nos clients, nous pourrons faire avancer encore plus la lutte contre les contenus pédopornographiques en ligne, et contribuer à protéger nos clients contre les risques juridiques et les atteintes à la réputation que les contenus pédopornographiques peuvent entraîner pour leurs entreprises.

Le chemin a été long pour pouvoir proposer ce service à nos millions d’utilisateurs. Pour comprendre ce que nous faisons et pourquoi cela a été difficile d’un point de vue technique et stratégique, il faut que nous vous expliquions un peu comment fonctionne la détection des contenus pédopornographiques.

Trouver des images identiques

Parallèlement au développement de Cloudflare en 2009, un professeur de Dartmouth nommé Hany Farid travaillait sur un logiciel permettant de comparer des images à une liste de hachages tenue par le NCMEC. Microsoft a été la première entreprise à créer un outil qui utilise les travaux du professeur Farid pour identifier automatiquement les contenus pédopornographiques : PhotoDNA.

Au début, Microsoft utilisait PhotoDNA en interne et, fin 2009, elle a fait don de la technologie au NCMEC pour faciliter la gestion de son utilisation par d’autres organisations. Les réseaux sociaux ont été parmi les premiers à l’adopter. En 2011, Facebook a intégré cette technologie à ses procédures de contrôle des abus. Twitter l’a intégrée en 2014.

Ce processus est connu sous le nom de « hachage par morceaux ». Les algorithmes de hachage traditionnels tels que MD5, SHA1 et SHA256 permettent de prendre un fichier (image ou document) de taille arbitraire et de générer un numéro de longueur fixe qui correspond à l’empreinte digitale du fichier. Par exemple, en se basant sur le MD5 de cette photo, l’empreinte digitale résultante est 605c83bf1bba62e85f4f5fccc56bc128.

L'image d’origine

En modifiant un seul pixel de la photo pour qu’il apparaisse légèrement blanc cassé plutôt que blanc pur, l’image reste identique visuellement, mais son empreinte digitale change complètement et devient 42ea4fb30a440d8787477c6c37b9daed. Comme vous le voyez sur les deux empreintes digitales, il suffit d’une petite modification de l’image pour modifier complètement et aléatoirement un code de hachage.

L'image originale avec un seul pixel modifié

Cette méthode est excellente pour certains types de hachage, notamment lorsque vous souhaitez déterminer de manière certaine si le document que vous regardez est exactement le même que celui que vous avez vu auparavant. Par exemple, si on ajoute un zéro à un contrat numérique, le hachage du document utilisé pour sa signature devient invalide.

Hachage par morceaux

Cependant, cette particularité du hachage traditionnel pose problème dans le cas des contenus pédopornographiques. Afin d’éviter que leurs fichiers ne soient détectés, les criminels qui produisent les contenus pédopornographiques redimensionnent les images, y ajoutent du bruit ou les modifient de manière à ce qu’elles ressemblent aux originaux, mais qu’elles produisent un code de hachage radicalement différent.

Le hachage par morceaux est différent. Au lieu de chercher à déterminer si deux photos sont exactement identiques, il cherche à comprendre l’essence d’une photo. Cela permet au logiciel de calculer les hachages de deux images et de comparer ensuite leurs écarts. Si les hachages par morceaux de deux images ayant été modifiées peuvent encore être différents, il est toutefois possible de comparer les deux pour déterminer leurs points communs, contrairement au hachage traditionnel.

Ainsi, si l’on considère les deux photos ci-dessus, le hachage par morceaux de la première est :

00e308346a494a188e1042333147267a
653a16b94c33417c12b433095c318012
5612442030d1484ce82c613f4e224733
1dd84436734e4a5c6e25332e507a8218
6e3b89174e30372d

Celui de la deuxième est :

00e308346a494a188e1042333147267a
653a16b94c33417c12b433095c318012
5612442030d1484ce82c613f4e224733
1dd84436734e4a5c6e25332e507a8218
6e3b89174e30372d

La différence entre les pixels des deux images est minime et les hachages par morceaux sont identiques.

L'image de base après avoir augmenté la saturation, l'avoir convertie en sépia, avoir ajouté une bordure et avoir ajouté du bruit aléatoire.

Le hachage par morceaux doit permettre d’identifier les images qui présentent des similitudes importantes. Nous avons, par exemple, modifié la photo représentant des chiens en accentuant d’abord ses couleurs, puis en la faisant passer au sépia, en y ajoutant une bordure et enfin en ajoutant du bruit aléatoire.  Le hachage par morceaux de la nouvelle image est le suivant :

00d9082d6e454a19a20b4e3034493278
614219b14838447213ad3409672e7d13
6e0e4a2033de545ce731664646284337
1ecd4038794a485d7c21233f547a7d2e
663e7c1c40363335

Celui-ci paraît assez différent du hachage de l’image originale ci-dessus, mais, pour comparer les hachages par morceaux, il faut déterminer leur niveau de similitude.

La plus grande distance possible entre deux images est d’environ 5 millions d’unités. Ces deux hachages par morceaux ne diffèrent que de 4 913 unités (plus le nombre est petit, plus les images sont similaires), ce qui indique qu’il s’agit pratiquement de la même image.

Voyons ce que cela donne avec deux photos sans aucun rapport. Le hachage par morceaux de la photo ci-dessous est le suivant :

011a0d0323102d048148c92a4773b60d
0d343c02120615010d1a47017d108b14
d36fff4561aebb2f088a891208134202
3e21ff5b594bff5eff5bff6c2bc9ff77
1755ff511d14ff5b

Le hachage par morceaux de la photo ci-dessous est le suivant :

062715154080356b8a52505955997751
9d221f4624000209034f1227438a8c6a
894e8b9d675a513873394a2f3d000722
781407ff475a36f9275160ff6f231eff
465a17f1224006ff

La différence entre les deux hachages est donc de 713 061 unités. En expérimentant, il est possible de fixer une valeur limite en dessous de laquelle on peut considérer que deux photographies sont probablement apparentées.

La boîte noire intentionnelle du hachage par morceaux

Comment cela fonctionne-t-il ? Bien que de nombreux travaux aient été publiés sur le hachage par morceaux, le flou autour de son fonctionnement est volontairement entretenu. Le New York Times a récemment publié un article qui contient probablement la description la plus exhaustive du fonctionnement de cette technologie. En effet, si les criminels auteurs et distributeurs de contenus pédopornographiques savaient exactement comment fonctionnent ces outils, ils pourraient alors être en mesure de modifier leurs images de manière à les contourner. Précisons que Cloudflare utilisera l’outil de détection des contenus pédopornographiques au nom de l’administrateur du site web à partir de ses points de présence sécurisés. Nous ne distribuerons pas le logiciel directement aux utilisateurs. Nous demeurerons vigilants quant à d’éventuelles tentatives malveillantes de la part de la plate-forme et prendrons rapidement les mesures nécessaires.

Un compromis entre les faux négatifs et les faux positifs

Nous avons discuté avec un certain nombre de décideurs afin de déterminer quelle serait la meilleure façon de mettre cette fonctionnalité à la disposition de nos clients. Pour un réseau tel que Cloudflare, dont la clientèle est aussi diversifiée, l’un des défis consiste à déterminer un seuil de comparaison pertinent entre des hachages par morceaux.

Si le seuil est trop bas (ce qui signifie qu’il est plus proche d’un hachage traditionnel et que deux images doivent être pratiquement identiques pour établir une corrélation entre elles), alors vous risquez d’obtenir beaucoup de faux négatifs (donc des contenus pédopornographiques ne seront pas repérés). Si le seuil est trop haut, on risque d’obtenir de nombreux faux positifs. Ces derniers peuvent sembler moins graves, mais on peut légitimement craindre qu’en augmentant la possibilité d’obtenir des faux positifs à grande échelle il y ait un gaspillage de ressources déjà limitées et que l’écosystème existant soit encore plus submergé. Nous allons nous employer à faire en sorte que l’outil de détection des contenus pédopornographiques donne plus de contrôle au propriétaire du site tout en préservant l’efficacité de l’écosystème. Aujourd’hui, nous pensons pouvoir offrir à nos clients une première série d’options qui nous permettront de détecter plus rapidement les contenus pédopornographiques sans accaparer les ressources de l’écosystème.

Différents seuils pour différents clients

En discutant avec nos clients, nous avons constaté le même besoin de pouvoir paramétrer l’outil avec précision. Lorsque nous leur avons demandé ce qui leur convenait le mieux, nous avons obtenu des réponses très variées selon leurs domaines d’activité, le degré de sophistication de leurs systèmes de détection des abus et leur niveau potentiel d’exposition et de tolérance au risque d’affichage de contenus pédopornographiques sur leurs sites.

Par exemple, un réseau social bien établi utilisant Cloudflare et disposant d’une équipe de spécialistes de la lutte contre les abus peut préférer un seuil assez élevé, mais ne pas vouloir que les contenus soient automatiquement bloqués parce qu’elle dispose des ressources nécessaires pour examiner manuellement les contenus signalés.

Une start-up récemment créée et destinée à fournir une plate-forme de discussion aux jeunes parents pourrait vouloir que le seuil soit plus élevé et que les correspondances soient automatiquement bloquées, car elle ne dispose pas encore d’une équipe de spécialistes et risque de voir son image mise sérieusement à mal par la publication de contenus pédopornographiques, même si cela peut engendrer des faux positifs.

Une institution financière commerciale peut vouloir fixer un seuil assez bas parce qu’elle a peu de chances de publier des contenus générés par ses utilisateurs et a une faible tolérance aux faux positifs, mais bloquer automatiquement tout ce qui est détecté parce que, si ses systèmes sont utilisés par quelqu’un pour publier des contenus pédopornographiques, elle doit pouvoir l’arrêter immédiatement.

Des exigences différentes selon les législations

L’endroit où se trouvent nos clients, ainsi que la législation et la réglementation qui leur sont applicables, peuvent également être sources de difficultés. En fonction de l’endroit où elle est située, et de l’endroit où se trouvent ses utilisateurs, une entreprise cliente peut choisir d’utiliser une ou plusieurs listes de hachage disponibles, voire toutes.

Ainsi, il n’existe pas de solution unique et, dans l’idéal, nous pensons que le fait de permettre aux propriétaires de sites de définir individuellement les paramètres qui leur conviennent le mieux permettra d’obtenir moins de taux de faux négatifs (c’est-à-dire de signaler davantage de contenus pédopornographiques) que si nous essayons de définir une convention unique pour tous nos clients.

Amélioration de l’outil au fil du temps

Nous espérons pouvoir améliorer au fil du temps le filtrage des contenus pédopornographiques pour nos clients. Nous prévoyons d’ajouter des listes de hachages supplémentaires provenant de nombreuses agences internationales afin que nos clients ayant des utilisateurs dans le monde entier puissent s’y abonner. Nous voulons offrir cette flexibilité sans pour autant surcharger l’écosystème mis en place pour lutter contre ce crime ignoble.

Enfin, nous y voyons une occasion de contribuer au développement de la nouvelle génération de hachage par morceaux. Par exemple, le logiciel ne peut analyser que les images qui sont stockées dans la mémoire d’un système, et non celles qui sont diffusées en streaming. Nous collaborons avec Hany Farid, un ancien professeur de Dartmouth qui enseigne désormais à Berkeley, en Californie, les moyens de mettre en place un système de hachage par morceaux plus flexible afin de repérer les images avant même qu’elles ne soient publiées.

Préoccupations et responsabilités

Lorsque nous avons commencé à envisager de proposer un système de détection des contenus pédopornographiques, nous nous sommes demandé si nous étions vraiment bien placés pour le faire. Comme tout le monde, la diffusion de contenus mettant en scène des crimes abominables contre des enfants nous préoccupe, et nous estimons qu’elle n’a pas sa place sur Internet. Cependant, Cloudflare est un fournisseur d’infrastructure réseau et non une plate-forme destinée à diffuser des contenus.

Toutefois, nous avons pensé que nous avions un rôle légitime à jouer dans ce domaine. À la base, Cloudflare fournit à plus de 2 millions de clients des outils qui étaient auparavant réservés aux seuls géants du net. Sans nous, les services de sécurité, de performance et de fiabilité que nous fournissons, souvent gratuitement, auraient été extrêmement coûteux, ou limités aux entreprises comme Facebook et Google.

Aujourd’hui, des start-ups qui veulent devenir la nouvelle génération de géants utilisent Cloudflare pour garantir la sécurité, la rapidité et la fiabilité de leurs services en ligne et rivaliser avec leurs aînés. Toutefois, alors que de plus en plus d’obstacles réglementaires entravent la lutte contre des fléaux aussi complexes que les contenus pédopornographiques, nombre d’entre elles n’ont pas accès à des outils sophistiqués leur permettant de les détecter de manière proactive. Seules les entreprises à succès peuvent prétendre intégrer le club des privilégiés qui ont accès à ces outils et, chose inquiétante, faire partie de ce club est de plus en plus souvent une condition préalable à la réussite.

Si nous voulons renforcer la concurrence entre les géants du net, nous devons mettre ces outils à la disposition de toutes les entreprises, y compris les plus petites. Dès lors, il nous semble tout à fait logique de contribuer à la démocratisation de ce puissant outil de lutte contre les contenus pédopornographiques.

Nous espérons qu’il permettra à nos clients de constituer des équipes de modération de contenu plus performantes et adaptées à leurs propres communautés, et qu’il leur permettra de se développer de manière responsable pour concurrencer les géants du net actuels. Cela s’inscrit directement dans notre mission qui consiste à contribuer à bâtir un Internet meilleur, et c’est la raison pour laquelle nous annonçons que nous allons mettre ce service à la disposition de tous nos clients gratuitement.