周志堅(jiān)
摘要:近年來互聯(lián)網(wǎng)技術(shù)快速發(fā)展,帶動(dòng)各行各業(yè)的飛速發(fā)展、相互聯(lián)通,多網(wǎng)絡(luò)視頻會(huì)議的廣泛應(yīng)用就是一個(gè)重要體現(xiàn)。隨著視頻會(huì)議廣泛應(yīng)用于醫(yī)療、教育、IT企業(yè)等各個(gè)領(lǐng)域的同時(shí),對(duì)視頻會(huì)議的身份認(rèn)證機(jī)制的要求也日益增強(qiáng)。本文針對(duì)視頻會(huì)議的身份認(rèn)證技術(shù)進(jìn)行研究探討,借鑒國(guó)內(nèi)外相關(guān)先進(jìn)的技術(shù),設(shè)計(jì)并實(shí)現(xiàn)一個(gè)安全、可靠的用戶身份認(rèn)證系統(tǒng),該系統(tǒng)采用指紋識(shí)別技術(shù)和ECC算法產(chǎn)生動(dòng)態(tài)口令的雙因子組合的認(rèn)證機(jī)制,同時(shí)采用AES加解密算法保證網(wǎng)絡(luò)傳輸?shù)陌踩?,較好地解決了通信雙方的雙向認(rèn)證問題,以及用戶活體指紋特征等認(rèn)證信息的傳輸安全性和存儲(chǔ)完整性等問題。
關(guān)鍵詞:身份認(rèn)證;指紋識(shí)別;網(wǎng)絡(luò)安全;視頻會(huì)議
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)01-0187-03
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,全球互聯(lián)化已經(jīng)成為世界發(fā)展的大趨勢(shì)。但由于計(jì)算機(jī)網(wǎng)絡(luò)具有聯(lián)結(jié)形式多樣性、終端分布不均勻性和網(wǎng)絡(luò)的開放性、互連性等特征,致使網(wǎng)絡(luò)易受黑客、惡意軟件和其他不軌行為的攻擊,所以信息安全已經(jīng)成為互聯(lián)網(wǎng)建設(shè)的核心問題[1,2]。對(duì)于遠(yuǎn)程視頻會(huì)議的多網(wǎng)絡(luò)系統(tǒng)而言,保障參會(huì)人員的合法性,確保視頻會(huì)議的安全性和保密性是非常重要的。筆者通過對(duì)現(xiàn)有網(wǎng)絡(luò)安全、身份認(rèn)證等相關(guān)技術(shù)的綜合應(yīng)用,開發(fā)出基于雙重身份認(rèn)證的多網(wǎng)絡(luò)視頻會(huì)議系統(tǒng),主要通過兩個(gè)方面來保障視頻會(huì)議的安全性和保密性:一部分是用戶身份的雙重驗(yàn)證,采用指紋識(shí)別和ECC算法產(chǎn)生動(dòng)態(tài)口令的雙因子組合的用戶驗(yàn)證機(jī)制;另一部分是確保網(wǎng)絡(luò)傳輸過程中的安全性,采用AES算法混合加密的網(wǎng)絡(luò)數(shù)據(jù)傳輸方案。
在復(fù)雜的網(wǎng)絡(luò)環(huán)境下,身份認(rèn)證是視頻會(huì)議安全的第一道關(guān)口,認(rèn)證機(jī)制是安全系統(tǒng)的第一道防線,用來確保安全機(jī)制的有效性和訪問控制的有效性,也是避免攻擊者主動(dòng)攻擊的有效手段。身份認(rèn)證是指驗(yàn)證一個(gè)最終用戶或設(shè)備所聲明身份的過程[2]。為了保證網(wǎng)絡(luò)能夠安全地工作,為了保證視頻會(huì)議不被非法用戶入侵,那么對(duì)每位來訪者進(jìn)行身份認(rèn)證是非常必要的,只對(duì)通過身份認(rèn)證的用戶,系統(tǒng)才能授權(quán)相應(yīng)的訪問權(quán)限。
身份認(rèn)證方式可分為以下三類[4],認(rèn)證方式可以是以下三種方式的一種,也可以是幾種方式的結(jié)合。
(1) 根據(jù)你所知道的信息來證明你的身份(what you know,你知道什么) ,如口令、PIN、密碼等;
(2) 根據(jù)你所擁有的東西來證明你的身份(what you have,你有什么),如護(hù)照、駕駛證、身份證或鑰匙等 ;
(3) 直接根據(jù)獨(dú)一無二的身體特征來證明你的身份(who you are,你是誰(shuí)),比如指紋、虹膜、面貌等。
以上三種方式分別稱為基于秘密信息的身份認(rèn)證、基于信物的用戶身份認(rèn)證、基于生物特征的身份認(rèn)證,基于秘密的身份認(rèn)證明顯受制于諸多因素的影響:口令、密碼可能丟失、被竊、遺忘,PIN可能被授權(quán)用戶遺忘或被暴力枚舉猜出。基于秘密信息的數(shù)據(jù),在驗(yàn)證過程中 在計(jì)算機(jī)內(nèi)存中和傳輸過程可能會(huì)被木馬程序或網(wǎng)絡(luò)中截獲,全性上講,用戶名/密碼方式一種是不安全的身份認(rèn)證方式?;谛盼锏挠脩羯矸菡J(rèn)證,同樣受到諸多因素的影響:用于認(rèn)證的信物可能丟失、被竊、遺忘等干擾因素。這兩種方法都不能區(qū)別授權(quán)用戶和欺騙性得到了授權(quán)用戶的密碼或證件的不合法者,并不能很好滿足網(wǎng)絡(luò)安全的要求?;谏锾卣鞯纳矸菡J(rèn)證,以人體的唯一性、可靠性、穩(wěn)定性的生物特征為依據(jù),采用計(jì)算機(jī)強(qiáng)大的圖像處理技術(shù)和模式識(shí)別技術(shù),記錄人體生物特征,用于鑒別用戶身份。由于人體生物特征各不相同,而且不會(huì)丟失和遺忘,也難以復(fù)制,在區(qū)分授權(quán)人和不合法者比基于秘密信息和信物的身份認(rèn)證更為可靠。
橢圓曲線密碼算法(ECC),由Neil Koblitz和Victor Miller于1985年分別提出。橢圓曲線密碼算法是一種新的密碼算法思想,與傳統(tǒng)的密碼算法不同的是它需要人為構(gòu)造有限域和定義域中的運(yùn)算,并將信息通過編碼嵌入自構(gòu)造的有限域中。橢圓曲線密碼體制的安全性由橢圓曲線上的離散對(duì)數(shù)問題確保,這是一個(gè)完全問題,解決這個(gè)問題的時(shí)間復(fù)雜度為指數(shù)級(jí),遠(yuǎn)遠(yuǎn)超過了其它公鑰密碼算法的復(fù)雜程度[4][5]。2000年10月,NIST選中了Rijndael算法作為AES密碼。Rijndael算法具有運(yùn)算速度快、適應(yīng)性強(qiáng)、可靠性強(qiáng)、抗攻擊性強(qiáng)、靈活性好、簡(jiǎn)易性好等特點(diǎn)[6][7][8][9]。本文采用基于ECC身份認(rèn)證以及基于AES的數(shù)據(jù)加解密,綜合這兩個(gè)算法的優(yōu)點(diǎn),較好地保障數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的安全性和保密性。
1 相關(guān)工作
1.1 基于ECC身份認(rèn)證
作為視頻會(huì)議身份認(rèn)證的首道防線,基于ECC的一次性口令身份認(rèn)證,實(shí)現(xiàn)了用戶和服務(wù)器間的相互認(rèn)證,較好的保護(hù)了用戶的身份,也較好提高了應(yīng)用系統(tǒng)的安全性。用戶在首次使用ECC身份認(rèn)證之前必須在服務(wù)器上進(jìn)行注冊(cè),完成初始化。初始化過后,用戶再次進(jìn)入系統(tǒng)時(shí)必須使用應(yīng)答方式執(zhí)行一次身份驗(yàn)證。
1.1.1 注冊(cè)過程
具體的注冊(cè)過程如下:
1) 用戶通過客戶端向服務(wù)器發(fā)送注冊(cè)請(qǐng)求;
2) 服務(wù)器選擇一條獨(dú)有的、安全的橢圓曲線,然后生成自己的公鑰和私鑰(),并把公鑰傳輸送給用戶;
3) 客戶端用加密ID,并傳輸給服務(wù)器;
4) 服務(wù)器解密,檢查是否在列表中,若存在提示客戶端重新輸入,否則提示客戶端輸入認(rèn)證數(shù)據(jù);
5) 客戶端在[1,n-1]上選取隨機(jī)數(shù)k,計(jì)算,再計(jì)算,檢驗(yàn)是否有K0,否則需要重新選擇隨機(jī)數(shù);然后輸入自己的ID和密碼,再生成一個(gè)隨機(jī)數(shù),計(jì)算,H表示一個(gè)安全的單向散列函數(shù);
6) 客戶端用將ID,及A加密,即及傳輸給服務(wù)器;
7) 服務(wù)器計(jì)算,然后用解密a,將得到的ID,A及()保存在本方數(shù)據(jù)庫(kù)中,提供認(rèn)證時(shí)使用[11,12]。
圖1,圖2分別是注冊(cè)過程中客戶端和服務(wù)端的流程圖:
1.1.2 認(rèn)證過程
用戶進(jìn)行系統(tǒng)之前,首先必須經(jīng)過一次使用應(yīng)答方式的身份認(rèn)證過程,具體的認(rèn)證過程如下:
1) 用戶輸入ID,在[1,n-1]之間產(chǎn)生隨機(jī)數(shù)k,計(jì)算,用將ID加密后即及發(fā)送給服務(wù)器,并向服務(wù)器提出認(rèn)證請(qǐng)求。
2) 服務(wù)器計(jì)算,然后用解密,判斷ID是否存在于信任用戶列表中,若存在說明此ID合法,接著計(jì)算,取出存放的隨機(jī)數(shù),并將用共同會(huì)話密鑰加密后傳送給客戶端。否則說明ID不合法,終止與客戶端的會(huì)話。
3) 客戶端用解密a,分解出和M,并根據(jù)本身存儲(chǔ)的ID和密鑰計(jì)算將它與傳送來的M相比較,若相等則說明服務(wù)器合法,繼續(xù)執(zhí)行4;否則終止與服務(wù)器的通信。
4) 客戶端根據(jù)接收的,計(jì)算,生成隨機(jī)數(shù),利用計(jì)算,作為下一次身份驗(yàn)證的校驗(yàn)標(biāo)識(shí)。接著客戶端計(jì)算出,X和Y,并將X,Y,用公用的密鑰加密后傳輸給服務(wù)器。
5) 服務(wù)器接收X,Y,然后根據(jù)已存儲(chǔ)的校驗(yàn)符A對(duì)客戶端進(jìn)行驗(yàn)證。若驗(yàn)證通過,則根據(jù)相應(yīng)的計(jì)算規(guī)則更新服務(wù)器上的校驗(yàn)符A和隨機(jī)數(shù),提供下一次身份驗(yàn)證使用。
1.2 基于生物特征的身份認(rèn)證
由于本文采用雙重身份認(rèn)證方式,因此用戶通過基于ECC的身份認(rèn)證之后,需要再次進(jìn)行基于生物特征身份認(rèn)證,本文采用指紋特征進(jìn)行身份認(rèn)證?;谥讣y識(shí)別的身份認(rèn)證,也主要分為注冊(cè)階段和識(shí)別階段[10]。用戶要進(jìn)行生物特征的身份認(rèn)證時(shí),必須先將自己的生物特征存儲(chǔ)至服務(wù)器,用于身份驗(yàn)證時(shí)的識(shí)別和驗(yàn)證,即是注冊(cè)階段。用戶通過指紋傳感器讀取自己的指紋以獲取獨(dú)特的數(shù)字描述,同時(shí)為了提高速度和減小存儲(chǔ)空間,數(shù)字描述將進(jìn)一步進(jìn)行特征提取,生成較小的但具有特征描述的數(shù)據(jù),然后采用AES算法進(jìn)行數(shù)據(jù)加密,通過網(wǎng)絡(luò)傳輸?shù)椒?wù)器,解密后存儲(chǔ)至數(shù)據(jù)庫(kù)。圖3是指紋特征的注冊(cè)流程圖。
用戶的指紋特征保存至數(shù)據(jù)庫(kù)后,即基于指紋識(shí)別的身份認(rèn)證的注冊(cè)階段完成,接下來就是指紋特征識(shí)別階段。用戶通過口令認(rèn)證之后,再進(jìn)行指紋特征身份認(rèn)證,若想通過第二階段的認(rèn)證,需要提供自己相應(yīng)的指紋信息,通過網(wǎng)絡(luò)傳輸,與服務(wù)器中的指紋特征進(jìn)行匹配,判斷用戶的身份是否合法。圖4是指紋特征的識(shí)別流程圖。
1.3 基于AES的數(shù)據(jù)加解密
本文采用的AES算法進(jìn)行數(shù)據(jù)加密是本系統(tǒng)中關(guān)鍵的防線,它涉及兩次身份認(rèn)證的網(wǎng)絡(luò)傳輸中的數(shù)據(jù)加密,確保數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程的安全性。AES算法是一種對(duì)稱密鑰迭代型分組密碼算法,其分組長(zhǎng)度和密鑰長(zhǎng)度是可變的,可以根據(jù)需要獨(dú)立地指定為128比特、192比特、256比特。AES加密過程涉及4種操作:字節(jié)替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和輪密鑰加(AddRoundKey)。 解密過程分別為對(duì)應(yīng)的逆操作。由于每一步操作都是可逆的,按照相反的順序進(jìn)行解密即可恢復(fù)明文。加解密中每輪的密鑰分別由初始密鑰擴(kuò)展得到。算法中16字節(jié)的明文、密文和輪密鑰都以一個(gè)4x4的矩陣表示。圖5表示AES算法的加密和解密過程。
2 設(shè)計(jì)實(shí)現(xiàn)
2.1 系統(tǒng)結(jié)構(gòu)
本文研究與實(shí)現(xiàn)的基于多網(wǎng)絡(luò)的視頻會(huì)議身份認(rèn)證系統(tǒng),主要包括身份認(rèn)證和網(wǎng)絡(luò)安全傳輸兩大部分。首先,身份認(rèn)證部分有兩大模塊組成,用戶密碼驗(yàn)證和指紋識(shí)別認(rèn)證,第一次使用本視頻會(huì)議身份認(rèn)證系統(tǒng)的用戶,必須先通過客戶端進(jìn)行注冊(cè),在服務(wù)器上能保留下用于身份認(rèn)證的特征信息,包括用戶ID注冊(cè)和指紋特征注冊(cè)。用戶ID注冊(cè)時(shí),系統(tǒng)會(huì)采用ECC算法加密,并將信息保存至服務(wù)器,用于下一次用戶登錄時(shí),客戶端和服務(wù)端之間相互驗(yàn)證。指紋特征注冊(cè)時(shí),指紋傳感器會(huì)獲取用戶的指紋信息,然后經(jīng)過一系列的信息處理和特征提取,通過網(wǎng)絡(luò)傳輸保存至遠(yuǎn)程服務(wù)器,最終指紋特征保存至數(shù)據(jù)庫(kù),用于下一次用戶登錄時(shí),用戶能夠通過指紋識(shí)別認(rèn)證。
用戶ID和指紋特征注冊(cè)之后,即在遠(yuǎn)程服務(wù)器保留了相關(guān)的特征信息。用戶才可以進(jìn)行身份認(rèn)證,包括用戶ID、密碼以及指紋特征的驗(yàn)證。首先,用戶進(jìn)行ID和密碼認(rèn)證時(shí),系統(tǒng)會(huì)利用ECC算法,對(duì)用戶ID和密碼進(jìn)行處理,產(chǎn)生校驗(yàn)信息,經(jīng)過網(wǎng)絡(luò)傳輸?shù)椒?wù)器之后,服務(wù)端使用上次保存的校驗(yàn)信息與之匹配,若匹配成功,則對(duì)本次客戶端發(fā)送的校驗(yàn)信息與本地保留的信息進(jìn)行處理,產(chǎn)生校驗(yàn)信息,返回給客戶端,客戶端在進(jìn)行驗(yàn)證,若雙方的驗(yàn)證均有效,則本次ID和密碼認(rèn)證成功。然后,用戶進(jìn)行指紋特征認(rèn)證,指紋傳感器獲取用戶的指紋信息,客戶端系統(tǒng)對(duì)指紋信息進(jìn)行處理和特征提取,傳輸?shù)椒?wù)端進(jìn)行匹配,服務(wù)端獲取傳送過來的指紋特征,并從數(shù)據(jù)庫(kù)讀取指紋信息與之匹配,若匹配成功,則返回信息給客戶端,否則終止通信。
本系統(tǒng)另外一大部分是網(wǎng)絡(luò)安全傳輸,這個(gè)部分是本系統(tǒng)關(guān)鍵部分,它保證整個(gè)系統(tǒng)在客戶端與服務(wù)端之間數(shù)據(jù)傳遞的安全性和保密性。本文采用AES算法對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行加密,本文采用AES-128(密鑰長(zhǎng)度為比特),它把輸入明文分組映射為4行、4列的狀態(tài)矩陣,以此狀態(tài)矩陣上進(jìn)行若干次迭代,實(shí)現(xiàn)了對(duì)明文數(shù)據(jù)的混亂和擴(kuò)散,從而達(dá)到數(shù)據(jù)加密的目的,每次迭代變換稱為一輪,共需進(jìn)行輪。同時(shí),AES算法的解密過程就是把各輪函數(shù)的變換轉(zhuǎn)換為對(duì)應(yīng)的逆變換,并用相反的順序把密文映射得到狀態(tài)矩陣進(jìn)行變換即可。圖6則是整個(gè)系統(tǒng)的架構(gòu)圖。
2.2 實(shí)現(xiàn)方案
本系統(tǒng)所面向的操作用戶主要包括相關(guān)應(yīng)用系統(tǒng)的終端用戶和系統(tǒng)管理員,對(duì)于終端用戶,需要提供用戶登錄的界面以及提示用戶按壓指紋傳感器的對(duì)話框;對(duì)于系統(tǒng)管理員,則需要提供配置服務(wù)器IP地址和端口號(hào)的對(duì)話框。本系統(tǒng)所依賴的指紋傳感器通過UBS接口與本系統(tǒng)的運(yùn)行平臺(tái)相連。本系統(tǒng)的網(wǎng)絡(luò)通訊協(xié)議采用TCPI/P協(xié)議Socket套接字,不直接與任何網(wǎng)絡(luò)通訊硬件設(shè)備進(jìn)行交互。
2.2.1 軟件需求
編程語(yǔ)言:Java程序設(shè)計(jì)語(yǔ)言
操作系統(tǒng):Windows2007/Windows2008、Windows 2007 Server
數(shù)據(jù)庫(kù):Mysql數(shù)據(jù)庫(kù)
開發(fā)環(huán)境:MyEclipse Enterprise Workbench 8.5
2.2.2 硬件需求
指紋識(shí)別器、通用PC機(jī)、通用服務(wù)器。
3 結(jié)束語(yǔ)
本文設(shè)計(jì)實(shí)現(xiàn)的視頻會(huì)議身份認(rèn)證機(jī)制,結(jié)合基于靜態(tài)密碼的身份認(rèn)證和基于生物特征的身份認(rèn)證,利用兩者的優(yōu)點(diǎn),雙重保證視頻會(huì)議系統(tǒng)的用戶的合法性?;陟o態(tài)密碼的身份認(rèn)證,使用和部署均非常簡(jiǎn)單,指紋特征識(shí)別具有獨(dú)到的安全性,而且也具有很高的實(shí)用性、可行性。隨著固體傳感器技術(shù)的發(fā)展,指紋傳感器的價(jià)格正逐漸下降,在許多應(yīng)用中,基于指紋的生物認(rèn)證系統(tǒng)的成本是可以承受的。同時(shí)采用ECC和AES雙重?cái)?shù)據(jù)加解密機(jī)制,較好地保證數(shù)據(jù)傳輸?shù)陌踩屯暾?/p>
參考文獻(xiàn):
[1] 張小斌,嚴(yán)望佳.黑客分析與防范技術(shù)[M].北京:清華大學(xué)出版社,1999.
[2] Metiko Kaeo.網(wǎng)絡(luò)安全性設(shè)計(jì)[M].北京:人民郵電出版社,2000.
[3] 黃允聰,嚴(yán)望佳.網(wǎng)絡(luò)安全基礎(chǔ)[M].北京:清華大學(xué)出版社,1999.
[4] 宋震.密碼學(xué)[M].北京:中國(guó)水利出版社,2002.
[5] 張煥國(guó),劉玉珍.密碼學(xué)引論[M].武漢:武漢大學(xué)出版社,2003.
[6] 郎榮玲,夏熠.高級(jí)加密標(biāo)準(zhǔn)(AES)算法的研究[J].小型微型計(jì)算機(jī)系統(tǒng),2003,5(24):905-908.
[7] 何明星,范平志.新一代私鑰加密標(biāo)準(zhǔn)AES進(jìn)展與評(píng)述[J].計(jì)算機(jī)應(yīng)用研究,2001,18(10):4-6.
[8] 黃智穎,馮新喜.高級(jí)加密AES標(biāo)準(zhǔn)及其實(shí)現(xiàn)技巧[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(9):112-115.
[9] 秦志光.密碼算法的現(xiàn)狀和發(fā)展研究[J].計(jì)算機(jī)應(yīng)用,2004,24(2):1-4.
[10] Anti Jain,Lin Hong,Sharath Pankanti.Biometic Identification[J].Communication of the ACM, 2000:43(2):90-98.
[11] 肖牧安.橢圓曲線密碼體系研究[M].武漢:華中科技大學(xué)出版社,2006.
[12] 楊志.淺析橢圓曲線加密體制[J].中國(guó)學(xué)校教育研究,2007(3):31-32.