CMS / PKCS # 7: specificando signatureAlgorithm con digest?

2

Sono confuso sulla selezione dell'algoritmo per gli oggetti firmati Cryptographic Message Syntax (aka CMS, PKCS # 7) ( RFC5652 Sezione 5.1 ).

La struttura SignerInfo ( RFC5652 Sezione 5.3 ) ha due campi di identificazione dell'algoritmo separati:

  • digestAlgorithm per l'algoritmo digest (hash) e i relativi parametri associati e
  • signatureAlgorithm per l'algoritmo della firma e i relativi parametri associati.

(Ciò è in contrasto con i certificati ( RFC5280 ), CRL ( RFC5280 ) e richieste di certificazione ( RFC2986 , RFC4211 ) che non ha un campo separato per l'algoritmo del digest.)

Per il campo signatureAlgorithm , puoi scegliere rsaEncryption ( RFC3370 Sezione 3.2 ), oppure puoi scegliere una variante che specifica di per sé un algoritmo di digest, ad esempio sha1WithRSAEncryption o md5WithRSAEncryption .

Qual è la relazione tra l'algoritmo del digest dell'algoritmo della firma e l'algoritmo del digest specificato nel campo digestAlgorithm ?

Sottotemi specifici:

  • Supponi che digestAlgorithm contenga sha-1 ( RFC3370 Sezione 2.1 ). C'è qualche differenza tra scegliere rsaEncryption e sha1WithRSAEncryption per il campo signatureAlgorithm ?

  • Che succede se metto sha-1 in digestAlgorithm ma scelgo md5WithRSAEncryption per signatureAlgorithm ?

posta Richard Hansen 19.05.2015 - 00:07
fonte

0 risposte