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

Possible mistake in Chapter 4: Transport Layer Security #20

Open
tysonliddell opened this issue Mar 2, 2020 · 1 comment
Open

Possible mistake in Chapter 4: Transport Layer Security #20

tysonliddell opened this issue Mar 2, 2020 · 1 comment

Comments

@tysonliddell
Copy link

I think that the end of the following text in Chapter 4: Transport Layer Security might be incorrect:

By contrast, the Diffie-Hellman key exchange allows the client and server to negotiate a shared secret without explicitly communicating it in the handshake: the server’s private key is used to sign and verify the handshake, but the established symmetric key never leaves the client or server and cannot be intercepted by a passive attacker even if they have access to the private key.

The shared secret is calculated by the server using its private key and the public key of the client. Any attacker with the private key of the server could simply perform the same calculation to arrive at the shared secret.

Also noted this typo in the preceding paragraph:

then they can decrypt the the entire session

@tysonliddell
Copy link
Author

tysonliddell commented Mar 2, 2020

After a bit of further reading I think that I have confused some terminology. It seems there are two private keys held by the server in this instance. There is the long term private key used by the server to sign messages, and another ephemeral private key generated for the Diffie-Hellman key exchange. If the latter is compromised, then the ephemeral symmetric key for that session would be compromised.

I think a quick mention of this situation would be helpful to clear up any potential confusion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant