Hash su tutti i messaggi precedenti

2

Sto implementando un sistema TLS -like, e mi piacerebbe impostare un Finished messaggio, per impedire attacchi di riproduzione.

Per quanto comprendo TLS , contiene un hash sui precedenti messaggi di handshake, crittografato e firmato con l'algoritmo scelto.

Il server prima costruisce il suo frame Finished , con un hash di tutti i messaggi precedenti. Quindi viene inviato al client.

Il client deve prendere il messaggio Finished del server come "messaggio precedente "? (per calcolare un hash)

Perché altrimenti, il contenuto dell'hash è lo stesso del server, ma in un ordine diverso (che produrrà un hash completamente diverso).

Dicono questo nel capitolo sul messaggio Finito :

All of the data from all messages in this handshake (not including any HelloRequest messages) up to, but not including, this message.

Secondo me, il cliente deve effettivamente prendere il messaggio Finished ricevuto (dal server) insieme ad altri messaggi di handshake.

    
posta EisenHeim 22.09.2015 - 11:47
fonte

1 risposta

2

Questa sezione della RFC afferma inoltre:

The value handshake_messages includes all handshake messages starting at ClientHello up to, but not including, this Finished message. This may be different from handshake_messages in Section 7.4.8 because it
would include the CertificateVerify message (if sent). Also, the
handshake_messages for the Finished message sent by the client will
be different from that for the Finished message sent by the server,
because the one that is sent second will include the prior one.

Il client invia prima il suo messaggio Finished, quindi il server invia il suo messaggio, incluso il precedente messaggio finito dal client.

But won't be the hash too long ?

Un algoritmo di hashing crittografico emette sempre hash della stessa lunghezza. L'aggiunta di una maggiore lunghezza all'ingresso non aumenta la lunghezza dell'output.

    
risposta data 22.09.2015 - 12:46
fonte

Leggi altre domande sui tag