国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JavaSE 6基于JSR105的XML簽名之理論篇

2019-11-18 15:31:46
字體:
來源:轉載
供稿:網友

  xml簽名技術,這項在W3C建議中指定的XML簽名語法及處理方法(XML-Signature Syntax and PRocessing),成為解決SOA開發中消息級安全性方案的基礎。被普遍接受的OASIS標準WS-安全性(WS-Security)正是構建在這一技術(以及XML加密)基礎之上。
JSR-105規范又對在java平臺應用XML簽名技術進一步標準化,并且將成為即將到來的Java SE 6發行版本的一個組成部分。本系列文章(《理論篇》與《實踐篇》)將基于Java SE 6的試發行版本對JSR-105作入門性介紹;在第二篇(即《實踐篇》)中,我們將討論一個具體的應用案例。

  一、 數據一致性和消息認證

  XML數字簽名的主要目的是確保數據一致性。RFC 2828,因特網安全詞匯表(Internet Security Glossary),把"一致性"定義為"在一種未授權的或偶然方式下確保數據沒有改變、破壞或丟失的屬性"。在這種意義上,與一個校驗和一起存儲或傳遞數據就可以實現數據的一致性。嚴格地說,XML簽名能夠實現比這種一致性更為豐富的內涵-它能夠為在RFC 2828中所謂的消息認證提供支持。

  二、 簽名元素結構

  實質上,XML簽名使用XML語義描述一個數字簽名。下列層次捕捉頂級的元素和屬性以及它們之間的結構化關系。

<Signature ID?>
 <SignedInfo>
  <CanonicalizationMethod/>
   <SignatureMethod/>
   (<Reference URI? >
    (<Transforms>)?
    <DigestMethod>
    <DigestValue>
    </Reference>)+
   </SignedInfo>
 <SignatureValue>
 (<KeyInfo>)?
 (<Object ID?>)*
</Signature>
  在這個示例中,?表示零個或一個出現,+表示一個或多個出現,而*表示零或多個出現。在此,所有的元素和屬性被定義于命名空間http://www.w3.org/2000/09/XMLdsig#。

  在此,Reference擔當連接要簽名的數據對象與一個XML簽名之間的橋梁作用(通過URI屬性)。一個應用程序選擇這里的digest方法來計算一個數據對象的digest值,并且把這二者作為相應的Reference元素的一部分。

  對于digest方法,W3C建議實現對SHA-1的支持。而且,這種實現通常還支持其它交互式單向哈希函數-例如SHA-256,SHA-512和RipEMD 160。

  實際上,我們很少直接從數據對象本身計算一個digest值。通常,一個應用程序需要首先對數據對象應用一些轉換。例如,我們可以使用XPath來從一個XML文檔中僅提取要害元素以實現簽名;或者,我們也可能在使用XSLT經過一些轉換后對一個XML文檔進行簽名。這樣的轉換是在Transforms元素中指定的-其中包含一個有關實現轉換算法及其它相關信息的Transforms的有序列,當然也包括在相應的Reference元素之內。

  SignedInfo是數字簽名算法實際應用的元素。該算法通過SignatureMethod元素捕捉;W3C建議中要求實現對DSA_SHA1,RSA_SHA1和HMAC_SHA1(由JSR-105所注釋)的支持。前兩個是基于公鑰的,而HMAC是一種對稱密鑰密碼學算法。 三、 簽名過程

  在XML簽名中,簽名過程包括兩個步驟。首先,它計算每一步的digest值以及確定要簽名的每一個數據對象,并且把該值包括為相應的Reference元素的一部分。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安多县| 柳江县| 中方县| 宁武县| 柘城县| 阳原县| 会宁县| 普安县| 板桥市| 南宫市| 宁城县| 方正县| 界首市| 盘锦市| 文化| 白山市| 巴南区| 沁阳市| 庆安县| 隆尧县| 上栗县| 安陆市| 澄迈县| 原平市| 平和县| 崇左市| 澄城县| 喀什市| 聂拉木县| 介休市| 抚顺市| 闽侯县| 上虞市| 民丰县| 蒙阴县| 洞头县| 洪江市| 德格县| 易门县| 五莲县| 云南省|