Facebook turned on a key security feature by default on Wednesday that scrambles data sent by users to the company's servers, following similar moves in recent years by Web services such as Google and Twitter.
Two years ago, the social networking site gave users the option of using TLS (Transport Security Layer) encryption, indicated by "https" in the URL bar. TLS is the successor to SSL (Secure Sockets Layer), a system that uses public key cryptography to ensure greater privacy between two parties.
More than a third of users flipped on TLS, but it was not made a default due to a variety of engineering challenges, wrote Scott Renfro, a software engineer with Facebook's Security Infrastructure team in London.
One problem is latency. Facebook has been using techniques that help speed up the response of its servers for users in places such as Jakarta, who may endure a slower response with a Facebook server in Prineville, Oregon, than someone in Canada.
Setting up a TLS session involves an exchange of data that could take 600 milliseconds for someone in Jakarta versus just 40ms for someone in Vancouver. Facebook is using a technique to make that data exchange take less time in order to speed up page response times.
The move to TLS also took time because Facebook had to wait until many third-party application developers also upgraded their platforms, Renfro wrote. Most Web browsers will not render content that does not use TLS as part of a Web page served that does.
"Because we embed third-party platform applications inside of iframes, we needed to get all platform applications to upgrade their apps to support https," Renfro wrote. "This was treated as a 90-day breaking change for platform applications, and we actually gave developers 150 days to get a certificate and upgrade their application to https."
There are compatibility issues, however, with TLS and some mobile phones and carriers, according to Renfro. Facebook will enforce https on browsers and phones where it is supported but will still allow less-secure connections with some devices. Most of the issues involve feature phones, he wrote.
"While we're working with the vendors of these products, we didn't want to leave https off entirely for affected users," Renfro wrote. "Instead, we only downgrade the session on an ineligible device while continuing to use https on browsers and phones where https is properly supported."
The work isn't done. Facebook uses 1048-bit RSA keys but plans to follow the industry standard and move to 2048-bit keys later this year. Longer cryptographic keys generally make it much harder for hackers to decrypt data.
Facebook will also move to a type of cryptographic key exchange that ensures data can't be decrypted in the future, a concept known as Perfect Forward Secrecy. The system uses a short-lived private key for each TLS session, eliminating the risk that data could be decrypted years later if a private key is compromised, Renfro wrote.