曾 嶸
(紅云紅河煙草(集團(tuán))有限責(zé)任公司, 云南 昆明 650231)
目前紅云紅河煙草集團(tuán)已經(jīng)建立了身份認(rèn)證體系,但是用戶登錄到操作系統(tǒng)桌面后,由于業(yè)務(wù)系統(tǒng)認(rèn)證的統(tǒng)一身份認(rèn)證體系與紅云紅河集團(tuán)用戶使用的操作系統(tǒng)的登錄認(rèn)證體系分屬于二套體系,沒(méi)能貫通。紅云紅河集團(tuán)用戶在辦公訪問(wèn)業(yè)務(wù)系統(tǒng)時(shí),用戶需要先登錄操作系統(tǒng)進(jìn)行身份驗(yàn)證,再登錄業(yè)務(wù)系統(tǒng)進(jìn)行身份驗(yàn)證,給用戶帶來(lái)不友好的體驗(yàn)。
在紅云紅河集團(tuán)用戶使用windows的域環(huán)境時(shí),紅云紅河集團(tuán)業(yè)務(wù)系統(tǒng)集成windows域完成用戶身份驗(yàn)證,這樣加入到紅云紅河集團(tuán)域的計(jì)算機(jī)就能實(shí)現(xiàn)紅云紅河集團(tuán)用戶登錄到操作系統(tǒng)后,直接利用已登錄的域帳號(hào)進(jìn)行單點(diǎn)登錄實(shí)現(xiàn)身份傳遞進(jìn)入業(yè)務(wù)系統(tǒng)。此單點(diǎn)登錄身份漫游方案是基于Kerberos 協(xié)議完成的,AD域作為Kerberos KDC提供密鑰分發(fā)服務(wù)。
上述通過(guò)windows域環(huán)境辦公集成用戶、業(yè)務(wù)系統(tǒng)身份傳遞的方式,存在很多局限性。如需要搭建Windows 域環(huán)境,用戶計(jì)算機(jī)需要加入到域,業(yè)務(wù)系統(tǒng)需要采用微軟技術(shù)開(kāi)發(fā)并部署于IIS上等;不支持非windows系統(tǒng)如linux系統(tǒng)、移動(dòng)終端、國(guó)產(chǎn)操作系統(tǒng)等;采用其它非微軟技術(shù)開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)需集成桌面單點(diǎn)時(shí),集成復(fù)雜,實(shí)現(xiàn)難度大。
本方案考慮基于 與傳統(tǒng)的實(shí)現(xiàn)方式不同,不基于Kerberos 協(xié)議,不需要域環(huán)境,通過(guò)在用戶計(jì)算機(jī)上安裝客戶端,后臺(tái)提供統(tǒng)一認(rèn)證服務(wù)器的方式,實(shí)現(xiàn)域內(nèi)、域外、非windows的系統(tǒng),從桌面到業(yè)務(wù)系統(tǒng)的單點(diǎn)登錄。
現(xiàn)有的統(tǒng)一認(rèn)證單點(diǎn)系統(tǒng)大多是解決由業(yè)務(wù)系統(tǒng)到業(yè)務(wù)系統(tǒng)之間的單點(diǎn)登錄,如何解決由操作系統(tǒng)到業(yè)務(wù)系統(tǒng)的單點(diǎn)登錄,即用戶登錄到操作系統(tǒng)上后,再單點(diǎn)登錄到各業(yè)系統(tǒng)。
微軟windows的域桌面身份認(rèn)證單點(diǎn)登錄實(shí)現(xiàn)的技術(shù)路線,是基于Kerberos 協(xié)議,以AD域環(huán)境作為基礎(chǔ)。并且基于微軟windows的域桌面認(rèn)證后,進(jìn)行信任傳遞時(shí)有只限于BS的業(yè)務(wù)系統(tǒng),不支持CS的系統(tǒng)單點(diǎn)登錄的局限性。
基于紅云紅河現(xiàn)有的環(huán)境,需考慮基于數(shù)字證書(shū)技術(shù)來(lái)實(shí)現(xiàn)操作系統(tǒng)桌面到業(yè)務(wù)系統(tǒng)的單點(diǎn)。既支持實(shí)現(xiàn)基于域環(huán)境下,從操作系統(tǒng)桌面到業(yè)務(wù)系統(tǒng)的身份漫游。同時(shí)可實(shí)現(xiàn)在非域環(huán)境下從操作系統(tǒng)桌面到業(yè)務(wù)系統(tǒng)的單點(diǎn)登錄。
在實(shí)現(xiàn)非windows操作系統(tǒng)下從操作系統(tǒng)桌面到BS和CS架構(gòu)業(yè)務(wù)系統(tǒng)的單點(diǎn)登錄。
基于數(shù)字證書(shū)、PKI技術(shù),為用戶計(jì)算機(jī)發(fā)放數(shù)字證書(shū),標(biāo)識(shí)和管理可信用戶計(jì)算機(jī)。用戶在認(rèn)證客戶端發(fā)起終端注冊(cè)請(qǐng)求,認(rèn)證客戶端生成公私鑰對(duì),并通過(guò)P10證書(shū)請(qǐng)求的方式,提交注冊(cè)申請(qǐng)到認(rèn)證服務(wù)端。認(rèn)證服務(wù)端系統(tǒng)管理員對(duì)注冊(cè)申請(qǐng)審核通過(guò)后,為用戶計(jì)算機(jī)生成設(shè)備證書(shū),并把用戶計(jì)算機(jī)列入到可信設(shè)備清單中。只有在可信設(shè)備清單中的用戶計(jì)算機(jī)上發(fā)起的訪問(wèn)請(qǐng)求,才可完成單點(diǎn)登錄到業(yè)務(wù)系統(tǒng)。
統(tǒng)一身份認(rèn)證系統(tǒng)可分為身份認(rèn)證客戶端和身份認(rèn)證服務(wù)端2個(gè)部分(圖1)。
圖1 統(tǒng)一身份認(rèn)證系統(tǒng)組成
認(rèn)證客戶端安裝到用戶計(jì)算機(jī)或是手機(jī)等終端設(shè)備上,負(fù)責(zé)為終端設(shè)備生成唯一設(shè)備ID,向認(rèn)證服務(wù)端進(jìn)行注冊(cè),申請(qǐng)簽名證書(shū),并向業(yè)務(wù)系統(tǒng)提供認(rèn)證信息等功能。認(rèn)證服務(wù)端主要負(fù)責(zé)維護(hù)可信終端設(shè)備,并向業(yè)務(wù)系統(tǒng)提供認(rèn)證服務(wù)。
認(rèn)證服務(wù)端主要有帳號(hào)管理模塊,可信設(shè)備管理模塊,終端證書(shū)管理模塊。帳號(hào)管理模塊主要維護(hù)用戶在業(yè)務(wù)系統(tǒng)中的帳號(hào)、以及用戶登錄到一個(gè)或是多個(gè)終端設(shè)備上的帳號(hào)信息??尚旁O(shè)備管理模塊主要負(fù)責(zé)接收來(lái)自終端的注冊(cè),并對(duì)注冊(cè)的終端設(shè)備進(jìn)行審核,通過(guò)審核的終端納入可信終端設(shè)備白名單。終端證書(shū)管理模塊負(fù)責(zé)生成和維護(hù)終端設(shè)備證書(shū)。簽名認(rèn)證模塊負(fù)責(zé)對(duì)認(rèn)證書(shū)信息進(jìn)行簽名驗(yàn)證。
將用戶信息配合CA的簽名,附加到用戶的公鑰后最終形成用戶的數(shù)字證書(shū)。利用公私密鑰對(duì),對(duì)公鑰和私鑰進(jìn)行區(qū)分,進(jìn)行信息保護(hù)時(shí)分別利用公私鑰進(jìn)行安全處理。
通常對(duì)公鑰進(jìn)行公開(kāi),誰(shuí)都可以根據(jù)需要使用。私鑰則只是根據(jù)需求只有自己知道,公私鑰形成配對(duì)。
用戶在信息傳輸前,一般可以使用公鑰對(duì)信息進(jìn)行加密、簽名,后通過(guò)網(wǎng)絡(luò)發(fā)送傳輸。最終相應(yīng)的接受人通過(guò)公私鑰進(jìn)行信息安全確認(rèn)。
例如進(jìn)行信息申請(qǐng)時(shí),為確保只有審核人能收到并閱讀申請(qǐng)的內(nèi)容。申請(qǐng)者使用審核的公鑰對(duì)自己申請(qǐng)的內(nèi)容進(jìn)行加密。審核人員收到申請(qǐng)信息后,便可以使用自己的私鑰進(jìn)行解密。同時(shí)為證明申請(qǐng)人的身份,申請(qǐng)人員用自己的私鑰對(duì)申請(qǐng)信息進(jìn)行簽名,審核人員可以使用申請(qǐng)人員的公鑰對(duì)簽名進(jìn)行驗(yàn)證,以保證申請(qǐng)人員的正式身份。利用公私鑰的加密解密、簽名驗(yàn)簽保障只有集團(tuán)內(nèi)部相關(guān)審核人才能解密并進(jìn)行原信息查看,可保障相關(guān)信息在發(fā)送審核過(guò)程中保密性和完整性。
1)用戶先登錄到操作系統(tǒng),在終端設(shè)備上啟動(dòng)認(rèn)證客戶端,填寫(xiě)用戶在統(tǒng)一認(rèn)證系統(tǒng)中的帳號(hào)、密碼后提交注冊(cè)。認(rèn)證客戶端將把帳號(hào)、密碼、設(shè)備ID、P10證書(shū)請(qǐng)求一并發(fā)送到認(rèn)證服務(wù)端。
2)P10證書(shū)請(qǐng)求由認(rèn)證客戶端生成,認(rèn)證客戶端先生成公私鑰對(duì),把設(shè)備ID、公鑰作為證書(shū)請(qǐng)求信息項(xiàng),使用認(rèn)證客戶端生成的私鑰對(duì)證書(shū)請(qǐng)求信息簽名后得到P10證書(shū)請(qǐng)求。其中私鑰采用內(nèi)置的對(duì)稱的加密算法保存在終端設(shè)備上。
3)驗(yàn)證終端帳號(hào)及密碼。
4)帳號(hào)密碼通過(guò)核驗(yàn)后,認(rèn)證服務(wù)端保存這些信息,等待管理員審核。審核通過(guò)后,記錄通過(guò)的狀態(tài),等待下載證書(shū)。
1)用戶登錄到操作系統(tǒng)后,在終端設(shè)備上啟動(dòng)認(rèn)證客戶端,填寫(xiě)用戶在統(tǒng)一認(rèn)證系統(tǒng)中的帳號(hào)、密碼提交到認(rèn)證服務(wù)端。
圖2 終端設(shè)備注冊(cè)流程
2)驗(yàn)證終端帳號(hào)及密碼。
3)帳號(hào)密碼通過(guò)核驗(yàn)后,認(rèn)證服務(wù)端檢查用戶的注冊(cè)申請(qǐng)是否通過(guò)審批。
4)通過(guò)審核時(shí),由簽名認(rèn)證模塊負(fù)責(zé)證書(shū)簽發(fā),并把簽發(fā)后的證書(shū)通過(guò)終端證書(shū)管理模塊進(jìn)行保存。
5)認(rèn)證客戶端下載公鑰證書(shū)到終端。
證書(shū)由簽名認(rèn)證模塊進(jìn)行簽發(fā),簽名認(rèn)證模塊可把 P10證書(shū)請(qǐng)求轉(zhuǎn)發(fā)到外接CA,由外接CA完成證書(shū)的簽發(fā),也可以使用內(nèi)置的自簽名根證進(jìn)行簽發(fā)。
桌面單點(diǎn)到業(yè)務(wù)系統(tǒng),即用戶登錄到終端設(shè)備后,直接訪問(wèn)業(yè)務(wù)系統(tǒng),即可直接通過(guò)業(yè)務(wù)系統(tǒng)的認(rèn)證,而無(wú)需再次完成認(rèn)證操作。
圖3 終端設(shè)備證書(shū)下載流程
1)首先用戶需要先登錄到終端設(shè)備上。例如終端設(shè)備是Windows系統(tǒng)時(shí),用戶需要采用操作系統(tǒng)的本地登錄,或是域登錄的方式,登錄到Windows桌面。
2)用戶在終端設(shè)備的桌面上,啟動(dòng)業(yè)務(wù)系統(tǒng)客戶端。
3)用戶啟動(dòng)業(yè)務(wù)系統(tǒng)客戶端,業(yè)務(wù)系統(tǒng)客戶端調(diào)用認(rèn)證客戶端接口(SDK或是HTTP接口等形式),獲取認(rèn)證信息。認(rèn)證信息由登錄到終端的帳號(hào)、設(shè)備ID以及簽名值組成。簽名值是對(duì)登錄到終端的帳號(hào)、設(shè)備ID進(jìn)行簽名而得到的值。簽名時(shí)使用到的私鑰為在終端設(shè)備注冊(cè)環(huán)節(jié)生成并加密保存私鑰。
4)業(yè)務(wù)系統(tǒng)客戶端提交到業(yè)務(wù)系統(tǒng)服務(wù)端。
5)業(yè)務(wù)系統(tǒng)服務(wù)端把認(rèn)證信息以及當(dāng)前業(yè)務(wù)系統(tǒng)的ID一并提交到認(rèn)證服務(wù)端。簽名認(rèn)證模塊首先驗(yàn)證設(shè)備ID是否在受信設(shè)備中,然后通過(guò)設(shè)備ID,到設(shè)備證書(shū)管理模塊獲取到相應(yīng)的設(shè)備證書(shū)后,使用設(shè)備證書(shū)對(duì)簽名進(jìn)行校驗(yàn)。
圖4 桌面單點(diǎn)到業(yè)務(wù)系統(tǒng)實(shí)現(xiàn)流程
6)校驗(yàn)通過(guò)后,把登錄到終端的帳號(hào)、務(wù)系統(tǒng)的ID傳給帳號(hào)管理模塊進(jìn)行關(guān)聯(lián)查詢,查詢到當(dāng)前登錄用戶在業(yè)務(wù)系統(tǒng)中的帳號(hào)。并把此帳號(hào)返回給業(yè)務(wù)系統(tǒng)。
7)業(yè)務(wù)系統(tǒng)使用從認(rèn)證服務(wù)器返回的帳號(hào)登錄,并把登錄成功的結(jié)果返回到業(yè)務(wù)系統(tǒng)客戶端。
越來(lái)越多的單位采用統(tǒng)一身份認(rèn)證平臺(tái)和數(shù)字證書(shū)技術(shù)構(gòu)建企業(yè)內(nèi)部信息,但是對(duì)于操作系統(tǒng)和業(yè)務(wù)系統(tǒng)直接的身份傳遞局限的基于AD域完成。在信息化建設(shè)進(jìn)程中逐步實(shí)現(xiàn)一次登錄操作系統(tǒng),讓用戶可以安全自由的操作系統(tǒng)本身的同時(shí),還可以自由訪問(wèn)任 何一個(gè)應(yīng)用系統(tǒng)。
基于統(tǒng)一身份認(rèn)證WEB應(yīng)用平臺(tái)的無(wú)關(guān)性、松散耦合性結(jié)合數(shù)字證書(shū)公私密鑰加解密的安全性結(jié)合Windows操作系統(tǒng)認(rèn)證,給出了操作系統(tǒng)到業(yè)務(wù)系統(tǒng)一次認(rèn)證、多處身份漫游的設(shè)計(jì)方案。在紅云紅河集團(tuán)建立統(tǒng)一身份認(rèn)證平臺(tái)的基礎(chǔ)上給出了操作系統(tǒng)到業(yè)務(wù)系統(tǒng)安全打通的方案。在紅云紅河集團(tuán)內(nèi)部信息系統(tǒng)中具有廣泛的應(yīng)用前景。