What are the security concerns with TLS 1.3’s 0-RTT mode?
Quali sono i problemi di sicurezza con TLS Modalità 1.3-RTT di 0?
TLS 1.3 offers a feature called 0-RTT (zero round trip time) Resumption mode, in an effort to enhance performance. When a browser successfully completes a TLS handshake with a server for the first time, both the client and the server can store a pre-shared encryption key locally. This is known as the resumption master secret. If the browser establishes a connection with the server again at a later time, it can use this resumption key to send encrypted application data in its first message to the server, without having to perform the handshake a second time. However, 0-RTT resumption has a caveat; resumption data require no interaction from the server, which means that an attacker can capture encrypted 0-RTT data and re-send them to the server, or replay them. In the case the server is misconfigured, it can potentially accept replayed requests as valid; essentially, allowing the attackers to perform unsanctioned actions. The solution to this issue is ensuring that all 0-RTT requests are idempotent. Idempotent requests can be safely used as 0-RTT requests, since replaying them will have no effect. A quick rule of thumb would be to only use GET requests with 0-RTT resumption.
TLS 1.3 offre una funzionalità chiamata 0-RTT (zero round trip time) Modalità di ripresa, nel tentativo di migliorare le prestazioni. Quando un browser completa correttamente a TLS stretta di mano con un server per la prima volta, sia il client che il server possono archiviare localmente una chiave di crittografia precondivisa. Questo è noto come segreto segreto della ripresa. Se il browser stabilisce nuovamente una connessione con il server in un secondo momento, può utilizzare questa chiave di ripresa per inviare al server i dati dell'applicazione crittografati nel suo primo messaggio, senza dover eseguire l'handshake una seconda volta. Tuttavia, la ripresa 0-RTT ha un avvertimento; i dati di ripresa non richiedono alcuna interazione dal server, il che significa che un utente malintenzionato può acquisire dati 0-RTT crittografati e inviarli nuovamente al server, oppure ripetere Loro. Nel caso in cui il server sia configurato in modo errato, può potenzialmente accettare richieste ripetute come valide; essenzialmente, consentendo agli aggressori di eseguire azioni non autorizzate. La soluzione a questo problema è garantire che tutte le richieste 0-RTT lo siano idempotente. Le richieste idempotenti possono essere utilizzate in modo sicuro come richieste 0-RTT, poiché la loro riproduzione non avrà alcun effetto. Una rapida regola empirica sarebbe quella di utilizzare solo le richieste GET con ripresa 0-RTT.