3

公開鍵ヘッダーと公開鍵情報を見つけようとしています。openssl を使用して C 形式の証明書と公開鍵モジュラスをダンプしました。公開鍵情報と公開鍵ヘッダーを公開鍵としてリストしました。openssl.exe rsa -pubin -inform DER -text -noout < publickey.derしかし、サーバーで生成された公開鍵を使用してこれらのフィールドをダンプすることはできません。

デジタル証明書のこれらのフィールドの重要性を説明してください。すべての公開鍵で同じですか? openssl でこの情報を取得できません。DER エンコーディングには追加のヘッダーとフッターがあるとだけ言及されています。

4

1 に答える 1

3

公開鍵ヘッダーについて聞いたことがありません...例を挙げていただけますか?

公開鍵情報は、おそらく、X.509 証明書の公開鍵が一般的にエンコードされる標準的な方法であり、SubjectPublicKeyInfo 属性の形式になります。これらの SubjectPublicKeyInfos は、公開鍵ファイルに変換できます (それがあなたがやろうとしていたことだと思いますか? 間違っていたら訂正してください!) そのセクションでは、RSA が参照する特定のアルゴリズムに関する情報を見つけることができる場所についても説明します。RFC 3279。SubjectPublicKeyInfo は次のように定義されます。

SubjectPublicKeyInfo  ::=  SEQUENCE  {
    algorithm            AlgorithmIdentifier,
    subjectPublicKey     BIT STRING  } 

RFC 3279 は次のように述べています。

rsaEncryption OID は、タイプ AlgorithmIdentifier の値のアルゴリズム フィールドで使用されることを意図しています。パラメータ フィールドには、このアルゴリズム識別子の ASN.1 タイプ NULL が含まれている必要があります。

さらに遠く:

RSA 公開鍵は、ASN.1 タイプ RSAPublicKey を使用してエンコードする必要があります。

  RSAPublicKey ::= SEQUENCE {
     modulus            INTEGER,    -- n
     publicExponent     INTEGER  }  -- e

したがって、関連するデータを含むのは subjectPublicKey フィールドです。たとえばx509、OpenSSL のコマンドを使用してこれらの値を取得できます。

openssl x509 -in certificate.cer -inform DER -noout -text

出力します (PEM 証明書の場合は、-inform DER をドロップします):

Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
            Public-Key: (1024 bit)
            Modulus:
                00:cb:c2:...
            Exponent: 65537 (0x10001)

また、PEM RSA 公開鍵ファイルを直接生成するための巧妙なトリックもありますx509

openssl x509 -inform DER -in certificate.cer -pubkey -noout > pubkey.pem

PEMエンコーディングでエクスポートされた公開鍵があります。

于 2012-05-30T21:48:14.143 に答える