This week, Facebook announced HTTPS support for all communication between its servers and end users’ web browsers. This is the right thing for Facebook to do in light of recent proof that session hijacking of Web 2.0 applications is both easy and increasingly common with tools like Firesheep. While HTTPS is not yet on by default (users have to specify HTTPS in the Facebook URL), that is the stated intention. Note that Gmail went to default HTTPS a year ago.
On Wednesday, Facebook announced that it’s adding HTTPS, which uses SSL/TLS encryption, to secure all communications between browsers and Facebook Web servers. The move means that Facebook users will now see a lock icon or a green SSL address bar when using the Facebook site.
Previously, Facebook used HTTPS only on pages that required users to enter a password. Now, extending HTTPS to all pages means better security because tools such as Firesheep — an automated browser extension able to hijack sessions with Web 2.0 sites — as well as packet sniffers will no longer work against the site.
There’s only one catch: HTTPS won’t be enabled by default. According to Facebook security engineer Alex Rice, “we hope to offer HTTPS as a default whenever you are using Facebook sometime in the future.”
The feature will shortly — over the next few weeks — become available to all users. To activate it, they’ll have to manually select it on the “advanced security features” page, which is located under the “account security” section of the “account settings” page.
Rice warned that users may see some issues, at least in the short term. “Encrypted pages take longer to load, so you may notice that Facebook is slower using HTTPS. In addition, some Facebook features, including many third-party applications, are not currently supported in HTTPS. We’ll be working hard to resolve these remaining issues.”
But based on other Web sites’ experiences, any slowdowns should be minor, as long as Facebook correctly implements the protocol. For example, in July 2010, Google software engineer Matt Cutts posted an assessment of Google’s experience. In brief: “If you stop reading now you only need to remember one thing: SSL/TLS is not computationally expensive anymore.”
Google made HTTPS non-optional for all Gmail users in January 2010 as a way to boost security after finding that the protocol required no additional hardware and consumed very few resources. “On our production frontend machines, SSL/TLS accounts for less than 1% of the CPU load, less than 10 KB of memory per connection, and less than 2% of network overhead,” said Cutts.
Facebook faced criticism for not following Google’s lead more quickly, especially after the arrival last year of Firesheep. Its author, Eric Butler, said he built the tool to highlight the inherent vulnerability of using Facebook on an unencrypted Wi-Fi network.