Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Session hash #287

Merged
merged 5 commits into from
Sep 21, 2015
Merged

Session hash #287

merged 5 commits into from
Sep 21, 2015

Conversation

hannesm
Copy link
Member

@hannesm hannesm commented Jun 30, 2015

based on resumption #283 an implementation of session hash (proposed draft). resumption is only possible if an extended_master_secret was used (due to triple handshake the only sensible way to deal with it)

@hannesm
Copy link
Member Author

hannesm commented Jul 5, 2015

interop (of extended master secret) was tested successfully with polarssl

@hannesm
Copy link
Member Author

hannesm commented Aug 21, 2015

@pqwy would be great if you could read through #283 and this PR...

…therwise, do full handshake), always send extended_ms in clienthello, use in serverhello if sent by client
@hannesm
Copy link
Member Author

hannesm commented Sep 20, 2015

rebased to master. This change integrates session hash (RFC 7627), and only proceeds with resuming a session if the old and new session support session hash, to prevent triple handshake mitm attacks. might be a bit too conservative for the use case where someone runs a public web server and wants to get speed improvements from resumption; there enabling resumption if renegotiation is off should be secure.

pqwy added a commit that referenced this pull request Sep 21, 2015
@pqwy pqwy merged commit 31dc14a into master Sep 21, 2015
@pqwy pqwy deleted the session-hash branch September 21, 2015 16:40
hannesm added a commit to hannesm/ocaml-tls that referenced this pull request Jun 29, 2017
…t is used

In answer_server_hello_renegotiate, the session never set extended_ms to true,
which needs to be the case if both ServerHello and ClientHello contained the
extension.  The asymmetry between answer_server_hello and
answer_server_hello_renegotiate was introduced in June 2015 (0.7.0,
commit dac9e39, PR mirleft#287).

A test setup is to run
mbedtls_ssl_server2 renegotiate=1 renegotiation=1 renego_period=2 exchanges=3
and on our other side a test_client or similar where ~reneg:true is passed to
Config.client.

Instead of copy and pasting code betweent the two functions, I took the
opportunity to unify some parts into common functions (as was already partially
done with valid_cipher).
hannesm added a commit to hannesm/ocaml-tls that referenced this pull request Dec 7, 2017
…t is used

In answer_server_hello_renegotiate, the session never set extended_ms to true,
which needs to be the case if both ServerHello and ClientHello contained the
extension.  The asymmetry between answer_server_hello and
answer_server_hello_renegotiate was introduced in June 2015 (0.7.0,
commit dac9e39, PR mirleft#287).

A test setup is to run
mbedtls_ssl_server2 renegotiate=1 renegotiation=1 renego_period=2 exchanges=3
and on our other side a test_client or similar where ~reneg:true is passed to
Config.client.

Instead of copy and pasting code betweent the two functions, I took the
opportunity to unify some parts into common functions (as was already partially
done with valid_cipher).
hannesm added a commit to hannesm/ocaml-tls that referenced this pull request Dec 16, 2017
…t is used

In answer_server_hello_renegotiate, the session never set extended_ms to true,
which needs to be the case if both ServerHello and ClientHello contained the
extension.  The asymmetry between answer_server_hello and
answer_server_hello_renegotiate was introduced in June 2015 (0.7.0,
commit dac9e39, PR mirleft#287).

A test setup is to run
mbedtls_ssl_server2 renegotiate=1 renegotiation=1 renego_period=2 exchanges=3
and on our other side a test_client or similar where ~reneg:true is passed to
Config.client.

Instead of copy and pasting code betweent the two functions, I took the
opportunity to unify some parts into common functions (as was already partially
done with valid_cipher).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants