!!! Overview [{$pagename}] ("Zero-[RTT] ") is a [TLS 1.3] [TLS Handshake] proposal when clients and servers share a [PSK] (either obtained externally or via a previous handshake), [TLS 1.3] allows [clients] to send data on the first flight ("early data"). [{$pagename}] was inspired by the [QUIC] [Protocol] [{$pagename}] is part of the replacement of [TLS Session Resumption] The client uses the PSK to authenticate the server and to [encrypt] the early [data]. As shown in below, the 0-RTT data is just added to the [1-RTT Handshake] in the first flight. The rest of the handshake uses the same messages as for a 1-RTT handshake with PSK resumption. {{{ Client Server ClientHello + early_data + key_share* + psk_key_exchange_modes + pre_shared_key (Application Data*) --------> ServerHello + pre_shared_key + key_share* {EncryptedExtensions} + early_data* {Finished} <-------- [Application Data*] (EndOfEarlyData) {Finished} --------> [Application Data] <-------> [Application Data] + Indicates noteworthy extensions sent in the previously noted message. * Indicates optional or situation-dependent messages/extensions that are not always sent. () Indicates [messages] protected using [keys] derived from client_early_traffic_secret. {} Indicates [messages] protected using [keys] derived from a [sender]_handshake_traffic_secret. [] Indicates [messages] protected using [keys] derived from [sender]_application_traffic_secret_N }}} __IMPORTANT NOTE:__ The security properties for 0-RTT data are weaker than those for other kinds of TLS data. Specifically: * This data is not forward secret, as it is encrypted solely under keys derived using the offered PSK. * There are no guarantees of non-replay between connections. Protection against replay for ordinary TLS 1.3 1-RTT data is provided via the server's Random value, but 0-RTT data does not depend on the ServerHello and therefore has weaker guarantees. This is especially relevant if the data is authenticated either with TLS client authentication or inside the [application] [protocol]. The same warnings apply to any use of the early_exporter_master_secret. [{$pagename}] data cannot be duplicated within a connection (i.e., the server will not process the same data twice for the same connection) and an attacker will not be able to make 0-RTT data appear to be 1-RTT data (because it is protected with different keys.) Appendix E.5 contains a description of potential attacks and Section 8 describes mechanisms which the server can use to limit the impact of replay. !! More Information There might be more information for this subject on one of the following: [{ReferringPagesPlugin before='*' after='\n' }] ---- * [#1] - [Improved Handshakes in TLS version 1.3|https://timtaubert.de/blog/2015/11/more-privacy-less-latency-improved-handshakes-in-tls-13/|target='_blank'] - based on information obtained 2017-01-05