999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

雙向認(rèn)證機(jī)制的算法設(shè)計(jì)與應(yīng)用

2008-01-01 00:00:00龔汝洪周燕
電腦知識(shí)與技術(shù) 2008年5期

摘要:認(rèn)證在網(wǎng)絡(luò)應(yīng)用和安全領(lǐng)域中起著非常重要的作用,是保證系統(tǒng)安全的重要措施之一。傳統(tǒng)的單向認(rèn)證機(jī)制能夠確保安全領(lǐng)域中外部系統(tǒng)的合法性,但無(wú)法保證接入系統(tǒng)的合法性。由此提出了雙向認(rèn)證機(jī)制,并介紹了雙向認(rèn)證的基本原理和主要算法,最后對(duì)雙向認(rèn)證機(jī)制的安全性作了分析,并構(gòu)造了雙向認(rèn)證機(jī)制的應(yīng)用模型。

關(guān)鍵詞:雙向認(rèn)證;算法;加密;安全領(lǐng)域;應(yīng)用模型

中圖分類(lèi)號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)05-1pppp-0c

1 引言

信息安全的重要屬性之一是真實(shí)性,認(rèn)證技術(shù)即是保護(hù)真實(shí)性的有效手段。安全的認(rèn)證機(jī)制是確保信息安全的前提,是一切安全機(jī)制的基礎(chǔ)[1]。隨著網(wǎng)絡(luò)化、信息化的不斷深入和發(fā)展,身份認(rèn)證已成為支撐開(kāi)展應(yīng)用的基本服務(wù),對(duì)身份認(rèn)證提出了新的要求,傳統(tǒng)的單一的認(rèn)證手段己不適應(yīng)應(yīng)用需求,需要構(gòu)建綜合的身份認(rèn)證服務(wù)系統(tǒng),綜合提供多種認(rèn)證機(jī)制。雙向認(rèn)證是一種高安全性的認(rèn)證機(jī)制,本文介紹了雙向認(rèn)證的基本原理和主要的算法設(shè)計(jì)。

2 認(rèn)證的概念和分類(lèi)

認(rèn)證技術(shù)是信息安全理論與技術(shù)的一個(gè)重要內(nèi)容,認(rèn)證主要包括用戶身份認(rèn)證和信息認(rèn)證兩個(gè)方面。身份認(rèn)證用于證明或否認(rèn)通信實(shí)體所宣稱(chēng)的身份,是兩個(gè)或多個(gè)實(shí)體之間建立身份認(rèn)可的過(guò)程,是計(jì)算機(jī)及網(wǎng)絡(luò)系統(tǒng)確認(rèn)用戶或外部系統(tǒng)身份的重要手段[2]。網(wǎng)絡(luò)中的兩個(gè)通信實(shí)體彼此互不信任時(shí),必須進(jìn)行身份認(rèn)證。只有通信雙方互相確認(rèn)對(duì)方的身份以后才能通過(guò)加密等手段建立安全信道,同時(shí)它也是授權(quán)訪問(wèn)和審計(jì)記錄等安全服務(wù)的基礎(chǔ)。身份認(rèn)證是安全通信的第一步,從應(yīng)用系統(tǒng)的安全管理特性上看,身份認(rèn)證是進(jìn)入應(yīng)用系統(tǒng)的鑰匙。

在信息系統(tǒng)中,身份認(rèn)證大致可分為用戶與主機(jī)之間的認(rèn)證和主機(jī)與主機(jī)之間的認(rèn)證。用戶與主機(jī)間的認(rèn)證手段大體分為三種:從需要驗(yàn)證的條件來(lái)看,可以分為單因子認(rèn)證和雙因子認(rèn)證;從是否使用硬件來(lái)看,可以分為軟件認(rèn)證和硬件認(rèn)證;從認(rèn)證信息來(lái)看,可以分為靜態(tài)認(rèn)證和動(dòng)態(tài)認(rèn)證。身份認(rèn)證技術(shù)的發(fā)展,經(jīng)歷了從軟件認(rèn)證到硬件認(rèn)證,從單因子認(rèn)證到雙因子認(rèn)證,從靜態(tài)認(rèn)證到動(dòng)態(tài)認(rèn)證的過(guò)程。主機(jī)與主機(jī)之間的認(rèn)證手段大體分為:IP地址認(rèn)證、密鑰認(rèn)證。IP地址認(rèn)證是只允許合法的IP接入,拒絕非法的IP接入。這種認(rèn)證機(jī)制實(shí)現(xiàn)簡(jiǎn)單,但I(xiàn)P地址容易被冒充,對(duì)安全接入領(lǐng)域的應(yīng)用形成很大的風(fēng)險(xiǎn)。密鑰認(rèn)證是在直接信任的兩個(gè)個(gè)體之間通過(guò)互相交換密鑰信息進(jìn)行認(rèn)證,密鑰交換為確保安全通信提供了一種有力的機(jī)制。

2 雙向認(rèn)證的基本原理

認(rèn)證的前提條件是通信雙方已經(jīng)就加密算法和所用密鑰達(dá)成了一致。從認(rèn)證的方向來(lái)看,身份認(rèn)證可分為單向認(rèn)證和雙向認(rèn)證[3]。單向認(rèn)證是一方向另一方證明自己的身份,雙向認(rèn)證是雙方彼此向?qū)Ψ阶C明自己的身份。在傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用中,身份認(rèn)證較多地采用單向認(rèn)證,但單向認(rèn)證在某些應(yīng)用環(huán)境中被證明是不安全的,例如:高保密度的交易系統(tǒng)以及移動(dòng)通信系統(tǒng)。為了實(shí)現(xiàn)更加安全的交易和通信,需要在系統(tǒng)之間進(jìn)行雙向認(rèn)證,但雙向認(rèn)證并不簡(jiǎn)單等于兩次單向認(rèn)證。雙向認(rèn)證的原理圖如圖1所示:

圖1 雙向認(rèn)證的原理圖

認(rèn)證的雙方在各自的系統(tǒng)中配置用于認(rèn)證的公鑰和私鑰[4],以及SQN(SequenceNumber)組數(shù)。公鑰是雙方共同使用的公共密鑰,雙方配置相同的公鑰;私鑰是各自擁有的私有密鑰,是提供給外部系統(tǒng)訪問(wèn)自己時(shí)使用的接入密碼,雙方分別配置對(duì)方的私鑰。SQN組數(shù)用于隨機(jī)得到SQN組號(hào)并且計(jì)算SQN。

(a)甲方根據(jù)SQN組數(shù)隨機(jī)得到一個(gè)SQN組號(hào),并且利用SQN組號(hào)和SQN組數(shù)計(jì)算出SQN。根據(jù)公鑰、對(duì)方私鑰和SQN,利用MD5算法產(chǎn)生認(rèn)證字段。把SQN組號(hào)、認(rèn)證字段和隨機(jī)產(chǎn)生的隨機(jī)數(shù),合成認(rèn)證請(qǐng)求發(fā)送給乙方。

(b)己方收到甲方的認(rèn)證請(qǐng)求后,使用相同的算法產(chǎn)生認(rèn)證字段,與認(rèn)證請(qǐng)求中的認(rèn)證字段進(jìn)行比較,如果相同,則甲方通過(guò)了乙方的認(rèn)證,如果不相同,則認(rèn)證失敗。

(c)當(dāng)甲方通過(guò)了乙方的認(rèn)證后,乙方根據(jù)公鑰、SQN和隨機(jī)數(shù),利用MD5算法產(chǎn)生加密密鑰,然后再根據(jù)加密密鑰、SQN和隨機(jī)數(shù),利用MD5算法產(chǎn)生應(yīng)答字段,通過(guò)認(rèn)證響應(yīng)返回給甲方。

(d)甲方收到乙方的認(rèn)證響應(yīng)后,使用相同的算法產(chǎn)生應(yīng)答字段,與認(rèn)證響應(yīng)中的應(yīng)答字段進(jìn)行比較,如果相同,則乙方通過(guò)了甲方的認(rèn)證,如果不相同,則認(rèn)證失敗。

上述過(guò)程完成了雙向認(rèn)證,既包括甲方對(duì)乙方的認(rèn)證,也包括乙方對(duì)甲方的認(rèn)證。只有兩次認(rèn)證都成功時(shí),整個(gè)認(rèn)證結(jié)果才是成功的。雙向認(rèn)證成功后,雙方可以進(jìn)行安全的通信。

3 雙向認(rèn)證的算法設(shè)計(jì)

雙向認(rèn)證中使用到的算法主要有:MD5算法、3DES加密算法、認(rèn)證字段和應(yīng)答字段的生成算法,以下分別介紹這幾種算法的設(shè)計(jì)思想以及在系統(tǒng)中的應(yīng)用。

3.1 MD5算法

所謂MD5,即Message-Digest Algorithm 5(信息-摘要算法),它由MD2、MD3、MD4發(fā)展而來(lái)的一種單向函數(shù)算法(也就是HASH算法)。MD5以512位分組來(lái)處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過(guò)了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級(jí)聯(lián)后將生成一個(gè)128位散列值。

在MD5算法中,首先需要對(duì)信息進(jìn)行填充,使其字節(jié)長(zhǎng)度對(duì)512求余的結(jié)果等于448。因此,信息的字節(jié)長(zhǎng)度(Bits Length)將被擴(kuò)展至N*512+448,即N*64+56個(gè)字節(jié)(Bytes),N為一個(gè)正整數(shù)。填充的方法如下:在信息的后面填充一個(gè)1和無(wú)數(shù)個(gè)0,直到滿足上面的條件時(shí)才停止用0對(duì)信息的填充。然后,在這個(gè)結(jié)果后面附加一個(gè)以64位二進(jìn)制表示的填充前信息長(zhǎng)度。經(jīng)過(guò)這兩步的處理,現(xiàn)在的信息字節(jié)長(zhǎng)度=N*512+448+64=(N+1)*512,即長(zhǎng)度恰好是512的整數(shù)倍。這樣做的原因是為滿足后面處理中對(duì)信息長(zhǎng)度的要求。

MD5的典型應(yīng)用是對(duì)一段信息(Message)產(chǎn)生信息摘要(Message-Digest),以防止被篡改。在本系統(tǒng)的應(yīng)用中,加密密鑰、認(rèn)證字段、應(yīng)答字段等信息都使用MD5算法形成信息摘要,保證了信息的唯一性和安全性。MD5還廣泛用于加密和解密技術(shù)上。

3.2 認(rèn)證字段的生成算法

認(rèn)證字段是由公鑰Ki、私鑰passwd和SQN等認(rèn)證參數(shù)組成的64 Bytes字節(jié)流,經(jīng)過(guò)MD5算法生成的信息摘要,其中公鑰是認(rèn)證雙方共同配置的公共密鑰,其長(zhǎng)度為16 Bytes;私鑰是認(rèn)證請(qǐng)求接收方的接入密碼,其長(zhǎng)度為16 Bytes;SQN是由SQN組數(shù)和SQN組號(hào)根據(jù)指定的公式計(jì)算得到的,其長(zhǎng)度為4 Bytes。SQN的計(jì)算公式如下:

SQN = (SQN組號(hào)-1)×取整[(FFFFFFFF/SQN組數(shù))](取整時(shí)去掉小數(shù)點(diǎn)后的數(shù)值)

其中SQN組數(shù)是認(rèn)證雙方共同配置的,SQN組號(hào)是認(rèn)證請(qǐng)求發(fā)送方隨機(jī)選擇的,取值范圍為2-SQN組數(shù),SQN組號(hào)將隨認(rèn)證字段和隨機(jī)數(shù),合成到認(rèn)證請(qǐng)求中,一同發(fā)送給接收方,以便接收方用于計(jì)算SQN。認(rèn)證字段的生成算法如下:

const unsigned long SQNGrpCount; //SQN組數(shù),認(rèn)證雙方共同配置

const unsigned char Ki[16];//公鑰,認(rèn)證雙方共同配置

const unsigned char passwd[16];//私鑰,認(rèn)證請(qǐng)求接收方的接入密碼

unsigned short SQNGrpNum;//存放SQN組號(hào), 取值范圍:2-SQN組數(shù)

unsigned long SQN; //存放SQN

unsigned char AuthField[16]; //存放認(rèn)證字段

unsigned char tmpbuff[64]; //存放認(rèn)證參數(shù)組合之后的字節(jié)流

SQNGrpNum = rand() % SQNGrpCount;//根據(jù)SQN組數(shù)隨機(jī)生成SQN組號(hào)

SQN = (0xffff/SQNGrpCount)*(SQNGrpNum -1);//根據(jù)SQN組數(shù)和SQN組號(hào)計(jì)算SQN

int sqn2 = htonl(SQN); //把SQN轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序

memset(tmpbuff, 0xff, 64); //初始全部填充1

memcpy(tmpbuff , Ki , 16); //填充公鑰Ki

memcpy(tmpbuff+16 , passwd , 16);//填充私鑰passwd

memcpy(tmpbuff+16+16 , sqn2 , 4); //填充SQN

MD5(tmpbuff, 64, AuthField); //利用MD5算法生成認(rèn)證字段

3.3 應(yīng)答字段的生成算法

應(yīng)答字段是由加密密鑰Kc、隨機(jī)數(shù)Rand和SQN等認(rèn)證參數(shù)組成的64 Bytes字節(jié)流,經(jīng)過(guò)MD5算法生成的信息摘要,其中加密密鑰是由公鑰Ki、隨機(jī)數(shù)Rand和SQN經(jīng)過(guò)MD5算法生成的16 Bytes信息摘要,隨機(jī)數(shù)是由認(rèn)證請(qǐng)求發(fā)送方隨機(jī)產(chǎn)生的7 bytes隨機(jī)數(shù),SQN是由SQN組數(shù)和認(rèn)證請(qǐng)求發(fā)送方隨機(jī)生成的SQN組號(hào),按照指定的公式計(jì)算得到的4 Bytes整數(shù)。應(yīng)答字段的生成算法如下:

const unsigned long SQNGrpCount; //SQN組數(shù),認(rèn)證雙方共同配置

const unsigned char Ki[16];//公鑰,認(rèn)證雙方共同配置

const unsigned char rand_num[7]; //認(rèn)證請(qǐng)求發(fā)送方產(chǎn)生的隨機(jī)數(shù)

const unsigned short SQNGrpNum;//認(rèn)證請(qǐng)求發(fā)送方產(chǎn)生的SQN組號(hào)

unsigned long SQN; //存放SQN

unsigned char Kc[16];//存放加密密鑰

unsigned char RespField[16]; //存放應(yīng)答字段

unsigned char tmpbuff[64]; //存放認(rèn)證參數(shù)組合之后的字節(jié)流

SQN=(0xffff/SQNGrpCount)*(SQNGrpNum -1);//根據(jù)SQN組數(shù)和SQN組號(hào)計(jì)算SQN

int sqn2=htonl(SQN); //把SQN轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序

memset(tmpbuff, 0xff, 64); //初始全部填充1

memcpy(tmpbuff , Ki , 16); //填充公鑰Ki

memcpy(tmpbuff+16 , rand_num, 7);//填充隨機(jī)數(shù)

memcpy(tmpbuff+16+7, sqn2 , 4); //填充SQN

MD5(tmpbuff, 64, Kc);//利用MD5算法生成加密密鑰

memset(tmpbuff, 0xff, 64); //初始全部填充1

memcpy(tmpbuff , Kc , 16); //填充加密密鑰Kc

memcpy(tmpbuff+16 , rand_num, 7);//填充隨機(jī)數(shù)

memcpy(tmpbuff+16+7, sqn2 , 4); //填充SQN

MD5(tmpbuff, 64, RespField); //利用MD5算法生成應(yīng)答字段

3.4 3DES加密算法

3DES(即Triple DES)是DES向AES過(guò)渡的加密算法[5],是DES的一個(gè)更安全的變形。它以DES為基本模塊,通過(guò)組合分組方法設(shè)計(jì)出分組加密算法。3DES算法是使用雙長(zhǎng)度(16字節(jié))密鑰K=(KL||KR)將8字節(jié)明文數(shù)據(jù)塊進(jìn)行3次DES加密/解密,其具體實(shí)現(xiàn)如下:

加密方式為:C=DES(KL)[DES-1(KR)[DES(KL[P])]]

解密方式為:P=DES-1(KL)[DES(KR)[DES-1(KL[C])]]

其中,DES(KL[P])表示用密鑰KL對(duì)明文P進(jìn)行DES加密,DES-1 (KL[C])表示用密鑰KL對(duì)密文C進(jìn)行解密。

在本系統(tǒng)的應(yīng)用中,加密密鑰Kc是由公鑰Ki、隨機(jī)數(shù)rand和SQN經(jīng)過(guò)MD5算法生成的16 Bytes信息摘要,其中KL = Kc[0-63],KR = Kc[64-127]。加密時(shí),明文數(shù)據(jù)按照每8 Bytes一個(gè)數(shù)據(jù)塊分成多個(gè)塊,對(duì)每個(gè)數(shù)據(jù)塊進(jìn)行3次DES加密/解密運(yùn)算,形成密文。解密時(shí),同樣對(duì)密文按照每8 Bytes一個(gè)數(shù)據(jù)塊進(jìn)行3次DES加密/解密運(yùn)算,形成明文。

4 雙向認(rèn)證機(jī)制的安全性分析及其應(yīng)用

雙向認(rèn)證機(jī)制實(shí)現(xiàn)了通信雙方的相互身份認(rèn)證功能,使通信雙方能確認(rèn)對(duì)方的身份,同時(shí)還提供了密鑰協(xié)商的功能,讓通信雙方能公平地協(xié)商會(huì)話密鑰。在認(rèn)證消息傳輸過(guò)程中,始終堅(jiān)持了消息可靠傳輸這一原則,對(duì)認(rèn)證消息采取了保護(hù)措施。一旦認(rèn)證消息在傳輸過(guò)程中被修改,消息到達(dá)對(duì)方時(shí)將被發(fā)現(xiàn)。

經(jīng)過(guò)分析,雙向認(rèn)證機(jī)制能夠抵御假冒攻擊、中間人攻擊和拒絕服務(wù)攻擊,具有較高的安全性。此外,該機(jī)制還具有較高的效率,它的實(shí)現(xiàn)不需要依賴于第三方認(rèn)證中心,認(rèn)證信息保持動(dòng)態(tài)性,能有效防止重放攻擊。

在安全領(lǐng)域,對(duì)請(qǐng)求接入的外部系統(tǒng)進(jìn)行嚴(yán)格的檢查和有效的驗(yàn)證,是保證接入系統(tǒng)安全的重要措施。利用雙向認(rèn)證機(jī)制,一方面能夠防止非法的外部系統(tǒng)接入合法的接入系統(tǒng),另一方面能夠防止合法的外部系統(tǒng)接入非法的接入系統(tǒng)。雙向認(rèn)證機(jī)制的應(yīng)用模型如圖2所示:

圖2 雙向認(rèn)證機(jī)制的應(yīng)用模型

外部系統(tǒng)請(qǐng)求接入時(shí),首先與接入系統(tǒng)建立TCP連接,然后通過(guò)已建立的連接進(jìn)行雙向認(rèn)證,認(rèn)證過(guò)程和認(rèn)證的復(fù)雜度可以根據(jù)特定的應(yīng)用有所區(qū)別,但認(rèn)證的算法思想總體上是一致的。雙向認(rèn)證通過(guò)后,認(rèn)為連接是安全的,此時(shí)可以進(jìn)行高保密的交易和通信。業(yè)務(wù)結(jié)束后,外部系統(tǒng)釋放并關(guān)閉已建立的連接。

5 結(jié)束語(yǔ)

身份認(rèn)證是建立安全通信的第一步,一個(gè)完整的網(wǎng)絡(luò)安全體系,應(yīng)能夠根據(jù)不同網(wǎng)絡(luò)層次的特點(diǎn)進(jìn)行有針對(duì)性的防范,雙向認(rèn)證機(jī)制主要從接入層面上確保了外部系統(tǒng)和接入系統(tǒng)的合法性與安全性。隨著雙向認(rèn)證機(jī)制相關(guān)算法的深入研究和應(yīng)用,必將推動(dòng)雙向認(rèn)證機(jī)制在其他相關(guān)領(lǐng)域的應(yīng)用和發(fā)展。

參考文獻(xiàn):

[1]WilliamStallings.網(wǎng)絡(luò)安全要素-應(yīng)用與標(biāo)準(zhǔn)[M].北京:人民郵電出版社,2000.

[2]王育民,劉建偉.通信網(wǎng)的安全-理論與技術(shù)[M].西安:西安電子科技大學(xué)出版社,1999.

[3]李中獻(xiàn),詹榜華.認(rèn)證理論與技術(shù)的發(fā)展[J].電子學(xué)報(bào),1999,27(1):98-102.

[4]MessaoudB,著.張千里,譯.互聯(lián)網(wǎng)公鑰基礎(chǔ)設(shè)施概論[M].北京:人民郵電出版社,2003.

[5]賴溪松,韓亮,等. 計(jì)算機(jī)密碼學(xué)及其應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2001.

收稿日期:2008-01-08

作者簡(jiǎn)介:龔汝洪(1978-),男,廣東番禺人,軟件工程師,碩士研究生,主要研究方向:計(jì)算機(jī)應(yīng)用與信息處理,數(shù)據(jù)庫(kù)應(yīng)用;周燕(1979-),女,江西撫州人,講師,碩士研究生,主要研究方向:計(jì)算機(jī)應(yīng)用與信息處理,數(shù)據(jù)庫(kù)應(yīng)用。

主站蜘蛛池模板: 久久婷婷综合色一区二区| 亚洲色图欧美在线| 国产chinese男男gay视频网| 乱系列中文字幕在线视频| 亚洲成人一区在线| 亚洲国产综合第一精品小说| 88av在线| 欧美亚洲一区二区三区导航 | 国产精品免费电影| 欧美一区精品| 成年人国产网站| 国产办公室秘书无码精品| 一级不卡毛片| 一级香蕉人体视频| 毛片手机在线看| 国产成人欧美| lhav亚洲精品| 免费看a级毛片| 国产午夜福利在线小视频| 黄色免费在线网址| 欧美黑人欧美精品刺激| 沈阳少妇高潮在线| 欧美亚洲一区二区三区在线| 亚洲三级网站| 亚洲无线视频| 国内精自视频品线一二区| 91在线丝袜| 国产精品久久久久久久伊一| 欧美日一级片| 58av国产精品| 人妻21p大胆| 婷婷色狠狠干| 九色在线视频导航91| 国产欧美日韩免费| 成人91在线| 国产人人射| 高清免费毛片| 国产亚洲欧美在线中文bt天堂| 波多野结衣在线se| 亚洲成a∧人片在线观看无码| 色婷婷成人网| 一区二区三区四区精品视频| 国产精品男人的天堂| 在线毛片网站| 久久99国产乱子伦精品免| 日本人妻丰满熟妇区| 一本久道热中字伊人| 国产精品久久久久鬼色| 国产91线观看| 小说区 亚洲 自拍 另类| 久久青青草原亚洲av无码| 日韩欧美国产三级| 欧美一区国产| 色香蕉影院| 亚洲一区二区三区中文字幕5566| 亚洲欧洲国产成人综合不卡| 午夜天堂视频| 乱色熟女综合一区二区| 高清不卡毛片| 91激情视频| 秋霞一区二区三区| 五月婷婷综合在线视频| 免费看a级毛片| 久久久久久久久亚洲精品| 国产精品视频999| 国产精品妖精视频| 丝袜亚洲综合| 茄子视频毛片免费观看| 在线观看免费国产| 中字无码av在线电影| 国产亚卅精品无码| 老司机aⅴ在线精品导航| 国产黄在线免费观看| 中日无码在线观看| 久久综合丝袜长腿丝袜| 99热国产这里只有精品9九 | 午夜少妇精品视频小电影| 免费激情网站| 国产一级精品毛片基地| 少妇精品久久久一区二区三区| 国语少妇高潮| 国产激情影院|