Come il server conosce il client_write_key per decrittografare il messaggio del client? [duplicare]

1

Ho una domanda riguardante l'handshake TLS. Dalla mia lettura ho scoperto che master_secret sarà derivato da pre_master_secret condivisa dal client come segue:

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

  • Da questo master_secret sono derivate le chiavi della sessione sottostante.

  • Sul lato client:

    client_write_MAC_secret[SecurityParameters.hash_size]
    client_write_key[SecurityParameters.key_material_length]
    client_write_IV[SecurityParameters.IV_size]
    
  • Sul lato server:

    server_write_MAC_secret[SecurityParameters.hash_size]
    server_write_key[SecurityParameters.key_material_length]
    server_write_IV[SecurityParameters.IV_size]
    

Quando queste chiavi di sessione vengono generate separatamente sul client e sul server e non vengono mai scambiate e trasmesse tra loro, come decrittografa il messaggio crittografato del client e viceversa?

Oppure tutte e 6 le chiavi di sessione vengono create sia sul client che sul server singolarmente e sperano che siano simili. Se questo è vero, sia il client che il server possono decrittografare l'un l'altro i messaggi crittografati.

    
posta Srinivas M 27.05.2016 - 14:04
fonte

1 risposta

0

Guarda RFC 5246 Sezione 6.3 . Su entrambi i lati, i byte vengono generati usando il PRF dagli stessi argomenti, quindi i byte generati sono gli stessi. I byte generati vengono utilizzati nel seguente modo: I primi byte "mac_key_length" (ad esempio 20 byte) sono la chiave MAC del client e il successivo "mac_key_length" sono del server. Quindi il prossimo "enc_key_length" (ad esempio 16 byte) è la chiave del client (ad es. AEs) e quella successiva sono del server, ecc.

Ogni parte sa se si tratta del client o del server, quindi scelgono il MAC / key / IV corretto durante la lettura e l'altro MAC / key / IV durante la scrittura.

    
risposta data 27.05.2016 - 14:26
fonte

Leggi altre domande sui tag