(1.中國科學院 計算技術研究所, 北京 100080; 2.中國科學院 研究生院, 北京 100049; 3.聯想研究院, 北京 100085)
摘 要:以符合可信計算聯盟標準的安全芯片為基礎,提出一種基于安全芯片的CA方案,它不僅解決了CA抵抗外部攻擊,而且也解決了CA抵抗內部攻擊的問題,同時該方案具有較高的性能和較低的成本。
關鍵詞:認證中心(CA); 公開密鑰基礎設施; 安全芯片; 可信平臺模塊
中圖法分類號:TP309文獻標識碼:A
文章編號:1001-3695(2006)08-0110-04
Design and Implementation of CA Scheme Based on Secure Chip
CHEN Jun 1,2, HOU Zi feng 1,3, WEI Wei 1,3, QU Ya dong1,3
(1.Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100080, China; 2.Graduate School, Chinese Academy of Sciences, Beijing 100049, China; 3.Lenovo Research Development Corp., Beijing 100085, China)
Abstract:In contrast with other CA schemes, the scheme has not only the property of intrusion tolerant but the property of resisting external attack as well the internal attack, and has higher performance and lower cost.
Key words:CA(Certificate Authority); PKI(Public Key Infrastructure); Security Chip; Trusted Platform Module
在PKI(Public Key Infrastructure)中,CA用其私鑰對證書簽名執行認證作用,因此CA私鑰的安全至關重要。許多解決在線CA安全的方法被提出來[1~4],其中最基本的思想是采用門限密碼技術實現容錯,這種方法主要考慮CA抵抗外部攻擊。據2002年FBI報道,70%的攻擊是從內部發起的,并且其危害性更大,因此現有的CA方案都有一定的不足。本文在已經實現的符合TCG(Trusted Computing Group)規范的安全芯片基礎上[9],設計并實現一種基于安全芯片的CA方案,較好地解決了在線CA內外安全問題。它不僅有入侵容錯,能夠抵抗外部攻擊,而且使用安全芯片的可信測量、可信存儲等功能,能夠抵抗內部攻擊。同時與其他方案相比有較高的性能和較低的成本。本文分析了現有的主要CA方案,并指出其局限性,提出基于安全芯片的CA方案,并分析了基于安全芯片的CA方案的安全性。
1現有CA方案的分析
現有的CA方案主要有:斯坦福大學研究的基于門限RSA簽名方案的入侵容錯系統ITTC(Intrusion Tolerance via Thres hold Cryptography)[1,8];Cornell大學Li Dong zhou研究的通過異步的、主動的秘密共享設計與實現的分布式在線的CA方案COCA (Cornell On line Certification Authority)[2];荊繼武、馮登國提出的一種基于門限RSA、具有可伸縮性的入侵容忍CA方案[3]和Liu Duan yang研究的基于Trusted Dealer的在線CA方案[4]等。
1.1(t,n)秘密共享
上述的ITTC、COCA、荊方案和Liu Duan yang方案均采用 (t,n)門限方案實現對密鑰的容錯保護。將一秘密值d分割成t份影子,然后將此t份影子分別存儲在n個不同的服務器上。只有通過t份影子才能恢復秘密值d,稱為(t,n)秘密共享[1]。把d分割成t 份的方法有許多種,其中一種是根據Frankel的方法[5],選擇 t個屬于[-N,N]的隨機數d1,d1,…,dt,使得d=d1+d2+…+dt, 文獻[1~3]采用這種方法;另一種是根據Shamir的秘密共享方法[6],利用LaGrange插值公式,文獻[4]采用這種方法。采用隨機和方法計算量小,本方案采用隨機和的方法實現CA私鑰的秘密共享。
在 (t,n)秘密共享中,即使攻擊者成功入侵了t-1個服務器,也得不到秘密值d。但如果某臺服務器崩潰或者它所存的影子丟失,則該秘密值將會丟失。為了保證可用性,文獻[1]提出的(t,n)共享方案中,秘密值d按(t,t)共享方法分割成多種組合,每種組合含有t份影子,每種組合的t份影子分別存儲在n個服務器中的t個服務器上。例如,當t=3,n=4時,秘密值d的(t,n) 秘密共享方法如表1所示。
表1中,每個di都是屬于[-N,N]的隨機整數,且滿足給定的方程。表的第j列表示服務器j 可存儲的不同影子。由表1可知,任何一臺服務器出現故障或影子丟失都不會影響系統的工作,任何兩臺服務器被入侵后不會泄露 d的任何信息,因為任何兩臺以上的服務器都能夠產生秘密值d。因此,基于(t,n)秘密共享的具有容錯和容忍入侵的能力。當n固定時, t越小,系統的容錯能力越強,但系統越不安全;t越大,系統容忍入侵的能力強,但容錯能力差,因此對t的選擇要從可用性和安全性的角度折中考慮。
1.2各CA方案的優缺點
ITTC方案的基本實現原理是上述的 (t,n)密鑰分享,所有的分享密鑰di都是區間[-N,N]的隨機大整數。每個服務存儲和管理多個密鑰。如(3,4)分享,服務器1管理密鑰d1,d4;服務器3管理d3,d5。 ITTC為防止“單點”失效,沒有采用集中式的密鑰生成方法,而是采用改進的分布式密鑰生成算法BF協議[7],整個系統無論是認證簽名,還是密鑰更新,RSA私鑰都是以分享的形式存在。ITTC方案采用了門限技術,使CA認證系統有入侵容錯、負載均衡等特性,并且密鑰生成和更新時采用了分布式算法,避免了單點失效。但系統也存在不足,如BF協議復雜,計算耗時、缺乏足夠的強健性,以及密鑰管理復雜等。
荊方案的入侵容錯CA方案原理與ITTC系統相同,也是把RSA私鑰d分成若干個隨機數之和。其結構如圖2所示。
其中RA Agent是RA(注冊機構)的接口,它負責與RA進行保密通信,并負責檢查CA的簽名。同時,它也是通向外部網絡的唯一途徑。Share Server是用于CA簽名的,每一個都有自己的ID號。RA Agent通過廣播信道B1與這些服務器連接。當有證書cer需要CA簽名時,RA為此簽名設定一個可以區分任務號的Task(cer)。RA Agent通過廣播將需要的簽名的信息與設定的任務號Task(cer)廣播到Share Server的網絡上。Share Serveri 收到廣播后,根據自己的忙閑程度和設定的算法,計算自己的忙閑因子Fi(Task(cer))。然后向網絡B1廣播自己對應此任務的Fi(Task(cer))當收到其他服務器關于此任務的忙閑因子Fi(Task(cer))之后,與自己計算的忙閑因子Fi(Task(cer))進行比較。當發現有m(m大于等于t)個服務器的忙閑因子小于自己的忙閑因子時,拋棄此任務。Key Distributor平時是離線的,由安全策略和管理規定與Share Servers的連網時間和方式。連接的方式可以采用經典的密鑰注入方式。Key Distributor負責更換Share Servers的密鑰,Combiner是收集各Share Server的計算結果,并尋找正確的簽名。Respository Agent是與數據庫的接口,同時賦有系統錯誤檢測和告警的任務。
荊方案與ITTC系統同樣有容錯功能,但沒有明顯的負載均衡能力,每次認證Share Server都參與計算,并且每完成一次CA的認證都需要Combiner去搜索正確的組合,計算量增加,計算時間增大。同時為防止Combiner和Share Server和謀取得私鑰,需要多個Combiner。在門限 t=3,n=6, 每個Share Server存放兩個子密鑰時需要兩個Combiner。其成本也比ITTC系統高。在 (t,n) 門限更改,需要Key Distributer依據CA私鑰重新計算 Ctn 組合,重新布置或更新Combiner,并且荊方案中密鑰發布缺少必要的密鑰驗證機制。
COCA采用主動秘密共享,實現安全在線CA,但實現 t門限需要3t+1 臺機器,需要較高的實現成本。Liu Duan yang研究基于Trusted Dealer實現在線CA,其密鑰分享采用Lagrange插值,但沒有方法保證Dealer本身是可信任的。
上述CA方案中都只考慮了外部的入侵,沒有考慮內部的入侵,沒有考慮子密鑰(影子密鑰)的安全保護問題。而實際上大部分系統的入侵是從內部發起的。因此構造一個既能抵擋外部入侵,又能抵擋內部入侵的CA系統是很重要的問題。我們提出的基于安全芯片的CA方案較好地解決了這個問題。
2基于安全芯片的CA方案
2.1安全芯片簡介
由Intel、微軟和IBM等公司組成的國際機構TCG提出了可信計算平臺,其通過在現有PC上附加一個TPM(Trusted Platform Module,安全芯片),達到增強平臺安全的能力。TPM本身是可信的,然后在RTM(Root of Trust for Measure)的合作下,將信任擴展到整個平臺。TPM提供可信的測量功能、可信的報告功能、可信的存儲功能[10]。
TPM的結構如圖3所示,它包含執行引擎、RSA引擎、HAMC引擎、SHA 1引擎、RNG(隨機數產生器)、密鑰產生器、選項開關、易失存儲器、非易失存儲器、電源模塊和接口模塊。TPM是單獨的物理芯片,它能夠抗軟件攻擊和一定的物理攻擊。
利用TPM安全芯片提供的密碼功能服務,我們構建了一個安全的CA系統。其中用到TPM安全芯片的如下功能:
(1)TPM的密碼學身份。它是由TPM內部產生的,表示TPM身份的簽名密鑰。
(2)TPM的可信度量功能。TPM在RTM的配合下,度量本機上的軟件和硬件狀態,并將結果簽名后發送給挑戰者。利用TPM這種可信測量功能和可信報告功能能夠檢測機器是否遭受攻擊,如軟件攻擊(安裝后門、替換軟件)或物理攻擊(竊取硬盤)。
(3)TPM的可信存儲功能。CA的私鑰存放在TPM安全芯片里,從不外泄,有效地抵抗內部攻擊的竊取。
(4)TPM的密鑰生成功能。CA的私鑰由TPM產生,并且保存在TPM里,能夠有效地保護密鑰。
(5)TPM的密碼學服務,如真隨機數生成器、簽名、加解密,這些提高了我們CA系統的性能。
安裝有TPM的平臺上的軟件通過TSS(TCG Software Stack)[11]與TPM通信。
2.2基于安全芯片的CA方案
基于安全芯片的CA方案結構如圖4所示,每臺機器上都裝有安全芯片。初始條件是,每臺機器上的TPM產生身份密鑰,Server上的TPM身份證書發給CA和Manager,Server也獲得CA和Manager的身份證書。身份私鑰是在TPM內部產生,從不向外面泄露,并且只用來執行簽名,不用來加密。身份公鑰存儲在TPM內部。每個TPM還產生存儲密鑰,存取密鑰只用來加密,不用來簽名,存取密鑰的分配和身份密鑰的分配一樣。同時每臺機器都保存其他機器正常運行時PCR(Platform Configuration Register)值,以在后面可以驗證其他機器的運行狀態。Manager與Server之間,Manager與CA之間通過B2網通信。Server與CA之間通過B1網通信。
在本方案中,密鑰共享采用 (t,n) 秘密共享方案,CA的私鑰分成若干隨機子密鑰的和,保存在Server的TPM內。整個系統結構如圖3所示。
2.2.1密鑰生成和發布
CA密鑰由Manager的TPM產生,根據共享方案,對產生的子密鑰用身份私鑰簽名然后對不同的Server用存取密鑰加密,發給對應的Share Server,同時把組合方案和CA的公鑰簽名后發給CA。子密鑰的產生、簽名和加密都在TPM內部完成,TPM主機上的軟件只是完成接收TPM的數據,發送給其他主機,以及接收其他主機數據發送給TPM。Manager在發送子密鑰后,并不在TPM內部保留CA的私鑰,只是保留CA的公鑰。這樣避免從內部竊取CA私鑰。
Server接收到加密的子密鑰后,用TPM完成解密和驗證,正確后將子密鑰保存在TPM里,然后將發送成功的消息發送給Manager,否則返回失敗的消息。CA也驗證從Manager來的組合方案和CA公鑰。整個協議如下:
(1)Manager的TPM調用TPM產生密鑰的功能,TPM產生公鑰和私鑰 d 。
(2)Manager的TPM根據門限值 t將私鑰分成t個隨機數d1,d2,…,dt,其和等于d,其中每個隨機數不少于200bits,并對每個子密鑰di產生一個授權數據KeyAuthDatai(授權數據也是160bit的隨機數),同時也產生一個160bits的隨機數nonceA。
(3)Manager的TPM對每個子密鑰di、KeyAuthDatai 和nonceA用身份密鑰簽名然后用Serveri 的存儲密鑰加密,將結果輸出給Manager,Manager把加密的數據發送給Serveri 。
(4)Serveri 接收到數據后,調用TPM解密和驗證,如果結果正確,則在TPM內部保存子密鑰 i 和其授權數據KeyAuthDatai ,同時將“接收正確”+nonceA用身份密鑰簽名,再用管理者的存取密鑰加密,結果返回給Serveri ,Serveri 再將結果發送給Manager,否則將失敗消息返回給Serveri ,Serveri 向TPM報告失敗消息。
(5)重復(2),(3)產生多組子密鑰。
(6)Manager接收到成功消息,解密數據,驗證Serveri 身份,并比較nonceA,確認是本次操作。在接收到所有的Server應答后,在TPM內部把CA公鑰和組合方案簽名,銷毀CA私鑰 d ,保存CA公鑰和組合方案,把簽名結果返回給Manager,Manager將結果發送給CA。同時輸出加密的KeyAuthDatai 給不同的人保管。
(7)如果Manager在一定的時間內沒有接收到Serveri 的應答,則通知Serveri 失敗。
2.2.2認證
CA從RA接收到認證請求和認證數據,選擇空閑的Server提交從RA接收的數據和運行狀態。接收到CA請求的Server首先驗證CA運行狀態和CA的身份,然后用TPM的RSA引擎完成模乘運算,并用TPM對運算結果和運行狀態(PCR值)簽名,返回給CA。CA驗證簽名和Serveri 的運行狀態后,把收到的所有模乘運算結果相乘得到證書的簽名,并用CA的公鑰驗證,如果正確則把結果發送給RA。
如果CA驗證Server的簽名失敗或用CA公鑰驗證失敗或驗證Serveri 的運行狀態失敗,表明這些Server受到攻擊。此時可以重新選擇其他的Server執行認證,同時通知哪臺或哪幾臺Server失敗,以進一步處理。同樣Server驗證CA的運用狀態或身份失敗時也通知人員。如果是CA的運用狀態沒有通過驗證,表示CA主機受到攻擊,可以重新安裝軟件。如果是驗證CA身份失敗,表示CA被替換,可以重新更換CA。由于CA知道組合方案和Server的忙閑程度,因此不像荊方案那樣需要每個 Server都參與計算,因此具有較高的負載均衡能力。
2.2.3受損密鑰的檢查和更新
本方案不主動檢查受損密鑰,當發現Server遭受攻擊或子密鑰被泄露時候,執行子密鑰更新算法,對子密鑰進行更新。把KeyAuthDatai 輸入到Manager的TPM中。由Manager向運行正常的 t 個Server發出請求子密鑰的指令,各Server在驗證Ma nager身份、Manager的運行狀態以及子密鑰的授權數據KeyAuthDatai 后,用Manager的存儲密鑰加密的子密鑰,并簽名返回發給Manager。Manager用TPM解密把所有加密的數據,解出子密鑰得到CA的私鑰,然后重新運行密鑰生成和發布算法。
在此算法中KeyAuthDatai 擁有的也采用秘密共享原則分配。
2.2.4密鑰更新
更換CA的私鑰,重新運行密鑰生成和發布算法,即可完成密鑰的更新。
2.2.5門限的擴充
門限的擴充也通過重新運行密鑰生成和發布算法。
3安全性
(1)假定
本方案假定RSA算法是安全的,假定TPM是按照TCG規范[9]實現的,能夠抵抗軟件攻擊和一定的物理攻擊,并且BIOS能夠正確度量平臺的運行狀態,并將度量結果保存到PCR中。
(2)威脅模型
我們考慮的威脅為兩類,即外部攻擊和內部攻擊。外部攻擊是通過網絡入侵到系統的攻擊;內部攻擊是能夠直接觸到CA系統硬件的攻擊者所發出的攻擊。
(3)安全性分析
本方案采用門限密碼技術對CA的私鑰進行共享,使得在獲得小于t個子密鑰也不能獲得CA的私鑰,在小于t個Server失效時候仍然可以提供認證簽名。無論是外部攻擊還是內部攻擊只要不獲得超過t個子密鑰,就不能獲得CA的私鑰。
在Manager與Server,Server與CA的交互過程中均使用TPM的身份密鑰和存取密鑰,數據都必須用TPM簽名和加密,驗證和解密也在TPM內部。這樣即使主機上安裝了后門軟件或竊取硬盤也不能獲得CA的私鑰。由于秘密只是在TPM內部,所以本方案能有效地抵抗內部攻擊。同時Server和CA互相驗證對方的運行狀態,使得在機器受到攻擊時候能夠被檢測出來,極大地提高了整個系統的安全性。
4性能
根據我們的設計方案,在五臺安裝有安全芯片的機器上,實現(3,5)門限的CA系統。在認證過程實現了負載均衡,能夠根據Server運行狀態選擇Server有較高的效率。利用的TPM的RSA加速引擎后,本方案中密鑰產生和認證的平均時間如表2所示。
5結束語
基于安全芯片的CA方案和以往的CA方案相比不僅有容錯機制,夠抵抗外部攻擊,同時使用TPM的功能抵抗內部攻擊。每臺機器多安裝一塊安全芯片,相對荊方案實現中需要額外的Combiner, COCA方案中需 3t+1臺機器才能實現t 門限,其成本也是很低的。本方案雖然是基于RSA體制,但也很容易改為橢圓曲線體制。此外隨著Intel的LT技術[12],Microsoft的Palladium項目中[13]都會使用TPM,因此基于安全芯片TPM的CA方案是有意義的和可行的。
參考文獻:
[1]Wu T, Malkin M, Boneh D. Building Intrusion Tolerant Applications[C]. Proceedings of the USENIX Security Symposium,1999.79-91.
[2]Lidong Zhou. Towards Fault Tolerant and Secure On line Services[EB/OL]. http://www.cs.cornell.edu/home/ldzhou/thesis,pdf, 2005-07-22.
[3]荊繼武,馮登國. 一種入侵容忍的CA方案[J]. 軟件學報, 2002,13(8):1417-1422.
[4]Liu Duan yang, PAN Xue zeng, PING Ling di. Distributed Certification Application via a Trusted Dealer[J]. Journal of Zheijiang University, 2003,4(5):555-559.
[5]Y Frankel. A Practical Protocol for Large Group Oriented Network[C]. Eurocrypt, 1989.56-61.
[6]Shamir A.How to Share a Secret[J].Communications of ACM,1979,22(11):612-613.
[7]Boneh D, Franklin M. Efficient Generation of Shared RSA Keys[C]. Proceedings of CRYPTO, 1997.425-439.
[8]Malkin M, Wu T, Boneh D. Experimenting with Shared RSA Key Generation[C]. Proceedings of the Internet Society’ Symposium on Network and Distributed System Security, 1999.43-56.
[9]TCG Main Specification v1.2[EB/OL]. http://www.trustedcompu ting. org, 2005-07-22.
[10]陳軍,侯紫峰,韋衛.可信賴計算平臺體系結構[C]. 第一屆中國可信計算與信息安全學術會議, 2004.
[11]TCG Software Stack(TSS) Specification v1.2[EB/OL]. http://www.trustedcomputing.org, 2005-07-22.
[12]Paul Otellini.Intel Developer Forum,Keynote Speech[EB/OL].http://www.intel.com/pressroom/archieve/speeches/otellini20020909.htm, 2004-05-06.
[13]Microsoft Corporation. Microsoft “Palladium”[EB/OL].http://www.microsoft.com/presspass/features/2002/jul02/0724palladiumwp.asp,2004-05-06.
作者簡介:陳軍(1975-),男,湖南邵陽人,博士研究生,主要研究方向為計算機安全;侯紫峰(1955-),男,研究員,博導,博士,主要研究方向為計算機體系結構、無線通信技術以及信息安全;韋衛(1964-),男,高級工程師,碩士生導師,博士,主要研究方向為網絡安全和密碼協議;曲亞東(1975-),男,博士,主要研究方向為計算機安全。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。