「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>暗号化アルゴリズム]]

* 目次 [#ibe218ef]
#contents

*概要 [#g2aafa67]

-Detached署名~
署名対象要素と署名要素が独立した署名形式
*署名 [#za163fde]
XML Digital Signature標準のRFC3075

-Enveloped署名~
署名要素が署名対象要素の子要素となる署名形式
**特徴 [#qfe2d2ed]

-Enveloping署名~
署名要素が署名対象要素の親要素となる署名形式
***書目に関する情報 [#ke82b09c]
XMLの文法で統一して表現できる。
-署名対象
-署名アルゴリズム
-署名値
-証明書

***署名付加方法 [#g07a3d92]
XMLに追加するので、ASN.1構文に比べて分かりやすい。

***署名範囲 [#if994878]
XML文書の一部に対しても署名を付けることができる。

***アルゴリズム等の識別子 [#h0e11979]
W3Cなどで定めているURIを使用する。

**構文 [#m271b1e8]
-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>

**種別 [#ub74daef]
Envelopeは、封筒の意味。

***Detached署名 [#ue9817f6]
署名対象要素と署名要素が独立した署名形式~

(署名対象別のファイルである場合や同じ~
XML文書内でも要素の親子関係がないときなど)

***Enveloped署名 [#pa234b28]
署名要素が署名対象要素の&color(red){子要素};となる署名形式~
(対象文書の中に署名が格納される)

***Enveloping署名 [#j2175bf4]
署名要素が署名対象要素の&color(red){親要素};となる署名形式~
(署名の中に対象文書が格納される)

**署名・検証 [#m6336a8f]

***署名 [#t1ada5c4]
-前処理

--署名対象に対して、正規化変換を適用
--署名対象のダイジェスト値を計算

--参照要素(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)に追加(オプション)

***検証 [#h8087c39]

-署名対象の検証

--署名対象識別子URIを参照しオリジナル署名対象を取得する。
--署名対象から、参照要素(Reference element)を抽出・削除する。
--上記から、ダイジェスト値を計算・比較し一致を確認する。

-署名を検証する。
--公開鍵を取得(回部リソースか、鍵情報要素(KeyInfo element)から取得)
--上記から、ダイジェスト値を計算・比較し一致を確認する。

**[[ライブラリ>SAMLを実装する。#ve79906f]] [#l1435dc4]


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

**特徴 [#td63301e]
...

**構文 [#q0cab332]
...

**種別 [#f353d2f3]
...

**暗号化・復号化 [#p9abb1aa]
...

***暗号化 [#b4aba1b3]
...

***復号化 [#je681675]
...

**ライブラリ [#a5edf0ba]
...

*参考 [#j04a1aa5]
-XMLデジタル署名とXML暗号:Webサービスのセキュリティ(2)~
https://www.atmarkit.co.jp/ait/articles/0207/24/news001.html

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


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS