java學(xué)習(xí)心得筆記
pki是一種遵循標(biāo)準(zhǔn)的密鑰管理平臺(tái),它能夠?yàn)樗芯W(wǎng)絡(luò)應(yīng)用透明地提供采用加密和數(shù)字簽名等密碼服務(wù)所必需的密鑰和證書管理。pki必須具有
1)ca、
2)證書庫、
3)密鑰備份及恢復(fù)系統(tǒng)、
4)證書作廢處理系統(tǒng)、
5)客戶端證書處理系統(tǒng)
等基本成分,構(gòu)建pki也將圍繞著這五大系統(tǒng)來構(gòu)建
一個(gè)pki由眾多部件組成,這些部件共同完成兩個(gè)主要功能:
1)為數(shù)據(jù)加密
2)創(chuàng)建數(shù)字認(rèn)證。
服務(wù)器(即后端)產(chǎn)品是這一系統(tǒng)的核心,這些數(shù)據(jù)庫管理著數(shù)字認(rèn)證、公共密鑰及專用密鑰( 分別用于數(shù)據(jù)的加密和解密)。
ca數(shù)據(jù)庫負(fù)責(zé)發(fā)布、廢除和修改x.509數(shù)字認(rèn)證信息,它裝有用戶的公共密鑰、證書有效期以及認(rèn)證功能(例如對(duì)數(shù)據(jù)的加密或?qū)?shù)字簽字的驗(yàn)證) 。為了防止對(duì)數(shù)據(jù)簽字的篡改,ca在把每一數(shù)字簽字發(fā)送給發(fā)出請(qǐng)求的客戶機(jī)之前,需對(duì)每一個(gè)數(shù)字簽字進(jìn)行認(rèn)證。一旦數(shù)字認(rèn)證得以創(chuàng)建, 它將會(huì)被自動(dòng)存儲(chǔ)于x.500目錄中,x.500目錄為樹形結(jié)構(gòu)。ldap(lightweight directory access protocol)協(xié)議將響應(yīng)那些要求提交所存儲(chǔ)的公共密鑰認(rèn)證的請(qǐng)求。ca為每一用戶或服務(wù)器生成兩對(duì)獨(dú)立的公共和專用密鑰。其中一對(duì)用于信息的加密和解密, 另一對(duì)由客戶機(jī)應(yīng)用程序使用,用于文檔或信息傳輸中數(shù)字簽字的創(chuàng)建。
大多數(shù)pki均支持證書分布,這是一個(gè)把已發(fā)布過的或續(xù)延生命期的證書加以存儲(chǔ)的過程。這一過程使用了一個(gè)公共查詢機(jī)制,x.500目錄可自動(dòng)完成這一存儲(chǔ)過程。影響企業(yè)普遍接受p ki的一大障礙是不同ca之間的交叉認(rèn)證。假設(shè)有兩家公司,每一家企業(yè)分別使用來自不同供應(yīng)商的ca,現(xiàn)在它們希望相互托管一段時(shí)間。如果其后援?dāng)?shù)據(jù)庫支持交叉認(rèn)證, 則這兩家企業(yè)顯然可以互相托管它們的ca,因而它們所托管的所有用戶均可由兩家企業(yè)的ca所托管。
。 認(rèn)證機(jī)關(guān)
ca是證書的簽發(fā)機(jī)構(gòu),它是pki的核心。眾所周知,構(gòu)建密碼服務(wù)系統(tǒng)的核心內(nèi)容是如何實(shí)現(xiàn)密鑰管理,公鑰體制涉及到一對(duì)密鑰,即私鑰和公鑰, 私鑰只由持有者秘密掌握,無須在網(wǎng)上傳送,而公鑰是公開的,需要在網(wǎng)上傳送,故公鑰體制的密鑰管理主要是公鑰的管理問題,目前較好的解決方案是引進(jìn)證書(certificate)機(jī)制。
證書是公開密鑰體制的一種密鑰管理媒介。它是一種權(quán)威性的電子文檔,形同網(wǎng)絡(luò)計(jì)算環(huán)境中的一種身份證,用于證明某一主體(如人、服務(wù)器等)的身份以及其公開密鑰的合法性。在使用公鑰體制的網(wǎng)絡(luò)環(huán)境中, 必須向公鑰的使用者證明公鑰的真實(shí)合法性。因此,在公鑰體制環(huán)境中,必須有一個(gè)可信的機(jī)構(gòu)來對(duì)任何一個(gè)主體的公鑰進(jìn)行公證,證明主體的身份以及他與公鑰的匹配關(guān)系。c a正是這樣的機(jī)構(gòu),它的職責(zé)歸納起來有:
1、驗(yàn)證并標(biāo)識(shí)證書申請(qǐng)者的身份;
2、確保ca用于簽名證書的非對(duì)稱密鑰的質(zhì)量;
3、確保整個(gè)簽證過程的安全性,確保簽名私鑰的安全性;
4、證書材料信息(包括公鑰證書序列號(hào)、ca標(biāo)識(shí)等)的管理;
5、確定并檢查證書的有效期限;
6、確保證書主體標(biāo)識(shí)的唯一性,防止重名;
7、發(fā)布并維護(hù)作廢證書表;
8、對(duì)整個(gè)證書簽發(fā)過程做日志記錄;
9、向申請(qǐng)人發(fā)通知。
其中最為重要的是ca自己的一對(duì)密鑰的管理,它必須確保其高度的機(jī)密性,防止他方偽造證書。ca的公鑰在網(wǎng)上公開,整個(gè)網(wǎng)絡(luò)系統(tǒng)必須保證完整性。
* 證書庫
證書庫是證書的集中存放地,它與網(wǎng)上"白頁”類似,是網(wǎng)上的一種公共信息庫,用戶可以從此處獲得其他用戶的證書和公鑰。
構(gòu)造證書庫的最佳方法是采用支持ldap協(xié)議的目錄系統(tǒng),用戶或相關(guān)的應(yīng)用通過ldap來訪問證書庫。系統(tǒng)必須確保證書庫的完整性,防止偽造、篡改證書。
。 密鑰備份及恢復(fù)系統(tǒng)
。 證書作廢處理系統(tǒng)
。 pki應(yīng)用接口系統(tǒng)
pki的價(jià)值在于使用戶能夠方便地使用加密、數(shù)字簽名等安全服務(wù),因此一個(gè)完整的pki必須提供良好的應(yīng)用接口系統(tǒng),使得各種各樣的應(yīng)用能夠以安全、一致、可信的方式與p ki交互,確保所建立起來的網(wǎng)絡(luò)環(huán)境的可信性,同時(shí)降低管理維護(hù)成本。最后,pki應(yīng)用接口系統(tǒng)應(yīng)該是跨平臺(tái)的。
許多權(quán)威的認(rèn)證方案供應(yīng)商(例如verisign、thawte以及gte)目前都在提供外包的pki。外包pki最大的問題是,用戶必須把企業(yè)托管給某一服務(wù)提供商, 即讓出對(duì)網(wǎng)絡(luò)安全的控制權(quán)。如果不愿這樣做,則可建造一個(gè)專用的pki。專用方案通常需把來自entrust、baltimore technologies以及xcert的多種服務(wù)器產(chǎn)品與來自主流應(yīng)用程序供應(yīng)商(如microsoft、netscape以及qualcomm)的產(chǎn)品組合在一起。專用pk i還要求企業(yè)在準(zhǔn)備其基礎(chǔ)設(shè)施的過程中投入大量的財(cái)力與物力。
7.jaas
擴(kuò)展jaas實(shí)現(xiàn)類實(shí)例級(jí)授權(quán)
“java 認(rèn)證和授權(quán)服務(wù)”(java authentication and authorization service,jaas)
在 jaas 下,可以給予用戶或服務(wù)特定的許可權(quán)來執(zhí)行 java 類中的代碼。在本文中,軟件工程師 carlos fonseca 向您展示如何為企業(yè)擴(kuò)展 jaas 框架。向 jaas 框架添加類實(shí)例級(jí)授權(quán)和特定關(guān)系使您能夠構(gòu)建更動(dòng)態(tài)、更靈活并且伸縮性更好的企業(yè)應(yīng)用程序。
大多數(shù) java 應(yīng)用程序都需要某種類實(shí)例級(jí)的訪問控制。例如,基于 web 的、自我服務(wù)的拍賣應(yīng)用程序的規(guī)范可能有下列要求: