Numeri casuali utilizzati in TLS

1

Ho trovato nella RFC su TLS v1.2 che master_secret è calcolato in questo modo :

master_secret = PRF(pre_master_secret, "master secret",
                          ClientHello.random + ServerHello.random)

mentre, successivamente, i blocchi chiave necessari per comporre il materiale chiave vengono generati attraverso

  key_block = PRF(SecurityParameters.master_secret,
                  "key expansion",
                  SecurityParameters.server_random +
                  SecurityParameters.client_random);

E qui è la mia domanda: c'è qualche differenza tra SecurityParameters.server_random e ServerHello.random o tra i numeri casuali del client corrispondente? E se sì, qual è questa differenza?

La mia opinione: penso che SecurityParameters.master_secret sia quella calcolata con il primo PRF mostrato sopra: così - supponendo questa "asimmetria" di notazione - forse, anche i numeri casuali nel secondo PRF sono lo stesso usato nel primo? Ma, se è così, perché questa diversa notazione?

    
posta M-elman 15.05.2017 - 19:08
fonte

1 risposta

2

La derivazione della chiave master-to-working è definita come parte del Protocol Record nella sezione 6, e quindi utilizza solo i "parametri" passati attraverso un'API teorica dal Protocollo Handshake nelle sezioni 7.3 e 7.4 (e 8) che può elaborare direttamente i messaggi di handshake inclusi i contenuti di Hello's e KeyExchange (s) e / o dei certificati. Sospetto che questo modo di pensare possa derivare almeno in parte da IPSec in cui l'elaborazione "al portatore" a livello di dati è ampiamente isolata dall'elaborazione di setup / gestione. In pratica nessuna implementazione SSL / TLS che ho visto applica questa separazione; ci sono normalmente blocchi di codice (metodi, ecc.) per i due livelli di protocollo che sono utilizzabili separatamente (e devono essere) ma condividono lo stato sessione / connessione / crittografia.

Inoltre, non è affatto chiaro dalla notazione, ma il premaster-to-master si verifica solo quando viene eseguita una stretta di mano (scambio di chiavi), mentre il master-to-working viene ripetuto se e ogni volta che una sessione è riprende usando una stretta di mano abbreviata, usando i nuovi nonce della nuova stretta di mano abbreviata, non quelli della stretta di mano originale; vedi F.1.4.

    
risposta data 16.05.2017 - 08:12
fonte

Leggi altre domande sui tag