陸武
(徐州市人事考試辦公室 江蘇省徐州市 221000)
伴隨著信息技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)及信息系統(tǒng)已經(jīng)充斥了人類(lèi)社會(huì)的各個(gè)行業(yè)。社會(huì)保險(xiǎn)作為國(guó)家和政府擔(dān)負(fù)的社會(huì)養(yǎng)老基本責(zé)任的體現(xiàn)點(diǎn)之一,也在積極實(shí)現(xiàn)社會(huì)保障業(yè)務(wù)的互聯(lián)網(wǎng)化。這一發(fā)展趨勢(shì)一方面極大提升了體系的運(yùn)行效率,有效確保了其社會(huì)保障功能的兌現(xiàn),另一方面也使得整個(gè)體系面臨著惡意攻擊和欺詐的威脅。常見(jiàn)的威脅包括病毒和木馬入侵、外部惡意攻擊以及系統(tǒng)自身漏洞等。因此有必要基于常規(guī)互聯(lián)網(wǎng)平臺(tái)和業(yè)務(wù)的安全需求,結(jié)合具備一定金融屬性的社會(huì)保險(xiǎn)系統(tǒng)安全需求,構(gòu)建一套面向社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)的安全體系,期望將PKI、安全構(gòu)件、數(shù)字簽名等元素納入其中,構(gòu)建一體化安全解決方案。
對(duì)于社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)來(lái)講,安全體系構(gòu)建的核心目標(biāo)是確保業(yè)務(wù)平穩(wěn)運(yùn)行,保護(hù)個(gè)人繳納數(shù)據(jù)、個(gè)人數(shù)據(jù)、核心系統(tǒng)數(shù)據(jù),提供系統(tǒng)身份認(rèn)證、權(quán)限檢驗(yàn)等目標(biāo)?;谏鲜鲈V求,本文基于PKI 和安全構(gòu)件,構(gòu)建一套安全防護(hù)方案。方案總體目標(biāo)可歸納如下:
(1)基于PKI 構(gòu)建社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)的CA 證書(shū)和身份認(rèn)證體系,以滿(mǎn)足外部用戶(hù)的身份鑒別訴求。
(2)基于外部安全構(gòu)件,利用成熟服務(wù)為社?;ヂ?lián)網(wǎng)業(yè)務(wù)進(jìn)行安全加固。
(3)構(gòu)建基于認(rèn)證協(xié)議和簽名的雙重身份認(rèn)證和準(zhǔn)入機(jī)制。
(4)對(duì)于系統(tǒng)內(nèi)部信息傳輸和存儲(chǔ),引入加密機(jī)制進(jìn)行信息防護(hù)。
(5)基于系統(tǒng)內(nèi)數(shù)據(jù)簽名,實(shí)現(xiàn)內(nèi)部信息完整性的保障。
(6)利用數(shù)字簽名構(gòu)建防篡改高可信度數(shù)據(jù)存儲(chǔ)和傳輸機(jī)制。
(7)基于PKI 以及集成的安全構(gòu)件,針對(duì)社?;ヂ?lián)網(wǎng)業(yè)務(wù)中的不同業(yè)務(wù)需求,進(jìn)行定制化安全防護(hù)。
(8)整套業(yè)務(wù)應(yīng)當(dāng)不限于當(dāng)前現(xiàn)有社會(huì)保險(xiǎn)業(yè)務(wù),能夠快捷、穩(wěn)定、便捷地?cái)U(kuò)展到更多領(lǐng)域。
針對(duì)所構(gòu)建的安全體系,應(yīng)當(dāng)設(shè)置一系列的功能或者非功能性標(biāo)準(zhǔn),為后續(xù)設(shè)計(jì)提供約束,確保安全體系符合設(shè)計(jì)預(yù)期。本文特別從安全性、安全構(gòu)件可復(fù)用性、方案可擴(kuò)展性、可管理性、適應(yīng)性等方面進(jìn)行標(biāo)準(zhǔn)定義。
(1)安全性,即系統(tǒng)應(yīng)當(dāng)在數(shù)據(jù)存儲(chǔ)、訪問(wèn)權(quán)限、連接傳輸、身份認(rèn)證方面具備較高的防護(hù)等級(jí)。
(2)安全構(gòu)件可復(fù)用性,即安全構(gòu)件應(yīng)當(dāng)能夠滿(mǎn)足上層應(yīng)用的通用性安全防護(hù)訴求。
(3)方案可擴(kuò)展性,即該安全體系應(yīng)當(dāng)能夠滿(mǎn)足未來(lái)一定時(shí)間內(nèi)的擴(kuò)展需要,具備適當(dāng)?shù)撵`活度。
(4)可管理性,即該安全體系應(yīng)當(dāng)有便捷的管理渠道和方法。
(5)適應(yīng)性,即該安全體系應(yīng)當(dāng)能夠有效適應(yīng)社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)以及相關(guān)的其他業(yè)務(wù)系統(tǒng)。
整個(gè)安全體系架構(gòu)主要分為三個(gè)層次,包括基礎(chǔ)設(shè)施平臺(tái)、安全構(gòu)件以及業(yè)務(wù)應(yīng)用。其中核心模塊主要如下:
2.3.1 數(shù)字證書(shū)管理
數(shù)字證書(shū)是常用在身份認(rèn)證過(guò)程和電子簽名中的核心。數(shù)字證書(shū)通常由具有較高公信力的CA 進(jìn)行簽發(fā),其中存儲(chǔ)了用戶(hù)身份信息。通過(guò)數(shù)字證書(shū)交換和認(rèn)證機(jī)制,互聯(lián)網(wǎng)上的用戶(hù)可以互相認(rèn)證對(duì)方的身份。用戶(hù)向CA 申請(qǐng)數(shù)字證書(shū),當(dāng)證書(shū)簽發(fā)后可進(jìn)行注冊(cè),并提供證書(shū)校驗(yàn)功能。此外管理系統(tǒng)應(yīng)當(dāng)提供對(duì)用戶(hù)證書(shū)進(jìn)行存檔校驗(yàn),以確認(rèn)證書(shū)是否在庫(kù)。
2.3.2 安全構(gòu)件
安全構(gòu)件是整套安全架構(gòu)中的核心,該模塊實(shí)質(zhì)上是一個(gè)對(duì)外的安全服務(wù)模塊,通過(guò)AES、DES、數(shù)字簽名等一系列核心安全服務(wù),允許外部系統(tǒng)直接對(duì)接和集成,并獲得相應(yīng)的高安全性基礎(chǔ)設(shè)施,其應(yīng)當(dāng)具備通用性和可擴(kuò)展性。
2.3.3 身份認(rèn)證
身份認(rèn)證是基于數(shù)字證書(shū)實(shí)現(xiàn)的一項(xiàng)具體業(yè)務(wù),其核心是:身份認(rèn)證協(xié)議和身份認(rèn)證的實(shí)現(xiàn)。
基于ISO 鑒別框架協(xié)議以及移動(dòng)公鑰和數(shù)字證書(shū),可實(shí)現(xiàn)在通信和業(yè)務(wù)流轉(zhuǎn)過(guò)程中的數(shù)據(jù)加密和身份認(rèn)證協(xié)議。
基于已經(jīng)構(gòu)建的身份認(rèn)證協(xié)議,利用面向?qū)ο蟮母呒?jí)程序設(shè)計(jì)語(yǔ)言,可以實(shí)現(xiàn)社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)與安全構(gòu)件的有效關(guān)聯(lián),實(shí)現(xiàn)身份認(rèn)證模塊。
2.3.4 電子政務(wù)相關(guān)應(yīng)用
社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)實(shí)質(zhì)上是具備電子政務(wù)屬性和背景的。根據(jù)是否涉及金融支付,可區(qū)分為數(shù)字化業(yè)務(wù)處理和數(shù)字化交易兩類(lèi)。前者主要用于應(yīng)對(duì)社會(huì)保險(xiǎn)辦理及過(guò)程管理等相關(guān)業(yè)務(wù),后者則涉及社會(huì)保險(xiǎn)申報(bào)、繳費(fèi)等金融功能。
本次安全體系選用WTSL 證書(shū)作為數(shù)字證書(shū)。該證書(shū)屬于PKI證書(shū),功能類(lèi)似x.509,但更加輕量級(jí),適用于包含輕客戶(hù)端的系統(tǒng)。由于其基于PKI 構(gòu)建,因此也適用于基于標(biāo)準(zhǔn)PKI 的安全體系。
該證書(shū)信息域如下:
(1)版本號(hào),主要對(duì)證書(shū)的版本進(jìn)行標(biāo)注。
(2)簽名算法,對(duì)外指定本證書(shū)的簽名算法,在該證書(shū)上就是ECC。
(3)頒發(fā)者名稱(chēng),注明證書(shū)的頒發(fā)方,以供應(yīng)用程序進(jìn)行認(rèn)證,應(yīng)用程序需要能夠在其證書(shū)頒發(fā)者中枚舉出該證書(shū)頒發(fā)方。
(4)有效期,用于注明證書(shū)的有效起止時(shí)間,以控制證書(shū)的使用時(shí)間。
(5)主題,用于注明證書(shū)自身相關(guān)的描述信息,以便于應(yīng)用進(jìn)行識(shí)別。
(6)公鑰類(lèi)型,標(biāo)明該證書(shū)的公鑰類(lèi)型。
(7)公鑰主題信息,用于對(duì)公鑰主題進(jìn)行定義。常見(jiàn)RSA 和ECC。
(8)頒發(fā)者簽名,用于存儲(chǔ)頒發(fā)者的簽名信息。
數(shù)字證書(shū)管理需要滿(mǎn)足獲取證書(shū)、獲取證書(shū)內(nèi)容、獲取證書(shū)ID、起止有效期校驗(yàn)等等功能,這里通過(guò)CCeret 類(lèi)對(duì)其進(jìn)行實(shí)現(xiàn)。該類(lèi)中定義了證書(shū)相關(guān)的域信息以及獲取證書(shū)對(duì)象、獲取公鑰、獲取證書(shū)ID 等功能函數(shù)。
管理流程:系統(tǒng)通過(guò)安全構(gòu)件,對(duì)證書(shū)實(shí)體進(jìn)行獲取。通過(guò)CCert 類(lèi),對(duì)該證書(shū)進(jìn)行獲取和關(guān)鍵信息獲取,并將包括公鑰、證書(shū)ID、證書(shū)對(duì)象在內(nèi)的數(shù)據(jù)提交至服務(wù)端的證書(shū)注冊(cè)接口。此后服務(wù)端將證書(shū)進(jìn)行對(duì)比后,返回用戶(hù)ID 及相關(guān)必要信息,并將證書(shū)存檔,完成整個(gè)功能邏輯。
在實(shí)現(xiàn)過(guò)程中,服務(wù)實(shí)體類(lèi)首先調(diào)用GetFactoryInstance 方法,獲取一個(gè)ESCEngineFactory 類(lèi)實(shí)體。若獲取成功,則可以通過(guò)這個(gè)實(shí)體調(diào)用GetSecurityInstance 獲得一個(gè)可供調(diào)用的安全服務(wù)的活動(dòng)實(shí)體。此后,需要先后調(diào)用Initialize 和LoadProvider 函數(shù),對(duì)獲取到的安全服務(wù)實(shí)體進(jìn)行初始化和使能,激活該模塊,使得其能夠?yàn)楹罄m(xù)的功能和業(yè)務(wù)服務(wù)。當(dāng)完成安全服務(wù)實(shí)體的使用后,可通過(guò)調(diào)用Release 函數(shù)實(shí)現(xiàn)實(shí)體的釋放。
以獲取數(shù)字簽名為例,在本例中數(shù)字簽名采用ECC 算法,而消息摘要采用MD5。則初始化后,需要調(diào)用GetSecureRandom Instance 并傳入MD5ECC 和WinCEProvider,以指定算法和provider。
這里通過(guò)上述方法獲得了一個(gè)簽名對(duì)象,即ESCSignature 類(lèi)實(shí)例。此后調(diào)用SetKey,并傳入一個(gè)私鑰,實(shí)現(xiàn)私鑰的設(shè)置。至此該模塊就具備了簽名的能力,通過(guò)調(diào)研用Sign,并傳入消息和輸出地址,將消息進(jìn)行簽名并輸出。為驗(yàn)證簽名是否正確,調(diào)用SetKey設(shè)置公鑰,并調(diào)用Verify,傳入消息本身和經(jīng)過(guò)簽名的消息,如果驗(yàn)證通過(guò),則簽名成功。
在邏輯的最后,需要手動(dòng)調(diào)用Reset 函數(shù)重置獲取到的證書(shū),確保其在內(nèi)存被銷(xiāo)毀,最后調(diào)用Release 釋放對(duì)象。
本次設(shè)計(jì)的社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)安全體系中,一方面將數(shù)字簽名用于身份認(rèn)證,另一方面將數(shù)字簽名用于內(nèi)容認(rèn)證。在該模式下,存在一個(gè)第三方CA 充當(dāng)信任中介。用戶(hù)通過(guò)向CA 申請(qǐng)數(shù)字證書(shū),并利用證書(shū)在第三方進(jìn)行身份認(rèn)證或者提交自己簽名的信息給其他用戶(hù)。此時(shí),交互雙方均可以向CA 請(qǐng)求身份驗(yàn)證,以建立信任關(guān)系。
本次所設(shè)計(jì)的社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)安全體系,其所使用的身份認(rèn)證協(xié)議是基于基于移動(dòng)公鑰和ISO 鑒別框架完成的,選用雙向協(xié)議。該類(lèi)型協(xié)議具備較高的機(jī)密性,也難以被干擾。
AB 雙方通常首先到CA 獲取能夠到達(dá)對(duì)方的的證書(shū)路徑和密鑰,并基于雙向協(xié)議進(jìn)行認(rèn)證。圖1 可見(jiàn)雙向協(xié)議的認(rèn)證邏輯。
圖1:雙向協(xié)議認(rèn)證邏輯
基于上述所選擇和設(shè)計(jì)的認(rèn)證協(xié)議,本次研究特別設(shè)計(jì)了Section 類(lèi)、Licence 類(lèi)、CSign 類(lèi)、CVerify 類(lèi)以及AuthenHelper 類(lèi),分別應(yīng)對(duì)系統(tǒng)對(duì)于秘密信息段、對(duì)業(yè)務(wù)中的私密消息、數(shù)字簽名過(guò)程、簽名認(rèn)證及數(shù)據(jù)傳輸?shù)鹊墓芾順I(yè)務(wù)的實(shí)現(xiàn)。
Section 類(lèi)中定義了本次通信所需要的證書(shū)路徑,同時(shí)定義了包括寫(xiě)數(shù)據(jù)、讀數(shù)據(jù)、操作選擇等函數(shù),以實(shí)現(xiàn)相應(yīng)功能。
Licence 用于定義Licence 的結(jié)構(gòu)和一些功能,包括獲取Licence 對(duì)象內(nèi)容、Section 對(duì)象的管理等操作。
CSign 類(lèi)用于實(shí)現(xiàn)系統(tǒng)的簽名功能,提供了包括獲取私鑰、公鑰長(zhǎng)度、簽名方名稱(chēng)、系統(tǒng)功能的函數(shù),同時(shí)提供了簽名功能的實(shí)現(xiàn)函數(shù)。
CVerify 類(lèi)則主要提供ESC 認(rèn)證和公鑰獲取函數(shù)。
AuthenHelper 負(fù)責(zé)完成數(shù)據(jù)的傳輸,提供包括獲取服務(wù)端buffer 長(zhǎng)度、向header 或者body 中寫(xiě)入數(shù)據(jù)、傳輸數(shù)據(jù)以及獲取數(shù)據(jù)回應(yīng)等等函數(shù)。
實(shí)務(wù)中,用戶(hù)側(cè)首先進(jìn)行證書(shū)獲取,并基于獲取到的證書(shū)鏈,構(gòu)建通信所需的section 對(duì)象信息。此后利用AuthenHelper 將其傳遞到服務(wù)端,由服務(wù)端保存并下發(fā)隨機(jī)種子。服務(wù)端在驗(yàn)證時(shí),將客戶(hù)端簽名的信息進(jìn)行獲取,并進(jìn)行簽名驗(yàn)證,以確認(rèn)是否有通信的權(quán)限。
本文基于社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)的實(shí)際需求,對(duì)相應(yīng)的安全體系進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。該體系利用數(shù)字證書(shū)和安全構(gòu)件,通過(guò)設(shè)計(jì)身份認(rèn)證管理模式、交互協(xié)議和身份認(rèn)證過(guò)程,實(shí)現(xiàn)了基于PKI 的社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)安全體系的構(gòu)建。一方面進(jìn)一步提升了社會(huì)保險(xiǎn)互聯(lián)網(wǎng)業(yè)務(wù)的安全性和穩(wěn)定性,另一方面也為相應(yīng)業(yè)務(wù)的安全性擴(kuò)展提供了可能。