摘 要:以往的分布式門限簽名系統進行主動密鑰升級等操作時通常整個系統都要參與,從而影響了服務。提出了一個分組結構的門限容錯簽名系統,利用主動密碼技術和子簽名驗證技術,主動容錯運算時只影響部分系統,大幅度提高可用性,同時確保很好的安全性。
關鍵詞:分組結構; 門限密碼; 主動密碼; 子簽名驗證
中圖分類號:TP309文獻標志碼:A
文章編號:1001-3695(2007)06-0133-03
數字簽名驗證技術是網絡安全中非常重要的關鍵技術,數字簽名系統是PKI系統的核心。電子商務、數字版權保護(DRM)等領域也越來越多地使用數字簽名技術。實現數字簽名的核心是公鑰加密技術。在實際應用中,通常是服務器將公鑰廣播給用戶,而利用私鑰進行簽名,任何一個用戶都可以使用公鑰對簽名進行驗證。擁有合法簽名的信息被認為是可信任的,因此整個服務(如電子商務)的信任體系都是以公鑰簽名的安全性為支柱的。如果私鑰被泄露,那么任何人都可以偽造合法簽名,因而私鑰的安全性則成了諸多安全系統重點考慮的因素。
為了保護在線數字簽名系統私鑰的安全性,很多安全方案[1-3]都采用了秘密分享技術(Secret Share),即將私鑰分成很多子密鑰,分別存放在不同的服務器中,利用(n,t)門限密碼技術(Threshold Cryptography),至少有t臺服務器才能共同還原出原始密鑰,若少于t臺服務器則無法重構密鑰。這就使得黑客的攻擊難度大大增加了。(n,t)門限算法可以確保少于t臺服務器被攻擊時秘密不被泄漏,但是在復雜網絡環境下,如果攻擊者有足夠長的時間,仍然能發現和攻擊超過t臺服務器,威脅到私鑰的安全。為了應對這種威脅,一些方案采用主動密碼技術(Proactive Secret Share,PSS)周期性地對現有子密鑰進行升級,同時不改變完整私鑰。升級的周期長短要設定為短于攻擊者攻擊t臺服務器所需的預期時長。密鑰升級后,攻擊者掌握的舊的子密鑰就被廢棄了,因此攻擊者只有從零開始重新攻擊。
1 以往門限簽名方案
2 分組結構的數字簽名系統(GDSS)
2.1 分組結構的數字簽名系統
本文提出了一個分組結構的(n,t)門限數字簽名系統。總體框架如圖1所示。
整個系統具有t個各自獨立的組,每組由一臺Combiner服務器和t臺Share服務器組成,每一組服務器都可以獨立完成數字簽名的工作。沒有任何一臺Share服務器同時屬于一個以上的組。因此整個GDSS系統Share服務器總數為n=t2。其中t為門限值。容易看出,系統至少可以容忍t-1個Share節點被攻擊或t-1個子密鑰泄露。
2.2 主動密鑰升級PSS
與以往的PSS方案不同,由于GDSS系統的分組獨立結構,系統的密鑰升級運算可以在一個組內進行,在升級過程中不影響其他組服務器繼續服務。而升級后的組也不會與未升級的組發生沖突。同時,本文提出的PSS方案是配合toutofn門限算法的,消息復雜度為O(n)。
2.3 子簽名驗證
利用PSS可以主動進行密鑰升級,但是這是在所有節點都是正確的前提下。如果惡意節點的存在,即主動出示假的子密鑰進行計算,進而破壞整個簽名過程;惡意節點的存在也可以破壞PSS協議,或者是使得PSS升級安全性失效(因為惡意節點也會隨著PSS獲得新的子密鑰,使得PSS失去意義)。因此,及早發現惡意節點是非常必要的。
筆者引入子簽名驗證協議[6]的思想來發現主動惡意節點。所謂主動惡意節點是指該節點已被攻擊者完全控制,并且在子簽名過程中通過使用假的子密鑰進行簽名來破壞簽名過程的Share 節點。
當Combiner在一次進行簽名合并運算后,使用公鑰驗證的發現簽名出錯,則會對每一個Share 節點i進行子簽名驗證。以下為子簽名驗證協議,假設:
2.4 系統局部更新協議
PSS密鑰升級協議和子簽名驗證協議都屬于主動容錯協議,兩者各自具有不同的作用。PSS的周期性密鑰升級主要是針對攻擊者竊取密鑰的情況,子簽名驗證則是針對Share節點出現惡意錯誤的情況。如果一個Share節點已經出現惡意錯誤,可以視為該節點已被攻擊者控制,則該節點的子密鑰的安全性也就很難保證了。因此為了確保密鑰安全,GDSS系統將這兩種協議相結合,構成了系統局部更新協議。
當一個組中的某一個節點出現惡意故障后,首先使用子簽名驗證確定故障節點,然后上級服務器會使用一個備用Share服務器替換這個節點,新替換的節點被分配與故障節點相同的子密鑰。替換完成后,由于攻擊者可能已經擁有了故障節點所掌握的子密鑰,再通過PSS協議,將該組所有子密鑰升級。最后進行一次簽名運算來驗證新升級的子密鑰的正確性。這樣就完成了一次完整的系統局部更新。
3 系統安全性分析
(1)系統容錯。
可以看出,GDSS系統容錯能力的最低門限值與另外兩種方案等同,最高門限值則遠高于它們。而攻擊者要想在最低門限值就使系統失效,必須攻擊特定的節點組合,即每一組都攻擊一個節點,或將其中一組的所有節點都攻擊,而這在攻擊者不知道節點分組細節的情況下是很困難的。因此相比另外兩種方案只有容忍最低門限值的能力,GDSS系統在容錯性上有較大優勢。
(2)攻擊者竊取子密鑰。
攻擊者若想通過連續竊取t個子密鑰得到完整的私鑰d就需要一定的攻擊時間,這個時間周期大小與節點的安全性以及t的大小有關。GDSS系統會設定一個期望的周期長度,每到一個時間周期就利用PSS協議對各組的Share節點子密鑰進行升級,使得被攻擊者竊取的子密鑰在升級完后就作廢,攻擊者需要重新發起攻擊。但PSS密鑰升級時,參與升級的節點是無法進行簽名服務的。如果此時攻擊者采用竄改信息,拒絕服務等攻擊來破壞密鑰升級,迫使PSS升級時間延長,則會更糟。GDSS系統利用結構特點有效地解決了這個問題。由于GDSS系統每個組都可以獨立完成簽名服務,且密鑰升級也是各自獨立的,只要每個組的密鑰升級周期相互錯開,輪流進行密鑰升級,就可以持續進行簽名服務。GDSS系統密鑰升級周期如圖3所示。
(3)惡意錯誤。
同時,子簽名協議也是在各個組內獨立完成的,不會影響其他組。只要不是所有組同時出現驗證錯誤,GDSS系統就可以完成簽名運算。
當攻擊者企圖通過出示假的子密鑰來破壞簽名計算時,子簽名驗證協議只需很少計算量就可以找到故障節點,每個Share節點的計算量近似為一次簽名,而Combiner節點在極限情況下,即連續驗證t次,計算量約為t+1次簽名,同時消息復雜度為O(t)。
4 結束語
本文提出了一個分組結構的分布式數字簽名系統,使用門限簽名算法實現(n,t)容錯,同時采用PSS密鑰升級算法和子簽名驗證算法相結合進行主動容錯。與以往的toutofn方案和Shamir方案相比,在提高系統容錯性的同時,實現了以組為單位的交替主動容錯模式,使得系統可以持續不斷地進行數字簽名服務,且不影響密鑰安全性和系統可用性。GDSS系統可以廣泛用于構建各種數字簽名及公鑰加/解密平臺,如數字版權管理(DRM)或CA等重要應用。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。