Facebook started encrypting the connections of its North American users by default last week as part of a plan to roll out always-on HTTPS (Hypertext Transfer Protocol Secure) to its entire global user base.
For the past several years, security experts and privacy advocates have called on Facebook to enable always-on HTTPS by default because the feature prevents account hijacking attacks over insecure networks and also stops the governments of some countries from spying on the Facebook activities of their residents.
Despite the feature's security benefits, Facebook announced the start of its HTTPS roll-out in a post on its Developer Blog last week, and not through its security page or its newsroom.
"As announced last year, we are moving to HTTPS for all users," Facebook platform engineer Shireesh Asthana said, while also describing many other platform changes and bug fixes relevant to developers. "This week, we're starting to roll out HTTPS for all North America users and will be soon rolling out to the rest of the world."
It's not clear when exactly the roll-out for the rest of the world will start. Facebook did not immediately respond to a request for comment.
The Electronic Frontier Foundation (EFF), a digital rights organisations, welcomed the move, describing it as a "huge step forward for encrypting the web".
The EFF has long been a proponent of always-on HTTPS adoption. In collaboration with the Tor Project, creator of the Tor anonymising network and software, the EFF maintains a browser extension called HTTP Everywhere that forces always-on HTTPS connections by default on websites that only support the feature on an opt-in basis. Twitter, Gmail and other Google services have HTTPS already turned on by default.
Facebook launched always-on HTTPS as an opt-in feature for users in January 2011. However, the initial implementation was lacking because whenever users launched a third-party application that didn't support HTTPS on the website, the entire Facebook connection was switched back to HTTP.
In order to address this problem, in May 2011 Facebook asked all platform application developers to acquire SSL certificates and make their apps HTTPS-compatible by October 1 that same year.
It's not clear why it took the company another year after that deadline expired in order to finally be able to offer always-on HTTPS by default.
Ivan Ristic, director of engineering at security firm Qualys, a company that monitors the HTTPS implementations on the world's most popular websites through a project called SSL Pulse, believes that it was harder for Facebook to implement this feature given its ecosystem of millions of third-party apps and websites that integrate with its platform.
The task of implementing HTTPS across one's own infrastructure is manageable, Ristic said. However, when you have to deal with third-party content providers things become more complicated and require more time, he said.
Having full-session HTTPS turned on by default will have an impact on latency, but mainly when a browser first connects to a website and negotiates the SSL connection, Ristic said. However, that impact is probably going to be unnoticeable, he said.
Ristic believes that the security benefits of HTTPS are much more important and are definitely worth the latency costs. He also hopes to see other websites implement always-on HTTPS by default as well, even those that don't deal with particularly valuable accounts from an attacker's perspective, such as Wikipedia.
Using SSL is the only way to ensure the integrity of your content, Ristic said, adding that some ISPs and wireless network providers are already in the habit of inserting ads and other content into websites that don't use HTTPS.
However, the SSL expert doesn't believe that Facebook's switch to HTTPS by default will necessarily determine other websites to implement the feature as well. It's the users who need to pressure website operators into securing their connections with HTTPS at all times, he said.
Ristic echoed the EFF's opinion that Facebook's move is a great step forward for SSL adoption. However, the next step for Facebook is to implement HTTP Strict Transport Security (HSTS), he said.
HSTS allows HTTPS-enabled websites to instruct browsers that any attempts to initiate a connection with them over HTTP should not be allowed. This feature was designed to prevent a type of attack known as SSL stripping that allows an attacker positioned between a website and a user to force a connection downgrade from HTTPS to HTTP.
Qualys' SSL Server Test rates Facebook's current HTTP implementation with grade A and a score of 87 out of 100 points.