用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)目開(kāi)發(fā)中起著非常重要的作用。通過(guò)XML文檔可以獲取很多信息,還可以使用XML文件進(jìn)行CRUD(增加、查詢、更新和 刪除)操作。然而值得注意的是,我們?nèi)绾未_保XML中的數(shù)據(jù)是來(lái)自經(jīng)過(guò)認(rèn)證的可信和可靠的來(lái)源。關(guān)于XML文件數(shù)據(jù)的可靠性和真實(shí)性存在很多問(wèn)題。通常的 情況是,開(kāi)發(fā)者直接處理XML文件而不去考慮數(shù)據(jù)的可靠性。有一些情況提出了上面的所有問(wèn)題?,F(xiàn)實(shí)生活中,每當(dāng)我們從郵局收到一封信件時(shí)我們?nèi)绾未_定這封 信是來(lái)自我們的朋友?依據(jù)可能是他/她的習(xí)慣用語(yǔ)、用詞或者郵件詳細(xì)地址。也可能是他/她的個(gè)性簽名。如今,我們收到的信件可能被某人進(jìn)行了篡改,添加了 其他內(nèi)容。基于上述原因,通常我們會(huì)驗(yàn)證朋友的手寫簽名。當(dāng)然這些是關(guān)于來(lái)自郵局的普通郵件。電子消息又該如何?我們?nèi)绾悟?yàn)證電子消息的真實(shí)性?這種情況 我們會(huì)采用數(shù)字簽名。本文會(huì)對(duì)保證數(shù)據(jù)完整性的XML數(shù)字簽名技術(shù)進(jìn)行簡(jiǎn)要介紹,并且展示如何為XML文件附加電子簽名及其驗(yàn)證過(guò)程。
使用的技術(shù)
過(guò)去幾年里,XML數(shù)字簽名取得了快速發(fā)展,在金融領(lǐng)域尤其如此。在開(kāi)始討論之前,讓我們考慮一個(gè)典型場(chǎng)景:想象一下,某個(gè)組織將所有雇員的薪資內(nèi) 容用XML文件發(fā)送給所得稅部門。那么現(xiàn)在的問(wèn)題是:所得稅部門如何驗(yàn)證這份XML文件?這就是說(shuō),IT部門需要驗(yàn)證該組織的敏感信息。IT部門需要確保 XML文件的來(lái)源可信,并且在IT部門收到之前沒(méi)有經(jīng)過(guò)篡改——也就是說(shuō)文檔的內(nèi)容沒(méi)有在傳遞中被修改。首先,我們需要理解數(shù)字簽名的概念。數(shù)字簽名是一 種用來(lái)驗(yàn)證文檔發(fā)自可信方的電子簽名。它確保了文檔的原始內(nèi)容在傳輸中沒(méi)有受到修改。數(shù)字簽名可以用于任何加密和非加密消息,因此接收方可以識(shí)別發(fā)送者的 身份,并確認(rèn)消息沒(méi)有被其他人修改。根據(jù)維基百科的定義:“數(shù)字簽名是一種驗(yàn)證數(shù)字信息或文檔的數(shù)學(xué)方法”。一個(gè)有效的數(shù)字簽名可以讓接收者確認(rèn)收到的消 息來(lái)自已知發(fā)送方,發(fā)送者不能否認(rèn)自己發(fā)送了此消息(提供認(rèn)證和不可否認(rèn)性)并且此消息在傳輸中未經(jīng)修改(提供完整性)。數(shù)字簽名通常被用在軟件發(fā)布、金 融事務(wù)和其他需要檢測(cè)偽造或篡改的重要場(chǎng)合。
下面讓我們來(lái)看完整的一個(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)頁(yè)網(wǎng)址:http://aaarwkj.com/article20/dddgco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、網(wǎng)站維護(hù)、電子商務(wù)、小程序開(kāi)發(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容