rTLS: Secure and Efficient TLS Session Resumption for the Internet of Things †
<p>The double ratchet process and structure. Rectangles indicate initial states, circles indicate “spins” of the ratchets, and colors indicate the flow of entropy from a DH exchange. The outer ratchet is depicted on the bottom, with the inner ratchet above it.</p> "> Figure 2
<p>(<b>a</b>,<b>b</b>) The initial resumption handshake communication patterns, respectively. + denotes an extension, and * denotes an optional or situational component, while {} and [] denote encryption with a derivation of the handshake or application secret, respectively. Modifications from the original handshakes are printed in blue.</p> "> Figure 3
<p>The rTLS key schedule. Red indicates added KDF instances. Blue indicates a default TLS HKDF instance. Grey diamonds indicate applications of the KDF function to produce a key.</p> "> Figure 4
<p>Average transmission overhead versus DH key exchange period.</p> ">
Abstract
:1. Introduction
2. Preliminaries
2.1. TLS 1.3
2.2. Double Ratchet Algorithm
3. Ratchet TLS (rTLS)
3.1. Initial Handshake
3.2. Session Resumption
3.3. Double Ratchet Setup and Operation
3.3.1. Initial Handshake
- 1.
- ID generation: The server generates a globally unique connection ID. This ID is transmitted to the client in the NewSessionTicket, together with a DH public key that the Client can use to initialize future resumption handshakes.
- 2.
- Symmetric ratchet initialization: The client and server initialize the ratchet index variable to 0. The symmetric ratchet root key is the resumption master secret.
- 3.
- Persistent state storage: Both client and server store their state variables for anticipated session resumptions.
3.3.2. Resumption
- 1.
- Ratchet step: The client ratchets its symmetric ratchet before the resumption master secret is used to derive any other secret. Thus, the early-data secret is derived from the ratcheted master secret.
- 2.
- PSK exchange: During the handshake, the client sends its ratchet index and connection ID to the server, as part of the pre_shared_key. If a DH exchange happens, the ClientHello includes a key_share structure, as well.
- 1.
- Access state: The server receives a 0-RTT resumption, and after having verified the pre_shared_key’s HMAC field, finds the relevant state variables using the received connection ID as a key (e.g., in a hash map).
- 2.
- Replay condition The server ensures that , where and are, respectively, the server received client ratchet indices for this connection.
- 3.
- Ratchet step: The server spins the symmetric ratchet times, where is the received ratchet index in pre_shared_key, and its own ratchet index. The early data encryption key is derived from the new state of the sym. ratchet.
- 1.
- Reset ratchet index: If a DH exchange was performed during the resumption handshake, then the client and server reset their ratchet index to 0.
- 2.
- Persistent state storage: Both the client and server store their state variables for future session resumptions.
3.4. Ratchet State Variables
- 1.
- Mapping: a connection ID → ratchet mapping, to identify which ratchet belongs to which connection. We set the connection ID to be 4 bytes in size as an initial estimate. It can be increased if necessary.
- 2.
- Ratchet Index: To indicate the number of ratchet steps that occurred since the last DH exchange (1 byte).
- 3.
- Private DH key: Current private DH key, used to compute a DH secret from which a common root key can be derived (32 bytes).
- 4.
- Remote public DH key: Last received remote public DH key for deriving aforementioned secret (32 bytes). Additionally, the Client and Server are expected to keep track of the Resumption Master Secret. We do not list it with the above state variables as this is something that already comes with standard TLS, thus not being unique to rTLS.
4. Security Evaluation
4.1. Formal Verification
4.1.1. Intruder Model
4.1.2. Resumption Handshake Model
4.1.3. Step 1: ClientHello
4.1.4. Step 2: ServerHello
4.1.5. Step 3: Finished
4.1.6. Verification
5. Performance Evaluation
5.1. Traffic Overhead Estimation
5.1.1. Initial Handshake
5.1.2. Resumption Handshake
5.2. Storage Overhead Estimation
5.3. Overhead Comparison with TLS 1.3
6. Related Work
7. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Conflicts of Interest
References
- Rescorla, E. The Transport Layer Security (TLS) Protocol Version 1.3. Available online: https://rfc-editor.org/rfc/rfc8446.txt (accessed on 9 August 2021).
- AT&T. LTE-M and NB-IoT. Available online: https://www.business.att.com/products/lpwa.html (accessed on 9 August 2021).
- Verizon. Verizon Thingspace. Available online: https://thingspace.verizon.com/services/connectivity.html (accessed on 9 August 2021).
- Hologram. Hologram Pricing. Available online: https://hologram.io/pricing/ (accessed on 9 August 2021).
- Tange, K.; Howard, D.; Shanahan, T.; Pepe, S.; Fafoutis, X.; Dragoni, N. rTLS: Lightweight TLS Session Resumption for Constrained IoT Devices. In Proceedings of the 22nd International Conference on Information and Communications Security, Copenhagen, Denmark, 24–27 August 2020; pp. 243–258. [Google Scholar] [CrossRef]
- OpenSSL Software Foundation. OpenSSL. Available online: https://www.openssl.org (accessed on 9 August 2021).
- Basin, D.A.; Mödersheim, S.; Viganò, L. OFMC: A symbolic model checker for security protocols. Int. J. Inf. Sec. 2005, 4, 181–208. [Google Scholar] [CrossRef]
- Perrin, T.; Marlinspike, M. The Double Ratchet Algorithm. Available online: https://www.signal.org/docs/specifications/doubleratchet/doubleratchet.pdf (accessed on 9 August 2021).
- Rescorla, E.; Dierks, T. The Transport Layer Security (TLS) Protocol Version 1.2. Available online: https://rfc-editor.org/rfc/rfc5246.txt (accessed on 9 August 2021).
- Salowey, J.; Zhou, H.; Eronen, P.; Tschofenig, H. Transport Layer Security (TLS) Session Resumption without Server-Side State. Available online: https://rfc-editor.org/rfc/rfc4507.txt (accessed on 9 August 2021).
- WolfSSL. WolfSSL Embedded SSL/TLS Library. Available online: https://www.wolfssl.com/ (accessed on 21 September 2021).
- Systems, O. Signal. Available online: https://www.signal.org (accessed on 9 August 2021).
- WhatsApp. WhatsApp Encryption Overview. Available online: https://www.whatsapp.com/security/WhatsApp-Security-Whitepaper.pdf (accessed on 9 August 2021).
- Cohn-Gordon, K.; Cremers, C.; Dowling, B.; Garratt, L.; Stebila, D. A Formal Security Analysis of the Signal Messaging Protocol. In Proceedings of the 2017 IEEE European Symposium on Security and Privacy (EuroS&P), Paris, France, 26–28 April 2017; pp. 451–466. [Google Scholar] [CrossRef]
- Armando, A.; Basin, D.A.; Boichut, Y.; Chevalier, Y.; Compagna, L.; Cuéllar, J.; Drielsma, P.H.; Héam, P.; Kouchnarenko, O.; Mantovani, J.; et al. The AVISPA Tool for the Automated Validation of Internet Security Protocols and Applications. In Proceedings of the Computer Aided Verification, 17th International Conference, CAV 2005, Edinburgh, UK, 6–10 July 2005; Etessami, K., Rajamani, S.K., Eds.; Springer: Berlin/Heidelberg, Germany, 2005; Volume 3576, pp. 281–285. [Google Scholar]
- European Union. The AVISPA Project. Available online: http://www.avispa-project.org/main.html (accessed on 9 August 2021).
- Yannick, C.; Compagna, L.; Cuellar, J.; Drielsma, P.; Mantovani, J.; Mödersheim, S.A.L.V. A High Level Protocol Specification Language for Industrial Security-Sensitive Protocols. In Proceedings of the SAPS’04, Linz, Austria, 20–24 September 2004. [Google Scholar]
- Viganò, L. Automated validation of trust and security of service-oriented architectures with the AVANTSSAR platform. In Proceedings of the 2012 International Conference on High Performance Computing Simulation (HPCS), Madrid, Spain, 2–6 July 2012; pp. 444–447. [Google Scholar] [CrossRef]
- Lalos, A. A Formal Library of IoT Protocols. 2021. Available online: http://findit.dtu.dk (accessed on 9 August 2021).
- Lowe, G. An attack on the Needham-Schroeder public-key authentication protocol. Inf. Process. Lett. 1995, 56, 131–133. [Google Scholar] [CrossRef]
- Lowe, G. A hierarchy of authentication specifications. In Proceedings of the 10th Computer Security Foundations Workshop, Rockport, MA, USA, 10–12 June 1997; pp. 31–43. [Google Scholar]
- Lowe, G. Selfie: reflections on TLS 1.3 with PSK. J. Cryptol. 2021, 34, 27. [Google Scholar] [CrossRef]
- Ferrag, M.A.; Maglaras, L.A.; Janicke, H.; Jiang, J.; Shu, L. Authentication Protocols for Internet of Things: A Comprehensive Survey. Secur. Commun. Netw. 2017, 2017, 6562953. [Google Scholar] [CrossRef]
- Bormann, C.; Ersue, M.; Keränen, A. Terminology for Constrained-Node Networks. Available online: https://rfc-editor.org/rfc/rfc7228.txt (accessed on 9 August 2021).
- Gupta, V.; Wurm, M.; Zhu, Y.; Millard, M.; Fung, S.; Gura, N.; Eberle, H.; Shantz, S.C. Sizzle: A Standards-Based End-to-End Security Architecture for the Embedded Internet. Pervasive Mob. Comput. 2005, 1, 425–445. [Google Scholar] [CrossRef]
- Rescorla, E.; Modadugu, N. Datagram Transport Layer Security. Available online: https://rfc-editor.org/rfc/rfc4347.txt (accessed on 9 August 2021).
- Rescorla, E.; Tschofenig, H.; Modadugu, N. The Datagram Transport Layer Security (DTLS) Protocol Version 1.3. Available online: https://www.ietf.org/archive/id/draft-ietf-tls-dtls13-41.txt (accessed on 9 August 2021).
- WolfSSL. TLS 1.3 Protocol Support. Available online: https://www.wolfssl.com/docs/tls13/ (accessed on 9 August 2021).
- Bergmann, O.; Gerdes, S.; Bormann, C. Simple keys for simple smart objects. In Proceedings of the Workshop on Smart Object Security, Paris, France, 23 March 2012. [Google Scholar]
- Kothmayr, T.; Schmitt, C.; Hu, W.; Brünig, M.; Carle, G. A DTLS based end-to-end security architecture for the Internet of Things with two-way authentication. In Proceedings of the 37th Annual IEEE Conference on Local Computer Networks—Workshops, Clearwater, FL, USA, 22–25 October 2012; pp. 956–963. [Google Scholar] [CrossRef] [Green Version]
- Raza, S.; Trabalza, D.; Voigt, T. 6LoWPAN Compressed DTLS for CoAP. In Proceedings of the 2012 IEEE 8th International Conference on Distributed Computing in Sensor Systems, Hangzhou, China, 16–18 May 2012; pp. 287–289. [Google Scholar] [CrossRef]
- Restuccia, G.; Tschofenig, H.; Baccelli, E. Low-Power IoT Communication Security: On the Performance of DTLS and TLS 1.3. In Proceedings of the 2020 9th IFIP International Conference on Performance Evaluation and Modeling in Wireless Networks (PEMWN), Berlin, Germany, 1–3 December 2020; pp. 1–6. [Google Scholar] [CrossRef]
- Caminati, G.; Kiade, S.; D’Angelo, G.; Ferretti, S.; Ghini, V. Fast Session Resumption in DTLS for Mobile Communications. In Proceedings of the 2020 IEEE 17th Annual Consumer Communications Networking Conference (CCNC), Las Vegas, NV, USA, 10–13 January 2020; pp. 1–6. [Google Scholar] [CrossRef] [Green Version]
- Gunnarsson, M.; Brorsson, J.; Palombini, F.; Seitz, L.; Tiloca, M. Evaluating the performance of the OSCORE security protocol in constrained IoT environments. Internet Things 2021, 13, 100333. [Google Scholar] [CrossRef]
- Santesson, S.; Tschofenig, H. Transport Layer Security (TLS) Cached Information Extension. Available online: https://rfc-editor.org/rfc/rfc7924.txt (accessed on 9 August 2021).
- Wouters, P.; Tschofenig, H.; Gilmore, J.; Weiler, S.; Kivinen, T. Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS). Available online: https://rfc-editor.org/rfc/rfc7250.txt (accessed on 9 August 2021).
- Rescorla, E.; Barnes, H.T. Compact TLS 1.3 (IETF Draft). Available online: https://datatracker.ietf.org/doc/draft-rescorla-tls-ctls/ (accessed on 9 August 2021).
- NIST. Lightweight Cryptography. Available online: https://csrc.nist.gov/projects/lightweight-cryptography (accessed on 9 August 2021).
- Hall-Andersen, M.; Wong, D.; Sullivan, N.; Chator, A. NQUIC: Noise-Based QUIC Packet Protection. In Proceedings of the Workshop on the Evolution, Performance, and Interoperability of QUIC—EPIQ’18, Heraklion, Greece, 4 December 2018; Association for Computing Machinery: New York, NY, USA, 2018; pp. 22–28. [Google Scholar] [CrossRef]
Type | Field Name | Description |
---|---|---|
uint_32 | ticket_lifetime | ticket lifetime in seconds |
uint_32 | ticket_age_add | used to obscure ticket age |
opaque | ticket_nonce | (max. 255 bytes) nonce |
opaque | ticket | (max. bytes) ticket itself |
Extension | extensions | (max. bytes ) extensions |
Client State | Server State | ||
---|---|---|---|
State Variable | Initial State | State Variable | Initial State |
RES_MASTER_SECRET | from TLS | RES_MASTER_SECRET | from TLS |
RK | … | RK | … |
CONN_ID | from TLS | CONN_ID | from TLS |
ServerDHsPub | ClientDHsPub | - | |
currPrivate | - | currPrivate | X |
ClientCKs | - | ServerCKr | - |
ClientNs | 0 | ServerNr | 0 |
CHR | - | CHR | - |
SHR | - | ||
Step | 0 | Step | 0 |
Size (Bytes) | Field Name | |
---|---|---|
4 | ticket_lifetime | |
4 | ticket_age_add; | |
ticket_nonce | ||
ticket | ||
2 | extensions length | |
4 | Early data extension | |
Total |
Symbol | Description |
---|---|
(Client or Server) Hello | |
early_data | |
Application data | |
psk_key_exchange_modes | |
pre_shared_key | |
key_share | |
EncryptedExtensions | |
EndOfEarlyData | |
f | Finished |
R | Record Layer headers |
pre_shared_key | ||
---|---|---|
Size | Field Name | Description |
2 | extension_type | Extension type |
2 | extension_data | Size of the extension |
2 | PSKIdentities_length | Nr. of PSK identities |
identities | PSKIdentity values | |
2 | binders_length | Nr. of PSK binders |
binders | PSKBinder values | |
PSKIdentity | ||
2 | identity length | Size of identity field |
identity | value of this identity | |
4 | obfuscated_ticket_age | ticket age (see Reference [1]) |
PSKBinder | ||
1 | binder length | size of the binder value |
binder | HMAC value (see Reference [1]) |
Indicative Lightweight Use () | ||
---|---|---|
Scenario | Avg. Overhead (b) | Avg. Total Size (b) |
rTLS, | 58 | 466 |
rTLS, | 108 | 516 |
rTLS, | 63 | 471 |
Standard TLS 1.3 | 571 | 979 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Tange, K.; Mödersheim, S.; Lalos, A.; Fafoutis, X.; Dragoni, N. rTLS: Secure and Efficient TLS Session Resumption for the Internet of Things. Sensors 2021, 21, 6524. https://doi.org/10.3390/s21196524
Tange K, Mödersheim S, Lalos A, Fafoutis X, Dragoni N. rTLS: Secure and Efficient TLS Session Resumption for the Internet of Things. Sensors. 2021; 21(19):6524. https://doi.org/10.3390/s21196524
Chicago/Turabian StyleTange, Koen, Sebastian Mödersheim, Apostolos Lalos, Xenofon Fafoutis, and Nicola Dragoni. 2021. "rTLS: Secure and Efficient TLS Session Resumption for the Internet of Things" Sensors 21, no. 19: 6524. https://doi.org/10.3390/s21196524