天天看點

xml簽名和普通數字簽名

關于xml簽名到底有什麼用,剛開始感覺比較近雞肋,不就是把簽名總結成放到一個xml文檔中嘛?

首先,xml簽名和普通簽名都有簽名的特性,即保證完整性,不可否認性,身份鑒别等。這就導緻了我一開始以為xml簽名和普通的簽名差別不大。

實際上:

1.xml簽名是什麼?

顧名思義,xml簽名就是把一份簽名資訊轉換成xml文檔。

這個文檔的結構大體是固定的,内容大概包括:要簽名的對象、簽名算法、對資料的處理方法(規範化)、資料轉換方式、摘要算法、簽名值等。

2.傳統簽名方式的不足之處?

  1. 傳統的簽名方式一般為簽名方把資料和簽名發給驗證方,簽名資訊是少的,但是簽名的原始資料可能是很大的,把原始資料發送給驗證方大大增加了網絡帶寬。特别是一份檔案有多個人簽名時,每個簽名者都把原始資料發送給驗證者,驗證者收到了很多原始資訊副本,很煩。
  2. 傳統數字簽名簽名者和驗證者得提前溝通好所使用的簽名算法、摘要算法等簽名環境資訊。
  3. 傳統數字簽名簽名資訊檔案和原始資料檔案可能是分開放的,帶來了管理上的困難,特别是一份文檔有多個人進行簽名,不好存儲和管理。
  4. 《xml數字簽名VS傳統數字簽名》韋琳娜/張連寬/段新東/ 這篇論文裡講傳統數字簽名還有BER/DER編碼和ASN1解析器帶來的麻煩問題。看不懂。
  5. 傳統數字簽名不支援對原始資料進行輕微的改動,比如一張圖檔可能被修改了一點點,但改圖檔的作者還是原作者。在簽名中原始資料一旦改動,哈希值改變,簽名也完全改變了。

3.xml簽名的優點。

1.xml簽名通過URI的方式指定簽名的原始資料,做到了簽名和原始資料的分離。在目前分布式網絡愈發流行的網際網路上,使用URI瞄定資料源很有用,在發送簽名時可以不用發送原始資料。

2.支援細粒度的簽名。

3.xml簽名包含了簽名的上下文資訊,一份xml簽名就可以多方驗證而不用所有驗證者和簽名者之間提前溝通好所使用的簽名算法、摘要算法等,很便捷。

4.對一份原始資料的多個簽名可以同時包含在一份xml文檔中,帶來了簽名管理上的友善。因為URI已經指定了原始資料,就可以把針對一份原始資料的簽名整合到一份xml文檔中。

5xml簽名的分層驗證模型可以支援資料的輕微變化。

6.xml簽名解析器可以友善對xml簽名進行分析和處理。

7.前面變換瀑布啥的。。。

總結:感覺主要是URI的引入帶來了一系列的好處。

總結來源:《xml數字簽名VS傳統數字簽名》韋琳娜/張連寬/段新東/

而且隻看了前面。

繼續閱讀