Pour implémenter TLS 1.3 sur Facebook, le réseau social a créé Fizz, une bibliothèque TLS robuste et hautement performante écrite en C ++ 14. Outre les améliorations de protocole fournies avec TLS 1.3, Fizz propose un certain nombre de fonctionnalités d’implémentation, notamment la prise en charge des E/S asynchrones par défaut, et disperse / rassemble les E/S pour éliminer le besoin de copies supplémentaires de données.
Les ingénieurs Facebook ont déclaré : « Nous avons déployé Fizz et TLS 1.3 globalement dans nos applications mobiles, Proxygen, nos répartiteurs de charge, nos services internes et même notre bibliothèque QUIC, mvfst. Plus de 50% de notre trafic Internet est maintenant sécurisé avec TLS 1.3. Nous avons également déployé des données zero round-trip (0-RTT), la nouvelle fonctionnalité de TLS 1.3, dans nos applications mobiles. Fizz gère maintenant des millions de handshakes TLS 1.3 par seconde. Nous pensons que cela en fait le plus grand déploiement de données TLS 1.3 sur Internet. Fizz a réduit non seulement la latence, mais aussi l’utilisation du processeur des services qui effectuent des milliards de requêtes par jour. Nous sommes ravis de faire appel à Fizz pour faciliter le déploiement de TLS 1.3 sur Internet et aider les autres à rendre leurs applications et services plus rapides et plus sûrs ».
Il faut rappeler que 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. RTT est donc, dans les réseaux informatiques, le temps que met un signal pour parcourir l'ensemble d'un circuit fermé. 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.
Facebook a décidé de rendre open source Fizz pour accélérer le déploiement de TLS 1.3 sur Internet et aider les autres développeurs / éditeurs à rendre leurs applications et services plus rapides et plus sûrs.
Performance
Durant plusieurs années, l’équipe de Facebook a collaboré avec l'IETF (Internet Engineering Task Force) pour standardiser TLS 1.3. Auparavant, afin d'améliorer la sécurité et les performances de TLS, les ingénieurs Facebook ont déployé le protocole Zero, un protocole personnalisé qui leur a permis d'expérimenter la création de connexions sécurisées 0-RTT.
« L'utilisation de données 0-RTT réduit la latence des requêtes à l'aide de TLS et la surcharge de latence nécessaire au déploiement de TLS. Fizz offre la fiabilité et les performances de TLS 1.3 au même niveau que le protocole Zero. Par conséquent, nous avons remplacé notre déploiement de protocole Zero par TLS 1.3 », explique l’équipe.
L'efficacité a également été au centre des préoccupations avec le développement de Fizz. « Avec le chiffrement et le déchiffrement sans copie, une intégration étroite avec d'autres parties de notre infrastructure et d'autres optimisations, nous constatons une réduction de l'utilisation de la mémoire et du processeur avec Fizz. Nos tests de performance synthétiques avec équilibreur de charge montrent un débit environ 10% supérieur à celui de notre pile précédente, et nous continuons à améliorer les performances ».
Comme avec le protocole Zero, les premières données TLS 1.3 réduisent considérablement la latence lors de l'établissement de connexions sécurisées, par rapport à TLS 1.2. Cela améliore l'expérience utilisateur, en particulier au démarrage de l'application lorsqu'il n'y a pas de connexions à réutiliser.
Amélioration de la latence en pourcentage (TLS 1.3 avec données précoces contre TLS 1.2)
L'un des problèmes majeurs consistait à écrire des données sur une grande quantité de mémoire, ce qui augmentait l’utilisation des ressources et réduisait la vitesse. Pour contourner ce problème, Facebook a décidé de diviser les données en blocs plus petits au fur et à mesure de son déplacement en mémoire, puis de les chiffrer en place, un processus appelé dispersion/rassemblement des E/S. Cela fournit un moyen plus efficace de traiter les données en mémoire, en réduisant le temps nécessaire au traitement tout en augmentant la vitesse de traitement.
Au lieu de chiffrer un seul morceau de données, en utilisant le processus dispersion/rassemblement, Fizz le décompose en morceaux distincts et les chiffre chacun.
Source : Facebook
Et vous ?
Qu'en pensez-vous ?
Voir aussi :
Fake news : Facebook dit avoir identifié une tentative coordonnée d'influence électorale aux USA, 32 comptes et pages ont été supprimés
WhatsApp va-t-il enfin faire gagner de l'argent à Facebook ? Le service de messagerie sera payant pour certaines entreprises
Facebook bloque l'accès aux données utilisateurs à des milliers d'applications, qui n'ont pas été soumises à son processus d'examen approfondi
USA : l'administration Trump travaille à l'établissement de règles de protection de la vie privée sur Internet avec Facebook et Google
Facebook obtient pendant une semaine une licence commerciale en Chine, un coup dur pour la société dont les services restent bloqués dans le pays