陳怡丹 李馥娟
(江蘇警官學(xué)院計算機信息與網(wǎng)絡(luò)安全系 南京 210031)(2632470270@qq.com)
安全與應(yīng)用如影相伴.隨著互聯(lián)網(wǎng)應(yīng)用范圍和領(lǐng)域的進一步拓展,網(wǎng)絡(luò)安全問題越來越突出并引起社會各界的普遍關(guān)注,各類有針對性的網(wǎng)絡(luò)攻擊嚴重影響著互聯(lián)網(wǎng)應(yīng)用向著縱深發(fā)展.近年來,電子商務(wù)、電子政務(wù)等在線應(yīng)用的發(fā)展越來越快,廣泛應(yīng)用于人們的生產(chǎn)生活中,在這一過程中,用戶身份的真實性、數(shù)據(jù)傳輸?shù)陌踩?、終端接入的可信性等問題日益受到重視.在此情況下,數(shù)字證書作為一種網(wǎng)絡(luò)安全機制出現(xiàn),為身份授權(quán)管理、代碼簽名保護、可信網(wǎng)站服務(wù)、安全終端保護、安全電子郵件等應(yīng)用提供了必要的安全保障.然而,安全是相對的,任何一種安全技術(shù)在解決了某一類安全問題的同時,其自身存在的不安全因素以及應(yīng)用過程中衍生出的安全隱患也應(yīng)引起足夠重視[1-3].本文基于目前普遍使用的公鑰基礎(chǔ)設(shè)施 (public key infrastructure, PKI),以典型的RSA算法和廣泛使用的USBKey數(shù)字證書為研究對象,在系統(tǒng)介紹PKI體系及相關(guān)技術(shù)實現(xiàn)原理和主要功能的基礎(chǔ)上,分析數(shù)字證書存在的安全問題,并提出相應(yīng)的解決方法和思路.
1976年,為解決在公共網(wǎng)絡(luò)中傳輸信息和進行密鑰交換的需要,美國學(xué)者Diffie和Hellman提出了公鑰密鑰機制的設(shè)想;接著,Merkle和Hellman提出了基于該設(shè)想的MH背包公鑰密碼算法,它是1個非對稱算法,該算法的特點是生成的1個私鑰同時對應(yīng)多個公鑰,其中私鑰自己保存,而公鑰分發(fā)給他人用于加密文件,一個私鑰可以同時解密由多個公鑰加密后的文件,MH背包公鑰密碼算法只是公鑰密鑰的一個雛形,而不是真正意義上的公鑰密鑰加密機制;1978年,由Rivest,Shamir,Adleman共同提出了RSA算法,成為第1個安全、實用的公鑰加密算法,是對傳統(tǒng)對稱加密機制的一次重要革命.
與對稱加密算法不同,公鑰密鑰加密(非對稱加密)算法要求生成的密鑰是成對出現(xiàn)的,其中一個為可以公開的公鑰,另一個為不能公開的私鑰,而且不能從一個公鑰推導(dǎo)出對應(yīng)的私鑰,同時公鑰加密的文件不能用公鑰解密,私鑰加密的文件無法用私鑰解密.RSA算法是一個典型的公鑰密鑰算法,另外還有EIGamal,Rabin,ECC等算法.
公鑰加密機制為數(shù)字證書的實現(xiàn)提供了技術(shù)支撐,PKI為數(shù)字證書的應(yīng)用提供了平臺保障.PKI是以公鑰密鑰算法為理論基礎(chǔ)提出的一套安全服務(wù)體系,其主要內(nèi)容包括數(shù)字證書、具體的公鑰密鑰算法、證書頒發(fā)機制 (certificate authority, CA)等.其中CA是PKI的核心,它是一個可靠、可信的第三方權(quán)威機構(gòu),負責數(shù)字證書的簽發(fā)和管理.
數(shù)字證書是由CA經(jīng)過簽名后頒發(fā)的一個具有特殊功能的電子文檔,它與實體(用戶、終端等)身份一一對應(yīng).證書的內(nèi)容包含Version(證書版本)、Serial Number(序列號)、Algorithm Identifier(簽名算法)、Issuer(身份驗證機構(gòu))、Period of Validity(證書有效期)、Subject(證書技術(shù)者)、Subject’s Public Key(證書技術(shù)者的公鑰)和Signature(CA對證書的簽名),具體內(nèi)容在X.509標準中進行定義.
RSA算法的理論基礎(chǔ)是基于一種特殊的可逆模指數(shù)運算,算法描述如下:
1) 選擇2個大素數(shù)p和q,在實際應(yīng)用中一般要求大于1 024 b,在安全性要求較高的領(lǐng)域建議大于2 048 b;
2) 計算n=p×q,φ(n)=(p-1)(q-1),其中φ(n)為n的歐拉函數(shù);
3) 隨機選取一個正整數(shù)e(1 4) 用歐幾里得擴展算法計算私鑰d,以滿足d×e=1(modφ(n)),即d≡e-1(modφ(n)).則e和n是公鑰,d是私鑰. 從算法的實現(xiàn)過程可以看出,RSA算法的安全性在很大程度上取決于對大整數(shù)的素數(shù)分解問題,即模數(shù)n被分解為素因子p與q的過程.目前,隨著計算機處理能力的增強和分析算法的不斷優(yōu)化,解決這一問題已不再是難題,只是算力和運算時間的問題.對RSA算法的攻擊主要體現(xiàn)在以下2個方面: 1) 因子分解法. 2) 針對參數(shù)的攻擊[4-6]. 可以利用RSA算法實現(xiàn)過程中對參數(shù)選擇的不當,從而實現(xiàn)對算法的攻擊.主要表現(xiàn)為以下3個方面: ② 低指數(shù)攻擊.低指數(shù)攻擊主要是由于過于追求加密的高效性,而選擇了較小的加密密鑰e,由此帶來了安全隱患.同樣,解密密鑰d也不能取得太小.在實踐中已經(jīng)證明,如果d ③ 素因子攻擊.假設(shè)攻擊者獲得了密文c,可以進行重復(fù)加密:ce≡(me)e≡me2(modn),ce2≡(me)e2≡me3(modn),…,cet≡(me)et≡met+1(modn),如果cet(modn)≡c(modn),即(met)e(modn)≡c(modn),則有met≡m(modn),即(cet-1)≡m(modn),由此可以看出,在重復(fù)加密的倒數(shù)第2步就已經(jīng)恢復(fù)出了明文m.為此,如果要提高RSA算法的抗攻擊性,在選擇素因素p和q時,必須保證t足夠大. 針對存在的安全威脅,可以重點從密鑰長度和參數(shù)選擇2個方面加強RSA密碼機制的安全防御能力. 2.3.1 密鑰長度 RSA加密機制中密鑰長度的確定需要在安全性與效率之間取得平衡,密鑰越長,抗攻擊能力越強,但效率會降低.在具體設(shè)計和部署一個RSA加密系統(tǒng)時,要充分考慮網(wǎng)絡(luò)環(huán)境下針對RSA算法分析的計算能力,以不可破解為前提.在此基礎(chǔ)上,還要考慮被保護對象的數(shù)據(jù)類型、保護期限、可能的攻擊行為以及遭受的威脅類型等因素.512 b的密鑰長度早已確定為不安全而被淘汰,1 024 b密鑰在安全要求較高的系統(tǒng)中也不建議使用,2 048 b成為目前RSA加密機制的首選. 2.3.2 參數(shù)選擇 根據(jù)RSA算法的實現(xiàn)原理,為了實現(xiàn)系統(tǒng)的安全性,在選取大整數(shù)n時確保其值足夠大的前提下,對素數(shù)p和q的選取應(yīng)滿足以下條件: 1) |p-q|的值不能太大.如使用2 048 b的模數(shù)n,則數(shù)p和q的模長選取建議在1 024 b左右. 3)gcd(p-1,q-1)應(yīng)盡可能小. 4)p和q應(yīng)為強素數(shù),即素數(shù)p-1和q-1的都應(yīng)有大的素因子. 5) 在選取加密指數(shù)e和解密指數(shù)d時其值不能太小,以防止低指數(shù)攻擊. USBKey是網(wǎng)上銀行、第三方支付等領(lǐng)域使用的用于數(shù)據(jù)加密和身份認證的“電子鑰匙”,不同行業(yè)和應(yīng)用領(lǐng)域?qū)SBKey有不同的稱法,如工行的“U盾”、招行的“優(yōu)Key”、支付寶公司的“支付盾”等.USBKey借助USB接口技術(shù)和U盤的介質(zhì)特性,結(jié)合智能卡和現(xiàn)代密碼學(xué)技術(shù),在PKI體系中實現(xiàn)了對數(shù)字證書文件及安全密鑰的有效保護.USBKey的邏輯結(jié)構(gòu)如圖1所示: 圖1 USBKey的邏輯結(jié)構(gòu) 3.1.1 USBKey內(nèi)部結(jié)構(gòu) USBKey的內(nèi)部結(jié)構(gòu)可以分為硬件、CoS和通信接口3層. 1) 硬件.安全智能卡和USB通信是硬件的主要組成部分,而且兩者在功能上實現(xiàn)了相互融合,安全智能卡在提供數(shù)據(jù)存儲安全性的同時,還實現(xiàn)了安全計算功能,如RSA,ECC計算等. 2) CoS.片上系統(tǒng)(system on chip, CoS)是一個固化在智能卡只讀存儲器(ROM)中的小型操作系統(tǒng),以嵌入式系統(tǒng)軟件方式實現(xiàn)了公鑰密鑰對的生成、對私鑰的安全保護、用戶數(shù)字證書的申領(lǐng)與安全管理等功能. 3) 通信接口.通信接口實現(xiàn)USBKey與外部設(shè)備之間的安全通信. 3.1.2 USBKey外部結(jié)構(gòu) 外部結(jié)構(gòu)通過加密設(shè)備接口標準實現(xiàn)與PC和智能卡(SmartCard,SC)等外部設(shè)備之間的數(shù)據(jù)交換. 1) 接口規(guī)范.USBKey中的安全智能卡必須符合PC/SC接口,以實現(xiàn)安全智能卡的透明性、可擴展性和通用性.目前廣泛使用的USBKey中的安全智能卡,由于與PC和SC之間的數(shù)據(jù)交換量較少,對通信帶寬的要求也不高,所以開始配置為類似于USB鼠標、鍵盤的人體學(xué)接口設(shè)備(human interface device, HID),在Windows操作系統(tǒng)下還實現(xiàn)了免安裝驅(qū)動程序等操作. 2) 加密設(shè)備接口標準[7].為了適應(yīng)不同環(huán)境的應(yīng)用需要,USBKey提供了目前應(yīng)用最為廣泛的CSP和PKCS加密設(shè)備接口標準.加密服務(wù)提供程序 (cryptographic service provider, CSP)是Windows操作系統(tǒng)針對應(yīng)用層提供的標準接口函數(shù)和底層加密接口,實現(xiàn)數(shù)據(jù)的加密、解密、數(shù)字簽名、驗證和報文摘要等操作.CSP是PKI推薦使用的加密API,用戶可以直接使用微軟公司的加密應(yīng)用程序接口(cryptographic application programming interface, CryptoAPI)調(diào)用CSP函數(shù)來實現(xiàn)所選擇的密碼算法(如RSA,ECC等)的運算.公鑰密碼標準(public key cryptography standards, PKCS)是由美國RSA數(shù)據(jù)安全公司及其合作伙伴制定的一組公鑰密碼學(xué)標準,其中包括證書申請、證書更新、證書管理、擴展證書內(nèi)容以及數(shù)字簽名、數(shù)字信封的格式等方面的一系列相關(guān)協(xié)議,其中PKCS#11(稱為密鑰管理接口(Cyptoki))定義了一套與平臺無關(guān)的獨立于技術(shù)的程序設(shè)計接口,用于智能卡的加密設(shè)備.在接口定義上,PKCS#11比CSP更加靈活,更加方便開發(fā)者的使用,同時也具有更好的擴展功能.考慮到應(yīng)用的靈活性和兼容性,目前許多廠商的USBKey同時提供了對PKCS與CSP的支持. 早期的數(shù)字證書以文件形式存放在計算機硬盤或外部存儲介質(zhì)中,極易被復(fù)制、竊取和破壞,存在較大的安全隱患.USBKey雖然外形與U盤沒有區(qū)別,但其內(nèi)置了SoC和碼算法庫,可以存儲用戶的數(shù)字證書文件和私鑰,對外提供了I/O接口.USBKey提供了多項安全技術(shù)和措施,實現(xiàn)其自身的安全性. 3.2.1 密鑰對在USBKey中產(chǎn)生 PKI體系中使用的密鑰對在USBKey中產(chǎn)生.其中,私鑰在生成后將得到SoC的保護,用戶無法導(dǎo)出和復(fù)制,以確保密鑰永久保存在USBKey中;產(chǎn)生的公鑰用于向CA申請用戶數(shù)字證書,在此過程中USBKey通過PKCS保證了用戶信息及所申領(lǐng)數(shù)字證書的安全性. 3.2.2 用戶進行USBKey初始化操作 USBKey的初始化操作及數(shù)字證書的申領(lǐng)都由用戶直接操作完成.沒有進行初始化的USBKey只是一個智能芯片,這時還沒有與用戶相關(guān)聯(lián)的信息存儲在介質(zhì)中.只有在進行數(shù)字證書的申領(lǐng)時,USBKey在外部設(shè)備(如PC)端程序(如瀏覽器)的配合下,運行相應(yīng)的公鑰密碼算法生成密鑰對,再用其中的公鑰向CA申領(lǐng)數(shù)字證書.所以,USBKey的初始化操作以及數(shù)字證書的全部申領(lǐng)過程都需要用戶輸入和確認相關(guān)信息后才能逐步完成,在一定程度上確保了數(shù)字證書生成的安全性. 3.2.3 基于介質(zhì)和PIN碼的雙因子安全認證[8] USBKey在使用時需要同時提供硬件介質(zhì)和PIN碼,實現(xiàn)了雙因子認證功能.類似銀行卡,用戶在開始使用USBKey時,都需要修改初始PIN碼,設(shè)置一個只有用戶知道的新的PIN碼.雙因子認證的應(yīng)用,只有在擁有USBKey介質(zhì),并知道PIN碼的前提下,才能完成認證操作. 隨著數(shù)字證書的廣泛使用,市面上USBKey的品牌類型越來越多,不同USBKey在硬件質(zhì)量、性能及安全、使用的便捷性等方面會存在一些差異.除此之外,還需要從以下2個方面加強USBKey應(yīng)用的安全性: 1) 加強應(yīng)用管理. “三分技術(shù),七分管理”是信息安全領(lǐng)域普遍接受的一個道理,在USBKey的使用過程中,加強對USBKey介質(zhì)和PIN碼的安全管理是基礎(chǔ),尤其在使用過程中要防止PC端植入木馬后修改PIN碼,再通過遠程桌面等方式進行在線交易. 2) 加強對木馬的防范. 雖然目前很少有用戶會使用直接存儲在計算機硬盤或U盤等介質(zhì)中的數(shù)字證書文件來實現(xiàn)用戶身份認證和數(shù)據(jù)的安全性,但由于USBKey技術(shù)實現(xiàn)涉及的內(nèi)容和范圍較廣,所以其應(yīng)用的安全性同樣存在一定的挑戰(zhàn).伴隨著USBKey的應(yīng)用從早期身份認證發(fā)展到所有使用數(shù)字證書的領(lǐng)域,出現(xiàn)了一些專門針對USBKey的木馬程序.例如,不同品牌的USBKey對PKCS#11和CSP接口規(guī)范操作細節(jié)存在一定的差異,有些甚至存在可被攻擊者利用的安全漏洞,攻擊者通過開發(fā)專門針對該類漏洞的木馬程序,可以中間人攻擊方式實時修改銀行轉(zhuǎn)賬等信息,完成非法交易[9-10];再如,用戶普遍使用Windows操作系統(tǒng)及IE瀏覽器來操作USBKey,在此過程中,不同品牌的USBKey廠商開發(fā)了各自針對IE瀏覽器的控件,IE瀏覽器控件實現(xiàn)技術(shù)自身的安全隱患以及部分控件在開發(fā)過程中存在的不嚴謹性為木馬程序攻擊提供了便利.為此,定期(至少在使用USBKey之前)查殺用戶計算機上的木馬等惡意程序,是安全使用USBKey的前提. PKI是一種利用公鑰加密技術(shù)為互聯(lián)網(wǎng)應(yīng)用提供一套安全基礎(chǔ)平臺的技術(shù)規(guī)范和遵循標準,它能夠為網(wǎng)絡(luò)應(yīng)用提供身份認證、數(shù)據(jù)加密和數(shù)字簽名等密碼服務(wù)及所必需的密鑰和證書管理體系.更具體地講,PKI就是利用公鑰密鑰理論和技術(shù)建立的提供安全服務(wù)的基礎(chǔ)設(shè)施.目前,在PKI體系應(yīng)用中USBKey已經(jīng)逐漸取得了早期使用的單純“數(shù)字證書文件”形式,通過存儲其中的用戶密鑰和數(shù)字證書實現(xiàn)用戶身份認證和數(shù)據(jù)安全傳輸.圖2是PKI體系中使用USBKey實現(xiàn)用戶身份認證和數(shù)據(jù)加密的流程示意圖[11],其工作過程如下: 圖2 PKI體系中USBKey實現(xiàn)用戶身份認證和數(shù)據(jù)加密 1) 通過步驟①輸入USBKey使用者的信息,生成用戶證書.在面向社會服務(wù)的PKI體系或大型組織中,一般會有一個注冊機構(gòu)(registration authority, RA),專門負責證書發(fā)放、更新、撤銷等操作,RA提供用戶和CA之間的接口,在獲取并認證用戶的身份后,向CA提出證書請求.同時,對于服務(wù)器SSL證書,系統(tǒng)維護人員(管理員)在申請服務(wù)器數(shù)字證書時需要輸入生成證書簽名請求(certificate signing request, CSR)文件所需要的信息. 2) 通過步驟②③向CA申領(lǐng)數(shù)字證書.根據(jù)服務(wù)功能和對象的不同,CA既可以由機構(gòu)自建,也可以使用第三方可信機構(gòu)提供的CA系統(tǒng).RA管理員客戶端程序調(diào)用USBKey驅(qū)動,在USBKey中生成公鑰密鑰對,之后RA將從USBKey中獲得已生成的公鑰,并與用戶信息一體經(jīng)格式化后發(fā)給CA.CA使用自己的私鑰對請求進行簽名,生成用戶數(shù)字證書;管理員將認證服務(wù)器CSR導(dǎo)出,同樣將請求發(fā)給CA,CA使用自己的私鑰對請求進行簽名,生成服務(wù)器數(shù)字證書. 3) 通過步驟④⑤獲取到數(shù)字證書.RA管理員的客戶端程序獲得由CA簽發(fā)的符合X.509標準的數(shù)字證書后,調(diào)用USBKey驅(qū)動程序?qū)?shù)字證書寫入USBKey.同時,RA管理員將該用戶的相關(guān)信息和對應(yīng)的數(shù)字證書導(dǎo)入到認證服務(wù)器中,以便該用戶在后續(xù)操作中使用;管理員將返回符合X.509標準的服務(wù)器證書導(dǎo)入到認證服務(wù)器. 4) 通過步驟⑥導(dǎo)入CA證書.管理員將CA自己的證書導(dǎo)入到認證服務(wù)器中,以便于認證服務(wù)器通過CA證書來驗證所有經(jīng)CA簽發(fā)的用戶證書;同時,用戶將CA的證書導(dǎo)入客戶端瀏覽器. 5) 通過步驟⑦~⑨實現(xiàn)用戶身份認證和數(shù)據(jù)加密操作.用戶向認證服務(wù)器發(fā)起認證請求,認證服務(wù)器返回服務(wù)器證書,用戶客戶端檢查證書的有效性(證書的有效期、是否為可信CA簽發(fā)等),并驗證服務(wù)器的真實性,完成對服務(wù)器的認證;服務(wù)器要求用戶客戶端發(fā)送用戶證書,客戶端向服務(wù)器發(fā)送自己的用戶證書,服務(wù)器檢查證書的有效性,并驗證客戶身份的真實性.出于安全考慮,此運行過程在用戶輸入PIN碼后在USBKey中進行,而且用戶私鑰一直沒有離開USBKey;通過雙向認證后,客戶端生成一個會話密鑰,并利用服務(wù)器公鑰進行加密后發(fā)給服務(wù)器,從而完成會話密鑰的交換,在之后的通信中將采用該會話密鑰實現(xiàn)數(shù)據(jù)的對稱加密. 作為一個安全管理平臺,PKI需要遵循證書格式、證書申領(lǐng)流程、證書下載規(guī)范、證書的使用和操作要求等各種標準. 4.2.1 證書管理 數(shù)字證書的管理主要包括證書的申請、審核、下載和使用等方面.在PKI體系中,CA負責證書的簽發(fā)和管理,RA負責對用戶信息進行資格審查,CA和RA都必須遵守相關(guān)的規(guī)范.例如,銀行系統(tǒng)的RA在審核用戶信息時,對是否存在惡意透支或貸款逾期不還等不良行為要進行全面細致審核,并認真核對用戶的身份證等信息.證書的下載通過PKCS#7安全協(xié)議將由CA簽發(fā)的數(shù)字證書寫入到USBKey,在此過程中需要保證用戶客戶端系統(tǒng)和工具的可靠性和安全性. 4.2.2 CA管理[12] CA通常為一個稱為安全域(security domain)的有限群體創(chuàng)建和發(fā)放數(shù)字證書.創(chuàng)建證書時,CA首先獲取用戶的公鑰等請求信息,然后根據(jù)用戶的請求信息產(chǎn)生證書,并用自己的私鑰對證書進行簽名后下發(fā),其他用戶、應(yīng)用程序或?qū)嶓w將利用CA的公鑰對證書進行驗證.如果一個CA是可信的,則所驗證的證書中的公鑰一定屬于證書所代表的那個實體.對CA的管理離不開CPS中的約定.證書操作聲明(certificate practice statement, CPS)是一些由商業(yè)證書發(fā)放機構(gòu)(common certification authority, CCA)或者可信第三方CA需要遵循的安全策略和操作規(guī)范,主要包括CA的創(chuàng)建與運行,證書的創(chuàng)建、發(fā)放、廢除,密鑰的產(chǎn)生與保存以及用戶的注冊等約束性條款.CPS規(guī)定了CA對外服務(wù)所擔負的權(quán)利和義務(wù),可以通過及時準確地發(fā)布功能類似黑名單的證書吊銷列表(certificate revocation list, CRL),以免證書依賴方受到欺騙.RA有權(quán)對證書申領(lǐng)者的資格進行審核,同時接受CA的監(jiān)督和審計. 4.2.3 密碼管理 類似于日常生活中負責護照和身份證辦理的社會機構(gòu),CA在PKI體系中負責簽發(fā)和管理數(shù)字證書,具有公正性和權(quán)威性.公鑰密鑰機制是構(gòu)建PKI體系的核心,在《信息安全技術(shù):證書認證系統(tǒng)密碼及其相關(guān)安全技術(shù)規(guī)范》[13]中詳細規(guī)定了數(shù)字證書認證系統(tǒng)的密碼算法及其相關(guān)安全技術(shù)要求,主要包括證書認證系統(tǒng)、密鑰管理系統(tǒng)、密碼算法、密碼設(shè)備及接口、證書認證中心、密鑰管理中心以及證書操作流程等內(nèi)容,其中密鑰管理系統(tǒng)由密鑰生成、密鑰庫管理、密鑰恢復(fù)、密碼服務(wù)、密鑰管理、安全審核、認證管理等模塊組成.對證書認證系統(tǒng)使用密碼算法也進行說明和規(guī)定:使用對稱密鑰密碼算法實現(xiàn)數(shù)據(jù)加/解密以及消息認證,使用非對稱密鑰密碼算法實現(xiàn)數(shù)字簽名/驗證以及密鑰交換,使用Hash算法實現(xiàn)待簽名消息的摘要運算,而且規(guī)定采用國家密碼管理主管部門認可的密碼算法,其中Hash算法推薦采用SM3算法.同時,在2020年1月1日起實施的《中華人民共和國密碼法》中明確規(guī)定:密碼是國家重要戰(zhàn)略資源,密碼工作是黨和國家的一項特殊重要工作,其直接關(guān)系到國家政治安全、經(jīng)濟安全、國防安全和信息安全.相關(guān)法律的出臺和實施,為規(guī)范PKI體系中密碼算法的選擇、使用和管理提供了制度保障. 數(shù)字證書的安全應(yīng)用主要通過對數(shù)字證書客戶端的安全管理,防止可能出現(xiàn)的針對客戶端的各類攻擊行為的發(fā)生. 4.3.1 防止針對用戶信息的攻擊 目前,雖然PKI體系的安全性得到了大家的普遍認可,在網(wǎng)上銀行、證券交易等需要在線支付的系統(tǒng)中用數(shù)字證書來替代早期使用的“用戶名+密碼”方式.但是,在一些用戶的日常應(yīng)用中還是出于應(yīng)用的便捷性,通過輸入用戶名和密碼后進行各類在線操作.這種現(xiàn)象在基于智能手機的移動支付領(lǐng)域普遍存在.由于智能手機的自身功能和安全的局限性,無法直接使用USBKey介質(zhì)來保存用戶數(shù)字證書,而且針對Android等操作系統(tǒng)和在線支付平臺存在的安全薄弱環(huán)節(jié)編寫的木馬程序,可常駐系統(tǒng)監(jiān)視用戶網(wǎng)絡(luò)交易,強制用戶使用網(wǎng)銀,并借機篡改訂單、盜取財產(chǎn)等.隨著各類在線支付應(yīng)用的普及,一些有組織的地下黑色產(chǎn)業(yè)鏈利用釣魚網(wǎng)站,通過克隆假網(wǎng)站來欺騙用戶,并利用社會工程學(xué)技術(shù)來竊取用戶的賬號和密碼等信息.為此,在加強用戶端應(yīng)用安全的前提下,對于涉及到較大資金的在線支付建議采用USBKey證書,以提高應(yīng)用的安全性. 4.3.2 防止對用戶數(shù)字證書的非法使用 在USBKey證書推出之前,銀行、證券公司等機構(gòu)在認識到“用戶名+密碼”方式存在的安全隱患后,曾大量簽發(fā)將數(shù)字證書和私鑰打包存放于計算機硬盤或U盤等介質(zhì)上的“文件數(shù)字證書”.數(shù)字證書雖然從體系上提高了應(yīng)用的安全性,但由于文件的可復(fù)制性,同樣存在數(shù)字證書及私鑰被竊取或冒用帶來的安全風險.如今,還有不少互聯(lián)網(wǎng)應(yīng)用在使用“文件數(shù)字證書”方式,無論是系統(tǒng)擁有者還是系統(tǒng)使用者,都需要在應(yīng)用需求和安全風險之間進行評估,以防止安全事故的發(fā)生. 4.3.3 防止數(shù)字證書應(yīng)用中人為因素帶來的不安全問題 RA的主要功能是審核數(shù)字證書申領(lǐng)者的身份信息和資格條件,但在熟人社會里,可能由于人情關(guān)系或管理上的漏洞存在審核不嚴等問題,為數(shù)字證書的申領(lǐng)埋下了隱患.另外,當用戶向機構(gòu)申領(lǐng)了USBKey證書后,首先會得到一個空USBKey,要求用戶在線下載數(shù)字證書.按照正常的操作,下載數(shù)字證書有嚴格的保密和安全措施,如獲得授權(quán)碼(authorization code)后才能登錄系統(tǒng),按照規(guī)定步驟下載數(shù)字證書,但在此過程中包括機構(gòu)和用戶都可能會由于管理漏洞或安全意識淡薄而沒有按規(guī)定要求進行.為此,加強對數(shù)字證書從申領(lǐng)到應(yīng)用各個環(huán)節(jié)的安全管理,是保障數(shù)字證書發(fā)揮其應(yīng)有功能的前提. 數(shù)字證書的安全是一個綜合密碼算法、安全加密機制、PKI體系、數(shù)字證書應(yīng)用與管理等眾多技術(shù)細節(jié)和實現(xiàn)環(huán)節(jié)的復(fù)雜過程,只有確保每個細節(jié)和環(huán)節(jié)的規(guī)范和合規(guī),防止木桶效應(yīng)的出現(xiàn),才能真正發(fā)揮PKI體系在網(wǎng)絡(luò)安全中所具有的應(yīng)用優(yōu)勢.作為一項安全機制,數(shù)字證書的安全也在應(yīng)用中不斷完善,例如無驅(qū)動USBKey的應(yīng)用可以防止安裝驅(qū)動時可能會下載木馬程序,使用一次性口令(one time password, OTP)令牌避免了靜態(tài)密碼可能存在的重放攻擊,使用雙因子認證或人體生物識別技術(shù)(如指紋、人臉、虹膜等)提高身份認證的可信度等.只有加強對PKI體系中數(shù)字證書等技術(shù)的研究,不斷優(yōu)化密碼算法,不斷強化數(shù)字證書的申領(lǐng)和使用管理,才能確保在線交易的不可否認性和數(shù)據(jù)傳輸?shù)耐暾耘c安全性,以及數(shù)字簽名的可靠性.2.2 RSA算法的安全威脅
2.3 安全防范措施
3 USBKey的安全性
3.1 USBKey結(jié)構(gòu)
3.2 USBKey自身的安全性
3.3 安全防范措施
4 PKI體系的安全性
4.1 USBKey在PKI體系中的應(yīng)用
4.2 數(shù)字證書的安全管理
4.3 數(shù)字證書的安全應(yīng)用
5 結(jié) 語