李 艷
在云端化的網(wǎng)絡(luò)大趨勢下,越來越多的傳統(tǒng)工作模式向互聯(lián)網(wǎng)上遷移,疫情更是加速推動(dòng)了云浪潮?;ヂ?lián)網(wǎng)中存儲(chǔ)了海量的用戶數(shù)據(jù)信息,而網(wǎng)絡(luò)的開放性帶來了大量的訪問請求和認(rèn)證請求,同時(shí)也產(chǎn)生了大量復(fù)雜的用戶權(quán)限管理問題,在云時(shí)代,用戶的個(gè)人信息安全已經(jīng)成為一個(gè)迫切需要解決的社會(huì)問題,尤其很多單位和機(jī)關(guān)部門對網(wǎng)絡(luò)安全有著極高的要求,采用傳統(tǒng)的入侵檢測技術(shù)和防火墻等產(chǎn)品已經(jīng)不足以讓用戶放心了。因此,對網(wǎng)絡(luò)信息進(jìn)行采集和組織,加強(qiáng)對安全接入的研究顯得極為迫切。
公開密鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,以下簡稱PKI)利用現(xiàn)代密碼學(xué)的公開密鑰技術(shù)來為所有網(wǎng)絡(luò)應(yīng)用提供數(shù)據(jù)加密和數(shù)字簽名,并且通過數(shù)字證書平臺來管理公鑰,從而實(shí)現(xiàn)信息安全服務(wù)。人們可以建立一個(gè)可以信任的網(wǎng)絡(luò),由PKI技術(shù)來提供信息傳輸?shù)谋C馨踩?、完整性、不可抵賴性以及訪問控制等。一個(gè)標(biāo)準(zhǔn)的PKI體系結(jié)構(gòu),至少應(yīng)該包括以下幾個(gè)部分:認(rèn)證機(jī)構(gòu)CA(負(fù)責(zé)數(shù)字證書的申請和發(fā)放);證書庫(負(fù)責(zé)集中儲(chǔ)存證書);證書注銷(定期清理證書);密鑰備份與恢復(fù)(針對用戶遺失密鑰進(jìn)行處理);密鑰自動(dòng)更新(保證密鑰有效性);密鑰歷史檔案(解決由于密鑰更新帶來的問題);交叉認(rèn)證(不同PKI用戶之間的安全通信);不可否認(rèn)性等等。
這其中最重要的便是認(rèn)證機(jī)構(gòu)CA。公鑰技術(shù)的前提目標(biāo)便是兩個(gè)陌生用戶之間能夠安全地進(jìn)行數(shù)據(jù)傳輸。假設(shè):A想要發(fā)送信息給B,那么A性需要先獲取B的一個(gè)公鑰,然后用此公鑰對想要發(fā)送的信息進(jìn)行加密,再發(fā)送給B。但是網(wǎng)絡(luò)中的用戶有千千萬,怎么獲取B的公鑰?獲取公鑰最可靠的方法便是指定某個(gè)權(quán)威實(shí)體,這權(quán)威實(shí)體必須對大部分甚至全部用戶來說都是可信的,該權(quán)威實(shí)體把公鑰和具體的用戶身份綁定在一起。這樣的權(quán)威便是“認(rèn)證機(jī)構(gòu)”(CA)。CA通過證書庫來完成證書的管理與分發(fā),因此PKI技術(shù)的核心功能在于密鑰的管理。
PKI加解密的詳細(xì)過程如下:
信息發(fā)送方用自身的私密密鑰來加密要傳輸?shù)男畔?nèi)容,然后用信息接收方的公開密鑰來加密自身的私密密鑰,形成數(shù)字信封,然后將數(shù)字信封和已經(jīng)加密過的信息一起發(fā)送給信息接收方。信息接收方收到信息后,先用自身的私密密鑰打開數(shù)字信封,得到信息發(fā)送方的密鑰,再使用改密鑰來解密成原始信息。
在這個(gè)過程中,為防止信息被篡改,需要對原始信息明文和重新解密后的信息明文進(jìn)行校驗(yàn),但是如果對全部信息進(jìn)行校驗(yàn)的話,信息量太大,實(shí)際會(huì)對信息進(jìn)行摘要加解密來驗(yàn)證。具體流程如圖1所示:
圖1 PKI工作原理
安全接入平臺是以PKI技術(shù)為核心的應(yīng)用層平臺,是用戶和業(yè)務(wù)應(yīng)用系統(tǒng)的中間樞紐。平臺運(yùn)行于獨(dú)立的機(jī)器,所有終端用戶從網(wǎng)絡(luò)登錄平臺,都要進(jìn)行身份認(rèn)證;認(rèn)證通過之后進(jìn)行一系列的授權(quán)管理和業(yè)務(wù)代理方面的訪問控制,最終到達(dá)應(yīng)用系統(tǒng),同時(shí)利用隔離網(wǎng)閘有效對內(nèi)部系統(tǒng)和外界進(jìn)行物理隔離,這個(gè)過程可以有效地實(shí)現(xiàn)信息保護(hù)。
在平臺中,還有管理維護(hù)模塊和日志審計(jì)模塊等功能;其中管理維護(hù)模塊主要實(shí)現(xiàn)系統(tǒng)配置等功能,日志審計(jì)模塊主要實(shí)現(xiàn)系統(tǒng)中的日志工作。而安全接入平臺客戶端便是網(wǎng)絡(luò)端的用戶和業(yè)務(wù)應(yīng)用系統(tǒng)之間的樞紐,所有用戶都要在接入平臺客戶端對其身份進(jìn)行合理的授權(quán)之后,才能訪問相應(yīng)的業(yè)務(wù)系統(tǒng),以此來保證各個(gè)業(yè)務(wù)系統(tǒng)的安全運(yùn)行和操作。
安全接入平臺的系統(tǒng)總體設(shè)計(jì)方案如圖2所示。
圖2 安全接入平臺總體方案設(shè)計(jì)
在安全平臺中,接入平臺客戶端運(yùn)行于客戶的機(jī)器中,因此它必須具備以下功能:
1)采用TCP鏈接或者系統(tǒng)函數(shù)的方式,攔截客戶端信息,同時(shí)發(fā)給平臺服務(wù)器端,使得這兩個(gè)在邏輯上沒有直接相連。
2)對網(wǎng)絡(luò)中的用戶端和安全接入平臺服務(wù)器端之間的通信加密,加密要在用戶端無法察覺的情況下進(jìn)行,并且每次的加密密鑰都要重新商量,這樣可以保證通信質(zhì)量。
3)將數(shù)字證書存儲(chǔ)在UKey模塊中,實(shí)現(xiàn)基于數(shù)字證書的認(rèn)證方式。
4)不僅能實(shí)現(xiàn)基于公鑰的認(rèn)證,為了方便客戶,應(yīng)該也要實(shí)現(xiàn)基于挑戰(zhàn)/響應(yīng)的認(rèn)證方式。
5)為了提升客戶的體驗(yàn)舒適度,對客戶端的基本配置要有易用的圖形界面。
系統(tǒng)的接入平臺客戶端在某種意義上,可以看成是客戶機(jī)的服務(wù)器,它必須提供一個(gè)接入點(diǎn),方便用戶進(jìn)行接入認(rèn)證,以最終使用戶可以使用業(yè)務(wù)系統(tǒng),它必須具備以下功能:
1)必須具備密碼運(yùn)算功能。
2)必須能給用戶提供基于數(shù)字證書的認(rèn)證方式。
3)必須方便客戶使用,因此也要能實(shí)現(xiàn)基于挑戰(zhàn)/響應(yīng)的認(rèn)證方式。
4)必須對網(wǎng)絡(luò)中的用戶端和安全接入平臺服務(wù)器端之間的通信加密,加密要在用戶端無法察覺的情況下進(jìn)行,并且每次的加密密鑰都要重新商量。
5)必須能對平臺的操作進(jìn)行日志記錄,對于一些特別重要不能泄露的信息,必須能提供加密保存。
6)必須通過函數(shù)接口和授權(quán)管理模塊相連。
身份認(rèn)證經(jīng)過這么多年的發(fā)展,目前最常見的認(rèn)證方式有四種:基于口令簡單身份認(rèn)證機(jī)制,基于挑戰(zhàn)/響應(yīng)的簡單認(rèn)證機(jī)制,基于DCE/Kerberos的強(qiáng)認(rèn)證機(jī)制,基于數(shù)字證書的強(qiáng)認(rèn)證機(jī)制。
簡單認(rèn)證機(jī)制中一般使用一次性口令(OTP,One-Time Password)機(jī)制。比如在網(wǎng)絡(luò)上使用一次性動(dòng)態(tài)口令或者令牌來對用戶身份進(jìn)行認(rèn)證,這種認(rèn)證方式是最為常見的網(wǎng)絡(luò)認(rèn)證方式。這種機(jī)制最大的特別是由于其一次性特性,所以可以有效防止在網(wǎng)絡(luò)中傳輸信息時(shí)固定密碼被截取的情形,因其一次性故也不怕被反復(fù)攻擊?;谔魬?zhàn)/響應(yīng)的認(rèn)證機(jī)制是客戶端先發(fā)出認(rèn)證請求,服務(wù)器端發(fā)送挑戰(zhàn)碼,客戶端做出應(yīng)答,服務(wù)器端再返回最終的認(rèn)證結(jié)果,這樣一個(gè)過程,比如用于撥號用戶認(rèn)證和計(jì)費(fèi)的Radius協(xié)議就是這樣一種基于挑戰(zhàn)/應(yīng)答的認(rèn)證機(jī)制。
強(qiáng)認(rèn)證機(jī)制則不會(huì)讓口令直接在網(wǎng)絡(luò)中傳輸,它會(huì)用多種加密機(jī)制來保障信息和密鑰的安全性,比如Kerberos協(xié)議,需要事先雙向身份認(rèn)證;比如基于公共密鑰的認(rèn)證機(jī)制,需要一個(gè)權(quán)威的第三方來為發(fā)送方和接收方確認(rèn)身份。考慮到我們的平臺只需要單向解決服務(wù)器對客戶端的認(rèn)證,因此選擇了以下兩種認(rèn)證方式:
一是基于公共密鑰機(jī)制實(shí)現(xiàn)強(qiáng)身份認(rèn)證。所有的認(rèn)證方式,歸根結(jié)底,都可以最終分為兩個(gè)過程:認(rèn)證請求和正式認(rèn)證??梢院唵蔚剡@么理解,在客戶端和服務(wù)器端都同意的情況下,一個(gè)認(rèn)證過程才能正常開始,這樣可以減少很多不必要的開支,相當(dāng)于會(huì)話前先提好打好招呼,確認(rèn)雙方都在線,也相當(dāng)于一個(gè)認(rèn)證的開始,如圖3是認(rèn)證請求的詳細(xì)流程。
圖3 發(fā)送認(rèn)證請求流程
認(rèn)證請求成功之后,用戶可以進(jìn)行正式認(rèn)證,其認(rèn)證流程具體如下:
1)客戶端從Ukey中獲取用戶數(shù)字證書(一般格式是用戶信息+公鑰+數(shù)字摘要)。
2)客戶端利用密碼模塊產(chǎn)生一個(gè)對稱密碼,并采用某種加密算法對數(shù)字證書進(jìn)行加密,形成信體。
3)客戶端查找密碼模塊中已有的用戶私鑰,對上一步產(chǎn)生的對稱密碼進(jìn)行加密,形成信頭。
4)客戶端將強(qiáng)兩步形成的數(shù)據(jù)按信頭、信體的格式組裝起來并發(fā)送到客戶端。
5)等待服務(wù)器的響應(yīng),若服務(wù)器返回認(rèn)證成功信息則進(jìn)行下一步,否則顯示認(rèn)證失敗,退出認(rèn)證。
6)顯示認(rèn)證成功信息,并開始對通信數(shù)據(jù)進(jìn)行加解密服務(wù)。其具體流程圖如圖4所示:
圖4 基于公鑰的認(rèn)證流程
二是基于挑戰(zhàn)/響應(yīng)機(jī)制實(shí)現(xiàn)弱身份認(rèn)證。相對于強(qiáng)身份認(rèn)證而言,基于用戶口令的身份認(rèn)證的安全性是相對弱的。想要提高網(wǎng)絡(luò)安全性,就不能直接在網(wǎng)絡(luò)中傳輸口令,但是有沒有可以加密口令的東西,因此要采用挑戰(zhàn)/響應(yīng)機(jī)制,來提高其安全性。第一步與強(qiáng)認(rèn)證一樣,進(jìn)行認(rèn)證請求,發(fā)送用戶帳號至服務(wù)器端;根據(jù)返回信息來判斷賬號是否已經(jīng)存在,若是則進(jìn)行下一步,否則認(rèn)證失?。蛔x取服務(wù)器返回信息中的一個(gè)值,這個(gè)值的長度一般是約定好的比如16位,用用戶的口令通過約定好的加密算法來加密這個(gè)值,用戶再將加密后的這個(gè)值發(fā)送給服務(wù)器,即響應(yīng)服務(wù)器的挑戰(zhàn);最后根據(jù)服務(wù)器返回結(jié)果判斷此次認(rèn)證是否成功,若是則進(jìn)行下一步,否則認(rèn)證失敗。
但是這里一旦服務(wù)器端存在漏洞,則安全性就無從談起。因此我們在此基礎(chǔ)上,提出了加強(qiáng)安全性的進(jìn)一步構(gòu)思,具體如下:第一步與強(qiáng)認(rèn)證一樣,進(jìn)行認(rèn)證請求,發(fā)送用戶帳號至服務(wù)器端;根據(jù)返回信息來判斷賬號是否已經(jīng)存在,若是則進(jìn)行下一步,否則認(rèn)證失敗;在讀取服務(wù)器返回值之前,采用哈希散列法對用戶口令的摘要進(jìn)行加密,形成定長的口令密文;讀取服務(wù)器返回信息中的一個(gè)值,這個(gè)值的長度一般是約定好的比如16位,此時(shí)用剛才形成的口令秘文來加密這個(gè)值,用戶再將加密后的這個(gè)值發(fā)送給服務(wù)器,即響應(yīng)服務(wù)器的挑戰(zhàn);最后根據(jù)服務(wù)器返回結(jié)果判斷此次認(rèn)證是否成功,若是則進(jìn)行下一步,否則認(rèn)證失敗。
可以看出,我們不用約定的加密算法加密服務(wù)器返回值,而是對用戶口令的摘要進(jìn)行加密,形成定長的口令密文,后面再用這個(gè)口令密文加密服務(wù)器的返回值,那么就能明顯地?cái)U(kuò)大加密算法的選擇范圍,而且服務(wù)器也不用保存用戶的整個(gè)口令,只需要保存口令的摘要密文,不會(huì)影響用戶信息的安全。其詳細(xì)流程如圖5所示:
圖5 基于挑戰(zhàn)響應(yīng)機(jī)制的身份認(rèn)證
在用戶身份認(rèn)證成功之后,安全接入平臺客戶端可以在用戶不察覺的情況下,為后續(xù)的通信自動(dòng)進(jìn)行加解密,以保障用戶的通信安全。
目前,PKI技術(shù)已經(jīng)可以較好地滿足企業(yè)網(wǎng)絡(luò)安全的需求,能夠有效地提高互聯(lián)網(wǎng)中身份認(rèn)證、數(shù)據(jù)傳輸以及訪問控制等安全問題。文中設(shè)計(jì)的基于PKI技術(shù)的安全接入平臺,基本上可以滿足企業(yè)級的安全需求。本文所采用的身份認(rèn)證方式,也能最大限度地滿足當(dāng)前網(wǎng)絡(luò)環(huán)境下的信息安全需求。