Passa al contenuto principale

3.3. Algoritmi di firma (Signature Algorithms)

3.3. Algoritmi di firma (Signature Algorithms)

Una firma del messaggio HTTP DEVE usare un metodo di firma digitale crittografica o MAC appropriato per il materiale di chiave, l'ambiente e le esigenze del firmatario e del verificatore. Questa specifica non limita rigorosamente gli algoritmi di firma disponibili, e qualsiasi algoritmo di firma che soddisfi questi requisiti di base PUÒ essere usato da un'applicazione delle firme dei messaggi HTTP.

Per ogni metodo di firma, HTTP_SIGN ha come input la base della firma definita nella Sezione 2.5 come array di byte (M) e il materiale di chiave di firma (Ks), e produce in output la firma risultante come array di byte (S):

HTTP_SIGN (M, Ks) -> S

Per ogni metodo di verifica, HTTP_VERIFY ha come input la base della firma rigenerata definita nella Sezione 2.5 come array di byte (M), il materiale di chiave di verifica (Kv) e la firma presentata da verificare come array di byte (S), e produce in output il risultato della verifica (V) come Boolean:

HTTP_VERIFY (M, Kv, S) -> V

Le sezioni seguenti contengono diversi algoritmi di firma comuni e mostrano come queste primitive crittografiche si mappano alle definizioni HTTP_SIGN e HTTP_VERIFY sopra. Quale metodo usare può essere comunicato tramite il parametro di firma esplicito algorithm (alg) (Sezione 2.3), per riferimento al materiale di chiave o tramite accordo reciproco tra firmatario e verificatore. Gli algoritmi di firma selezionati usando il parametro alg DEVONO usare valori dal registro "HTTP Signature Algorithms" (Sezione 6.2).