Details of the BREACH -- short for Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext -- attack were first revealed last month at the Black Hat information security conference in Las Vegas by Salesforce.com lead product security engineer Angelo Prado, Square application security engineer Neal Harris, and Salesforce.com lead security engineer Yoel Gluck.
Their presentation triggered a Department of Homeland Security warning that "a sophisticated attacker may be able to derive plaintext secrets from the ciphertext in an HTTPS stream," and that all versions of the transport layer security (TLS) and secure sockets layer (SSL) protocols are vulnerable.
[ Here's what you can learn from the latest government security breach. Read Department Of Energy Cyberattack: 5 Takeaways. ]
The man-in-the-middle HTTPS crypto attack involves watching "the size of the cipher text received by the browser while triggering a number of strategically crafted requests to a target site," according to exploit details that the developers shared with DHS. "To recover a particular secret in an HTTPS response body, the attacker guesses character by character, sending a pair of requests for each guess. The correct guess will result in a smaller HTTPS response," said the DHS.
Prado has previously said that crafting a fix for HTTPS itself will be a "nontrivial" undertaking.
In the meantime, he and his fellow researchers this week released a tool for launching a BREACH attack for testing purposes. Their tool is available both in the form of source code and instructions, as well as a precompiled binary.
"This is intended for self-assessment only," according to the BREACH tool download page. "Don't do bad things."
To use the tool, "you will need a Windows computer or [virtual machine] to build and run the tool," Prado said in an email interview. Other requirements include the .NET 3.5+ Framework and Visual Studio 2010 or newer, for anyone who wants to modify the code, which is being hosted on GitHub. The tool has been tested with Windows 7.
When using the tool, no man-in-the-middle attack is required for testing a site. Instead, the developers recommended simply pointing the tool -- which emulates a Web client -- at encrypted HTTPS traffic, using a hosts file, which allows host names to be associated with IP addresses.
In addition to this "simple HTTP client that simulates browser behavior," the researchers promised they would release a more full-fledged, browser-based tool that website operators can use to test their susceptibility to a BREACH attack.