基于智能卡的X.509身份認(rèn)證
文章出處:http://www.sgrivertours.com 作者: 人氣: 發(fā)表時間:2012年02月19日
摘 要:身份認(rèn)證中的關(guān)鍵技術(shù)是身份信息的安全存儲、處理和傳遞,本文提出了一種基于智能卡的 X.509身份認(rèn)證方案,設(shè)計了一套基于 X.509的身份認(rèn)證協(xié)議,將智能卡作為存儲身份信息的載體,密碼運算都在智能卡內(nèi)部進(jìn)行,認(rèn)證過程安全性好。在開放的網(wǎng)絡(luò)環(huán)境中,此方案可較好地防止中間人攻擊,驗證用戶身份。
主題詞:身份認(rèn)證;智能卡;X.509協(xié)議
1引言
計算機網(wǎng)絡(luò)是一把“雙刃劍”,既可大大方便人們的工作、生活,又使不法分子非法竊取、篡改網(wǎng)絡(luò)信息成為可能。如何確保特定的資源被合法用戶訪問,成為保證網(wǎng)絡(luò)和信息安全的首要條件。網(wǎng)絡(luò)身份認(rèn)證成為解決此問題的關(guān)鍵技術(shù),它通過雙方交換一些可信物,證實身份的正確性。許多專家和學(xué)者都提出了一些有效的身份認(rèn)證方法。
口令機制通過核對用戶名和口令驗證用戶身份,但口令易被猜測和截取?;谏锾卣鞯恼J(rèn)證機制利用用戶獨有生物特征鑒別身份,但基于此方案的設(shè)備造價高。基于智能卡的認(rèn)證機制是一種雙因子身份認(rèn)證方式,內(nèi)部提供硬件保護(hù)措施和加密算法,可安全存貯用戶身份信息,進(jìn)行密碼運算,整體安全性好,且易攜帶,實現(xiàn)一卡多用,應(yīng)用較普遍。基于密碼技術(shù)的身份認(rèn)證方法,主要是在認(rèn)證過程中提供安全的認(rèn)證協(xié)議,保證信息傳遞的安全性?;赬.509認(rèn)證協(xié)議使用較廣泛。
2基于X.509協(xié)議的認(rèn)證機制分析
X.509協(xié)議是一種強身份認(rèn)證協(xié)議,它利用公鑰密碼技術(shù),借助可信第三方權(quán)威機構(gòu)――證書中心CA頒發(fā)的證書,辨別雙方的身份,實現(xiàn)身份認(rèn)證。
2.1X.509身份認(rèn)證原理
X.509認(rèn)證協(xié)議中,密碼由互不相同的公鑰和私鑰構(gòu)成,私鑰由用戶秘密保存,公鑰與用戶身份通過證書綁定,是公開的。證書是符合X.509規(guī)范,包括用戶的身份、公鑰、頒發(fā)證書的CA的身份和CA對證書的簽名等。若通信雙方都擁有自己的證書和私鑰,當(dāng)一方要讓對方確認(rèn)自己的身份時,可用自己的私鑰簽名認(rèn)證消息,發(fā)送給對方。對方收到消息后,只需用發(fā)方的公鑰驗證簽名,如果能正確解開消息,則可認(rèn)為發(fā)方具有合法身份。CA對證書的簽名可確保證書的可信性,當(dāng)一方收到證書后,可通過驗證證書上的簽名,區(qū)別真?zhèn)?,防止網(wǎng)絡(luò)上身份假冒。在實際應(yīng)用中,還要采用一些防重放、防中間人攻擊等手段。
2.2X.509身份認(rèn)證方式
X.509規(guī)定了單向、雙向和三向三種認(rèn)證方式,提供不同層次的安全認(rèn)證[1]。系統(tǒng)中用到的符號及認(rèn)證過程的具體描述如下:
(1) A、B:主體A、B的身份信息。
(2) PA()、PB():主體A和主體B公鑰加密的信息。
(3) SA()、SB():主體A和主體B私鑰簽名的信息。
(4) tA、tB:主體A、B產(chǎn)生的時間戳,為雙方檢查消息延遲的參數(shù)。
(5) rA、rB:主體A、B發(fā)送的一次性隨機數(shù),作為雙方檢查消息重放攻擊的參數(shù)。
X.509認(rèn)證交換協(xié)議框圖如圖1。
假定認(rèn)證雙方都知道對方的公鑰。單向認(rèn)證僅為①步。在雙向認(rèn)證中包括①和②兩步。三向認(rèn)證將雙向認(rèn)證的兩次的時間戳置為零或不送,而接收檢查時不檢查時間戳。第三步傳遞的數(shù)據(jù)為③。
單向認(rèn)證通過A到B的單向通信,確認(rèn)數(shù)據(jù)是A發(fā)送的。雙向認(rèn)證增加了來自B的應(yīng)答,A可識別B已收到自己發(fā)送的消息。這兩種認(rèn)證方式加入了時間標(biāo)記,可防止攻擊者重放攻擊,但要求雙方系統(tǒng)時間同步,技術(shù)上難以達(dá)到。三向認(rèn)證協(xié)議中,雙方可以通過驗證返回的隨機數(shù)防止重放攻擊,技術(shù)上容易實現(xiàn)。三向認(rèn)證協(xié)議安全性最好?;赬.509協(xié)議的認(rèn)證技術(shù),利用公鑰加密算法和數(shù)字證書對認(rèn)證過程中傳遞的信息進(jìn)行驗證和保護(hù),私鑰不會在網(wǎng)絡(luò)上傳輸,不必在網(wǎng)上傳遞口令或指紋等敏感信息。攻擊者雙方交換的信息,可有效地保證通信雙方身份的真實性和不可抵賴性。
3基于智能卡的X.509身份認(rèn)證方案
3.1智能卡的特點及功能
智能卡包括卡內(nèi)操作系統(tǒng) COS和算法庫兩個模塊。COS負(fù)責(zé)對所傳送的信息進(jìn)行安全性檢查和處理,防止卡與終端之間通信數(shù)據(jù)被非法竊取或篡改,保證數(shù)據(jù)正確傳輸;管理芯片內(nèi)存儲的各種數(shù)據(jù);檢查接收到的命令的各項參數(shù)是否正確,執(zhí)行相應(yīng)操作。 [2][3]
智能卡可根據(jù)不同需要擴展密碼算法庫,實現(xiàn)下列密碼算法:
1) 對稱加密算法——DES算法、3DES算法、RC4、RC5算法;
2) 摘要(散列值)算法——SHA-1算法、MD5算法;
3) 非對稱加密算法——RSA算法、DSA算法、ECC算法。
本方案中COS可根據(jù)需要運行上面密碼算法,進(jìn)行卡上的密鑰生成和信息加密、簽名、驗證運算。
3.2 智能卡安全機制分析
智能卡芯片內(nèi)的文件分為MF、DF和EF三種。MF(主文件)是所有文件的根文件;DF文件是目錄文件;EF是基本文件,用來存儲具體的數(shù)據(jù)和記錄,也是COS命令所要操作的具體對象。
每個DF或MF下有且只有一個KEY文件,在任何情況下密鑰均無法讀出。在KEY文件中可存放多個密鑰,在滿足KEY文件的增加、使用、修改權(quán)限時,才可增加、使用和修改密鑰。每種密鑰具有其獨立性,用于一種特定功能的密鑰不可作為它用。因此可通過KEY文件,控制智能卡中存儲數(shù)據(jù)的安全性。
本設(shè)計中,EF分為密鑰、證書及識別用戶身份的 PIN碼;支持以下幾種密鑰:個人密碼(PIN)、外部認(rèn)證密鑰、內(nèi)部認(rèn)證密鑰、Crypt密鑰、PIN解鎖密鑰、PIN重裝密鑰、應(yīng)用維護(hù)密鑰等。整個系統(tǒng),密碼運算、口令校驗均在智能卡內(nèi)部完成,并且進(jìn)出智能卡的信息進(jìn)行安全性的檢查和處理。 [5]
3.3 基于智能卡的X.509身份認(rèn)證系統(tǒng)
3.3.1基于智能卡的X.509身份認(rèn)證系統(tǒng)體系結(jié)構(gòu)
基于智能卡的X.509身份認(rèn)證系統(tǒng)由認(rèn)證客戶端、認(rèn)證服務(wù)器、目錄服務(wù)器、密碼提供器、證書機構(gòu)組成,如圖2所示。 [4] [5]
圖2 基于智能卡的X.509身份認(rèn)證系統(tǒng)體系結(jié)構(gòu)
證書機構(gòu)(CA)管理用戶公鑰證書。從智能卡中導(dǎo)出公鑰,結(jié)合用戶提供的身份信息,生成公鑰證書,然后將公鑰證書寫入智能卡,發(fā)布至目錄服務(wù)器。管理證書撤銷列表。
第1頁第2頁 |