On Mon, Aug 08, 2022 at 08:15:41PM +0200, Kristijan Sedlak wrote:
> Hello everyone. 
> 
> I decided to get involved here since I hit a dead end when resolving
> an Alert(20) error that I get from almost all servers when using PSK
> with EarlyData.
> 
> Here's the initial issue I opened 
> https://github.com/thekuwayama/tttls1.3/issues/48.
> It relates to a specific implementation but my questions are general.
> There's also a code snippet that you can run and see the issue
> yourself.
> 
> So it happens that when sending a GET request as EarlyData and then
> completing the handshake with EndOfEarlyData following the
> ClientFinished message, a server (e.g. ssltest.louis.info)
> successfully sends a complete response but finishes the request with
> Alert(20) message. It doesn't happen on 1-RTT nor 0-RTT(without early
> data). If I don't send ClientFinished in 0-RTT+EarlyData I don't get
> Alert(20) and everything works as expected.
> 
> I don't see anything in the spec that would describe something like
> this or would point to a different way for calculating the
> ClientFinished for 0-RTT+EarlyData case. Is maybe this sentence from
> the spec "PSK-based authentication happens as a side effect of key
> exchange." something that some of us miss interpreter and states
> that Finished message should be verified and sent only in 1-RTT? 
>
> What could be the case here?

Wild guess, the transcript is not computed over correct messages or in
correct order.


When server accepts early data, the sequence of messages client sends
is:

- ClientHello
- (0-RTT data)
- EndOfEarlyData
- client Finished

And the sequence of messages in transcript used to compute the client
finished is (note the EoED, RFC 8446 section 4.4.1 is very explicit
about it):

- ClientHello
- ServerHello
- EncryptedExtensions
- server Finished
- EndOfEarlyData


(This assumes there is no extension that would add new messages in
play. There can not be HelloRetryRequest because that implicitly
rejects early data.)



-Ilari

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to