詳解Java數(shù)字簽名提供XML安全-創(chuàng)新互聯(lián)

用Java數(shù)字簽名提供XML安全

目前成都創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、芙蓉網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

眾所周知,XML在產(chǎn)品和項(xiàng)目開發(fā)中起著非常重要的作用。通過XML文檔可以獲取很多信息,還可以使用XML文件進(jìn)行CRUD(增加、查詢、更新和 刪除)操作。然而值得注意的是,我們?nèi)绾未_保XML中的數(shù)據(jù)是來自經(jīng)過認(rèn)證的可信和可靠的來源。關(guān)于XML文件數(shù)據(jù)的可靠性和真實(shí)性存在很多問題。通常的 情況是,開發(fā)者直接處理XML文件而不去考慮數(shù)據(jù)的可靠性。有一些情況提出了上面的所有問題?,F(xiàn)實(shí)生活中,每當(dāng)我們從郵局收到一封信件時(shí)我們?nèi)绾未_定這封 信是來自我們的朋友?依據(jù)可能是他/她的習(xí)慣用語、用詞或者郵件詳細(xì)地址。也可能是他/她的個(gè)性簽名。如今,我們收到的信件可能被某人進(jìn)行了篡改,添加了 其他內(nèi)容?;谏鲜鲈颍ǔN覀儠?huì)驗(yàn)證朋友的手寫簽名。當(dāng)然這些是關(guān)于來自郵局的普通郵件。電子消息又該如何?我們?nèi)绾悟?yàn)證電子消息的真實(shí)性?這種情況 我們會(huì)采用數(shù)字簽名。本文會(huì)對(duì)保證數(shù)據(jù)完整性的XML數(shù)字簽名技術(shù)進(jìn)行簡(jiǎn)要介紹,并且展示如何為XML文件附加電子簽名及其驗(yàn)證過程。


使用的技術(shù)


過去幾年里,XML數(shù)字簽名取得了快速發(fā)展,在金融領(lǐng)域尤其如此。在開始討論之前,讓我們考慮一個(gè)典型場(chǎng)景:想象一下,某個(gè)組織將所有雇員的薪資內(nèi) 容用XML文件發(fā)送給所得稅部門。那么現(xiàn)在的問題是:所得稅部門如何驗(yàn)證這份XML文件?這就是說,IT部門需要驗(yàn)證該組織的敏感信息。IT部門需要確保 XML文件的來源可信,并且在IT部門收到之前沒有經(jīng)過篡改——也就是說文檔的內(nèi)容沒有在傳遞中被修改。首先,我們需要理解數(shù)字簽名的概念。數(shù)字簽名是一 種用來驗(yàn)證文檔發(fā)自可信方的電子簽名。它確保了文檔的原始內(nèi)容在傳輸中沒有受到修改。數(shù)字簽名可以用于任何加密和非加密消息,因此接收方可以識(shí)別發(fā)送者的 身份,并確認(rèn)消息沒有被其他人修改。根據(jù)維基百科的定義:“數(shù)字簽名是一種驗(yàn)證數(shù)字信息或文檔的數(shù)學(xué)方法”。一個(gè)有效的數(shù)字簽名可以讓接收者確認(rèn)收到的消 息來自已知發(fā)送方,發(fā)送者不能否認(rèn)自己發(fā)送了此消息(提供認(rèn)證和不可否認(rèn)性)并且此消息在傳輸中未經(jīng)修改(提供完整性)。數(shù)字簽名通常被用在軟件發(fā)布、金 融事務(wù)和其他需要檢測(cè)偽造或篡改的重要場(chǎng)合。


下面讓我們來看完整的一個(gè)帶有數(shù)字簽名的XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><SalaryDeposit> 
  <Organisation> 
    <Name>DDLab Inc</Name> 
    <AccountNo>SBC-12345789</AccountNo> 
  </Organisation> 
  <Employees> 
    <Emp> 
      <Name>John Abraham</Name> 
      <AccountNo>SB-001</AccountNo> 
      <Amount>1234</Amount> 
    </Emp> 
    <Emp> 
      <Name>Bipasha Basu</Name> 
      <AccountNo>SB-002</AccountNo> 
      <Amount>2334</Amount> 
    </Emp> 
    <Emp> 
      <Name>Vidya Balan</Name> 
      <AccountNo>SB-003</AccountNo> 
      <Amount>3465</Amount> 
    </Emp> 
    <Emp> 
      <Name>Debadatta Mishra</Name> 
      <AccountNo>SB-007</AccountNo> 
      <Amount>5789</Amount> 
    </Emp> 
    <Emp> 
      <Name>Priti Zinta</Name> 
      <AccountNo>SB-009</AccountNo> 
      <Amount>1234</Amount> 
    </Emp> 
  </Employees> 
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 
    <SignedInfo> 
      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> 
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> 
      <Reference URI=""> 
       <Transforms> 
         <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> 
       </Transforms> 
       <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 
       <DigestValue>bHS+6uf8KbJV4AGzoHNHLfnXvKM=</DigestValue> 
      </Reference> 
    </SignedInfo> 
    <SignatureValue> 
aUEMrCT5dzeOfSNaznzoT0If8WZ8KQcMNXDqtoeseonVk3NqOk9ctcxrf3QVX3wP6810DDRPdI6l 
   e8ccG64Ge0HjkO+aYC5+c2L/qKBzwtSbl/olJEuFU2DVxBQO+K29TTUJfxpVzC9Zf2pvT+1NRj0f 
   2/ofHujYZ01D6+YqI8c= 
    </SignatureValue> 
    <KeyInfo> 
      <KeyValue> 
       <RSAKeyValue> 
         <Modulus> 
jfAd5uV38L36+lDZJrqfH9oLN86VJezXYfAeU+lrFoHlKAXVJLAi9hKvBHQRer4tPfdez6iSBKsl 
      6IHkPnVRAKt0xU99uxi5QpymsWAX3qnBqHlw9Z70PwyZ+Xysfw4Q2tK2HtSgUOhMuaUcIf9sbHvf 
      gbvcRPgxDZZqfIzDmDU=</Modulus> 
         <Exponent>AQAB</Exponent> 
       </RSAKeyValue> 
      </KeyValue> 
    </KeyInfo> 
  </Signature> 
</SalaryDeposit> 

當(dāng)前名稱:詳解Java數(shù)字簽名提供XML安全-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://muchs.cn/article20/dddgco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)網(wǎng)站營(yíng)銷、網(wǎng)站維護(hù)、電子商務(wù)、小程序開發(fā)、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化