Google speeds up encrypted Web communications in Chrome on Android
Google has added support for a new TLS cipher suite in its Chrome browser for Android that the company claims will provide better security and performance for encrypted communications on mobile devices.
The new cipher suite uses two cryptographic algorithms called ChaCha20 and Poly1305 that were designed by Dan Bernstein, a cryptographer and professor at the University of Illinois, and are currently being considered for standardization by the Internet Engineering Task Force (IETF).
ChaCha20 is used for encryption and Poly1305 is used for message authentication, both operations being needed to communicate over the TLS (Transport Layer Security) protocol.
The most commonly used cipher suites in TLS at the moment combine the RC4 or AES-CBC ciphers with the SHA hashing function for message authentication. However, over the past few years security researchers have devised practical and theoretical attacks against both RC4 and AES-CBC when used in TLS.
The AES-GCM cipher which is supported in TLS 1.2 provides a secure alternative to RC4 and AES-CBC, but using it can cause performance issues on devices that don’t have AES hardware acceleration, like most smart phones, tablets and wearable devices like Google Glass.
ChaCha20 is also not affected by the TLS attacks discovered so far, but in combination with Poly130 can operate three times faster on mobile devices than AES-GCM, according Elie Bursztein, the anti-abuse research lead at Google.
That’s because these algorithms “are able to leverage common CPU instructions, including ARM vector instructions,” Bursztein said Thursday in a blog post. “Poly1305 also saves network bandwidth, since its output is only 16 bytes compared to HMAC-SHA1, which is 20 bytes. This represents a 16% reduction of the TLS network overhead incurred when using older ciphersuites such as RC4-SHA or AES-SHA.”
In tests performed by Google, the encryption throughput for AES-GCM on the Snapdragon S4 Pro processor used in Nexus 4 and other mobile devices was 41.5MB/s, while for ChaCha20-Poly1305 it was 130.9MB/s. On the OMAP 4460 system-on-a-chip used in the older Galaxy Nexus phone, the throughput was 24.1MB/s for AES-GCM and 75.3MB/s for ChaCha20-Poly1305.
“As of February 2014, almost all HTTPS connections made from Chrome browsers on Android devices to Google properties have used this new cipher suite,” Bursztein said. “We plan to make it available as part of the Android platform in a future release.”
Google security engineers have already added support for ChaCha20-Poly1305 in OpenSSL, the most widely used TLS library. However, in order for the cipher suite to gain widespread adoption it needs to be supported by more browsers and to be specified as a preference by HTTPS websites in their configurations.
Work is already underway to add support for ChaCha20-Poly1305 to Mozilla Firefox.