Facebook opplyste i går at selskapet har utgitt Fizz, selskapets eget TLS-bibliotek, som åpen kildekode. Biblioteket er skrevet i C++ 14, støtter TLS 1.3 og skal være optimalisert for høy ytelse og redusert minne- og CPU-bruk.
Fizz-biblioteket er allerede tatt i bruk av Facebook i blant annet mobilappene, webservere og interne tjenester. Ifølge selskapet bidrar dette til at mer enn halvparten av all internettrafikken til selskapet nå er sikret med TLS 1.3, som både er sikrere og mer effektiv enn de fortsatt mye brukte forgjengerne.
Redusert ressursbruk
Blant teknikkene Facebook har tatt i bruk for å redusere ressursbruken, er «scatter/gather I/O», også kalt vektorisert I/O. I dette tilfellet gjør det det mulig for Fizz å kryptere data som er spredt over på ulike steder i minnet, uten først å kopiere dataene til én sammenhengende minnelokasjon, noe som skal være nødvendig i andre biblioteker.
Ved å unngå kopieringen, sparer en både minneplass og tid.
Raskere oppkobling
Fizz kan også sende data med en gang TCP-forbindelsen er opprettet. Dette reduserer forsinkelsen ved opprettelsen av forbindelser, men innebærer at en angriper kan avspille dataene på nytt og dermed oppnå at de prosesseres av serveren to ganger.
For å redusere denne risikoen er det bare spesifikke, hvitelistede spørringer som sendes som «tidlige data». Facebook har også knyttet et mellomlager til selskapets lastbalanserere for å kunne gjenkjenne og avvise data som avspilles på nytt.
Facebook har beskrevet mange av de øvrige egenskapene til Fizz i dette innlegget. Biblioteket kan i alle fall brukes på Linux- og MacOS-baserte systemer.