程國(guó)青
[摘 要]數(shù)字證書(shū)是互聯(lián)網(wǎng)應(yīng)用中身份安全的重要技術(shù)保障。證書(shū)機(jī)構(gòu)大量簽發(fā)的數(shù)字證書(shū)往往都是綁定單一應(yīng)用系統(tǒng),在給用戶帶來(lái)不便的同時(shí),也增加了社會(huì)成本。本文深入研究了數(shù)字證書(shū)的結(jié)構(gòu)和安全機(jī)制,并提出了一證多用技術(shù),以通過(guò)證書(shū)服務(wù)器解決一證多用中數(shù)字證書(shū)的多樣性和復(fù)雜性。
[關(guān)鍵詞]數(shù)字證書(shū);一證多用;身份安全
doi:10.3969/j.issn.1673 - 0194.2017.06.093
[中圖分類號(hào)]TP393.08 [文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1673-0194(2017)06-0-03
0 引 言
隨著Internet的普及和發(fā)展,電子商務(wù)活動(dòng)和電子政務(wù)活動(dòng)已成為大眾日常生活的一部分?;ヂ?lián)網(wǎng)環(huán)境下存在著大量的應(yīng)用服務(wù)和互不相識(shí)的眾多用戶,這些互聯(lián)網(wǎng)上的“實(shí)體”如何識(shí)別彼此和保障通訊安全,一直伴隨著互聯(lián)網(wǎng)的發(fā)展而存在。
數(shù)字證書(shū)(CA)是互聯(lián)網(wǎng)中標(biāo)志通訊各方身份信息的一串字符,它提供一種在互聯(lián)網(wǎng)上驗(yàn)證通信實(shí)體身份的方式。它是由權(quán)威機(jī)構(gòu)證書(shū)授權(quán)中心簽發(fā)的,可以用來(lái)在互聯(lián)網(wǎng)上識(shí)別通訊對(duì)方的身份。數(shù)字證書(shū)的應(yīng)用已經(jīng)十分普遍和廣泛,如發(fā)送安全電子郵件、訪問(wèn)安全站點(diǎn)、網(wǎng)上招標(biāo)投標(biāo)、網(wǎng)上簽約、網(wǎng)上購(gòu)物、公文安全傳送、網(wǎng)上繳費(fèi)、網(wǎng)上繳稅和網(wǎng)上報(bào)關(guān)等。
隨著網(wǎng)絡(luò)安全意識(shí)的加強(qiáng)和各類應(yīng)用的推廣,在數(shù)字證書(shū)授權(quán)機(jī)構(gòu)的推動(dòng)下,數(shù)字證書(shū)的發(fā)行數(shù)量越來(lái)越多。很多時(shí)候一個(gè)應(yīng)用系統(tǒng)就要有一張相應(yīng)的數(shù)字證書(shū),且各個(gè)應(yīng)用的數(shù)字證書(shū)互不通用。如網(wǎng)銀用戶使用農(nóng)業(yè)銀行網(wǎng)銀時(shí),要用農(nóng)業(yè)銀行的數(shù)字證書(shū),工商銀行的網(wǎng)銀要使用工商銀行的數(shù)字證書(shū);在不同城市的公共資源交易服務(wù)中心投標(biāo)時(shí),要辦理不同的數(shù)字證書(shū)進(jìn)行投標(biāo)。
1 數(shù)字證書(shū)相關(guān)技術(shù)分析
1.1 數(shù)字證書(shū)的格式
數(shù)字證書(shū)的格式普遍采用的是國(guó)際標(biāo)準(zhǔn)X.509格式,一個(gè)標(biāo)準(zhǔn)的X.509數(shù)字證書(shū)一般包含以下信息:①證書(shū)的版本信息-Version;②證書(shū)的序列號(hào),每張證書(shū)有唯一的證書(shū)序列號(hào)-Serial Number;③證書(shū)所使用的簽名算法- Algorithm Identifier;④證書(shū)的發(fā)行機(jī)構(gòu)名稱- Issuer,命名規(guī)則一般采用X.500格式;⑤證書(shū)的有效期- Period of Validity,一般采用UTC時(shí)間格式;⑥證書(shū)所有人的名稱- Subject,命名規(guī)則一般采用X.500格式;⑦證書(shū)所有人的公開(kāi)密鑰- Subject's Public Key;⑧證書(shū)發(fā)行者對(duì)證書(shū)的簽名- Signature。
數(shù)字證書(shū)存儲(chǔ)文件的格式通常有.cer格式文件和.pfx格式文件。PKCS#12標(biāo)準(zhǔn)定義,帶有私鑰的證書(shū)文件一般以.pfx為文件后綴名,以.cer為文件后綴名的是不包含私鑰的證書(shū)文件,p7b格式文件是證書(shū)鏈存儲(chǔ)文件,包含一張或多張數(shù)字證書(shū),不包含私鑰。證書(shū)文件編碼可以是DER二進(jìn)制編碼格式或者是BASE64編碼格式。
1.2 數(shù)字證書(shū)的工作原理
數(shù)字證書(shū)采用PKI(Public Key Infrastructure)公開(kāi)密鑰基礎(chǔ)架構(gòu)技術(shù),即利用一對(duì)相互匹配的公、私密鑰進(jìn)行加密和解密。證書(shū)用戶設(shè)定僅為本人所知的私有密鑰(以下簡(jiǎn)稱私鑰),并用它進(jìn)行解密和簽名。同時(shí)對(duì)應(yīng)匹配的這個(gè)私鑰有一個(gè)公開(kāi)密鑰(以下簡(jiǎn)稱公鑰),公鑰可以發(fā)布給通訊相關(guān)方,用于對(duì)端的加密和驗(yàn)證簽名。當(dāng)需要傳遞保密信息時(shí),發(fā)送方使用接收方的公鑰對(duì)數(shù)據(jù)加密,接收方收到加密數(shù)據(jù)后,使用私鑰進(jìn)行解密。PKI技術(shù)保證加、解密過(guò)程是一個(gè)不可逆的過(guò)程,即只能用私鑰解密公鑰加密的數(shù)據(jù)。用戶也可以用私鑰簽名要發(fā)送的數(shù)據(jù),形成數(shù)字簽名,這個(gè)數(shù)字簽名只能用對(duì)應(yīng)的公鑰解密,以驗(yàn)證簽名,數(shù)字簽名有防抵賴性和防篡改性。簽名與驗(yàn)證簽名流程示意圖,如圖1所示。
在公開(kāi)密碼基礎(chǔ)架構(gòu)技術(shù)中,最常用的非對(duì)稱算法是RSA算法,其數(shù)學(xué)原理是將一個(gè)超大數(shù)分解質(zhì)因數(shù),私鑰和公鑰是2個(gè)匹配的質(zhì)因數(shù),從數(shù)學(xué)邏輯上講,在已知明文、密文和公鑰的情況下,很難推導(dǎo)出私鑰。在這樣的數(shù)學(xué)原理上數(shù)字簽名可以保障以下2點(diǎn):①簽名者不能否認(rèn)自己所發(fā)的信息;②信息自簽發(fā)后到接收方收文的過(guò)程中未被修改過(guò),簽名的文件是真實(shí)文件。數(shù)字證書(shū)是綁定了公鑰和其私鑰持有者真實(shí)身份的文件,并經(jīng)過(guò)認(rèn)證中心審核簽發(fā)的電子數(shù)據(jù)??梢苑奖憧旖莸卦诨ヂ?lián)上做身份識(shí)別和傳遞加密數(shù)據(jù)。
1.3 數(shù)字證書(shū)的簽發(fā)過(guò)程
數(shù)字證書(shū)通常是由CA證書(shū)中心(通稱CA機(jī)構(gòu))創(chuàng)建和簽發(fā),CA機(jī)構(gòu)為一個(gè)稱為安全域(security domain)的有限群體發(fā)放證書(shū)。創(chuàng)建證書(shū)時(shí),CA機(jī)構(gòu)首先要獲取用戶的證書(shū)請(qǐng)求信息,其中包括用戶公鑰(公鑰一般由用戶端產(chǎn)生,如電子郵件程序、瀏覽器、U-KEY等),CA機(jī)構(gòu)根據(jù)用戶的請(qǐng)求信息產(chǎn)生證書(shū),并用CA機(jī)構(gòu)的私鑰對(duì)證書(shū)進(jìn)行簽名。其他用戶、應(yīng)用程序或?qū)嶓w將使用CA機(jī)構(gòu)的公鑰對(duì)證書(shū)進(jìn)行驗(yàn)證。如果CA機(jī)構(gòu)是可信的機(jī)構(gòu),則驗(yàn)證證書(shū)的用戶可以確信,其所驗(yàn)證的證書(shū)是代表著一個(gè)可信的實(shí)體。
國(guó)家授權(quán)的CA機(jī)構(gòu)同時(shí)要負(fù)責(zé)維護(hù)和發(fā)布證書(shū)廢除列表CRL(即證書(shū)黑名單)。當(dāng)一個(gè)證書(shū)的公鑰因故無(wú)效時(shí)或證書(shū)需要注銷(xiāo)時(shí),CRL提供了一種通知用戶和其他應(yīng)用的管理方式。CA系統(tǒng)生成CRL以后,通常會(huì)放到LDAP服務(wù)器或Web服務(wù)器中,供用戶直接查詢或下載。
一個(gè)典型的CA機(jī)構(gòu)的證書(shū)簽發(fā)系統(tǒng)會(huì)包括安全加密服務(wù)器、注冊(cè)RA服務(wù)器、CA服務(wù)器、LDAP目錄服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器等。如圖2所示。
1.4 數(shù)字證書(shū)的應(yīng)用
CA機(jī)構(gòu)簽發(fā)的數(shù)據(jù)證書(shū)大體有個(gè)人數(shù)字證書(shū)、企業(yè)數(shù)字證書(shū)、服務(wù)器數(shù)字證書(shū)、代碼簽名數(shù)字證書(shū)等幾種類型。數(shù)字證書(shū)廣泛應(yīng)用在電子政務(wù)、電子商務(wù)、內(nèi)部信息化管理等領(lǐng)域。其應(yīng)用范圍涉及需要身份認(rèn)證及數(shù)據(jù)安全的各個(gè)行業(yè),包括傳統(tǒng)的商業(yè)、制造業(yè)、流通業(yè)的網(wǎng)上交易以及行政公共事業(yè)、金融服務(wù)業(yè)、工商稅務(wù)海關(guān)、政府行政辦公、教育科研單位、保險(xiǎn)和醫(yī)療等網(wǎng)上業(yè)務(wù)系統(tǒng)。典型的應(yīng)用場(chǎng)景有網(wǎng)上購(gòu)物、企業(yè)與企業(yè)的電子貿(mào)易、安全電子郵件、網(wǎng)上證券交易、網(wǎng)上銀行、網(wǎng)上招投標(biāo)、網(wǎng)上報(bào)稅和行政申報(bào)等方面。
2 一證多用的技術(shù)實(shí)現(xiàn)
2.1 需求分析
由于數(shù)字證書(shū)自身的安全特點(diǎn),如信息保密、不可篡改、抗抵賴等。這些特性可以較好地滿足互聯(lián)網(wǎng)交易中的安全需求。隨著互聯(lián)網(wǎng)和信息化應(yīng)用的發(fā)展,數(shù)字證書(shū)的應(yīng)用領(lǐng)域在不斷拓寬,應(yīng)用深度也在不斷加深。如國(guó)內(nèi)各大銀行的網(wǎng)銀系統(tǒng)都需要數(shù)字證書(shū)登錄使用。
隨著數(shù)字證書(shū)的應(yīng)用推廣,隨之而來(lái)的一個(gè)普遍問(wèn)題是,用戶發(fā)現(xiàn)自己具有為使用不同應(yīng)用系統(tǒng)所發(fā)放的不同數(shù)字證書(shū)。如各家銀行的網(wǎng)銀證書(shū)(每家網(wǎng)銀都對(duì)應(yīng)有自己的數(shù)字證書(shū))、單位報(bào)稅的稅務(wù)證書(shū)、公司辦公業(yè)務(wù)系統(tǒng)的身份證書(shū)等。這些數(shù)字證書(shū)對(duì)應(yīng)不同的應(yīng)用系統(tǒng),分別由不同的CA機(jī)構(gòu)簽發(fā)。
對(duì)普通用戶來(lái)說(shuō),保管好這些證書(shū)(U-KEY)并記住這些數(shù)字證書(shū)的對(duì)應(yīng)密碼就是一件不簡(jiǎn)單的任務(wù),同時(shí)用戶還要在自己的電腦設(shè)備上安裝不同證書(shū)對(duì)應(yīng)的證書(shū)驅(qū)動(dòng)管理程序。對(duì)國(guó)家社會(huì)來(lái)講,大量反復(fù)發(fā)放的數(shù)字證書(shū),大大增加了社會(huì)成本,而這些數(shù)字證書(shū)幾乎都在解決一個(gè)相似的安全問(wèn)題,造成了不必要的社會(huì)浪費(fèi)。
鑒于此,數(shù)字證書(shū)的一證多用問(wèn)題逐漸被社會(huì)所關(guān)注。即用戶能否通過(guò)一家合法機(jī)構(gòu)簽發(fā)的一張數(shù)字證書(shū)即可登錄多個(gè)不同的應(yīng)用系統(tǒng),并完成自己網(wǎng)絡(luò)、工作、生活的需要。
2.2 設(shè)計(jì)與實(shí)現(xiàn)
根據(jù)文中的需求分析,筆者對(duì)方案的總體設(shè)計(jì)思想如下。
(1)依托電子簽名法,采用擁有《電子認(rèn)證服務(wù)許可證》的合法第三方認(rèn)證服務(wù)機(jī)構(gòu)簽發(fā)的證書(shū)。
(2)通過(guò)認(rèn)證服務(wù)的“中間件”,實(shí)現(xiàn)數(shù)字證書(shū)與應(yīng)用的無(wú)縫集成,從而實(shí)現(xiàn)應(yīng)用的身份認(rèn)證、信息保密性和完整性。并可在關(guān)鍵業(yè)務(wù)環(huán)節(jié)使用數(shù)字簽名和防抵賴,建立安全可靠的認(rèn)定機(jī)制。
(3)最大程度上減少客戶端安裝使用的復(fù)雜性,本方案將客戶端證書(shū)生命周期管理、注銷(xiāo)管理移動(dòng)到認(rèn)證服務(wù)“中間件”中完成,方便用戶獲取和使用數(shù)字證書(shū)服務(wù)。
(4)認(rèn)證服務(wù)“中間件”可以支持多種形態(tài)和不同認(rèn)證機(jī)構(gòu)簽發(fā)的符合X.509標(biāo)準(zhǔn)格式的數(shù)字證書(shū),也包括文件證書(shū)和硬件介質(zhì)證書(shū)等。
(5)本方案要最大程序減少對(duì)業(yè)務(wù)系統(tǒng)的影響,本方案技術(shù)實(shí)現(xiàn)要對(duì)業(yè)務(wù)系統(tǒng)的透明化,以方便現(xiàn)有的業(yè)務(wù)系統(tǒng)升級(jí)改造,實(shí)現(xiàn)系統(tǒng)的最小改造代價(jià)。
(6)本方案技術(shù)的實(shí)現(xiàn)要最大利用用戶手上現(xiàn)有的數(shù)字證書(shū)和設(shè)備,最大化地節(jié)約用戶使用成本和社會(huì)運(yùn)行成本。
考慮到用戶端設(shè)備環(huán)境的復(fù)雜性和證書(shū)的多樣性,要實(shí)現(xiàn)一證多用,其難度很大。本方案是通過(guò)在應(yīng)用系統(tǒng)與用戶端證書(shū)之間增加一臺(tái)或多臺(tái)證書(shū)服務(wù)器(包含有認(rèn)證服務(wù)“中間件”),通過(guò)證書(shū)服務(wù)器解決一證多用的困難。證書(shū)服務(wù)器要實(shí)現(xiàn):①支持對(duì)不同證書(shū)機(jī)構(gòu)所簽發(fā)證書(shū)的證書(shū)鏈驗(yàn)證;②完成對(duì)數(shù)字證書(shū)所代表的用戶身份與后端業(yè)務(wù)系統(tǒng)中的用戶身份綁定;③完成對(duì)數(shù)字證書(shū)有效期及CRL黑名單的驗(yàn)證;④對(duì)通過(guò)身份驗(yàn)證的用戶建立SSL安全通道,確保用戶的安全鏈接。證書(shū)服務(wù)器介于數(shù)字證書(shū)用戶與業(yè)務(wù)系統(tǒng)之間,為不同數(shù)字證書(shū)用戶與業(yè)務(wù)系統(tǒng)之間構(gòu)建一條安全可靠的通訊鏈路,其總體應(yīng)用架構(gòu)設(shè)計(jì)如圖3所示。
本方案的一證多用系統(tǒng)是對(duì)現(xiàn)有業(yè)務(wù)系統(tǒng)的升級(jí)部署,其主要工作集中在服務(wù)端完成,對(duì)系統(tǒng)的普通用戶來(lái)說(shuō)是基本透明,對(duì)用戶的正常使用系統(tǒng)影響很小。其部署周期和升級(jí)成本都相對(duì)較小,一般完成升級(jí)部署需要經(jīng)過(guò)以下幾個(gè)部署過(guò)程。
(1)安裝配置數(shù)字證書(shū)服務(wù)器設(shè)備。
(2)根據(jù)業(yè)務(wù)系統(tǒng)支持的證書(shū)情況,向數(shù)字證書(shū)服務(wù)器導(dǎo)入對(duì)應(yīng)的證書(shū)鏈文件,可以一次性導(dǎo)入,也可以后期逐步導(dǎo)入。
(3)完成用戶證書(shū)與業(yè)務(wù)系統(tǒng)賬號(hào)的身份影射和綁定,可以在數(shù)字證書(shū)上批量綁定,也可以讓用戶自己使用原賬號(hào)登錄系統(tǒng)后自助綁定。
(4)完成身份綁定后,業(yè)務(wù)系統(tǒng)關(guān)閉原來(lái)的身份驗(yàn)證方式,如口令、密碼驗(yàn)證。
3 結(jié) 語(yǔ)
身份認(rèn)證是互聯(lián)網(wǎng)應(yīng)用安全的第一道關(guān)卡,是確保合法用戶安全使用系統(tǒng)的基礎(chǔ)。數(shù)字證書(shū)是目前被普遍認(rèn)可的身份安全認(rèn)證技術(shù),但數(shù)字證書(shū)一方面使用和維護(hù)成本高,另一方面大量數(shù)字證書(shū)閑置率高,利用率低。一證多用技術(shù)可以最大化節(jié)約社會(huì)成本,提高互聯(lián)網(wǎng)應(yīng)用的安全性。本文設(shè)計(jì)和實(shí)現(xiàn)的一證多用系統(tǒng),采用了成熟軟件架構(gòu)和安全技術(shù)實(shí)現(xiàn)各模塊的功能,系統(tǒng)具有良好的擴(kuò)展性和易維護(hù)性,業(yè)務(wù)系統(tǒng)升級(jí)成本低,系統(tǒng)采用的技術(shù)路線和設(shè)計(jì)方法是有效和可行的,且方案對(duì)安全性要求較高的信息化項(xiàng)目可提供基礎(chǔ)的安全支撐。
主要參考文獻(xiàn)
[1]李星宜,李陶深,葛志輝,等.基于數(shù)字證書(shū)的身份認(rèn)證系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011(12).
[2]管軍.基于數(shù)字證書(shū)認(rèn)證機(jī)制的應(yīng)用研究[J].信息化研究,2010(3).
[3]彭英慧,劉海豐.基于數(shù)字證書(shū)X.509的身份認(rèn)證系統(tǒng)的研究[J].計(jì)算機(jī)安全,2008(11).
[4]水仲飛,李承浩.一種基于X.509的USB Key政務(wù)環(huán)境身份認(rèn)證方案[J].電子技術(shù)設(shè)計(jì)與運(yùn)用,2010(1).