JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java & XML、Web Service » XML  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 XML 簽章方法 rsa-sha1,這是新的方法嗎??
piaoyi

Go surfing



發文: 93
積分: 3
於 2010-02-04 16:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
請問大大,

W3C 定義的 XML 簽章,有規定簽章用的演算法,如 DSA-SHA1, RSA-SHA1, RSA-SHA256...

但是 SHA1 不是做 Digest 的東西嗎,DSA, RSA 才是做簽章的,

但為何為有 RSA-SHA1,請問這是新的演算法嗎??

那他代表的是簽章演算法嗎?而不是 hash? 所以可以反解回來??

感謝回覆@@

如下 S04行

http://www.w3.org/TR/xmldsig-core/#sec-o-Simple
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
   [s01] <Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"> 
   [s02]   <SignedInfo> 
   [s03]   <CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/> 
   [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/2006/12/xml-c14n11"/> 
   [s08]     </Transforms> 
   [s09]     <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 
   [s10]     <DigestValue>dGhpcyBpcyBub3QgYSBzaWduYXR1cmUK.../DigestValue> 
   [s11]   </Reference> 
   [s12] </SignedInfo> 
   [s13]   <SignatureValue>...</SignatureValue> 
   [s14]   <KeyInfo> 
   [s15a]    <KeyValue>
   [s15b]      <DSAKeyValue> 
   [s15c]        <P>...</P><Q>...</Q><G>...</G><Y>...</Y> 
   [s15d]      </DSAKeyValue> 
   [s15e]    </KeyValue> 
   [s16]   </KeyInfo> 
   [s17] </Signature>


reply to postreply to post
Piaoyi's blog
http://www.javaworld.com.tw/roller/piaoyi/

Money, where are u @@
作者 Re:XML 簽章方法 rsa-sha1,這是新的方法嗎?? [Re:piaoyi]
antijava





發文: 65
積分: 0
於 2010-02-04 16:51 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
如你所說的
DSA, RSA 是 signature algorithm
而 SHA1, SHA256 是 Message Digest 的 function/方法

產生數位簽章的流程中
「產生訊息摘要(message digest)」是必要的步驟
所以會有 SHA1, SHA256 (或過去的MD5) 的選擇

等到了要簽章時
又有DSA, RSA 兩種簽章演算法可以選擇

所以才會有各種排列組合

重點是
不能反解是message digest/數位簽章的關鍵


reply to postreply to post

作者 Re:XML 簽章方法 rsa-sha1,這是新的方法嗎?? [Re:antijava]
piaoyi

Go surfing



發文: 93
積分: 3
於 2010-02-05 08:31 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
感謝回覆^^

數位簽章要先 hash再sign,我大約知道,
但是如果這樣,是說 W3C 那 XML Signature 會 digest 二次嗎?
因為他的定義是說先把原本要簽的 xml 取 digest 出來,
把 digest 的演算法寫在 Reference/DigestMethod 欄位, hash 出的 digest值放 Reference/DigestValue欄位,
所以他其實已經 Hash 過了,
可是他又有一個 SignatureMethod 寫簽章用的方法,所以看不太懂@@,
但 Processing Rules 的確是這樣寫的 ( http://www.w3.org/TR/xmldsig-core/#sec-Processing ),

所以這個意思是說,對要簽章的 XML 文件,先取出 Digest 後,放在 SignedIn/Reference/DigestValue 內,
然後會再取一次 Digest,再放到 SignatureValue 裡的意思嗎??


reply to postreply to post
Piaoyi's blog
http://www.javaworld.com.tw/roller/piaoyi/

Money, where are u @@
作者 Re:XML 簽章方法 rsa-sha1,這是新的方法嗎?? [Re:piaoyi]
antijava





發文: 65
積分: 0
於 2010-02-05 14:45 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
piaoyi wrote:
(恕刪)....
所以這個意思是說,對要簽章的 XML 文件,先取出 Digest 後,放在 SignedIn/Reference/DigestValue 內,
然後會再取一次 Digest,再放到 SignatureValue 裡的意思嗎??


不是

由於對「整份本文」進行簽章運算太過於耗費計算機資源
才會有
只對「訊息摘要」進行簽章運算這種做法

也就是說
Digest Value 不等同於 Signature Value
針對訊息本文,也只 digest 一次


reply to postreply to post

作者 Re:XML 簽章方法 rsa-sha1,這是新的方法嗎?? [Re:antijava]
piaoyi

Go surfing



發文: 93
積分: 3
於 2010-02-08 12:14 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
感謝,

我實際追了XML Security Source code,
最後再找 JCE Source code,
是 digest 後再簽,感謝。

我搞混了是因為 XML Security source 中,他的簽章流程是這樣,
對 XML 本文-> run transform -> c14n -> 取 digest -> 放到 Reference/DigestValue tag 中, digest取法放到 Reference/DigestMethod tag中/
Refernece, Transform, SignatureMethod, CanonicalizationMethod,組進 SignedInfo中,
然後把整個 SignInfo XML 字串轉 byte 後,傳給 sun.security.rsa.RSASignature 來 sign,
再加上看 W3C的process rule,有看沒有太懂@@(只有簡短二三行說明= =),
所以誤以為是拿整個 SignedInfo 直接用private key去加密而已,

找了sun.security.rsa.RSASignature source code 後,
確認它裡面會再對SignedInfo做一次 digest後才sign,
感謝幫忙^^


reply to postreply to post
Piaoyi's blog
http://www.javaworld.com.tw/roller/piaoyi/

Money, where are u @@
作者 Re:XML 簽章方法 rsa-sha1,這是新的方法嗎?? [Re:piaoyi]
antijava





發文: 65
積分: 0
於 2010-02-08 13:46 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
哇...您真是優秀
做學問做得如此認真
佩服佩服.....

比起你來
我大概只能算是半杯水
慚愧慚愧....


reply to postreply to post

» JWorld@TW »  Java & XML、Web Service » XML

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8