Facebook dévoile son protocole Zero, pour réduire la latence des connexions sécurisées

Facebook dévoile son protocole Zero, pour réduire la latence des connexions sécurisées

Sans sucre

Avatar de l'auteur
Vincent Hermann

Publié dans

Internet

30/01/2017 5 minutes
17

Facebook dévoile son protocole Zero, pour réduire la latence des connexions sécurisées

Dans un long billet technique, Facebook explique les travaux entrepris depuis plus d’un an sur un protocole de communication capable de réduire la latence. Baptisé Zero, il permet d'accélérer les connexions sécurisées.

Le travail réalisé par Facebook s’inscrit dans un cadre particulier. Les connexions à ses serveurs sont très nombreuses et ne font qu’augmenter, ne serait-ce qu’à travers son service de connexion unifiée. L’éditeur cherche donc par tous les moyens à réduire la latence lors des échanges.

La problématique de Facebook : les performances des connexions

Toutes les applications Facebook utilisent une pile réseau maison. Nommée Mobile Proxygen, elle se présente sous la forme d’un client HTTP multiplateforme écrit en C++14, basé sur la bibliothèque Proxygen. Celle-ci utilise TLS 1.2 via OpenSSL pour établir les connexions sécurisées. C’est ici que se concentre la problématique.

Cette phase d’établissement prend du temps, comme tout ce qui touche aux connexions sécurisées : il faut négocier avec le serveur, échanger les clés, chiffrer le contenu, etc. Facebook indique avoir accéléré autant que possible ces étapes via différentes techniques (réutilisation des connexions HTTP/2, reprise de sessions, démarrage spéculatif des connexions, suites cryptographiques récentes, …), mais la grande majorité des connexions TLS nécessitent au moins un round-trip (1-RTT).

La notion de RTT (round-trip time) est cruciale. Elle définit le nombre d’étapes entre la requête d’un client et ce qui est réceptionné en retour. Ce nombre a un impact sur la latence de connexion, puisque qu’avec l’augmentation de ces étapes, le client attend davantage avant que des données lui soient effectivement envoyées. L’objectif de Facebook ? Le 0-RTT, d’où le nom de son protocole : Zero.

Négocier au plus vite pour échanger plus tôt

Le sujet intéresse Facebook depuis longtemps, même si l’entreprise est loin d’être la première à travailler sur un tel protocole. En fait, TLS 1.3 dispose effectivement d’un mode 0-RTT. Cependant, le protocole n’est pas finalisé, Facebook indiquant d’ailleurs qu’au début du travail sur Zero, l’état de TLS 1.3 ne permettait pas de se baser sur le brouillon.

L’entreprise s’est donc appuyée sur un protocole existant, nommé QUIC. Il a fallu en modifier de nombreux aspects, dont le principal : QUIC est conçu pour les connexions UDP, alors que Facebook communique avec TCP. Le principe général reste toutefois le même.

Ainsi, lors de la toute première connexion d’un client vers le serveur, il y a négociation complète. Le client garde alors en cache un message, Server Config (SCFG), qui contient toutes les informations sur le protocole d'échange de clés Diffie-Hellman. Toutes les connexions ultérieures l’utiliseront pour obtenir des clés dérivées et ainsi commencer immédiatement à échanger des données. On peut parler en fait de connexions « pré-négociées ».

Des soucis particuliers, mais des gains réels

Bien entendu, les détails sont nettement plus complexes et de nombreux ajustements ont dû être faits, tant pour améliorer les performances que pour appréhender des problématiques de sécurité spécifiques au 0-RTT. Par exemple, Facebook limite la durée pendant laquelle une configuration serveur (SCFG) est valide, pour éviter que sa fuite ne permette son imitation. De même, les propriétés de sécurité des données 0-RTT sont particulières. Si aucune barrière n’était mise en place, elles pourraient être « rejouées » sans limite par des pirates, comme dans le cas de requêtes HTTP POST.

Actuellement, le protocole Zero est déployé dans les applications mobiles de Facebook et est utilisé en interne pour la répartition de charge entre les serveurs. Les bénéfices sont bien présents selon l’éditeur : en moyenne, 41 % de réduction sur la latence des connexions, un gain plus que notable donc. Toutes les requêtes n’en profitent cependant pas de la même manière. Celles établies quand l’application se lance et ne peut pas réutiliser une connexion existante (mais que les données SCFG sont toujours valables) sont particulièrement accélérées par exemple. Le réseau social indique d'ailleurs que le démarrage à froid des applications s'en trouve raccourci.

Facebook veut montrer son implication

Cependant, si Facebook aborde ces questions maintenant, c’est bien pour faire la démonstration de son implication sur ce type de problématique.

Ainsi, tout le travail effectué sur Zero a été communiqué au groupe concerné au sein de l’IETF tout au long de l’année écoulée. Plusieurs aspects du futur standard sont en fait déjà inspirés du protocole de Facebook, comme la durée de vie des tickets. Les échanges ont permis de souligner des problèmes potentiels, notamment l’influence du 0-RTT sur les navigateurs.

Qu’en sera-t-il alors de Zero quand TLS 1.3 arrivera ? Facebook travaille en fait déjà sur son implémentation du protocole, en utilisant les derniers brouillons. Il agira comme un surensemble de Zero et l’englobera entièrement. Facebook ne tarit d’ailleurs pas d’éloges sur le standard en devenir : plus sécurisé, modèle beaucoup plus simple, avec de meilleures performances.

Le protocole Zero ne disparaîtra cependant pas. Facebook continuera de le développer dans un cadre expérimental, pour comparer les résultats obtenus à ceux de TLS 1.3. L’éditeur avoue d’ailleurs que travailler sur Zero lui a permis de mieux saisir les tenants et aboutissants du 0-RTT permis par TLS 1.3. Il recommande finalement à tous ceux qui sont intéressés par la sécurité et les performances de se pencher sur le standard.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

La problématique de Facebook : les performances des connexions

Négocier au plus vite pour échanger plus tôt

Des soucis particuliers, mais des gains réels

Facebook veut montrer son implication

Fermer

Commentaires (17)


Le C++, il n’y a que ça de vrai <img data-src=" />


Le 0 RTT c’est pas la politique de Macron ? Au boulot ! Lol, sinon excellente initiative malgré que je n’aime pas FB il faut avouer qu’il sont toujours pionniers dans les avancées. HTTP/2, TLS, TOR, 2FA…



😅😅


J’ai failli trasher un peu au prétexte que le premier lien me renvoie un “impossible d’établir la connexion sécurisée” mais j’avais oublié que FB était bloqué au niveau de notre firewall <img data-src=" /> (je re regarderai de chez moi)


Pour une fois qu’une entreprise partage son travail avec une agence publique, on ne peut qu’applaudir <img data-src=" />


A ne pas confondre avec zéro vie privée.



Médisance mise à part,





Aytine a écrit :



Pour une fois qu’une entreprise partage son travail avec une agence publique, on ne peut qu’applaudir <img data-src=" />



+1



Bon article :-)



QUIC sur lequel Zero est basé, est développé par Google.

Bel exemple de stimulation de l’innovation grâce au modèle du logiciel libre.


Euh ? C’est une blague ? Trouve moi une RFC récente qui ne soit pas sponsorisée par une entreprise&nbsp;


Moi, je me demande de quelle “agence publique” il parle.


3 news sur facebook dans la journée… Pendant ce temps la des boites française innovent et l’ont en parle pas, comme dagoma et sont imprimante 3D 100% française :/


En même temps sur le web tu ne peux faire cavalier seul… et les consortium du web sont tous constitués de représentants d’entreprises donc ta remarque est un peu bizarre.


l’IETF j’imagine :/


Qui n’est pas une agence publique, d’où mon interrogation feinte. <img data-src=" />


Parler d’un produit uniquement parce qu’il est français, ça n’a que peu d’intérêt, et encore moins dans le domaine technologique.



Ensuite, Dagoma n’a de “100% français” que son équipe et l’argent de la “French Tech” si pratique pour la comm politique (cf. le défilé de personnages politiques sur leur stand au CES).

Ces deux arguments ne pèseront pas lourd si le marché américain s’y intéresse.



Facebook est un acteur majeur du dev internet. Aussi critiquable qu’elle puisse être, cette entreprise est de fait très présente dans l’actualité.

De plus, une actualité (celle-ci) concerne un développement réellement important pour le futur des communications, un autre est un article original de NI s’inscrivant dans toute une série d’articles de fond de grande qualité, et enfin le dernier article concerne un problème ayant de réelles répercussions dans notre monde (cf. la politique en 2016, que les historiens classeront sans doute comme étant l’année où Internet a influencé le monde plus que tout autre moyen).



Bref, pour résumer, l’annonce d’une énième imprimante 3D vs. trois articles aux implications majeures.


Je pensais que ça aurait un rapport avec TCP Fast Open (TFO), une variante de TCP pour éliminer la latence du 3-way handshake (SYN , SYN+ACK, ACK) lors de l’établissement d’une connexion TPC, cf par exemplehttp://www.bortzmeyer.org/tcp-ouverture-rapide.html .








Vincent dans le sous-titre a écrit :



Sans sucre





Bah en crypto, on rajoute plus souvent du sel que du sucre (c’est hash-ment mieux)



<img data-src=" /> :partiloin:



Merci pour l’info sur Dagoma, ça pourra intéresser notre IUT en plus c’est pas chère par rapport à d’autres.

Désolé du HS&nbsp;<img data-src=" />



Et vive le futur TLS&nbsp;<img data-src=" />


Joli&nbsp;<img data-src=" />