Qual è lo scopo di Server Key Exchange quando si utilizza Ephemeral Diffie-Hellman?

5

Qual è lo scopo di ServerKeyExchange quando si utilizza Diffie-Hellman effimero? In questo caso, ClientHello ha pubblicizzato EDH e EECDH (e non protocolli anonimi) e il server ha selezionato TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA nel suo ServerHello .

In base a RFC 5246 , Sezione 7.4.3:

  This message will be sent immediately after the server Certificate
  message (or the ServerHello message, if this is an anonymous
  negotiation).

  The ServerKeyExchange message is sent by the server only when the
  server Certificate message (if sent) does not contain enough data
  to allow the client to exchange a premaster secret. This is true
  for the following key exchange methods:

     DHE_DSS
     DHE_RSA
     DH_anon

Capisco che RSA venga utilizzato per l'autenticazione (e non per il trasporto di chiavi). Ma dal momento che viene utilizzato Diffie-Hellman, entrambe le parti contribuiscono con il materiale alla master_secret finale. Quindi non è necessario un messaggio che permetta al cliente di fornire più materiale in precedenza per premaster_secret .

Qual è lo scopo di ServerKeyExchange quando si utilizza Diffie-Hellman effimero?

    
posta jww 19.01.2015 - 03:10
fonte

1 risposta

10

In Diffie-Hellman, il client non può calcolare da solo un segreto premaster; entrambe le parti contribuiscono a calcolarlo, quindi il client deve ottenere una chiave pubblica Diffie-Hellman dal server. Nell'effimero Diffie-Hellman, quella chiave pubblica non è nel certificato (è ciò che Effie-Hellman effimero significa ). Quindi il server deve inviare al client la sua chiave pubblica DH temporanea in un messaggio separato in modo che il client possa calcolare il segreto premaster (ricorda, entrambe le parti hanno bisogno di conoscere il segreto premaster, perché è così che derivano il segreto principale). Quel messaggio è ServerKeyExchange .

Non sono sicuro di cosa intendi con "un messaggio che consente al cliente di fornire più materiale in precedenza" in merito a ServerKeyExchange . ServerKeyExchange non lascia che il cliente contribuisca più materiale; il client invia un ClientKeyExchange in tutte le suite TLS. Il punto di ServerKeyExchange è di lasciare che il server contribuisca più materiale allo scambio di chiavi, lasciandolo inviare ulteriori informazioni non nel certificato.

Informazioni su "backtracking to secret secret:" Il premaster_secret è il risultato immediato dello scambio di chiavi. Lo scambio di chiavi in TLS mai produce direttamente un master_secret ; questo perché i progettisti TLS desideravano che il master secret avesse una lunghezza consistente con l'entropia diffusa, così che il codice di derivazione della chiave non dovesse preoccuparsi di come avveniva lo scambio di chiavi. Diversi metodi di scambio di chiavi producono segreti condivisi formattati in modo diverso, quindi sempre devono convertire il segreto premaster in un master secret di 48 byte. Non esiste un vero concetto di "backtracking", poiché il master secret non viene derivato fino a quando lo scambio di chiavi non è terminato.

    
risposta data 19.01.2015 - 03:51
fonte

Leggi altre domande sui tag