Cloudflare Research: Two Years In
Les grandes compagnies consacrées à la technologie élaborent des produits innovants et les offrent au monde ; les entreprises technologiques iconiques changent la nature même du monde.

La mission de Cloudflare est le reflet de notre ambition : contribuer à construire un Internet meilleur. Elle implique une démarche selon plusieurs axes, à savoir une constante innovation produit, une prise de décision stratégique et de l'audace pour remettre en question toutes nos convictions concernant la structure et le potentiel d'Internet. Il y a deux ans, le département de recherche de Cloudflare est né de ce désir de changer la donne en explorant les possibilités offertes par la recherche en science de l'informatique, qu'elle soit fondamentale ou appliquée.

Nous sommes heureux de communiquer les cinq principes de fonctionnement qui orientent la démarche de Cloudflare dans l'application de la recherche en vue d'un Internet meilleur et de vous présenter cinq études de cas illustrant ces principes. La recherche chez Cloudflare sera à l'honneur toute la semaine dans le blog, alors inscrivez-vous et suivez-nous !

L'innovation vient de partout

Ce n'est pas parce qu'une entreprise a consacré un groupe de personnes à la réflexion sur l'avenir qu'elle devient innovante ; elle le devient car on y a instauré une culture dans laquelle les idées circulent librement et surtout peuvent venir de n'importe qui. La recherche est plus efficace quand elle est autorisée à évoluer au-delà et en dehors de l'environnement hermétique des laboratoires, qu'elle est profondément intégrée à tous les aspects du travail d'une entreprise, et qu'elle est connectée avec le monde le plus largement possible. Nous envisageons notre équipe de recherche comme une assistance dont le rôle consiste à identifier et à encourager les bonnes idées, avec des perspectives pour les trois à cinq années à venir.

Le département de la recherche de Cloudflare met l'accent sur une solide collaboration afin que ses activités aillent toujours dans le sens des questions prioritaires pour nos équipes produit, nos équipes des technologies émergentes et de l’incubation, nos équipes techniques et pour le secteur en général. Au sein de Cloudflare, nous étudions les problèmes en nous intégrant à d'autres équipes. En dehors de l'entreprise, nous accueillons la visite de chercheurs et d'universitaires, nous siégeons à des conseils d'administration et à des comités, nous collaborons à la conception et à l'élaboration de normes libres, nous assistons à des dizaines de conférences en technologie chaque année et nous publions des écrits dans le cadre de conférences.

L'ingénierie de la recherche est un concept véritablement global. Nous agissons comme un incubateur d'idées, de la conception au prototype en passant par le code de production. Notre équipe compte des spécialistes issus des milieux universitaires ou industriels et des généralistes qui contribuent à l'interdisciplinarité des idées. Nous collaborons étroitement avec les organisations techniques et produit afin de mettre en place des plans de reconnaissance dans les secteurs où la notion de propriété du code est très importante. Nous recrutons également de nombreux stagiaires qui procèdent à une évaluation des nouvelles idées et éliminent les plus risquées avant qu'elles ne soient transmises aux systèmes de production, puis remises aux autres équipes de l'entreprise.

Les questions soumises à la recherche émanent de toutes les entités de l'entreprise, parfois même des clients. Notre démarche collaborative a produit de nombreux résultats positifs aussi bien pour Cloudflare que pour l'Internet au sens large.

Étude de cas n°1 : sécurité du mot de passe

Il y a quelques années un service appelé Have I Been Pwned, qui permet aux utilisateurs de vérifier si leur mot passe a fait l'objet d'une violation, a commencé à utiliser Cloudflare pour garantir la disponibilité et le fonctionnement du site pendant les périodes de forte sollicitation. La configuration a toutefois mis en évidence un problème de confidentialité : Have I Been Pwned devait absolument accéder à chaque mot de passe soumis au service, ce qui en faisait une cible idéale pour les pirates. La question suivante s'est alors posée : est-il possible de proposer un tel service en préservant la confidentialité ?

Comme c'est souvent le cas pour le travail de l'équipe de recherche, le cœur de la solution a été suggéré par une autre partie de l'entreprise. La première ébauche de ce travail est venue du service des techniciens de support, qui a mis au point une solution astucieuse, permettant quasiment de résoudre le problème. Toutefois, les investigations initiales ont souligné un problème complexe et profond touchant les applications bien au-delà des mots de passe. À ce stade, l'équipe de recherche s'est impliquée et a contacté des experts, dont Thomas Ristenpart de chez Cornell Tech, pour examiner cela plus en détail.

Cette collaboration nous a conduits à imaginer un nouveau protocole et à publier un article intitulé Protocols for Checking Compromised Credentials (Protocoles de vérification des données d'identification compromises) sur ACM CCS 2019. L'article nous mettait dans la bonne direction, mais nous souhaitions nous engager dans cette recherche et la rendre applicable, c'est pourquoi nous avons accueilli notre premier chercheur invité, pour qu'il nous aide à concevoir un prototype. Nous avons trouvé encore plus d'inspiration et de soutien en interne lorsque nous avons découvert qu'une autre équipe de Cloudflare s'intéressait à la possibilité d'enrichir le pare-feu applicatif Web Cloudflare de nouvelles fonctions, permettant de détecter des violations de mots de passe pour les clients. En fin de compte, cette équipe nous a aidés à créer le prototype et à l'intégrer dans le service de Cloudflare.

Cette combinaison d'informations client détaillées, de cohésion interne et de collaboration extérieure n'a pas seulement donné naissance à une fonctionnalité unique et puissante pour le client, elle a aussi permis de faire progresser la technologie de pointe en matière de préservation de la confidentialité pour un aspect essentiel de nos vies en ligne : l'authentification. Jeudi, nous aurons une annonce intéressante à révéler concernant cette technologie, alors continuez de nous suivre.

Une démarche orientée par les questions donne lieu à de meilleurs produits

Pour accompagner Cloudflare dans cette feuille de route accélérée, l'équipe de recherche a adopté une démarche consistant à partir des questions. Se concentrer sur les questions est l'essence même de la recherche, mais il est important de comprendre ce que cela signifie pour une entreprise pionnière dans son secteur. Nous ne cessons jamais de nous interroger sur les problèmes que nos produits permettent déjà de résoudre. Les grandes évolutions telles que le passage d'un ordinateur fixe à un portable, ou la transition vers le cloud de solutions de sécurité précédemment sur site ont eu lieu au cours d'une seule décennie, il est donc important de se poser des questions telles que :

  • Quelle sera l'incidence des changements sociaux et géopolitiques sur les produits que nous fabriquons aujourd'hui ?
  • Quelles hypothèses concernent les systèmes existants reposant sur les expériences homogènes de leurs créateurs ?
  • Quelles sont les évolutions actuelles du secteur qui affecteront la manière dont fonctionne Internet ?
  • Quelles sont pour nous les opportunités d'exploiter du nouveau matériel à moindre coût ?
  • Comment pouvons-nous progresser pour répondre à des besoins croissants ?
  • Existe-t-il de nouveaux paradigmes informatiques que nous devons comprendre ?
  • En quoi les attentes des utilisateurs sont-elles en train de changer ?
  • Pouvons-nous concevoir quelque chose qui permettra d'orienter Internet dans la bonne direction ?
  • Parmi les risques pour la sécurité et la confidentialité, quels sont ceux qui risquent de s'intensifier au cours des années à venir ?

En nous concentrant sur des questions plus larges et en étant ouverts aux réponses qui vont au-delà des limites des solutions existantes, nous élargissons notre champ de vision. Ce type de clairvoyance règle plus que des problèmes commerciaux ; elle améliore les produits et Internet dans toute son ampleur. Ces types de questions sont posés au gré des fonctions de recherche et développement de l'entreprise mais la recherche se concentre sur les questions auxquelles il n'est pas facile de répondre à court terme.

Étude de cas n°2 : SSL/TLS Recommender

Lorsque Cloudflare a rendu les certificats SSL gratuits et automatiques pour tous les clients, cela a été une étape majeure vers la sécurisation du Web. Une des premières critiques des offres SSL de Cloudflare était la fameuse critique « mulet ». Cloudflare propose un mode appelé « Flexible SSL », qui active le chiffrement entre le navigateur et Cloudflare mais laisse la connexion entre Cloudflare et le site d'origine non chiffré afin de garantir la rétrocompatibilité. On parle de critique mulet car l'offre Flexible SSL propose un chiffrement sur la moitié avant de la connexion, mais aucun pour la moitié arrière.

La plupart des risques pour la sécurité liés à la communication en ligne se situent entre l'utilisateur et Cloudflare (au niveau du FAI ou du café, par exemple), pas entre Cloudflare et le serveur d'origine. Les clients qui ne pouvaient pas activer le chiffrement sur leurs serveurs disposaient d'une bien meilleure sécurité avec Cloudflare.

Toutefois, il est arrivé à de rares occasions isolées que des clients ne puissent pas bénéficier de la configuration la plus sécurisée possible, cela a donné lieu à des problèmes de sécurité imprévisibles et dommageables. Conscients de la persistance d'un risque et de la pertinence de cette critique du produit, nous nous demandions tout naturellement ce que nous pouvions faire pour améliorer le niveau de sécurité de millions de sites Web.

Avec l'aide des stagiaires en recherche, de l'analyse sur Internet et des expertises de mesures, nous avons conçu un outil d'analyse/d'indexation avancée qui nous permet d'évaluer dans quelle mesure les choses pourraient être améliorées. Il s'est avéré que nous pouvions faire beaucoup, nous avons donc travaillé avec plusieurs équipes de l'entreprise afin de connecter notre infrastructure d'analyse au produit de Cloudflare. Nous proposons désormais un service à tous les clients nommé SSL/TLS recommender qui a permis à des milliers de clients de sécuriser leur site et de se débarrasser de leur « mulet ». La raison profonde pour laquelle les sites Web n'utilisent pas de chiffrement pour certaines parties de leurs backends est complexe et si ce projet est un bon exemple de questions à poser de manière pragmatique c'est parce que non seulement cela permet d'améliorer le produit pour Cloudflare, mais cela donne également aux chercheurs un ensemble d'outils permettant d'explorer plus en profondeur le problème fondamental.

Mettre au point aujourd'hui les outils qui traiteront les problèmes de demain

La recherche dans le contexte de Cloudflare poursuit un autre objectif majeur, celui de nous préparer à l'inconnu. Nous identifions et résolvons des scénarios « Et si jamais.... » imaginés d'après la manière dont la société évolue ou pourrait évoluer. Des milliers d'entreprises reposent sur notre infrastructure pour servir leurs utilisateurs et répondre à leurs besoins commerciaux. Nous améliorons en permanence leur expérience en pérennisant la technologie qui la sous-tend, dans les périodes difficiles autant que dans les meilleures.

Pour nous y préparer, nous :

  1. Identifions les zones de risque à venir.
  2. Explorons les fondements du problème.
  3. Forgeons une expertise et la faisons valider dans le cadre d'événements sous la supervision de pairs.
  4. Procédons à des essais de fonctionnalité avec des prototypes et des expérimentations à grande échelle.
  5. Établissons des réseaux de relations avec ceux qui peuvent nous aider dans cette crise.

Nous souhaiterions parvenir à une stratégie de réflexion et de planification aussi efficace que celle des groupes invisibles qui font tourner la société, tels que le service des eaux et forêts ou le département de la santé publique. Lorsqu'un incendie se déclare ou qu'un nouveau virus arrive, nous avons toutes les chances non seulement de nous en sortir mais également d'innover et de prospérer grâce aux mesures d'atténuation mises en place et aux relations établies lors de réflexions au sujet des difficultés imminentes.

Étude de cas n°3 : Agilité de l'adresse IP

Le risque d'épuisement d'adresses IPv4 existe et il est imminent. Il n'y a environ que quatre milliards d'adresses IPv4 possibles, ce chiffre est inférieur au nombre d'humains sur terre, sans parler du nombre d'appareils connectés à Internet. Nous avons décidé d'étudier ce problème plus en détail dans le contexte de la méthode de mise en réseau unique à Cloudflare.

L'architecture de Cloudflare remet en question plusieurs hypothèses concernant la manière dont les différents aspects d'Internet sont liés les uns aux autres. Historiquement, l'adresse IP d'un serveur correspond à une machine spécifique. La conception du serveur et de l'architecture anycast de Cloudflare permet à n'importe quel serveur de servir n'importe quel site client. Cette architecture a permis au service d'évoluer de manière spectaculaire avec peu d'efforts.

Les liaisons IP sont un frein à l'innovation

Ces informations nous ont amenés à remettre en cause les hypothèses fondamentales concernant la manière dont Internet pourrait potentiellement fonctionner. Si une adresse IP n'a pas besoin de correspondre à un serveur spécifique, quelles autres liaisons pouvons nous annuler ? Pouvons-nous dissocier les noms d'hôtes et les adresse IP ? Ce n'est peut-être pas impossible ! Nous pourrions également formuler la question autrement : qu'avons-nous à perdre si nous laissons passer notre chance d'annuler ces liaisons ? Ça valait au moins le coup d'essayer.

Nous avons décidé de valider cette hypothèse de manière empirique. Nous avons mené une expérience en servant tous les clients gratuits à partir de la même adresse IP dans une région entière, dans le cadre d'un effort réunissant plusieurs organisations, qui impliquait l'équipe DNS, l'équipe d'adressage IP et l'équipe d'équilibrage des charges en périphérie. Cette expérience a prouvé qu'il était possible d'utiliser une seule adresse IP pour des millions de services ; elle a aussi mis en évidence un certain nombre de risques. Le fruit de ce travail s'est concrétisé par la publication d'un document dans ACM SIGCOMM 2021 et un projet de réarchitecture de notre système DNS faisant autorité afin de le rendre beaucoup plus flexible. Cette flexibilité permettrait, entre autres choses, à Cloudflare de traiter d'éventuels problèmes de politique publique avant qu'ils ne se produisent.

Aller plus loin ensemble

Internet n'est pas qu'une simple fédération d'entreprises et des milliards de dollars de matériel déployé : il s'agit d'un réseau de relations interconnectées à l'incidence sociétale mondiale. Ces relations et les normes techniques qui les régissent forment le tissu conjonctif qui nous permet de construire les aspects importants d'une société moderne sur Internet.

Des millions de propriétés Internet utilisent le réseau de Cloudflare et il sert des dizaines de millions de requêtes par seconde. Les décisions que nous prenons et les produits que nous lançons ont une incidence significative sur l'industrie et des milliards de personnes. Dans la majorité des cas, nous ne contrôlons qu'un côté de la connexion Internet. Pour servir des milliards d'utilisateurs et d'appareils connectés à Internet, nous sommes soumis à des protocoles tels que DNS, BGP, TLS et QUIC, définis par des organisations de normalisation techniques telles que l'IETF (Internet Engineering Task Force).

Les protocoles évoluent et de nouveaux protocoles changent constamment pour servir les besoins en constante évolution d'Internet. Dans le cadre de notre mission de contribution à la construction d'un Internet plus sûr, plus privé, plus performant et plus disponible, une tâche importante consiste à jouer le rôle de leader dans l'élaboration de ces protocoles, à les déployer à grande échelle, et à concevoir des logiciels libres pour les mettre en oeuvre.

Étude de cas n°4 : Oblivious DNS

Lorsque Cloudflare a lancé le service DNS récursif 1.1.1.1 en 2019, la confidentialité a été à nouveau en première ligne. Nous avons proposé 1.1.1.1 avec une nouvelle norme de chiffrement appelée DNS-over-HTTPS (DoH) pour que les requêtes restent privées tandis qu'elles circulent sur Internet. Toutefois, même avec DoH, une requête DNS est associée à l'adresse IP de l'utilisateur qui l'a envoyée. Cloudflare a rédigé une politique de confidentialité et établi des mesures techniques selon lesquelles ces données ne sont conservées que pour un temps limité. Elle a même fait appel à une entreprise d'audit de premier plan pour le confirmer. Toutefois, la question subsistait, pouvions-nous proposer le service tout simplement sans qu'il soit nécessaire d'être en possession d'informations sensibles ? Nous avons créé le résolveur Onion pour permettre aux utilisateurs d'accéder au service sur le réseau d'anonymisation Tor, mais il était extrêmement lent à utiliser. Pourrions-nous proposer un DNS privé de manière chiffrée avec des performances acceptables ? Le problème restait posé.

L'architecture ODoH

Cette découverte décisive a été possible grâce à une combinaison de sources. Nous avons eu connaissance de nouveaux résultats universitaires décrivant une nouvelle technique de traitement par proxy appelée Oblivious DNS. Nous avons également rencontré des personnes de chez Apple et Fastly qui travaillaient au même problème. La proposition qui en a découlé combinait Oblivious DNS et DoH dans un protocole élégant nommé Oblivious DoH (ou ODoH). ODoH a été publié et il en a été beaucoup question dans les discussions lors de l'IETF. DNS est un protocole particulièrement dépendant des normes dans la mesure où les différentes parties font fonctionner de très nombreux composants du système. ODoH ajoute un autre élément à l'équation, ce qui rend encore plus impératives des normes d'interopérabilité prudentes.

L'équipe de recherche est partie d'une version très préliminaire d'ODoH et, avec l'aide d'un stagiaire (vous en apprendrez plus sur son expérience dans l'équipe demain), nous avons mis au point un prototype sur Cloudflare Workers. Nous en avons mesuré les performances et confirmé la viabilité d'un déploiement à grande échelle d'ODoH, puis rédigé ce document, publié dans PoPETS 2021.

Forts des résultats de notre expérimentation nous nous sommes lancés dans la création d'une mise en œuvre de qualité production. Nos chercheurs ont collaboré avec les chercheurs dans l'équipe du résolveur pour mettre en œuvre et lancer ODoH pour 1.1.1.1, qui est devenu une part importante d'un partenariat majeur pour Cloudflare. Nous avons également créé un code source libre lié à ODoH dans Go, Rust et une mise en œuvre compatible avec Cloudflare Workers. Nous avons également travaillé avec la communauté des logiciels libres pour que le protocole soit utilisé par un maximum d'outils disponibles, tels que dnscrypt, afin de favoriser l'adoption d'ODoH. ODoH n'est qu'un exemple de collaborations ayant eu lieu dans le secteur pour élaborer des normes dont vous entendrez parler plus largement pendant la semaine.

De la théorie à la pratique à l'échelle mondiale

Des milliers de documents ont été publiés dans le cadre des dizaines d'événements qui ont eu lieu chaque année dans le domaine de la technologie Internet. Les idées de la recherche universitaire peuvent modifier notre compréhension fondamentale du monde d'un point de vue scientifique mais souvent l'incidence pour les utilisateurs arrive plus tard. L'innovation arrive de tous les horizons et il est important d'adopter des idées provenant d'une communauté plus large puisque nous sommes dans une position idéale pour le faire.

En tant qu'universitaire, vous êtes récompensé pour la découverte, pas pour la manière dont elle sera utilisée. Nous accordons de l'importance à la possibilité de suivre, voire mener, les opérations qui en découleront pour les améliorations tangibles que cela apportera au niveau d'Internet. Nous estimons que nous pouvons souvent en apprendre plus sur une idée en la déployant qu'en se contentant de réfléchir et de l'écrire. La plus petite amorce dans un environnement laboratoire ou dans un document théorique peut devenir quelque chose d'énorme à l'échelle d'Internet et les informations en apparence les plus mineures peuvent révéler un gigantesque potentiel.

Nous avons la chance chez Cloudflare d'être dans une position unique qui nous permet de profiter de la diversité d'Internet pour approfondir la recherche existante et étudier son incidence sur le monde réel. Nous pouvons apporter des informations et des solutions décrites dans les documents car nous disposons de la connaissance nécessaire pour le faire : à l'instant même, presque chaque utilisateur d'Internet utilise Cloudflare.

Nous avons également assez d'ampleur pour que les problèmes qui auraient pu être résolus de manière conventionnelle doivent obligatoirement faire appel aux nouveaux outils. Par exemple, les outils de chiffrement tels que le chiffrement basé sur l'identité ou les preuves à divulgation nulle de connaissance existent sur le papier depuis des décennies. Ils n'ont été que récemment déployés dans un petit nombre de systèmes actifs mais ils se présentent aujourd'hui comme des outils précieux pour l'Internet classique et produisent des conséquences dans la vie réelle.

Étude de cas n°5 : Attestation cryptographique de personnalité

Dans l'étude de cas n°4, nous avons examiné une question de mise en réseau profonde et fondamentale. Si l'exploration de la plomberie est amusante, il est également important de s'intéresser aux questions concernant l'expérience utilisateur car c'est à ce niveau-là que le ressenti des clients est immédiat. La valeur de Cloudflare tient en grande partie à la protection qu'elle offre aux clients contre les robots et un des principaux outils utilisés est le CAPTCHA. Tout le monde déteste les CAPTCHA. Dans l'expérience web, peu de choses agacent plus l'utilisateur que le fait d'être interrompu pour identifier des panneaux de signalisation ou des camions dans des images à basse résolution lorsqu'ils essaient d'accéder à un site. Qui plus est, les CAPTCHA les plus courants sont inaccessibles pour de nombreuses personnes, à commencer par les aveugles ou les malvoyants. L'équipe consacrée aux robots chez Cloudflare a fait de grands progrès dans l'amélioration de la détection de robots côté serveur (une difficulté en soi). Nous avons décidé d'enrichir leur travail en envisageant de profiter de l'accessibilité côté client pour fournir une protection équivalente à un CAPTCHA.

Flux de travail de l'utilisateur de CAP

Cette éventualité nous a conduits à élaborer une nouvelle technique que nous appelons l'attestation cryptographique de personnalité (CAP). Au lieu de demander aux utilisateurs de prouver à Cloudflare qu'ils sont humains en effectuant des tâches humaines, nous pourrions leur demander de prouver qu'ils disposent d'un matériel physique digne de confiance. Pour ce faire, nous avons choisi la norme WebHauthn vastement déployée, ainsi, des millions d'utilisateurs peuvent profiter de clés de sécurité matérielles ou du système biométrique matériel intégré dans leurs téléphones et leurs ordinateurs.

Ce projet a soulevé un certain nombre de questions intéressantes et pertinentes concernant la confidentialité et l'expérience utilisateur. Avec l'aide d'un stagiaire de la recherche nous avons fait l'expérience de l'authentification anonyme, nous avons rédigé un document (à venir dans SAC 2021) qui exploite et améliore les systèmes de chiffrement à divulgation nulle de connaissance pour ajouter des fonctions de confidentialité supplémentaires à notre solution. L'ubiquité de Cloudflare nous permet d'ouvrir des millions d'utilisateurs à cette nouvelle idée et de comprendre comment elle est perçue : par exemple, les utilisateurs pensent-ils que les sites peuvent collecter les données biométriques de leurs utilisateurs de cette manière ? Nous avons un nouveau document de prévu (en collaboration avec l'équipe de recherche consacrée à l'utilisateur), il traitera de ces questions liées à l'expérience utilisateur.

Certaines réponses à ces questions fomentées par la recherche sont surprenantes, d'autres pas du tout, mais dans tous les cas, le résultat de cette démarche orientée par les questions a été l'outil parfait pour résoudre les problèmes.

Que trouverez-vous dans le blog ?

Comme il a été mentionné précédemment, le recherche de Cloudflare sera omniprésente dans le blog Cloudflare au cours des prochains jours pour effectuer plusieurs annonces et présenter des explications techniques, dont :

  • Des annonces. Une nouvelle page d'accueil dans laquelle vous pourrez lire le fruit de notre recherche et chercher des ressources supplémentaires.
  • Des explorations techniques dans les normes et documents de recherche, y compris concernant les recherches mentionnées plus haut (et PLUS encore).
  • Des informations sur notre processus et les possibilités de collaborer avec nous.

Bonne lecture.