マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

署名

XML Digital Signature標準のRFC3075

特徴

書目に関する情報

XMLの文法で統一して表現できる。

  • 署名対象
  • 署名アルゴリズム
  • 署名値
  • 証明書

署名付加方法

XMLに追加するので、ASN.1構文に比べて分かりやすい。

署名範囲

XML文書の一部に対しても署名を付けることができる。

アルゴリズム等の識別子

W3Cなどで定めているURIを使用する。

構文

  • XML文書の正規化(RFC3076 の Canonicalization:C14N)を行う。
  • 署名要素に対して
    • 正規化方法
    • ダイジェスト値と署名値の計算方法と計算値
    • XML署名使用した鍵情報(KeyInfo?)要素(オプション)

を挿入する。

  • Signature要素は、下記のように記述される。
    <Signature ID?>               <!-- XML署名要素 -->
      <SignedInfo>                  <!--署名情報要素>
        <CanonicalizationMethod/>     <!--署名対象正規化アルゴリズム要素-->
        <SignatureMethod/>            <!--署名アルゴリズム要素-->
        (<Reference (URI=)? >         <!--参照要素(URIは署名対象の識別子)-->
          (<Transforms/>)?              <!--正規化変換プロセス要素-->
          <DigestMethod/>               <!--ダイジェスト計算アルゴリズム要素-->
          <DigestValue/>                <!--署名対象のダイジェスト値要素-->
        </Reference>)+                <!-- 1つ以上の参照要素-->
      </SignedInfo> 
      <SignatureValue/>           <!--署名値要素-->
      (<KeyInfo>                  <!--鍵情報要素:オプション-->
         <KeyValue/>                <!--検証鍵要素-->
         <X.509Data/>               <!-- X.509証明書要素-->
       </KeyInfo>)?
      (<Object ID?>)*             <!-- XML署名対象要素:オプション-->
    </Signature>

種別

Detached署名

署名対象要素と署名要素が独立した署名形式

Enveloped署名

署名要素が署名対象要素の子要素となる署名形式

Enveloping署名

署名要素が署名対象要素の親要素となる署名形式

署名・検証

署名

  • 前処理
  • 署名対象に対して、正規化変換を適用
  • 署名対象のダイジェスト値を計算
  • 参照要素(Reference element)の生成
    • 署名対象のIDをURI属性として追加(オプション)
    • XML正規化変換プロセス要素を追加(オプション)
    • ダイジェスト値を計算し、DigestMethod?要素とDigestValue?要素を追加
  • 署名要素(Signature element)を生成して署名対象に追加
  • 署名情報要素(SignedInfo? element)を生成して署名要素に追加。
    • 正規化アルゴリズム要素(CanonicalizationMethod? element)
    • 署名アルゴリズム要素(SignatureMethod? element)
    • (前処理の)参照要素(Reference element)と、その子要素。
  • 署名を行い、署名値要素(SignatureValue? element)を生成して署名要素(Signature element)に追加。
  • 署名に使用した鍵情報要素(KeyInfo? element)を生成して署名要素(Signature element)に追加(オプション)

検証

  • 署名対象の検証
  • 署名対象識別子URIを参照しオリジナル署名対象を取得する。
  • 署名対象から、参照要素(Reference element)を抽出・削除する。
  • 上記から、ダイジェスト値を計算・比較し一致を確認する。
  • 署名を検証する。
    • 公開鍵を取得(回部リソースか、鍵情報要素(KeyInfo? element)から取得)
    • 上記から、ダイジェスト値を計算・比較し一致を確認する。

ライブラリ

暗号化

仕様に暗号化に関する項目はあるが、具体的でなく実装もなさそう。

特徴

...

構文

...

種別

...

暗号化・復号化

...

暗号化

...

復号化

...

ライブラリ

...

参考


Tags: :.NET開発, :セキュリティ, :暗号化, :証明書


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-05-17 (金) 09:13:26 (3d)