Quel est l'identifiant de l'algorithme lors de l'utilisation d'AES en mode CBC avec un remplissage ISO 10126 dans PKCS # 7?
-
08-07-2019 - |
Question
Je souhaite utiliser PKCS # 7 en tant que format de conteneur pour un contenu chiffré et signé. Nous devons utiliser AES en mode CBC avec un remplissage conforme à la norme ISO 10126. Je n'arrive pas à trouver une référence concrète à un identifiant d'algorithme à utiliser pour cette combinaison. Je peux inventer le mien, mais je perdrais l'interopérabilité avec d'autres outils.
La solution
Le mode de remplissage n'a pas besoin d'être spécifié. Cela est vrai car PKCS # 7 (comme de nombreux autres conteneurs cryptographiques) utilise le codage ASN.1 / BER. Le codage BER contenant la longueur exacte du message à l'intérieur du texte brut complété, la valeur réelle du remplissage n'a pas d'importance.
Autres conseils
Il s’avère que le mode de remplissage n’a pas besoin d’être spécifié, seul l’algorithme de chiffrement est important.
Je pense que si vous utilisez PKCS # 7 comme format, le remplissage est censé être "bon", "PKCS7". padding (n octets de valeur 'n', voir RFC 2315 , section 10.3.2) .
Les identificateurs d’algorithmes pour AES / CBC sont donnés dans les exemples. RFC 3565 :
-- AES information object identifiers --
aes OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840)
organization(1) gov(101) csor(3)_ nistAlgorithms(4) 1 }
-- AES using CBC-chaining mode for key sizes of 128, 192, 256
id-aes128-CBC OBJECT IDENTIFIER ::= { aes 2 }
id-aes192-CBC OBJECT IDENTIFIER ::= { aes 22 }
id-aes256-CBC OBJECT IDENTIFIER ::= { aes 42 }
Donc, par exemple l'OID de l'AES 128 bits en mode CBC est 2.16.840.1.101.3.4.1.2
Techniquement, il s’agit du CMS , qui est essentiellement le PKCS # 7 mis à jour.