這種簽名是將簽名做爲XML對象的子信息,也就是說 <Signature>是郵件中XML文件的子標籤。封內數字簽名的結構以下:html
<RootElement> <!--主要內容--> ...... <!--簽名--> <Signature> …… </Signature> </ RootElement>
本文會介紹如何建立XML封內數字簽名。算法
這種簽名將XML文檔包含到Signature對象,也就是說<Signature>標籤是簽名XML文件的根元素。封外簽名結構以下:加密
<Signature > < MyXMLDocument > .... </ MyXMLDocument > </Signature>
這種狀況下,簽名是獨立生成的不做爲XML的一部分。也就是說你會擁有兩個XML文件:一個待簽名的XML文件,另外一個是XML簽名。spa
<Signature > ..... </Signature>
<!--Signature 是XML數字簽名的根元素,這一點由W3C建議而且必須遵照--> <Signature> <!--SignedInfo 元素是你的簽名信息 SignedInfo 的核心驗證由兩個必要過程組成:對 SignedInfo 的簽名驗證 和 SignedInfo 內部每一個 Reference 摘要的驗證--> <SignedInfo> <!--CanonicalizationMethod 標識了一種算法, 這種算法被用來規範化 SignedInfo 元素, 而後該元素做爲簽名操做的一部分被編摘--> <CanonicalizationMethod Algorithm="" /> <!--SignatureMethod 是用於將已規範化的 SignedInfo 轉換成 SignatureValue 的算法。 這是編摘算法、密鑰從屬算法和可能的其它算法的組合。--> <SignatureMethod Algorithm="" /> <!--至少包含一個 Reference 元素,每一個 Reference 元素用於對待簽名數據進行引用, 包含有引用方式、轉換方法、DigestMethod 摘要算法和 DigestValue 摘要值等信息。 Reference 還包含有 XML 數據的規則化方法,並指定了數字簽名所使用的算法。 --> <!--每一個 Reference 元素都包括摘要方法和 對已標識數據對象計算得出的摘要值。 它還可能包括產生對摘要操做的輸入的轉換。數據對象的簽名是經過計算其 摘要值並對該值的簽名進行的。 稍後經過引用和簽名驗證來檢查該簽名,這些驗證將從新建立摘要值並確保它與該數據對象中的內容匹配 --> <Reference URI=""> <!--URI 屬性標識要簽名的數據對象(一個xml元素或其餘)--> <!--Transforms 是一種可選的處理步驟排序列表, 在編摘資源內容以前,對它應用這些步驟。 這是解密所需遵循的軌跡,簽名前可能對被簽名對象所要作的轉換。 好比當待簽名的對象是一個二進制資源時,爲了不該對象中可能出現非法的XML格式, 就須要用Base-64將其轉換一下。這裏還可使用一些其餘的轉化方法如XPATH和XSLT --> <Transforms> <Transform Algorithm="" /> </Transforms> <!-- DigestMethod 是在應用 Transforms(若是已經指定它)以後, 對數據應用以產生 DigestValue 的算法 對引用對象作摘要的方法,通常使用SHA1--> <DigestMethod Algorithm="" /> <!--DigestValue 的簽名是將資源內容與簽名者密鑰綁定的機制 存放作完摘要後的結果,這樣當後面對作SignedInfo簽名的時候就間接的對引用對象作了簽名, 從而保證其完整--> <DigestValue>...</DigestValue> </Reference> </SignedInfo> <!--SignatureValue包含了實際的簽名以及使用Base64加密的內容 包含對 Reference 元素規範化後的內容進行簽名生成的數字簽名的值--> <SignatureValue>...</SignatureValue> <!--KeyInfo 表示公鑰,標識機制能夠包括證書、密鑰名稱和密鑰協議算法 keyInfo 是可選(不但願公開或者上下文已知)--> <KeyInfo> <KeyValue> <RSAKeyValue> <Modulus></Modulus> <Exponent></Exponent> </RSAKeyValue> </KeyValue> </KeyInfo> </Signature>
http://www.javashuo.com/article/p-ukeiejfg-ep.html.net