Skip to main content
superscripts for exponents; added tags
Source Link
forest
  • 67.8k
  • 20
  • 221
  • 291

I have been reading Bulletproof SSL and TLS

Diffie Hellman is a key exchange mechanism, in which each of server and client share secret i.e. g^xgx and g^ygy respectively with each other where g is generator of some group. They calculate secret S = (g^ygy)^xx and (g^xgx)^yy respectively. Note that an attacker in the middle cannot get the value of S from g^xgx and g^ygy, since discrete logarithm is a hard problem. But, an active attacker can masquerade and fool both server and client.

DHKE

Now in RSA_DH, the value which server sends to client i.e. g^xgx is fixed and stored in certificate. So, the "ServerKeyExchange" message is not sent. Now, client sends its g^ygy value in "ClientKeyExchange" message and this is encrypted with RSA public key cryptography algorithm whose certificate server has already sent in "Certificate" message.

In RSA_DHE, the "ServerKeyExchange" message takes place where server sends g^xgx to the client.

TLS Handshake

Now my question is what is the difference between the two? Since the premaster secret is calculated from the value (g^xgx)^yy, Therefore, even in RSA_DH, if the client sends different g^ygy values in each session, then (g^xgx)^yy value will be different. (I think even if he doesn't still my argument holds) Therefore it will achieve forward secrecy as in RSA_DHE. And the poor attacker won't be able to get premaster secret even after getting the value of g^ygy by compromising the server private key. So, in both cases he won't be able to calculate premaster secret. So why Ephemeral one (RSA_DHE) is said to achieve forward secrecy and other one not?

I have been reading Bulletproof SSL and TLS

Diffie Hellman is a key exchange mechanism, in which each of server and client share secret i.e. g^x and g^y respectively with each other where g is generator of some group. They calculate secret S = (g^y)^x and (g^x)^y respectively. Note that an attacker in the middle cannot get the value of S from g^x and g^y, since discrete logarithm is a hard problem. But, an active attacker can masquerade and fool both server and client.

DHKE

Now in RSA_DH, the value which server sends to client i.e. g^x is fixed and stored in certificate. So, the "ServerKeyExchange" message is not sent. Now, client sends its g^y value in "ClientKeyExchange" message and this is encrypted with RSA public key cryptography algorithm whose certificate server has already sent in "Certificate" message.

In RSA_DHE, the "ServerKeyExchange" message takes place where server sends g^x to the client.

TLS Handshake

Now my question is what is the difference between the two? Since the premaster secret is calculated from the value (g^x)^y, Therefore, even in RSA_DH, if the client sends different g^y values in each session, then (g^x)^y value will be different. (I think even if he doesn't still my argument holds) Therefore it will achieve forward secrecy as in RSA_DHE. And the poor attacker won't be able to get premaster secret even after getting the value of g^y by compromising the server private key. So, in both cases he won't be able to calculate premaster secret. So why Ephemeral one (RSA_DHE) is said to achieve forward secrecy and other one not?

I have been reading Bulletproof SSL and TLS

Diffie Hellman is a key exchange mechanism, in which each of server and client share secret i.e. gx and gy respectively with each other where g is generator of some group. They calculate secret S = (gy)x and (gx)y respectively. Note that an attacker in the middle cannot get the value of S from gx and gy, since discrete logarithm is a hard problem. But, an active attacker can masquerade and fool both server and client.

DHKE

Now in RSA_DH, the value which server sends to client i.e. gx is fixed and stored in certificate. So, the "ServerKeyExchange" message is not sent. Now, client sends its gy value in "ClientKeyExchange" message and this is encrypted with RSA public key cryptography algorithm whose certificate server has already sent in "Certificate" message.

In RSA_DHE, the "ServerKeyExchange" message takes place where server sends gx to the client.

TLS Handshake

Now my question is what is the difference between the two? Since the premaster secret is calculated from the value (gx)y, Therefore, even in RSA_DH, if the client sends different gy values in each session, then (gx)y value will be different. (I think even if he doesn't still my argument holds) Therefore it will achieve forward secrecy as in RSA_DHE. And the poor attacker won't be able to get premaster secret even after getting the value of gy by compromising the server private key. So, in both cases he won't be able to calculate premaster secret. So why Ephemeral one (RSA_DHE) is said to achieve forward secrecy and other one not?

Tweeted twitter.com/StackSecurity/status/719619375096008704
added 133 characters in body
Source Link
prakharjain
  • 447
  • 1
  • 3
  • 12

I have been reading Bulletproof SSL and TLS

Diffie Hellman is a key exchange mechanism, in which each of server and client share secret i.e. g^x and g^y respectively with each other where g is generator of some group. They calculate secret S = (g^y)^x and (g^x)^y respectively. Note that an attacker in the middle cannot get the value of S from g^x and g^y, since discrete logarithm is a hard problem. But, an active attacker can masquerade and fool both server and client.

DHKE

Now in RSA_DH, the value which server sends to client i.e. g^x is fixed and stored in certificate. So, the "ServerKeyExchange" message is not sent. Now, client sends its g^y value in "ClientKeyExchange" message and this is encrypted with RSA public key cryptography algorithm whose certificate server has already sent in "Certificate" message.

In RSA_DHE, the "ServerKeyExchange" message takes place where server sends g^x to the client.

TLS Handshake

Now my question is what is the difference between the two? Since the premaster secret is calculated from the value (g^x)^y, Therefore, even in RSA_DH, if the client sends different g^y values in each session, then (g^x)^y value will be different. (I think even if he doesn't still my argument holds) Therefore it will achieve forward secrecy as in RSA_DHE. And the poor attacker won't be able to get premaster secret even after getting the value of g^y by compromising the server private key. So, in both cases he won't be able to calculate premaster secret. So why Ephemeral one (RSA_DHE) is said to achieve forward secrecy and other one not?

I have been reading Bulletproof SSL and TLS

Diffie Hellman is a key exchange mechanism, in which each of server and client share secret i.e. g^x and g^y respectively with each other where g is generator of some group. They calculate secret S = (g^y)^x and (g^x)^y respectively. Note that an attacker in the middle cannot get the value of S from g^x and g^y, since discrete logarithm is a hard problem. But, an active attacker can masquerade and fool both server and client.

Now in RSA_DH, the value which server sends to client i.e. g^x is fixed and stored in certificate. So, the "ServerKeyExchange" message is not sent. Now, client sends its g^y value in "ClientKeyExchange" message and this is encrypted with RSA public key cryptography algorithm whose certificate server has already sent in "Certificate" message.

In RSA_DHE, the "ServerKeyExchange" message takes place where server sends g^x to the client.

Now my question is what is the difference between the two? Since the premaster secret is calculated from the value (g^x)^y, Therefore, even in RSA_DH, if the client sends different g^y values in each session, then (g^x)^y value will be different. (I think even if he doesn't still my argument holds) Therefore it will achieve forward secrecy as in RSA_DHE. And the poor attacker won't be able to get premaster secret even after getting the value of g^y by compromising the server private key. So, in both cases he won't be able to calculate premaster secret. So why Ephemeral one (RSA_DHE) is said to achieve forward secrecy and other one not?

I have been reading Bulletproof SSL and TLS

Diffie Hellman is a key exchange mechanism, in which each of server and client share secret i.e. g^x and g^y respectively with each other where g is generator of some group. They calculate secret S = (g^y)^x and (g^x)^y respectively. Note that an attacker in the middle cannot get the value of S from g^x and g^y, since discrete logarithm is a hard problem. But, an active attacker can masquerade and fool both server and client.

DHKE

Now in RSA_DH, the value which server sends to client i.e. g^x is fixed and stored in certificate. So, the "ServerKeyExchange" message is not sent. Now, client sends its g^y value in "ClientKeyExchange" message and this is encrypted with RSA public key cryptography algorithm whose certificate server has already sent in "Certificate" message.

In RSA_DHE, the "ServerKeyExchange" message takes place where server sends g^x to the client.

TLS Handshake

Now my question is what is the difference between the two? Since the premaster secret is calculated from the value (g^x)^y, Therefore, even in RSA_DH, if the client sends different g^y values in each session, then (g^x)^y value will be different. (I think even if he doesn't still my argument holds) Therefore it will achieve forward secrecy as in RSA_DHE. And the poor attacker won't be able to get premaster secret even after getting the value of g^y by compromising the server private key. So, in both cases he won't be able to calculate premaster secret. So why Ephemeral one (RSA_DHE) is said to achieve forward secrecy and other one not?

added 309 characters in body; added 19 characters in body
Source Link
prakharjain
  • 447
  • 1
  • 3
  • 12

I have been reading Bulletproof SSL and TLS

Diffie Hellman is a key exchange mechanism, in which each of server and client share secret i.e. g^x and g^y respectively with each other where g is generator of some group. They calculate secret S = (g^y)^x and (g^x)^y respectively. Note that an attacker in the middle cannot get the value of S from g^x and g^y, since discrete logarithm is a hard problem. But, an active attacker can masquerade and fool both server and client.

Now in RSA_DH, the value which server sends to client i.e. g^x is fixed and stored in certificate. So, the "ServerKeyExchange" message is not sent. Now, client sends its g^y value in "ClientKeyExchange" message and this is encrypted with RSA public key cryptography algorithm whose certificate server has already sent in "Certificate" message.

In RSA_DHE, the "ServerKeyExchange" message takes place where server sends g^x to the client.

Now my question is what is the difference between the two, since? Since the premaster secret i.e.is calculated from the value (g^x)^y., Therefore, even in RSA_DH, if the client sends different yg^y values in each session, then (g^x)^y value will be different. (I think even if he doesn't still my argument holds) Therefore it will achieve forward secrecy as is the case in RSA_DHE. And the poor attacker won't be able to get premaster secret even after getting the value of g^y by compromising the server private key. So, in both cases he won't be able to calculate premaster secret. So why Ephemeral one (RSA_DHE) is said to achieve forward secrecy and other one not?

I have been reading Bulletproof SSL and TLS

Diffie Hellman is a key exchange mechanism, in which each of server and client share secret i.e. g^x and g^y respectively with each other where g is generator of some group. They calculate secret S = (g^y)^x and (g^x)^y respectively. Note that an attacker in the middle cannot get the value of S from g^x and g^y, since discrete logarithm is a hard problem. But, an active attacker can masquerade and fool both server and client.

Now in RSA_DH, the value which server sends to client i.e. g^x is fixed and stored in certificate. So, the "ServerKeyExchange" message is not sent. Now, client sends its g^y value in "ClientKeyExchange" message and this is encrypted with RSA public key cryptography algorithm whose certificate server has already sent in "Certificate" message.

In RSA_DHE, the "ServerKeyExchange" message takes place where server sends g^x to the client.

Now my question is what is the difference between the two, since the premaster secret i.e. calculated from the value (g^x)^y. Therefore, even in RSA_DH, if the client sends different y values in each session, then (g^x)^y value will be different. Therefore it will achieve forward secrecy as is the case in RSA_DHE.

I have been reading Bulletproof SSL and TLS

Diffie Hellman is a key exchange mechanism, in which each of server and client share secret i.e. g^x and g^y respectively with each other where g is generator of some group. They calculate secret S = (g^y)^x and (g^x)^y respectively. Note that an attacker in the middle cannot get the value of S from g^x and g^y, since discrete logarithm is a hard problem. But, an active attacker can masquerade and fool both server and client.

Now in RSA_DH, the value which server sends to client i.e. g^x is fixed and stored in certificate. So, the "ServerKeyExchange" message is not sent. Now, client sends its g^y value in "ClientKeyExchange" message and this is encrypted with RSA public key cryptography algorithm whose certificate server has already sent in "Certificate" message.

In RSA_DHE, the "ServerKeyExchange" message takes place where server sends g^x to the client.

Now my question is what is the difference between the two? Since the premaster secret is calculated from the value (g^x)^y, Therefore, even in RSA_DH, if the client sends different g^y values in each session, then (g^x)^y value will be different. (I think even if he doesn't still my argument holds) Therefore it will achieve forward secrecy as in RSA_DHE. And the poor attacker won't be able to get premaster secret even after getting the value of g^y by compromising the server private key. So, in both cases he won't be able to calculate premaster secret. So why Ephemeral one (RSA_DHE) is said to achieve forward secrecy and other one not?

I was able to answer first part of my question, so I have reframed it.
Source Link
prakharjain
  • 447
  • 1
  • 3
  • 12
Loading
Source Link
prakharjain
  • 447
  • 1
  • 3
  • 12
Loading