Passa al contenuto principale

7.3.1. Crittografia e collisione delle firme (Cryptography and Signature Collision)

7.3.1. Crittografia e collisione delle firme (Cryptography and Signature Collision)

Questo documento non definisce primitive crittografiche proprie e si affida invece ad altre specifiche per definire tali elementi. Se l'algoritmo di firma o la chiave usati per elaborare la base della firma sono vulnerabili ad attacchi, anche la firma risultante sarà suscettibile agli stessi attacchi.

Un attacco comune ai sistemi basati su firma è forzare una collisione di firma, in cui lo stesso valore di firma verifica con successo input multipli diversi. Poiché questa specifica si affida alla ricostruzione della base della firma da un messaggio HTTP e l'elenco dei componenti firmati è fisso nella firma, è difficile ma non impossibile per un attaccante realizzare tale collisione. Un attaccante dovrebbe manipolare il messaggio HTTP e i suoi componenti coperti per rendere efficace la collisione.

Per contrastare ciò, dovrebbero essere usate solo chiavi e algoritmi di firma sottoposti a revisione per firmare messaggi HTTP. Il registro "HTTP Signature Algorithms" è una fonte di algoritmi di firma attendibili per le applicazioni da applicare ai loro messaggi.

Sebbene sia possibile per un attaccante sostituire separatamente il valore dei parametri di firma o il valore della firma, l'algoritmo di generazione della base della firma (Sezione 2.5) copre sempre i parametri di firma come valore finale nella base della firma usando un metodo di serializzazione deterministico. Questo passo lega fortemente la base della firma al valore della firma in modo che sia molto più difficile per un attaccante eseguire una sostituzione parziale sulla base della firma.