1

パスワードで保護された RSA 交換に使用される秘密鍵があります。私はパスワードを知っているので、鍵を使用できますが、パスワードを作成するためにどの暗号が使用されたかはわかりません。

この質問への回答に従って、復号化されたキーのヘッダーで暗号が指定されている他のキーがあります。ただし、暗号化されたこのキーは単純に開始します。

-----BEGIN ENCRYPTED PRIVATE KEY-----

復号化された場合:

-----BEGIN RSA PRIVATE KEY-----

これ以上のヘッダーはありません。

openssl rsaや gnutlsなどのツールcerttool -kは、パスワードが与えられると鍵を復号化し、公開鍵に関する情報を提供しますが、パスワードに使用される対称暗号については何も言いません。

おそらく、これらのアプリケーションはキーを復号化するため、暗号が何であったかを知っています。この情報を取得する方法はありますか? とにかくパスワードを知っている場合、それを秘密にしておくことにはあまり意味がないようです.

gnutls API (openssl ではない) を使用したプログラムによる回答は良いですが、理想的には、既存の移植可能なツールについて知りたいです。

4

2 に答える 2

4

ASN.1 デコードすると、次のようになります。

    0:d=0  hl=4 l=1294 cons: SEQUENCE
    4:d=1  hl=2 l=  64 cons:  SEQUENCE
    6:d=2  hl=2 l=   9 prim:   OBJECT            :PBES2
   17:d=2  hl=2 l=  51 cons:   SEQUENCE
   19:d=3  hl=2 l=  27 cons:    SEQUENCE
   21:d=4  hl=2 l=   9 prim:     OBJECT            :PBKDF2
   32:d=4  hl=2 l=  14 cons:     SEQUENCE
   34:d=5  hl=2 l=   8 prim:      OCTET STRING
   44:d=5  hl=2 l=   2 prim:      INTEGER           :0800
   48:d=3  hl=2 l=  20 cons:    SEQUENCE
   50:d=4  hl=2 l=   8 prim:     OBJECT            :des-ede3-cbc
   60:d=4  hl=2 l=   8 prim:     OCTET STRING
   70:d=1  hl=4 l=1224 prim:  OCTET STRING

すなわち。この例では、des-ede3-cbc が使用されています。使用できるオンライン/オープンソースの ASN.1 デコーダーは次のとおりです。

phpseclib ASN.1 デコーダー

データをコピーして貼り付け、送信ボタンを押すだけです。

openssl asn1parse -inform PEM -in file.ext -iOpenSSL がインストールされている場合は、CLI からも実行できます。

于 2013-04-23T13:43:28.080 に答える