2012-03-09 18 views
5

PKCS#12は、対応するX.509証明書を持つ秘密鍵を標準化された単一ファイル形式にまとめる便利な方法です。しかし、この仕様は1999年にRSALabsによって発行され、対称暗号化にはRC4、RC2、TripleDESのみが使用されています。より多くの暗号化アルゴリズムや他のキー導出関数を追加する、スキームに対する共通の準標準拡張があるか? OpenSSLは、AESとCamelliaのサポートを実装するために文書化されていますが、対応する標準の検索は空白になります。したがって、これはOpenSSL固有の実装です。誰もがASN.1モジュールとこれらの拡張の疑似コードを文書化していますか?公開されているPKCS#12の拡張機能はありますか?

答えて

3

PKCS#12は、他の規格のビルディングブロックを使用します。

推奨される暗号化モードは、PKCS#5(PBES2)からのパスワードベースの暗号化に基づいています。これは、PKCS#5 v.2.1のSHA-2とAESのサポートによって拡張されています。

OpenSSLがAESを使用する場合、それはこのようにそれをしない:

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 
      :         } 
      :         } 
      :        } 

PKCS#5 PBES2を使用するときに限り、私はソースを読むことができるよう、OpenSSLはASCIIではなく、ゼロ終端UTF-16としてパスワードをエンコードします。

+0

まあまあではありません。 PKCS#12は、付録B.2で指定されたPBKDFを使用し、いくつかの点でPKCS#5のPBKDF2の両方のPBKDF1とは異なります。たとえば、PKCS#5 PBKDF1とは異なり、PKCS#5 PBKDF2とは異なり、HMAC出力のxor合計の代わりに反復ハッシュを使用し、両方とも塩とパスワードを通常とは異なる形式で使用します。 –

+0

より具体的には、PKCS#12付録B.1では、単純なOctetStringの代わりにパスワードをBMPStringとして表示するように指定しています。つまり、PKCS#12ファイルの暗号化アルゴリズム識別子フィールドでPKCS#5アルゴリズム識別子が見つかると、パスワードをBMPStringとして扱うかどうかは不定になります。したがって、処理規則は依然として明白に外部的に指定されなければならない。 –

+1

@HenrickHellström:覚えている限り、付録B.2のPBKDFは古いMicrosoft形式との下位互換性のためだけです。 13ページの注釈を読むと、PKCS#5のメカニズムを使用することをお勧めします。 –

関連する問題