在企業(yè)的發(fā)展過程中,建立了針對(duì)不同業(yè)務(wù)的應(yīng)用系統(tǒng),由于這些應(yīng)用系統(tǒng)是在不同時(shí)期、根據(jù)不同的需求、由不同廠商來開發(fā)實(shí)施的,各系統(tǒng)采用的技術(shù)體系不同,所依賴的平臺(tái)不同,軟件模式不同(B/Sor c/s),各應(yīng)用系統(tǒng)的界面表現(xiàn)也沒有形成統(tǒng)一規(guī)范。
(1)傳統(tǒng)賬號(hào)管理機(jī)制
每個(gè)系統(tǒng)都建立用戶信息數(shù)據(jù)庫,用以驗(yàn)證用戶的身份。用戶要訪問多個(gè)系統(tǒng)就需要在多個(gè)系統(tǒng)中建立多套賬戶。當(dāng)用戶訪問處于多個(gè)系統(tǒng)中的資源,用戶必須分別登錄到相應(yīng)的系統(tǒng)。隨著應(yīng)用系統(tǒng)和用戶數(shù)量的增加,網(wǎng)絡(luò)規(guī)模迅速擴(kuò)大,原有的信息安全管理措施已不能滿足企業(yè)目前及未來業(yè)務(wù)發(fā)展的要求。問題的原因是缺少整體規(guī)劃,缺乏統(tǒng)一的用戶登錄平臺(tái),單點(diǎn)登錄技術(shù)SSO(single sign-on)的出現(xiàn)較好地解決了這些問題。
(2)單點(diǎn)登錄的優(yōu)勢(shì)
單點(diǎn)登錄(SSO,Single Sign-on)是一種方便用戶訪同網(wǎng)絡(luò)的技術(shù)。用戶只需要在網(wǎng)絡(luò)中主動(dòng)地進(jìn)行一次身份認(rèn)證,就可以無縫地訪問其被授權(quán)使用的資源,而不需要主動(dòng)地參與其后的身份認(rèn)證。單點(diǎn)登錄技術(shù)具有以下優(yōu)勢(shì):
①簡(jiǎn)化了用戶的搡作,用戶不登使用多套用戶名和密碼,不再需要為每次訪問資源而進(jìn)行一次身份認(rèn)證。
②增強(qiáng)了系統(tǒng)的整體安全性,用戶只需記住唯一的登錄密碼,可以設(shè)計(jì)相對(duì)復(fù)雜的密碼,增加了攻擊者進(jìn)行暴力破解的難度。
③減少管理員的工作量,系統(tǒng)管理員只需要維護(hù)一套統(tǒng)一的用戶賬號(hào)。傳統(tǒng)模式下,系統(tǒng)管理員需要管理多套的用戶賬號(hào),不僅給管理上帶來不方便,而且也容易出現(xiàn)管理漏洞。
④簡(jiǎn)化應(yīng)用系統(tǒng)開發(fā),在傳統(tǒng)模式下新的應(yīng)用系統(tǒng)要求獨(dú)立的用戶認(rèn)證程序,而單點(diǎn)登錄系統(tǒng)可以整合新的登錄模塊,減少開發(fā)人員的工作量。
1 單點(diǎn)登錄的通用模型
1.1單點(diǎn)登錄執(zhí)行過程
單點(diǎn)登錄系統(tǒng)實(shí)現(xiàn)的機(jī)制多種多樣,但其執(zhí)行過程都可用圖1描述。
圖1單點(diǎn)登錄系統(tǒng)模型
常用的單點(diǎn)登錄系統(tǒng)有經(jīng)紀(jì)人模型、代理模型、網(wǎng)關(guān)模型和令牌模型等。其中基于經(jīng)紀(jì)人的單點(diǎn)登錄模型在可管理性、安全性、易用性方面都有良好的表現(xiàn),盡管該模型在實(shí)施的過程中有著較大的工作量,但是它的良好表現(xiàn)使得它成為一種最常用的單點(diǎn)登錄模型。
1.2基于經(jīng)紀(jì)人的單點(diǎn)登錄模型
這種模型的特點(diǎn)就是,有一個(gè)集中的認(rèn)證和用戶賬號(hào)管理的服務(wù)器。經(jīng)紀(jì)人被用于進(jìn)一步請(qǐng)求的電子身份存取。中央數(shù)據(jù)庫的使用減少了管理的代價(jià),并為認(rèn)證提供一個(gè)公共和獨(dú)立的“第三方”。認(rèn)證服務(wù)器處在客戶端和應(yīng)用服務(wù)器中間,用來全權(quán)打理認(rèn)證事務(wù),扮演一個(gè)經(jīng)紀(jì)人的角色。客戶端在想得到任何服務(wù)之前都要先從認(rèn)證服務(wù)器進(jìn)行身份認(rèn)證,獲得有使用期限的電子身份標(biāo)識(shí),在期限內(nèi)可訪問應(yīng)用服務(wù)器獲得資源。
1.3 Kerberos登錄機(jī)制
Kerberos機(jī)制是經(jīng)紀(jì)人模型的典型應(yīng)用,基礎(chǔ)是信任的第三方--Kerberos服務(wù)器,集中地對(duì)用戶進(jìn)行認(rèn)證,并向用戶發(fā)放電子身份標(biāo)識(shí)。每次會(huì)話的密鑰都不相同,提高了系統(tǒng)的安全性。用戶登錄成功之后,用戶端保留身份識(shí)別信息(票據(jù)),當(dāng)用戶申請(qǐng)新的應(yīng)用服務(wù)時(shí),系統(tǒng)利用己有的票據(jù),用來登錄所申請(qǐng)的應(yīng)用。該系統(tǒng)可以由三個(gè)部分組成:核心認(rèn)證服務(wù)器,支持認(rèn)證的服務(wù)器端和支持認(rèn)證的客戶端。核心認(rèn)證服務(wù)器統(tǒng)一管理用戶信息。
2 引入證書的類Kerberos單點(diǎn)登錄方案
2.1系統(tǒng)總體結(jié)構(gòu)
Kerberos在安全性方面有著良好的表現(xiàn),登錄過程依賴Kerbems服務(wù)器,如果Kerberos服務(wù)器發(fā)生故障,系統(tǒng)所有的應(yīng)用服務(wù)都無法進(jìn)行,本方案如圖2所示,采取在用戶端保存一份證書的形式,降低登錄過程中對(duì)Kerberos服務(wù)器的依賴。
圖2方案設(shè)計(jì)
在基于證書的單點(diǎn)訪問模型中,每個(gè)應(yīng)用服務(wù)器生成屬于該服務(wù)器的證書。擁有該證書的客戶擁有訪問該應(yīng)用服務(wù)器的權(quán)限。應(yīng)用服務(wù)器A的證書可以表示為:CertA={V,Sn,AI,IDA,Issuer,Kp,TA,otIIer,[hash(V,Sn,AI,IDA Issuer,Kp。TA,other)]SignCA}。
其中,V是證書的版本號(hào),Sn是該證書的序列號(hào),AI是對(duì)證書進(jìn)行簽名的算法的標(biāo)識(shí),IDA是服務(wù)器A的唯一標(biāo)識(shí)符,Kp是服務(wù)器A的公鑰,Issuer是證書發(fā)布者的唯一標(biāo)識(shí)符,TA指出證書有效期,other是指其他信息,hash()是單向散列函數(shù),[]SignCA是對(duì)[]中的數(shù)據(jù)的簽名值,可以使用CA的公鑰進(jìn)行驗(yàn)證,CA的公鑰算法可以使用RSA或橢圓曲線算法。
2.2系統(tǒng)結(jié)構(gòu)概要說明
(1)方案前提:證書服務(wù)器上已經(jīng)生成了用戶,包括用戶ID、用戶密碼以及來自各應(yīng)用服務(wù)器的證書。每個(gè)用戶都已經(jīng)知道自己的私鑰,而證書服務(wù)器和企業(yè)門戶知道公鑰。
(2)證書生成:證書服務(wù)器驗(yàn)證用戶身份,將各應(yīng)用系統(tǒng)提供的證書組合成一個(gè)完整的證書,證書由系統(tǒng)公鑰與用戶私鑰加密,最后將證書傳遞給用戶。證書結(jié)構(gòu)如圖3所示。
圖3 證書結(jié)構(gòu)
(3)證書獲。鹤C書服務(wù)器提供登錄頁面,驗(yàn)證用戶身份后,用戶通過applet下載證書到客戶端,客戶端用私鑰解密后保存于硬盤特定位置。
(4)證書失效:有效期之外證書自動(dòng)失效,應(yīng)用服務(wù)器通過證書管理頁面撤銷特定用戶針對(duì)本應(yīng)用的證書,則用戶對(duì)該應(yīng)用服務(wù)器的訪問無效。
(5)證書傳遞:通過applet將保存在用戶硬盤上的證書上傳到對(duì)應(yīng)的應(yīng)用服務(wù)器,門戶也被視作一個(gè)特殊的應(yīng)用服務(wù)器,應(yīng)用服務(wù)器之間不傳遞證書。
(6)客戶端證書管理:證書保存于硬盤特定位置,提供導(dǎo)人導(dǎo)出工具,便于證書攜帶。
(7)證書服務(wù)器管理:證書服務(wù)器提供管理頁面,應(yīng)用系統(tǒng)管理員上載和撤銷證書。
(8)應(yīng)用服務(wù)器證書驗(yàn)證模塊:每個(gè)應(yīng)用服務(wù)器上有相關(guān)的認(rèn)證組件,負(fù)責(zé)證書解密,證書驗(yàn)證。應(yīng)用服務(wù)器的證書是自己生成的,需自己負(fù)責(zé)驗(yàn)證。
(9)密鑰管理:服務(wù)器公鑰定期修改,應(yīng)用服務(wù)器從證書服務(wù)器同步系統(tǒng)公鑰。
2.3登錄流程
登錄過程如圖2所示。
(1)用戶打開門戶,上載有效的證書,或選擇注冊(cè)獲取證書。如果用戶上載了證書,門戶檢查用戶證書是否有效,如果沒有有效證書或沒有證書,則將用戶重定向到證書服務(wù)器。
(2)由證書服務(wù)器提供一個(gè)頁面,用戶輸入用戶ID和口令,請(qǐng)求證書。
(3)證書服務(wù)器驗(yàn)證用戶合法后,根據(jù)用戶ID生成加密證書并將證書返回給用戶。
(4)門戶驗(yàn)證用戶證書是否有效,顯示用戶訪問服務(wù)清單并把證書轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器。
(5)應(yīng)用服務(wù)器驗(yàn)證證書是否來自門戶,不是則拒絕服務(wù),否則取出對(duì)應(yīng)本服務(wù)器的證書,對(duì)證書解密,獲得該用戶對(duì)應(yīng)的權(quán)限,提供對(duì)應(yīng)的服務(wù),將響應(yīng)直接返回給門戶。
(6)門戶根據(jù)響應(yīng)生成頁面返回給用戶。
(7)用戶使用獲得的證書直接和應(yīng)用服務(wù)器交互。
3 結(jié)束語
基于證書的單點(diǎn)登錄模型在健壯性,安全性方面有良好表現(xiàn)。具有下述特點(diǎn):
(1)門戶和證書服務(wù)器不會(huì)直接交互,即使證書服務(wù)器失效,只要用戶證書仍然在有效期內(nèi),用戶依靠持有的證書便可訪問應(yīng)用系統(tǒng)。
(2)證書由應(yīng)用系統(tǒng)子證書組成,應(yīng)用系統(tǒng)在權(quán)限設(shè)定及驗(yàn)證上具有彈性,系統(tǒng)易擴(kuò)展。
(3)證書使用服務(wù)器公鑰和用戶私鑰進(jìn)行加密,服務(wù)器公鑰定期修改,有效防止用戶ID、密鑰和證書被截獲。
(4)用戶直接訪問應(yīng)用系統(tǒng)可減輕門戶負(fù)載,由應(yīng)用系統(tǒng)來生成以及驗(yàn)證本應(yīng)用系統(tǒng)的證書具備更強(qiáng)的兼容性,應(yīng)用系統(tǒng)具備證書生成功能和證書驗(yàn)證功能。
通過將登錄所需的電子身份采用證書方式保存在客戶端的方法,將登錄過程剝離出來,降低了經(jīng)紀(jì)人模型中認(rèn)證服務(wù)器的負(fù)載,并且認(rèn)證服務(wù)器故障時(shí),應(yīng)用服務(wù)仍可有條件進(jìn)行。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:一種基于證書的單點(diǎn)登錄方案設(shè)計(jì)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1083938149.html