So say two researchers from Ruhr-University Bochum in Germany, who have demonstrated a practical attack against XML's cipher block chaining (CBC) mode. "We were able to decrypt data by sending modified ciphertexts to the server, by gathering information from the received error messages," according to a statement released by the researchers, Juraj Somorovsky and Tibor Jager. They presented their findings in detail at last week's ACM Conference on Computer and Communications Security in Chicago.
XML, aka "eXtensible Markup Language," is a widely used technique for storing and transporting data, and is a fundamental Web Services component. "XML Encryption was standardized by W3C in 2002, and is implemented in XML frameworks of major commercial and open-source organizations like Apache, Red Hat, IBM, and Microsoft," the researchers said in their paper. "It is employed in a large number of major Web-based applications, ranging from business communications, e-commerce, and financial services [and] healthcare applications, to governmental and military infrastructures."
[ How do we make things more secure? Top FBI Cyber Cop Recommends New Secure Internet. ]
Before releasing their paper, the researchers said they notified all affected XML framework providers--including Amazon.com, IBM, Microsoft, and Red Hat Linux--via the W3C mailing list (following responsible disclosure practices) and with some, engaged in "intensive discussions on workarounds."
The potential exploit resembles a padding oracle attack--referring not to Oracle the vendor, but rather to a cryptographic concept, for which attacks were first introduced in 2002. Padding oracle attacks involve submitting bogus messages to a targeted system, then using the information returned by that system to ultimately crack its encryption.
This attack, similarly, "exploits a subtle correlation between the block cipher mode of operation, the character encoding of encrypted text, and the response behavior of a Web Service if an XML message cannot be parsed correctly," said the researchers. In other words, by sending ciphertext to a targeted Web Service, and then evaluating the response returned by the server, the encryption scheme may be deduced. "We show that an adversary can decrypt a ciphertext by performing only 14 requests per plaintext byte on average," they said. "This poses a serious and truly practical security threat on all currently used implementations of XML Encryption."
Amazon.com on Thursday acknowledged the researchers' work, saying that it had fixed the underlying XML-based messaging protocol--known as SOAP (for simple object access protocol)--vulnerabilities in its Elastic Compute Cloud (EC2), and that no customers had been affected by the potential attacks. "The research showed that errors in SOAP parsing may have resulted in specially crafted SOAP requests with duplicate message elements and / or missing cryptographic signatures being processed," according to the Amazon Web Services security bulletin. "If this were to occur, an attacker who had access to an unencrypted SOAP message could potentially take actions as another valid user and perform invalid EC2 actions."
What's the best way to eliminate the XML Encryption vulnerability? Unfortunately, "there is no simple patch for this problem," said Somorovsky at Ruhr-University Bochum. "We therefore propose to change the standard as soon as possible."
The most likely fix, according to the researchers, will involve replacing the CBC mode in XML Encryption with something that provides not just message confidentiality--as it does now--but also message integrity. "Adequate choices have for instance been standardized in ISO/IEC 19772:2009," they said. "We consider this solution as very recommendable for future versions of the XML Encryption standard."
But adopting a new approach in future versions of the XML Encryption standard would likely have side effectives, including "deployment and backwards compatibility issues," they said.