Come e quando viene inviato un MAC durante una connessione TLS?

3

Ho cercato di capire la parte MAC della connessione TLS in quanto sia lo scambio di chiavi che il codice sembrano avere un senso.

Per quanto ho capito, il MAC è utilizzato per garantire che le informazioni ricevute siano autentiche, ma qui ci sono le mie domande:

  • Un MAC inviato solo durante l'handshake (il bit asincrono) o uno inviato con ogni pezzo di informazioni trasferite (sia i bit asincroni che quelli di sincronizzazione)?

  • Quando un client parla con un server, invia sempre un MAC?

  • Quando un server parla con un client, invia sempre un MAC?

  • Riguardo a TLS, è un MAC creato tramite EtM, E & M o MtE? In breve, il MAC è inviato come testo normale?

  • Se un MAC non corrisponde la connessione è terminata? L'intero processo di handshake deve ricominciare?

posta Wub 28.12.2015 - 12:52
fonte

1 risposta

4

Is a MAC sent only during the handshake (the async bit) or is one sent with each piece of transferred information (both the async and sync bits)?

Entrambi.

When a client talks to a server, does it always send a MAC?

When a server talks to a client, does it always a send a MAC?

Sì. La direzione non ha importanza. (Solo il tipo di suite di cifratura: uno di Stream / Block / AEAD e stream e block hanno il TLS-MAC esterno e l'AEAD il MACing stesso.)

In regards to TLS, is a MAC created via EtM, E&M or MtE? In short, is the MAC sent as plaintext?

Il caso predefinito è usare la MAC-then-encrypt. E questo non è più considerato più alla moda. Puoi passare a Encrypt-then-MAC solo tramite un'estensione TLS recente

If a MAC doesn't match-up is the connection terminated? Does the whole handshake process have to begin again?

Yup. E questo è abbastanza ragionevole se stai comunicando su un protocollo come TCP che dovrebbe garantire l'integrità contro cose come il rumore di linea. Questo avviso bad_record_MAC è sempre fatal e interromperà una sessione.

    
risposta data 28.12.2015 - 16:46
fonte

Leggi altre domande sui tag