Facebook dévoile son protocole Zero, pour réduire la latence des connexions sécurisées
Sans sucre
Le 30 janvier 2017 à 14h50
5 min
Internet
Internet
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.
Facebook dévoile son protocole Zero, pour réduire la latence des connexions sécurisées
-
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
Commentaires (17)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 30/01/2017 à 14h57
Le C++, il n’y a que ça de vrai " />
Le 30/01/2017 à 15h00
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…
😅😅
Le 30/01/2017 à 15h04
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 " /> (je re regarderai de chez moi)
Le 30/01/2017 à 15h14
Pour une fois qu’une entreprise partage son travail avec une agence publique, on ne peut qu’applaudir " />
Le 30/01/2017 à 15h45
A ne pas confondre avec zéro vie privée.
Médisance mise à part,
Le 30/01/2017 à 16h07
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.
Le 30/01/2017 à 16h23
Euh ? C’est une blague ? Trouve moi une RFC récente qui ne soit pas sponsorisée par une entreprise
Le 30/01/2017 à 16h35
Moi, je me demande de quelle “agence publique” il parle.
Le 30/01/2017 à 16h41
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 :/
Le 30/01/2017 à 16h53
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.
Le 30/01/2017 à 17h01
l’IETF j’imagine :/
Le 30/01/2017 à 17h07
Qui n’est pas une agence publique, d’où mon interrogation feinte. " />
Le 30/01/2017 à 17h24
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.
Le 30/01/2017 à 17h30
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 .
Le 31/01/2017 à 00h07
Le 31/01/2017 à 08h11
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 " />
Et vive le futur TLS " />
Le 31/01/2017 à 09h15
Joli " />