Come costruire il segreto pre-master [duplicato]

1

Sto implementando un sistema simile a TLS, che utilizza ECDHE-RSA-AE-GCM-SHA , e ho affrontato due interrogazioni.

Alla fine dell'handshake (e prima del messaggio ChangeCipherSpec ), sia il client che il server devono creare lo stesso Pre-Master Secret .

Su quali dati si basa questo segreto? Dal momento che non ho trovato la risposta nel RFS ( 4492 e 5246 ), direi questo:

  • la chiave ECDHE pubblica del server (invia all'interno del messaggio ServerKeyExchange )
  • la chiave ECDHE pubblica client (inviata, cifrata, con il messaggio ClientKeyExchange )

Sono, per me, i componenti logici, poiché Mallory non è stato in grado di recuperare la chiave ECDHE pubblica del client, perché crittografata con il server PublicKey. In caso affermativo, la firma del messaggio ServerkeyExchange sarebbe errata e il Cliente lo saprebbe.

Sono consapevole che questa non è affatto una giustificazione adeguata e, quando si parla di crittografia, questi tipi di ragionamento sono cattivi (quando non sono sbagliati), ma poiché non ho trovato la risposta in RFC, tutto ciò che rimane è qui ...

Inoltre, quale algoritmo utilizziamo per costruire effettivamente il segreto pre-master? E 'una classica funzione di hash (SHA, ...)?

So che SHA è usato per espandere MasterSecret (dai numeri casuali e Pre-Patser Secret ), ma per il suo fratellino sono nella nebbia ...

    
posta EisenHeim 10.09.2015 - 17:42
fonte

1 risposta

4

"ECDHE" significa "effimero Diffie-Hellman (con curve ellittiche)". Questo è ciò da cui deriva il segreto pre-maestro. Il client genera una coppia di chiavi DH casuale (una chiave privata DH e la chiave pubblica corrispondente). Il server genera anche una coppia di chiavi DH casuale. Si inviano reciprocamente le parti pubbliche delle rispettive coppie di chiavi.

Il client utilizza la sua chiave privata DH, combinata con la chiave pubblica DH dal server, per ottenere il segreto premaster.

Il server utilizza la sua chiave privata DH, combinata con la chiave pubblica DH dal client, per ottenere il segreto premaster.

Con la magia di Diffie-Hellman, entrambi ottengono lo stesso valore per il segreto premaster. Ma, sempre con quella magia, gli intercettatori, che vedevano solo le chiavi pubbliche sia dal client che dal server, ma nessun tasto DH privato, non potevano ricostruire il segreto premaster.

("cifrato" non è una parola, probabilmente significa "crittografato".) No, non c'è alcuna crittografia qui Le chiavi pubbliche DH sono pubbliche e, infatti, inviate come-è finita il filo.)

    
risposta data 10.09.2015 - 18:32
fonte

Leggi altre domande sui tag