1
$\begingroup$

For (EC)DHE cipher suites, server authenticates itself by proving the possession of the private key matching its certificate by signing ServerKeyExchange message (link):

  struct {
      select (KeyExchangeAlgorithm) {
          case dh_anon:
              ServerDHParams params;
          case dhe_dss:
          case dhe_rsa:
              ServerDHParams params;
              digitally-signed struct {
                  opaque client_random[32];
                  opaque server_random[32];
                  ServerDHParams params;
              } signed_params;
          case rsa:
          case dh_dss:
          case dh_rsa:
              struct {} ;
             /* message is omitted for rsa, dh_dss, and dh_rsa */
          /* may be extended, e.g., for ECDH -- see [TLSECC] */
      };
  } ServerKeyExchange;

For RSA cipher suites, server authenticates itself by proving the possession of the private key matching its certificate by decrypting pre-master secret sent by client in ClientKeyExchange message (link):

struct {
    select (KeyExchangeAlgorithm) {
        case rsa:
            EncryptedPreMasterSecret;
        case dhe_dss:
        case dhe_rsa:
        case dh_dss:
        case dh_rsa:
        case dh_anon:
            ClientDiffieHellmanPublic;
    } exchange_keys;
} ClientKeyExchange;

How does the server authenticate itself and prove possession of the private key matching its cert for static DH? It won't send ServerKeyExchange, because its public key embedded in its certificate already contains relevant info. Client won't send ClientKeyExchange with EncryptedPreMasterSecret, because this is not RSA.

Does the server prove possession of the private key solely by being able to arrive at the same master secret as the client?

$\endgroup$
2
$\begingroup$

Yes -- which is the same as RSA, because there the server proves it was able to decrypt the premaster secret (with the private key) only by getting the correct master secret, and working keys, and thus Finished. (All of these are the same for 1.1 and 1.0, and SSL3.)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.