以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML安全 』  (http://bbs.xml.org.cn/list.asp?boardid=27)
----  关于XML签名的一点疑问(其中也提出了一点想法)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=27&rootid=&id=21534)


--  作者:flyfoxs
--  发布时间:8/28/2005 11:49:00 AM

--  关于XML签名的一点疑问(其中也提出了一点想法)
对于扩展性很强的XML即使外表看来一样的文档,在bit层上可能也不一样,比如 WINDOWS 与 UNIX 对回车与换行的表达就不一样.还有一种情况就是对SignedInfo元素进行规范化

签名为了解决这个问题就提出了一个规范化方法,在XML中用元素CanonicalizationMethod来指明.

可以我查了几个文档发现好像都只对SignedInfo元素进行规范化,并没有对要真正要签名的数据进行规范化.(可能是我理解上的问题,这里只是把问题提出来)

比如
      
(下面摘至《计算机应用与研究》2002年 XML数字签名 作者:谢铉洋,谢荣传)

下面我们看看在采用上述XML数字签名模型基础如何建立数字签名和签名的校验过程。建立XML数字签名的过程:
(1)对于每一个需要被签署的数据项Item:
        ①对Item应用<Transforms>规则;                          
        ②从转化的结果经过摘要算法计算出的值放入<DigestValue>中;
        ③建立<Reference>元素,该元素包括<Transforms><DigestMethod>和<DigestValue>子元素;

(2)建立<SignedInfo>元素,该元素包括<CanonizationMethod>,<SignatureMethod>和<Reference>。
(3)对<SignedInfo>做规范化处理(Canonicalization)成<SignatureValue>。
(4)建立<Signature>元素,包括<SignedInfo>,<atureValue>和可选的<KeyInfo>,<Object>等元素   

上面很明确的写明了做规范化的地方(好像也是唯一的地方),在做规范化时数据摘要已经生成了(在第1大步的,第2小步),所以好像没有对要签名的数据进行规范化!



又比如
XML签字过程图

此主题相关图片如下:
按此在新窗口浏览图片


  

上面这个图也很明确的写明了签字过程!

获取数据---->数据转换----->摘要------>规范化----->签字!


摘要的生成也是在规范化之前!

同样也是没法给数据进行规范化了!


后记:这篇文章只是提出了问题,没能解决问题,是写出来给大家讨论的,希望将来有机会弄明白了,再给补上!

欢迎讨论,和一起学习

popo:lilao(#)163(.)com
msn: ITspy(#)163(.)com
qq:   28 68 76 805



--  作者:flyfoxs
--  发布时间:9/3/2005 11:31:00 AM

--  
没办法,只能自问自答了!上面的问题我已经搞定了!

数据转换其实是比Canonicalizatio(规范化)更大的概念(通过写程序时自己发现的)。

因为我在写签名代码时,有一个专门的转换类(Transforms)里面提供了很多选项。有不同要求的Canonicalizatio(比如是否忽略批注),也有是否利用XPath从XML提取一部分签名...........

总之一句话,就是数据转换包括Canonicalizatio



--  作者:flyfoxs
--  发布时间:3/8/2006 4:19:00 PM

--  
最近忘记了这方面 的东西,回头来看自己写的东西,发现自己都不明白,又花了10多分钟,才想起是怎么回事,现补充如下。

http://xml.apache.org/security/Java/api/org/apache/xml/security/c14n/Canonicalizer.html
上面的链接是规范化的标准

下面是如何使用
http://xml.apache.org/security/Java/api/org/apache/xml/security/transforms/Transforms.html

使用addTransform(java.lang.String transformURI)
方法就可以添加相应的规范化标准进去。


[此贴子已经被作者于2006-3-8 16:45:39编辑过]

--  作者:meison264
--  发布时间:3/19/2006 12:07:00 PM

--  
flyfoxs,可以告诉我你的XML签名是用什么工具实现的吗?
可以在JBuilder6.0中实现吗?还是需要另外装什么软件呢?
--  作者:flyfoxs
--  发布时间:3/20/2006 11:45:00 AM

--  
晕,上的的连接不是给了吗?

用什么包你一看就知道 了。


--  作者:meison264
--  发布时间:3/27/2006 9:37:00 AM

--  
恩,谢谢了呀~~
你自己写过XML签名和加密?
你毕业了没呀?
--  作者:sallyandsunny
--  发布时间:4/20/2006 10:20:00 AM

--  
为什么看不到啊
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms