详解Java数字签名提供XML安全-创新互联

用Java数字签名提供XML安全

目前成都创新互联已为近1000家的企业提供了网站建设、域名、虚拟主机、网站托管维护、企业网站设计、芙蓉网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

众所周知,XML在产品和项目开发中起着非常重要的作用。通过XML文档可以获取很多信息,还可以使用XML文件进行CRUD(增加、查询、更新和 删除)操作。然而值得注意的是,我们如何确保XML中的数据是来自经过认证的可信和可靠的来源。关于XML文件数据的可靠性和真实性存在很多问题。通常的 情况是,开发者直接处理XML文件而不去考虑数据的可靠性。有一些情况提出了上面的所有问题。现实生活中,每当我们从邮局收到一封信件时我们如何确定这封 信是来自我们的朋友?依据可能是他/她的习惯用语、用词或者邮件详细地址。也可能是他/她的个性签名。如今,我们收到的信件可能被某人进行了篡改,添加了 其他内容。基于上述原因,通常我们会验证朋友的手写签名。当然这些是关于来自邮局的普通邮件。电子消息又该如何?我们如何验证电子消息的真实性?这种情况 我们会采用数字签名。本文会对保证数据完整性的XML数字签名技术进行简要介绍,并且展示如何为XML文件附加电子签名及其验证过程。


使用的技术


过去几年里,XML数字签名取得了快速发展,在金融领域尤其如此。在开始讨论之前,让我们考虑一个典型场景:想象一下,某个组织将所有雇员的薪资内 容用XML文件发送给所得税部门。那么现在的问题是:所得税部门如何验证这份XML文件?这就是说,IT部门需要验证该组织的敏感信息。IT部门需要确保 XML文件的来源可信,并且在IT部门收到之前没有经过篡改——也就是说文档的内容没有在传递中被修改。首先,我们需要理解数字签名的概念。数字签名是一 种用来验证文档发自可信方的电子签名。它确保了文档的原始内容在传输中没有受到修改。数字签名可以用于任何加密和非加密消息,因此接收方可以识别发送者的 身份,并确认消息没有被其他人修改。根据维基百科的定义:“数字签名是一种验证数字信息或文档的数学方法”。一个有效的数字签名可以让接收者确认收到的消 息来自已知发送方,发送者不能否认自己发送了此消息(提供认证和不可否认性)并且此消息在传输中未经修改(提供完整性)。数字签名通常被用在软件发布、金 融事务和其他需要检测伪造或篡改的重要场合。


下面让我们来看完整的一个带有数字签名的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> 

当前名称:详解Java数字签名提供XML安全-创新互联
网页网址:https://www.cdcxhl.com/article20/dddgco.html

成都网站建设公司_创新互联,为您提供营销型网站建设网站营销网站维护电子商务小程序开发网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都seo排名网站优化