PKCS#12は、対応するX.509証明書を持つ秘密鍵を標準化された単一ファイル形式にまとめる便利な方法です。しかし、この仕様は1999年にRSALabsによって発行され、対称暗号化にはRC4、RC2、TripleDESのみが使用されています。より多くの暗号化アルゴリズムや他のキー導出関数を追加する、スキームに対する共通の準標準拡張があるか? OpenSSLは、AESとCamelliaのサポートを実装するために文書化されていますが、対応する標準の検索は空白になります。したがって、これはOpenSSL固有の実装です。誰もがASN.1モジュールとこれらの拡張の疑似コードを文書化していますか?公開されているPKCS#12の拡張機能はありますか?
5
A
答えて
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としてパスワードをエンコードします。
関連する問題
- 1. Chromeのブラウザ用に新しいChrome拡張機能が公開されることはありませんか?
- 2. 新しく公開された拡張機能crx_version_number_invalid
- 3. joomlaの拡張ディレクトリに自分の拡張機能を公開するには?
- 4. chrome webstore:拡張機能の古いバージョンを公開する方法はありますか?
- 5. アンダースコアの拡張機能は再帰的に拡張されますか(またはオプションがありますか)?
- 6. phpinfo()の出力に拡張機能のバージョンを公開する
- 7. サポートされているPHP拡張機能(PgSQL、PDO_PgSQL)はありません
- 8. 公開された拡張機能が開発のように機能しない
- 9. Windowsの展開されていない拡張機能のChrome拡張機能の警告、チュートリアル
- 10. TFS 2017アップロード拡張機能すでに拡張機能があります
- 11. 公開されているChrome拡張機能で受け取ったすべてのバグレポートとフィードバックのメールを受け取る方法はありますか?
- 12. Safariには拡張機能がインストールされていますか?
- 13. traitは機能拡張機能を拡張していますか(A => B)?
- 14. ワンクリックでChrome拡張機能を自己公開する
- 15. EntityCollectionで拡張メソッドが公開されることがあります。
- 16. Chrome拡張機能 - chrome.webstore.installは機能ではありません
- 17. 拡張機能が追加されているが、拡張機能リストに追加されていない
- 18. 現在開かれている拡張機能
- 19. コンテナアプリ内からiMessage拡張機能を開く方法はありますか?
- 20. 拡張機能には格納されていない可能性があります。保存されたプロパティー
- 21. Chrome拡張機能では、作成された拡張機能の再開を無効にする
- 22. Retina DisplayのTwitter Bootstrapの拡張機能はありますか?
- 23. Chrome拡張機能用の音声web_accessible_resourceはありますか?
- 24. Android Studio用のSqlLite拡張機能はありますか?
- 25. オープンソースのSVG Windows Explorerプレビュー拡張機能はありますか?
- 26. 拡張機能のVSCodeエラーログはどこにありますか?
- 27. C++にソケットの拡張機能はありますか?
- 28. パックされたGoogle Chrome拡張機能と展開されていないGoogle Chrome拡張機能の違いは何ですか?
- 29. 拡張機能を自分の「拡張機能」ファイルに保存する必要がありますか?
- 30. 公開拡張のためにFirefoxの拡張機能をレビューするにはどのくらい時間がかかりますか?
まあまあではありません。 PKCS#12は、付録B.2で指定されたPBKDFを使用し、いくつかの点でPKCS#5のPBKDF2の両方のPBKDF1とは異なります。たとえば、PKCS#5 PBKDF1とは異なり、PKCS#5 PBKDF2とは異なり、HMAC出力のxor合計の代わりに反復ハッシュを使用し、両方とも塩とパスワードを通常とは異なる形式で使用します。 –
より具体的には、PKCS#12付録B.1では、単純なOctetStringの代わりにパスワードをBMPStringとして表示するように指定しています。つまり、PKCS#12ファイルの暗号化アルゴリズム識別子フィールドでPKCS#5アルゴリズム識別子が見つかると、パスワードをBMPStringとして扱うかどうかは不定になります。したがって、処理規則は依然として明白に外部的に指定されなければならない。 –
@HenrickHellström:覚えている限り、付録B.2のPBKDFは古いMicrosoft形式との下位互換性のためだけです。 13ページの注釈を読むと、PKCS#5のメカニズムを使用することをお勧めします。 –