新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> XML与数字内容安全(DRM,XrML,RDD, MPEG-21, XACML), XML传输的安全, 基于XML的签名,基于XML的加密
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 XML安全 』 → 一个XML文件已经签名了,那么内容跟签名是如何绑定的? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 13140 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 一个XML文件已经签名了,那么内容跟签名是如何绑定的? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     instillwater 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:16
      积分:115
      门派:XML.ORG.CN
      注册:2004/4/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给instillwater发送一个短消息 把instillwater加入好友 查看instillwater的个人资料 搜索instillwater在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看instillwater的博客楼主
    发贴心情 一个XML文件已经签名了,那么内容跟签名是如何绑定的?

    一个XML文件已经签名了,那么内容跟签名是如何绑定的?看了很多例子,里面的xml签名sample都是只有一个Sinature 节点,具体的信息节点去哪里 了?

    [s01] <Signature Id="MyFirstSignature">
              [s02]   <SignedInfo>
              [s03]   <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/
                      REC-xml-c14n-20010315"/>
              [s04]   <SignatureMethod Algorithm="http://www.w3.org/2000/09/
                      xmldsig#dsa-sha1"/>
              [s05]   <Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/">
              [s06]     <Transforms>
              [s07]       <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-
                          20010315"/>
              [s08]     </Transforms>
              [s09]     <DigestMethod Algorithm="http://www.w3.org/2000/09/
                           xmldsig#sha1"/>
              [s10]     <Digestvalue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</Digestvalue>
              [s11]   </Reference>
              [s12] </SignedInfo>
              [s13]   <Signaturevalue>MC0CFFrVLtRlk=...</Signaturevalue>
              [s14]   <KeyInfo>
              [s15a]    <Keyvalue>
              [s15b]      <DSAKeyvalue>
              [s15c]        <p>...</p><Q>...</Q><G>...</G><Y>...</Y>
              [s15d]      </DSAKeyvalue>
              [s15e]    </Keyvalue>
              [s16]   </KeyInfo>
              [s17] </Signature>
    例如,我要对  
    <?xml version='1.0'?>
           <PaymentInfo>
             <Name>John Smith<Name/>
             <CreditCard Limit='5,000' Currency='USD'>
               <Number>4019 2445 0277 5567</Number>
               <Issuer>Bank of the Internet</Issuer>
               <Expiration>04/02</Expiration>
             </CreditCard>
           </PaymentInfo>
    进行xml签名,那么签名后的文件格式是如何的?

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/19 16:08:00
     
     instillwater 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:16
      积分:115
      门派:XML.ORG.CN
      注册:2004/4/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给instillwater发送一个短消息 把instillwater加入好友 查看instillwater的个人资料 搜索instillwater在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看instillwater的博客2
    发贴心情 
    急啊,在线等:)
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/19 16:14:00
     
     instillwater 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:16
      积分:115
      门派:XML.ORG.CN
      注册:2004/4/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给instillwater发送一个短消息 把instillwater加入好友 查看instillwater的个人资料 搜索instillwater在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看instillwater的博客3
    发贴心情 
    is anybody here?

    ISNetworksProvider.jar
    这个包我要怎么配,才能用?

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/20 11:38:00
     
     sunrisefe 美女呀,离线,快来找我吧!
      
      
      等级:大二(研究汇编)
      文章:63
      积分:271
      门派:GOOGLEBBS.NET
      注册:2004/9/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给sunrisefe发送一个短消息 把sunrisefe加入好友 查看sunrisefe的个人资料 搜索sunrisefe在『 XML安全 』的所有贴子 点击这里发送电邮给sunrisefe  引用回复这个贴子 回复这个贴子 查看sunrisefe的博客4
    发贴心情 
    i hope the below info is helpful to you.


    XML数字签名的数据模型框架如下(其中省略了元素的属性等其它属性):

    (1)和(14)为XML数字签名的主体元素,即根元素<Signature>。该元素还可以包括ID属性值和XML命名空间属性等。值得注意的是,将数字签名的信息封装入一个单独的<Signature>元素,可以以一种非常灵活的方式将该元素嵌入至恰当的位置。
    (2)和(10)<SignedInfo>元素中包含了被签名数据的相关信息。这是XML数字签名的核心元素,在该元素内部,对签名的对象(可以是多对象甚至是组对象)、使用何种签名算法、摘要生成算法等作出描述。根据这个元素的信息,可以将生成具体的数字签名存储到<Sig natureValue>元素中。并且根据上面的这些信息,可以对签名本身和各个签名对象的摘要做确认。
    (3)<CanonicalizationMethod>元素,即规范化方法描述。数字签名对于被签名的对象、计算的过程是基于位运算的,即算法并不考虑被签名对象的外在表现,而是从bit的层次出发的。这对于可扩展性极强的XML来说,即使是外在表现相同的两份文档,如果以bit流的形式观察也可能有很大的区别。比如Windows系统和Unix系统对于回车换行的处理就有很大的区别。因此需要在这些被签名元素做数字签名运算之前,对其作出规范化处理,即在bit流层次上统一它们,使它们在物理上相同。应该注意到,这里的规范化可以作用于两部分数据上:一是被签名数据本身,当然,如果它是二进制串的形式无需规范化;二是数字签名元素自身,即<SignedInfo>元素,在做签名运算前对该元素做规范化处理[3]。
    (4)<SignatureMethod>元素。该元素描述采用何种算法将已经规范化的<SignedInfo>元素转换为数字签名值,即(11)行的<SignatureValue>元素的值。这个算法是摘要算法和适当的加密算法的结合体,比如RSA SHA1算法(DSS,DigitalSignatureStandard)[4]。注意到,该元素位于<SignedInfo>内,因此,在做签名算法的时候,<SignatureMethod>元素自身也被签名/加密了,这样可以有助于提高安全性。
    (5)<Reference>元素,该元素至少有一个。每一个<Reference>元素描述被签名对象的信息,比如位置、摘要算法、信息摘要值等,以及在被签名对象做摘要算法前,是否需要作出形式的转化或者称为预处理和转换算法。采用这种方式可以对不同的待签署对象使用不同的签名算法,极大地增加了灵活性。<Reference>可以通过URI[5]定位被签名对象,根据与被签名对象的位置关系,可以分为3种方式:Enveloped,Enveloping和De tached。它们分别对应着被签名对象存在于数字签名内部、外部(但是同一个XML文件)或是独立存在的。
    (6)<Transforms>元素。这是一个可选元素,它由若干个有序的<Transform>子元素组成,它们描述了签名者如何获得签名数据对象来做摘要算法。第一个元素的输入是<Reference>元素的URI指定的对象,最后一个<Transform>的输出是摘要算法<DigestMethod>的输入。它们是有序的,因为上一个<Transform>元素的输出是下一个的输入。
    (7)<DigestMethod>元素。该元素描述数字签名过程中使用的摘要算法。摘要算法的输入是<Reference>元素指出的数据对象,或者是上面的<Transforms>元素的输出。常用的摘要算法是SHA1(SecureHashStan dard)。
    (8)<DigestValue>元素。该元素记录数字签名的摘要值,即原始被签名数据是经过可选的转换和摘要算法后生成的,信息摘要值总是使用base64编码的。
    (9)<Reference>元素可以有多个,从而对多个签名对象做数字签名。
    (11)<SignatureValue>元素。该元素记录实际的数字签名的值,它根据<SignatureMethod>的算法描述实际生成数字签名,这个数字签名的值也是始终使用base64编码的。
    (12)<KeyInfo>元素。这是一个可选的元素,主要用于描述密钥的信息并主要用来做签名的验证使用。它之所以是一个可选的,因为密钥的信息在一个给定的应用中可能不需要作出显式的说明,而有的签名者也并不一定希望密钥信息被所有的文档接收者知道。这个元素的结构根据不同的签名算法有着不同的结构,同时也是可以扩充的。W3C规范中预先定义了DSA,RSA, PGP等6种描述各自算法的密钥信息结构[2]。
    (13)<Object>元素。这也是一个可选的元素,它可以包括任意的数据对象和<Manifest>、<SignatureProper ities>等子元素。其中<Manifest>可以用在当对许多数据要求进行相同的或不同的签名并且使用相同的或不同的密钥时,对被签名对象作出分组处理时使用,如此就可以使用<SignedInfo>的<Reference>元素引用<Manifest>中描述的组分别处理。<SignatureProperities>元素可以用来记录数字签名的其它一些属性,比如签名的时间等。应当注意到,<Object>元素是一个可扩展性非常强的元素[2]。上面我们对XML数字签名的数据模型框架做了说明,可以看出,在采用XML语法描述数字签名的过程中,充分利用了XML强大的可扩展性,又保持了数字签名信息的完整性。

    ----------------------------------------------
    A man who has the knowledge but lacks the power to clearly express himself is no better off than if he had never any idea at all.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/29 8:52:00
     
     flyfoxs 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      等级:研一(Artificial Intelligence期期不放过)
      文章:550
      积分:3935
      门派:XML.ORG.CN
      注册:2005/1/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyfoxs发送一个短消息 把flyfoxs加入好友 查看flyfoxs的个人资料 搜索flyfoxs在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyfoxs的博客5
    发贴心情 
    有点明白了,是不是说签名并不是对整个文档签名.


    只是对一部分签名?

    ----------------------------------------------
    存在即是被搜索!

    BLOG =>  http://www.OpenJ.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/11 14:59:00
     
     lychen1109 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      头衔:超级潜水员
      等级:大一新生
      文章:97
      积分:607
      门派:XML.ORG.CN
      注册:2003/10/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lychen1109发送一个短消息 把lychen1109加入好友 查看lychen1109的个人资料 搜索lychen1109在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lychen1109的博客6
    发贴心情 
    XML signature surely just consider what you are going to hash. One of the most important question here is the canonicalization problem. That is due to the white spaces in the file.
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/12 17:14:00
     
     isrunnIng 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:73
      门派:XML.ORG.CN
      注册:2005/7/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给isrunnIng发送一个短消息 把isrunnIng加入好友 查看isrunnIng的个人资料 搜索isrunnIng在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看isrunnIng的博客7
    发贴心情 
    <Reference>元素,该元素至少有一个。每一个<Reference>元素描述被签名对象的信息,比如位置、摘要算法、信息摘要值等,以及在被签名对象做摘要算法前,是否需要作出形式的转化或者称为预处理和转换算法。采用这种方式可以对不同的待签署对象使用不同的签名算法,极大地增加了灵活性。<Reference>可以通过URI[5]定位被签名对象,根据与被签名对象的位置关系,可以分为3种方式:Enveloped,Enveloping和De tached。它们分别对应着被签名对象存在于数字签名内部、外部(但是同一个XML文件)或是独立存在的。

    签名中的Reference指的应该就是被签名的内容吧

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/8/2 14:43:00
     
     flyfoxs 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      等级:研一(Artificial Intelligence期期不放过)
      文章:550
      积分:3935
      门派:XML.ORG.CN
      注册:2005/1/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyfoxs发送一个短消息 把flyfoxs加入好友 查看flyfoxs的个人资料 搜索flyfoxs在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyfoxs的博客8
    发贴心情 
    我的理解是

    Digestvalue 是对要签名的东西生成的摘要!


    Signaturevalue 则是对摘要计算后生成的签名!


    不过我在做一次实验时,发现对一个文档签名时Digestvalue 不变,Signaturevalue 每次都不变!

    现在正在研究,如果有兴趣的,可以加我MSN:    itspy#msn#com

    ----------------------------------------------
    存在即是被搜索!

    BLOG =>  http://www.OpenJ.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/8/25 11:46:00
     
     flyfoxs 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      等级:研一(Artificial Intelligence期期不放过)
      文章:550
      积分:3935
      门派:XML.ORG.CN
      注册:2005/1/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyfoxs发送一个短消息 把flyfoxs加入好友 查看flyfoxs的个人资料 搜索flyfoxs在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyfoxs的博客9
    发贴心情 
    经过最近研究,

    Signaturevalue不仅仅是对digestvalue签名,是针对整个<SignedInfo></SignedInfo>进行签名。


    我的上一个帖子说错了,特来修正!

    ----------------------------------------------
    存在即是被搜索!

    BLOG =>  http://www.OpenJ.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/8/27 16:08:00
     
     flyfoxs 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      等级:研一(Artificial Intelligence期期不放过)
      文章:550
      积分:3935
      门派:XML.ORG.CN
      注册:2005/1/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyfoxs发送一个短消息 把flyfoxs加入好友 查看flyfoxs的个人资料 搜索flyfoxs在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyfoxs的博客10
    发贴心情 
    Signaturevalue不仅仅是对digestvalue签名,是针对整个<SignedInfo></SignedInfo>进行签名。


    并且是经过规范化的(CanonicalizationMethod)Signedinfo

    ----------------------------------------------
    存在即是被搜索!

    BLOG =>  http://www.OpenJ.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/8/29 9:57:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML安全 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/2 21:20:23

    本主题贴数10,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    7,343.750ms