Plaintext-Recovery Attacks Against Datagram TLS

Plaintext-Recovery Attacks Against Datagram TLS

Plaintext-Recovery Attacks Against Datagram TLS Nadhem J. AlFardan and Kenneth G. Paterson∗ Information Security Group Royal Holloway, University of London, Egham, Surrey TW20 0EX, UK nadhem.alfardan.2009, kenny.paterson @rhul.ac.uk { } Abstract GnuTLS2. Both of these provide source toolkits that imple- ment TLS and DTLS as well as being general purpose cryp- The Datagram Transport Layer Security (DTLS) proto- tographic libraries that software developers can use. The col provides confidentiality and integrity of data exchanged first release of OpenSSL to implement DTLS was 0.9.8. between a client and a server. We describe an efficient and Since its release, DTLS has become a mainstream proto- full plaintext recovery attack against the OpenSSL imple- col in OpenSSL. There are also a number of commercial mentation of DTLS, and a partial plaintext recovery attack products that have taken advantage of DTLS. For example, against the GnuTLS implementation of DTLS. The attack DTLS is used to secure Virtual Private Networks (VPNs)3,4 against the OpenSSL implementation is a variant of Vaude- and wireless traffic5. Platforms such as Microsoft Windows, nay’s padding oracle attack and exploits small timing differ- Microsoft .NET and Linux can also make use of DTLS6. ences arising during the cryptographic processing of DTLS In addition, the number of RFC documents that are be- packets. It would have been prevented if the OpenSSL im- ing published on DTLS is increasing. Recent examples in- plementation had been in accordance with the DTLS RFC. clude RFC 5415 [1], RFC 5953 [8] and RFC 6012 [13]. A In contrast, the GnuTLS implementation does follow the new version of DTLS is currently under development in the DTLS RFC closely, but is still vulnerable to attack. The IETF to bring DTLS into line with TLSv1.2. attacks require new insights to overcome the lack of error messages in DTLS and to amplify the timing differences. We Padding oracle attacks: According to [11], the DTLS discuss the reasons why these implementations are insecure, protocol is based on TLSv1.1 and provides equivalent secu- drawing lessons for secure protocol design and implemen- rity guarantees. In particular, then, one would expect imple- tation in general. mentations of DTLS to be resilient to attacks on TLS known prior to the development of TLSv1.1, especially those at- Keywords TLS, DTLS, CBC-mode encryption, tacks explicitly mentioned in RFC 4346 [6], the specifica- padding oracle, attack, timing, OpenSSL, GnuTLS. tion for TLSv1.1. One such example is the padding oracle attack intro- 1 Introduction duced by Vaudenay in [15] and applied to OpenSSL by Canvel et al. in [2]. This attack exploits the MAC-then- Pad-then-Encrypt construction used by TLS and makes use DTLS, OpenSSL and GnuTLS: The Datagram Trans- of subtle timing differences that may arise in the crypto- port Layer Security (DTLS) protocol was first introduced graphic processing carried out during decryption, in order at NDSS in 2004 [10]. Two years later, the Internet En- to glean information about the correctness or otherwise of gineering Task Force (IETF) assigned Request for Com- the plaintext format underlying a target ciphertext. Specifi- ments (RFC) 4347 [11] to DTLS. The aim of DTLS is to cally, Canvel et al. used timing of encrypted TLS error mes- provide a datagram-compatible variant of TLSv1.1 [6] that sages in order to distinguish whether the padding occurring eliminates the dependency on the Transport Control Proto- col (TCP). Since its introduction, there has been a growing 2http://www.gnu.org/software/gnutls 3http://www.cisco.com/en/US/products/ps10884/ interest in the security services offered by DTLS. Leading index.html 1 implementations of DTLS can be found in OpenSSL and 4http://campagnol.sourceforge.net 5http://www.cisco.com/en/US/docs/wireless/ ∗This author’s research supported by an EPSRC Leadership Fellow- controller/7.0MR1/configuration/guide/cgi_lwap. ship, EP/H005455/1. html 1http://www.openssl.org 6http://www.eldos.com/sbb/desc-ssl.php at the end of the plaintext was correctly formatted accord- which has messages that also provoke a response message ing to the TLS standard or not. Using Vaudenay’s ideas, with a predictable delay can be used in place of Heartbeat this padding oracle information can be leveraged to build a messages in our attack. We also introduce new techniques full plaintext recovery attack. However, because TLS tears which amplify the identified timing difference. In TLS, this down the connection in the event of any error arising dur- is easily done by using long messages, since TLS supports ing cryptographic processing, and because all the messages messages up to roughly 214 bytes in size. But this is not pos- in the attack do provoke such errors, the attack can only sible in DTLS, since the maximum message size is limited recover significant amounts of plaintext if the same plain- by the PMTU. To overcome this, we build trains of DTLS text bytes are repeated across many TLS connections at the packets which all either have valid or invalid padding and same location in the data stream. hence which all contribute to an accumulated timing dif- OpenSSL quickly addressed the attack of [2] by modify- ference in the same way. These trains need to be carefully ing the code to firstly make the error messages are identical injected into the network – fast enough so as to ensure each and secondly to ensure that the error messages would al- packet arrives before the processing of the previous one has ways appear on the network at the same time, an approach completed, but not so fast that DTLS’s buffer for incom- we call uniform error reporting. These countermeasures ing packets gets swamped. Thus the success of the attack eventually appeared in TLSv1.1 as guidance for implemen- depends on delicate, µs-level timing of network events. tors a few years later. Since the initial work in this vein, Another major difference between TLS and DTLS is padding oracle attacks have been generalised in various that, in TLS, any error arising during cryptographic pro- ways and applied to other network protocols such as IPsec cessing is treated as fatal, meaning that the TLS connec- [4, 5] and application layer protocols such as ASP.NET tion is discarded in the event of any error. TLS can af- [12, 7], further highlighting the dangers of the MAC-then- ford to do this because it is built on top of a reliable trans- PAD-then-Encrypt cryptographic construction coupled with port protocol, TCP. DTLS, on the other hand, cannot af- non-uniform error reporting. ford to do so, since its underlying transport protocol is UDP. This means that DTLS does not discard connections in the Our attack on DTLS: Given this history, and the fact that event of errors, but merely discards error-generating pack- the DTLS specification is based on that of TLSv1.1, imple- ets. So, in contrast to previous attacks on TLS, our attack on mentations of DTLS should be immune to padding oracle OpenSSL’s DTLS implementation can efficiently recover as attacks and their variants. Our paper shows that this is not much plaintext as the adversary desires, without having to the case for either the OpenSSL or the GnuTLS implemen- wait for the re-establishment of DTLS connections. Our tations of DTLS. attack becomes even more efficient in the situation where We first focus on OpenSSL, showing that there is a small DTLS’s anti-replay feature is disabled, which is an option timing difference in OpenSSL’s processing of DTLS pack- within the DTLS specification. ets having valid and invalid padding fields: just like old ver- Our attack on OpenSSL is easily prevented, by properly sion of OpenSSL’s implementation of TLS, if the padding is implementing the countermeasures in the TLSv1.1 speci- invalid, then the MAC is not checked, while if the padding fication on which DTLS is based. We have informed the is valid, the MAC check is done. This results in a timing OpenSSL development team about our attack and a fix to difference for processing of packets with valid and invalid prevent the attack was incorporated in versions 1.0.0f and padding that is on the order of a few tens of microseconds 0.9.8s of OpenSSL. (µs) on a modern processor. We then switch our focus to the GnuTLS implementa- However, one major difference between TLS and DTLS tion, and show that, even though it properly implements is that DTLS provides no error messages when decryption the countermeasures in TLSv1.1, it is still vulnerable to encounters an error. The detection of these error messages a partial plaintext recovery attack in its default configura- is essential to the attacks of [2] on TLS. Thus it would ap- tion. We show that a small timing channel is introduced pear that this timing difference cannot be used to build a into the decryption process because a plaintext-dependent padding oracle. This may explain why the OpenSSL code sanity check is carried out at an early stage during decryp- for DTLS has not been patched to remove the known timing tion, followed later by assigning a zero value to the plain- difference. text message length in the case when this sanity check fails. By bringing new techniques into play, we show that the This introduces a detectable timing difference that, when lack of DTLS error messages is not a serious impediment combined with our new techniques, allows 4 or 5 bits of to the attack – we are able to exploit the DTLS extension plaintext to be recovered per ciphertext block.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    18 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us