Ci sono delle estensioni pubblicate a PKCS # 12?
-
10-12-2019 - |
Domanda
PKCS # 12 è un modo conveniente per assorbire una chiave privata con la sua corrispondente x.509 Certificato in un formato di file singolo standardizzato.Tuttavia, le specifiche sono state pubblicate da RSLABS nel 1999 e utilizza solo RC4, RC2 e triples per la crittografia simmetrica.Esistono comuni estensioni semi-standard allo schema che aggiunge più algoritmi di crittografia o altre funzioni di derivazione chiave? OpenSSL è documentato per implementare il supporto per AES e Camelia, ma una ricerca di uno standard corrispondente si alza vuoto,Quindi questo sembra essere qualcosa di implementazione specifico per openssl.Qualcuno ha documentato il modulo ASN.1 e il codice Pseudo per queste estensioni?
Soluzione
PKCS # 12 utilizza blocchi di costruzione da altri standard.
La modalità di crittografia consigliata si basa sulla crittografia basata su password da PKCS # 5 (PBES2).Questo è stato esteso con il supporto per SHA-2 e AES in PKCS # 5 V.2.1 .
Quando OpenSSL utilizza AES, lo fa piace:
684 30 806: SEQUENCE {
688 30 802: SEQUENCE {
692 06 11: OBJECT IDENTIFIER
: pkcs-12-pkcs-8ShroudedKeyBag (1 2 840 113549 1 12 10 1 2)
705 A0 723: [0] {
709 30 719: SEQUENCE {
713 30 73: SEQUENCE {
715 06 9: OBJECT IDENTIFIER
: pkcs5PBES2 (1 2 840 113549 1 5 13)
726 30 60: SEQUENCE {
728 30 27: SEQUENCE {
730 06 9: OBJECT IDENTIFIER
: pkcs5PBKDF2 (1 2 840 113549 1
5 12)
741 30 14: SEQUENCE {
743 04 8: OCTET STRING
: BA 6B 5B B3 47 27 C9 73
753 02 2: INTEGER 2048
: }
: }
757 30 29: SEQUENCE {
759 06 9: OBJECT IDENTIFIER
: aes128-CBC (2 16 840 1 101 3 4 1 2)
770 04 16: OCTET STRING
: 0F 79 79 0A D3 EC C0 3E 20 B8 51 85 2F 2B 6C 29
: }
: }
: }
.
Per quanto posso leggere la fonte, OpenSSL codifica la password come ASCII anziché UTF-16 a zero-16 quando si utilizza PKCS # 5 PBES2.