On Thu, Jul 23, 2015 at 08:21:11PM +0000, Viktor Dukhovni wrote:
> Postfix happily sends session tickets and resuming sessions even
> though it is using SSLv23_client_method(), and there is no server-side
> session cache (I made sure the client connets to a different server
> process between the initial handshake and the resumption, and that
> there is no "external" cache configured.)  Output summary:

I'd assume this is with the more standard TLS SessionTicket which is not
what EAP-FAST is..

> The order of events is:
> 
>       /* Once only */
>       ctx = SSL_CTX_new(SSLv23_client_method());
> 
>       /* Per connection */
>       ssl = SSL_new(ctx);
> 
>       /* Protocol support varies per server, so not set via global context */
>       SSL_set_options(...);

This is all same..

>       /* restore appropriate session from the client cache */
>       session = ... ;
>       if (session)
>           SSL_set_session(ssl, session);
> 
>       SSL_connect(ssl);

While this is not.

> What are you doing to associate a previous session with a new SSL
> connection?

With EAP-FAST, I don't really have a cached session in this sense for
deriving the keys and information for ClientHello. Instead of
SSL_set_session(), I'm only calling SSL_set_session_ticket_ext() before
SSL_connect() to provide the externally (to OpenSSL) stored
SessionTicket data. With TLSv1_method(), this data goes out in
ClientHello; with SSLv23_method() it does not (only an empty request for
standard session ticket included, not the SessionTicket from EAP-FAST
PAC data).

If I were to store the TLS session during which the EAP-FAST PAC was
provisioned and then issue SSL_set_session() with it here, I would
indeed get abbreviated handshake with that session (non-empty Session ID
in ClientHello), but that's not how EAP-FAST works. The Session ID is
supposed to be empty here and instead of the standard session ticket
mechanism, the keys get from SSL_set_session_secret_cb() registered
callback function which derives the secret in EAP-FAST specific way
(master_secret = T-PRF(PAC-Key, "PAC to master secret label hash",
server_random + client_random, 48)).

-- 
Jouni Malinen                                            PGP id EFC895FA
_______________________________________________
openssl-dev mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev

Reply via email to