Confronto tra algoritmi di firma HMACSHA1 e RSASHA1

0

Confronta e confronta gli algoritmi di firma HMACSHA1 e RSASHA1.

Supponiamo che lo scopo qui sia quello di rendere impossibile generare un messaggio valido + coppie di sigla senza conoscere un certo token / chiave privata (ma ovviamente, non inviare la suddetta chiave sul filo, anche se entrambe le parti sono attendibili).

Ci sarebbe un motivo per scegliere un metodo rispetto all'altro? Probabilmente preferirei RSASHA1 basato su chiave pubblica, ma è necessario, o addirittura vantaggioso?

    
posta NH. 20.07.2018 - 17:30
fonte

1 risposta

3

HMAC-SHA1 è un algoritmo di codice di autenticazione dei messaggi (MAC), RSA-SHA1 è un algoritmo di firma. Anche se i MAC sono talvolta chiamati in modo errato firme, sono fondamentalmente diversi.

Con un MAC, chiunque conosca la chiave segreta può creare e verificare i MAC. Con le firme d'altra parte, chiunque abbia la chiave pubblica può verificare una firma, ma solo qualcuno con la chiave privata può creare una firma.

Le firme vengono utilizzate quando si desidera che la parte che verifica la firma non sia in grado di creare firme. PGP li utilizza per verificare la paternità dei messaggi, TLS li usa per verificare le catene di certificati.

I MAC vengono utilizzati quando tutte le parti coinvolte vogliono semplicemente sapere che il messaggio è venuto inalterato da un'altra parte valida. TLS li utilizza per verificare che i messaggi siano inalterati tra il client e il server.

I MAC sono generalmente significativamente più veloci delle firme. Una firma in cui entrambe le parti sanno che le chiavi pubbliche e private potrebbero essere utilizzate come MAC, ma le prestazioni sarebbero molto peggiori.

Si noti che SHA1 viene deprecato nella maggior parte dei luoghi a causa di attacco di collisione . L'attacco di collisione non ha effetto su HMAC-SHA1 , ma potrebbe essere preferibile utilizzare HMAC-SHA256 se non altro per evitare domande non necessarie. SHA1 dovrebbe essere evitato con le firme RSA se l'attaccante ha il controllo su ciò che stai firmando, e dato che potrebbe non essere sempre chiaro se questo sia il caso (o potrebbe essere il caso nel futuro a causa di cambiamenti), è meglio usare solo SHA256.

    
risposta data 20.07.2018 - 17:59
fonte

Leggi altre domande sui tag