Qual é o identificador algoritmo quando usando AES no modo CBC com ISO 10126 dentro preenchimento de PKCS # 7?
-
08-07-2019 - |
Pergunta
Eu quero usar PKCS # 7 como um formato contêiner por algum conteúdo criptografado, assinado e precisamos usar AES no modo CBC com ISO 10126 preenchimento base. Eu não consigo encontrar uma referência concreta a um identificador algoritmo usar para esta combinação. Eu posso inventar o meu próprio país, mas a interoperabilidade seria então perder com outras ferramentas.
Solução
O modo de preenchimento não precisa ser especificado. Isto é verdade porque PKCS # 7 (como muitos outros recipientes criptográficos) utiliza codificação ASN.1 / BER. Como a codificação BER contém o comprimento exato da mensagem dentro do texto simples acolchoado, o valor real do estofamento não importa.
Outras dicas
Acontece que o modo de preenchimento não precisa ser especificado, apenas os assuntos algoritmo de criptografia.
Eu acredito que se você estiver usando PKCS # 7 como seu formato, o preenchimento é ditada a ser, assim, "PKCS7" padding (n octetos de valor 'n', consulte RFC 2315 , seção 10.3.2).
O identificador do algoritmo (s) para AES / CBC são dadas em e.g. 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 }
Assim, por exemplo, o OID para 128 bits AES no modo CBC é 2.16.840.1.101.3.4.1.2
Tecnicamente, estes são para CMS , que é essencialmente o PKCS # 7 atualizados.