国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?

      文檔序號(hào):7687292閱讀:188來源:國(guó)知局
      專利名稱:驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?br> 所屬領(lǐng)域本發(fā)明涉及一種對(duì)數(shù)據(jù)傳輸進(jìn)行加密驗(yàn)證的處理方法,確切地說,涉及一種驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?。屬于?shù)字信息傳輸中的保密或安全通信裝置的技術(shù)領(lǐng)域。
      IPSec協(xié)議是一種協(xié)議套件,包括有AH(Authentication Header)驗(yàn)證頭協(xié)議、ESP(Encapsulation Security Protocol)封裝安全載荷協(xié)議、IKE(InternetKey Exchange)互聯(lián)網(wǎng)密鑰交換協(xié)議等。IPSec協(xié)議支持通過手動(dòng)配置方式或者IKE協(xié)議自動(dòng)協(xié)商方式生成安全聯(lián)盟SA(Security Association)。該安全聯(lián)盟SA是IPSec的基礎(chǔ),它決定了用來保護(hù)數(shù)據(jù)包安全的IPSec協(xié)議中的轉(zhuǎn)碼方式、密鑰以及密鑰的有效存在時(shí)間等??傊?,安全聯(lián)盟SA是對(duì)數(shù)據(jù)進(jìn)行加密或驗(yàn)證的基本依據(jù),也可以說每一個(gè)需要進(jìn)行加密或驗(yàn)證處理的數(shù)據(jù)包都會(huì)配置或生成相應(yīng)的特定安全聯(lián)盟SA。
      現(xiàn)在,雖然大部分的加密驗(yàn)證工作是在主機(jī)系統(tǒng)(即路由器的主機(jī)軟件系統(tǒng))中完成的,也有一些公司將數(shù)據(jù)的加密驗(yàn)證轉(zhuǎn)移到單板(即加密卡)上來實(shí)現(xiàn),這樣可以大大提高數(shù)據(jù)的處理速度。申請(qǐng)人研制的加密卡就是一塊基于IPSec協(xié)議、專門用于數(shù)據(jù)加密驗(yàn)證的硬件板卡。由于安全聯(lián)盟SA的產(chǎn)生、維護(hù)都是由主機(jī)完成的,加密卡本身只是根據(jù)其保存的主機(jī)安全聯(lián)盟SA的備份來完成數(shù)據(jù)的加密或驗(yàn)證處理,所以在對(duì)數(shù)據(jù)的控制上,主機(jī)和加密卡存在一定的分離,因此產(chǎn)生了如何保證加密卡安全聯(lián)盟SA和主機(jī)安全聯(lián)盟SA的一致問題。為此,申請(qǐng)人定義了一系列對(duì)加密卡的控制命令,包括安全聯(lián)盟SA的添加、刪除、捆綁(應(yīng)用于AH+ESP協(xié)議)等。
      為了實(shí)現(xiàn)加密卡和主機(jī)之間的通信,申請(qǐng)人定義了一種特殊的消息幀頭結(jié)構(gòu),其中包含有消息類型(命令/數(shù)據(jù)/其他)、消息屬性(命令屬性/數(shù)據(jù)屬性/其他)、以及其他與數(shù)據(jù)有關(guān)的信息。例如每個(gè)數(shù)據(jù)包對(duì)應(yīng)的安全聯(lián)盟SA的標(biāo)示都是全局唯一的,即每個(gè)安全聯(lián)盟SA擁有不同的標(biāo)示;每個(gè)數(shù)據(jù)包的序列號(hào)標(biāo)示對(duì)于某個(gè)SA也是唯一的,即和某個(gè)SA相關(guān)的所有數(shù)據(jù)包分別具有不同的序列號(hào)標(biāo)示等等。這個(gè)消息幀頭隨同數(shù)據(jù)包本身一起在加密卡和主機(jī)之間進(jìn)行傳輸?,F(xiàn)在,隨著人們對(duì)數(shù)據(jù)加密、安全傳輸性能需求的不斷提高,使用加密卡已經(jīng)成為一種發(fā)展趨勢(shì)。目前的主機(jī)系統(tǒng)對(duì)SA的管理方法,如果不使用加密卡,或者不需要對(duì)主機(jī)系統(tǒng)所維護(hù)的SA進(jìn)行實(shí)時(shí)監(jiān)控時(shí),已經(jīng)達(dá)到了很好的效果。同時(shí),通過IKE協(xié)議提供的時(shí)間超時(shí)、流量超時(shí)機(jī)制來定期更新安全聯(lián)盟SA,可以比較可靠地保證SA的正確性。但是,當(dāng)使用周期相對(duì)較長(zhǎng)或者不使用超時(shí)機(jī)制,就沒有辦法對(duì)在數(shù)據(jù)處理中發(fā)生錯(cuò)誤的安全聯(lián)盟及時(shí)進(jìn)行更新。
      在正常情況下,主機(jī)和加密卡之間的SA信息是保持一致的,加密卡對(duì)主機(jī)下發(fā)的數(shù)據(jù)包也都能正確地進(jìn)行加密或驗(yàn)證等處理。但是,一旦出現(xiàn)異常情況,如果需要具體定位加密卡上的哪條安全聯(lián)盟SA在處理數(shù)據(jù)時(shí)發(fā)生了錯(cuò)誤,并對(duì)相應(yīng)的安全聯(lián)盟SA進(jìn)行更新,實(shí)時(shí)維護(hù)加密卡和主機(jī)之間的安全聯(lián)盟SA的一致性時(shí),現(xiàn)有的處理機(jī)制就顯得無能為力了。
      目前,加密卡所保存的某個(gè)安全聯(lián)盟SA出現(xiàn)的問題,主要分為兩種情況第一種,加密卡在使用安全聯(lián)盟對(duì)主機(jī)下發(fā)的數(shù)據(jù)包進(jìn)行加密驗(yàn)證發(fā)現(xiàn)錯(cuò)誤時(shí),它會(huì)丟棄該數(shù)據(jù)包,并向主機(jī)系統(tǒng)返回一個(gè)包含有該數(shù)據(jù)包錯(cuò)誤的消息幀頭。此時(shí),主機(jī)系統(tǒng)可以通過自己的統(tǒng)計(jì)信息紀(jì)錄被丟失的數(shù)據(jù)包個(gè)數(shù);但是卻沒有辦法確定數(shù)據(jù)包的丟失是否與該加密卡有關(guān),或者具體是由于哪一條安全聯(lián)盟而引起的,從而使得后續(xù)發(fā)送的與該錯(cuò)誤安全聯(lián)盟SA對(duì)應(yīng)的數(shù)據(jù)包將繼續(xù)被丟失的現(xiàn)象無法得到及時(shí)糾正。第二種,加密卡上根本不存在主機(jī)下發(fā)的數(shù)據(jù)包所對(duì)應(yīng)的安全聯(lián)盟SA,或者在處理過程中丟棄了該數(shù)據(jù)包,并且沒有向主機(jī)反饋任何信息。在這種情況下,主機(jī)如果沒有辦法獲知該安全聯(lián)盟SA已經(jīng)發(fā)生問題,將導(dǎo)致加密卡繼續(xù)丟棄該SA對(duì)應(yīng)的數(shù)據(jù)包。
      所述的安全聯(lián)盟(SA)的發(fā)送序列號(hào)(card_send_seq)是標(biāo)記主機(jī)向加密卡所發(fā)送的每個(gè)數(shù)據(jù)包的序列號(hào)。
      所述的安全聯(lián)盟(SA)的發(fā)送序列號(hào)是在主機(jī)需要向加密卡發(fā)送數(shù)據(jù)包時(shí),根據(jù)該數(shù)據(jù)包本身的特征,確定它所對(duì)應(yīng)的安全聯(lián)盟(SA)而得到的;然后再將該發(fā)送序列號(hào)加1,作為該數(shù)據(jù)包的序列號(hào)保存在其消息幀頭中,發(fā)送給加密卡。
      所述的該數(shù)據(jù)包本身的特征包括有該IP數(shù)據(jù)包報(bào)文的源地址、目的地址類的信息。
      所述的安全聯(lián)盟(SA)接收序列號(hào)(card_recv_seq)是標(biāo)記主機(jī)已經(jīng)從加密卡接收到的數(shù)據(jù)包的序列號(hào)。
      所述的安全聯(lián)盟(SA)接收序列號(hào)是在主機(jī)接收到加密卡返回的數(shù)據(jù)包時(shí),根據(jù)其消息幀頭中的安全聯(lián)盟(SA)標(biāo)示,找到相應(yīng)的安全聯(lián)盟(SA)而得到的;然后比較該接收序列號(hào)和數(shù)據(jù)包消息幀頭中保存的接收序列號(hào)的數(shù)值是否相等,判斷該數(shù)據(jù)包是否為所期望接收的數(shù)據(jù)包。
      所述的安全聯(lián)盟(SA)驗(yàn)證序列號(hào)(card_last_recv_seq)是標(biāo)記上一次對(duì)每一條安全聯(lián)盟(SA)進(jìn)行檢測(cè)時(shí),該被檢測(cè)的安全聯(lián)盟(SA)的接收序列號(hào)。
      所述的安全聯(lián)盟(SA)驗(yàn)證序列號(hào)是用于定時(shí)檢測(cè)安全聯(lián)盟SA時(shí),與該安全聯(lián)盟(SA)的發(fā)送序列號(hào)、接收序列號(hào)相配合,來確定該安全聯(lián)盟(SA)當(dāng)前的狀態(tài)是否正常。
      所述的安全聯(lián)盟(SA)狀態(tài)標(biāo)示符(card_last_check_result)是標(biāo)記安全聯(lián)盟(SA)的當(dāng)前狀態(tài)的符號(hào)。
      所述的安全聯(lián)盟(SA)狀態(tài)標(biāo)示符有兩種當(dāng)狀態(tài)標(biāo)示符為0時(shí),說明上一次檢測(cè)安全聯(lián)盟(SA)時(shí),該安全聯(lián)盟(SA)正常;當(dāng)狀態(tài)標(biāo)示符為1時(shí),說明上一次檢測(cè)安全聯(lián)盟(SA)時(shí),該安全聯(lián)盟(SA)已經(jīng)出現(xiàn)異常。
      該方法包括有下列操作步驟A、首先使用IPSec協(xié)議通過IKE自動(dòng)協(xié)商或者手工配置生成安全聯(lián)盟(SA),并對(duì)該安全聯(lián)盟(SA)的發(fā)送序列號(hào)、接收序列號(hào)和驗(yàn)證序列號(hào)以及狀態(tài)標(biāo)示符進(jìn)行初始化;B、主機(jī)與加密卡之間互相發(fā)送數(shù)據(jù),并對(duì)其中相應(yīng)的安全聯(lián)盟(SA)的三個(gè)序列號(hào)以及狀態(tài)標(biāo)示符分別進(jìn)行處理;C、主機(jī)通過定時(shí)器對(duì)加密卡使用的每一條安全聯(lián)盟(SA)定時(shí)進(jìn)行檢測(cè),利用三個(gè)序列號(hào)和狀態(tài)標(biāo)示符之間的關(guān)系,確定發(fā)生問題的安全聯(lián)盟的具體位置。
      所述的A步驟中對(duì)三個(gè)序列號(hào)和標(biāo)識(shí)符的初始化是分別設(shè)置發(fā)送序列號(hào)、接收序列號(hào)、驗(yàn)證序列號(hào)和狀態(tài)標(biāo)示符均為0。
      所述的B步驟中主機(jī)與加密卡之間互相發(fā)送數(shù)據(jù),并對(duì)其中相應(yīng)的安全聯(lián)盟(SA)的三個(gè)序列號(hào)以及狀態(tài)標(biāo)示符分別進(jìn)行處理的過程包括有下列步驟B1、首先由主機(jī)根據(jù)數(shù)據(jù)本身特征查找到所對(duì)應(yīng)的安全聯(lián)盟(SA),得到該安全聯(lián)盟(SA)的發(fā)送序列號(hào)(card_send_seq);并將該發(fā)送序列號(hào)(card_send_seq)加1后的值作為該數(shù)據(jù)包的序列號(hào)(DataSequence)添加在數(shù)據(jù)包的消息幀頭中,同時(shí)將能夠在全局唯一地標(biāo)示該安全聯(lián)盟(SA)的標(biāo)示添加到該數(shù)據(jù)包的消息幀頭中,連同數(shù)據(jù)包一起發(fā)送到加密卡進(jìn)行處理;還將該安全聯(lián)盟(SA)的發(fā)送序列號(hào)加1,表示主機(jī)向加密卡發(fā)送了一個(gè)序列號(hào)為(DataSequence)的數(shù)據(jù)包;B2、加密卡接收到主機(jī)發(fā)送來的數(shù)據(jù)包,先根據(jù)該數(shù)據(jù)包消息幀頭中的安全聯(lián)盟(SA)標(biāo)示找到對(duì)應(yīng)的安全聯(lián)盟(SA),藉由該安全聯(lián)盟(SA)的信息對(duì)該數(shù)據(jù)包進(jìn)行驗(yàn)證處理;接著根據(jù)驗(yàn)證結(jié)果生成新的消息幀頭若驗(yàn)證成功,則生成加密驗(yàn)證后的數(shù)據(jù)包,其消息幀頭中的安全聯(lián)盟(SA)標(biāo)示以及數(shù)據(jù)包序列號(hào)(DataSequence)均和主機(jī)發(fā)送來的數(shù)據(jù)包消息幀頭中的原始值保持一致,若驗(yàn)證失敗,則生成錯(cuò)誤信息;然后將該消息幀頭或者所產(chǎn)生的錯(cuò)誤信息連同處理后的數(shù)據(jù)包一起發(fā)回給主機(jī)系統(tǒng);B3、主機(jī)系統(tǒng)接收到加密卡返送回來的數(shù)據(jù)包,從該數(shù)據(jù)包的消息幀頭中得到安全聯(lián)盟(SA)標(biāo)示和該數(shù)據(jù)包的序列號(hào)(DataSequence);然后根據(jù)安全聯(lián)盟(SA)的標(biāo)示得到相應(yīng)的安全聯(lián)盟(SA),并對(duì)該安全聯(lián)盟(SA)的序列號(hào)進(jìn)行下述處理如果該數(shù)據(jù)包的序列號(hào)(DataSequence)等于該安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)加1,說明該安全聯(lián)盟(SA)所對(duì)應(yīng)的數(shù)據(jù)包的驗(yàn)證處理屬于正常狀態(tài),該數(shù)據(jù)包為主機(jī)當(dāng)前所期望從加密卡得到的數(shù)據(jù)包,并設(shè)置接收序列號(hào)(card_recv_seq)等于接收到的該數(shù)據(jù)包的序列號(hào)(DataSequence);如果數(shù)據(jù)包的序列號(hào)(DataSequence)不等于該安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)加1,說明加密卡在使用該安全聯(lián)盟(SA)處理數(shù)據(jù)包過程中,已經(jīng)有數(shù)據(jù)包被丟失,該數(shù)據(jù)包不是主機(jī)當(dāng)前所期望從加密卡得到的數(shù)據(jù)包,此時(shí)輸出提示信息“該SA已經(jīng)有數(shù)據(jù)包被丟棄”,同時(shí)設(shè)置該安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)為接收到的該數(shù)據(jù)包的序列號(hào)(DataSequence)。
      所述的C步驟中主機(jī)通過定時(shí)器對(duì)加密卡使用的每一條安全聯(lián)盟(SA)進(jìn)行定時(shí)檢測(cè)的過程包括有下列步驟首先判斷該安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)(card_last_recv_seq)是否等于其接收序列號(hào)(card_recv_seq),接著判斷該安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)(card_last_recv_seq)是否等于其發(fā)送序列號(hào)(card_send_seq),還要判斷該安全聯(lián)盟(SA)的狀態(tài)標(biāo)示符(car_last_check_result)是否等于1,再根據(jù)上述序列號(hào)和狀態(tài)標(biāo)示符的不同情況分別進(jìn)行相應(yīng)的處理如果該安全聯(lián)盟的驗(yàn)證序列號(hào)等于接收序列號(hào),而且驗(yàn)證序列號(hào)不等于發(fā)送序列號(hào)時(shí),則分為兩種情況處理(1)如果狀態(tài)標(biāo)示符為0,則將狀態(tài)標(biāo)示符設(shè)置為1;(2)如果狀態(tài)標(biāo)示符為1,則對(duì)該安全聯(lián)盟(AS)進(jìn)行更新糾錯(cuò),并向用戶發(fā)出相應(yīng)的提示信息;對(duì)于序列號(hào)的其他情況,則認(rèn)為加密卡對(duì)數(shù)據(jù)包的處理正常,同時(shí)設(shè)置驗(yàn)證序列號(hào)等于接收序列號(hào)。
      在使用加密卡進(jìn)行數(shù)據(jù)驗(yàn)證處理時(shí),主機(jī)和加密卡要分別維護(hù)一套相同的安全聯(lián)盟,由于安全聯(lián)盟的數(shù)量比較多,使用這些安全聯(lián)盟進(jìn)行加密驗(yàn)證的數(shù)據(jù)量也相對(duì)較大,如果加密卡驗(yàn)證數(shù)據(jù)時(shí)發(fā)現(xiàn)錯(cuò)誤,要具體定位是哪一條安全聯(lián)盟出現(xiàn)錯(cuò)誤,現(xiàn)有技術(shù)是很難實(shí)現(xiàn)的。本發(fā)明的方法是通過對(duì)安全聯(lián)盟設(shè)置若干序列號(hào)和狀態(tài)符,再針對(duì)這些序列號(hào)和狀態(tài)符的不同情況進(jìn)行分析判斷,可以方便、簡(jiǎn)捷地檢測(cè)各個(gè)安全聯(lián)盟是否發(fā)生錯(cuò)誤,并定位找到發(fā)生問題的安全聯(lián)盟所處位置,然后可以通過觸發(fā)該安全聯(lián)盟的協(xié)商或者重新向加密卡添加正確的安全聯(lián)盟,進(jìn)行更新糾錯(cuò);從而避免再次發(fā)生錯(cuò)誤,保證數(shù)據(jù)安全傳輸。
      圖2是主機(jī)使用本發(fā)明方法定時(shí)檢測(cè)每一條安全聯(lián)盟,以找出發(fā)生問題的安全聯(lián)盟的確切位置的流程圖。
      該方法包括有下列操作步驟A、首先使用Sec協(xié)議通過IKE自動(dòng)協(xié)商或者手工配置生成安全聯(lián)盟(SA),并對(duì)該安全聯(lián)盟(SA)的發(fā)送序列號(hào)、接收序列號(hào)和驗(yàn)證序列號(hào)以及狀態(tài)標(biāo)示符進(jìn)行初始化;該初始化是分別設(shè)置發(fā)送序列號(hào)、接收序列號(hào)、驗(yàn)證序列號(hào)和狀態(tài)標(biāo)示符均為0;用以標(biāo)示當(dāng)前該安全聯(lián)盟(SA)沒有向加密卡發(fā)送、也沒有從加密卡接收數(shù)據(jù)包,同時(shí)該安全聯(lián)盟(SA)的狀態(tài)正常。
      B、主機(jī)與加密卡之間互相發(fā)送數(shù)據(jù),并對(duì)其中相應(yīng)的安全聯(lián)盟(SA)的三個(gè)序列號(hào)以及狀態(tài)標(biāo)示符分別進(jìn)行處理的過程包括有下列步驟(參見

      圖1)B1、首先由主機(jī)根據(jù)其要向加密卡發(fā)送的數(shù)據(jù)本身特征查找到所對(duì)應(yīng)的安全聯(lián)盟(SA),得到該安全聯(lián)盟(SA)的發(fā)送序列號(hào)(card_send_seq);并將該發(fā)送序列號(hào)(card_send_seq)加1后的值作為該數(shù)據(jù)包的序列號(hào)(DataSequence)添加在數(shù)據(jù)包的消息幀頭中,還將能夠在全局唯一地標(biāo)示該安全聯(lián)盟(SA)的標(biāo)示添加到該數(shù)據(jù)包的消息幀頭中的該安全聯(lián)盟(SA)標(biāo)示域,連同數(shù)據(jù)包一起發(fā)送到加密卡進(jìn)行處理;同時(shí)將該安全聯(lián)盟(SA)的發(fā)送序列號(hào)加1,表示主機(jī)向加密卡發(fā)送了一個(gè)序列號(hào)為DataSequence的數(shù)據(jù)包;B2、加密卡接收到主機(jī)發(fā)送來的數(shù)據(jù)包,先根據(jù)該數(shù)據(jù)包消息幀頭中的該安全聯(lián)盟(SA)標(biāo)示找到對(duì)應(yīng)的安全聯(lián)盟(SA),通過該安全聯(lián)盟(SA)的信息對(duì)該數(shù)據(jù)包進(jìn)行驗(yàn)證處理,接著根據(jù)驗(yàn)證結(jié)果生成新的消息幀頭若驗(yàn)證成功,則生成加密驗(yàn)證后的數(shù)據(jù)包,其消息幀頭中的安全聯(lián)盟(SA)標(biāo)示以及數(shù)據(jù)包序列號(hào)(DataSequence)均和主機(jī)發(fā)送來的原始數(shù)據(jù)包消息幀頭中的數(shù)值保持一致,若驗(yàn)證失敗,則生成錯(cuò)誤信息;然后將該消息幀頭或者所產(chǎn)生的錯(cuò)誤信息連同處理后的數(shù)據(jù)包一起發(fā)回給主機(jī)系統(tǒng);B3、主機(jī)系統(tǒng)接收到加密卡返送回來的數(shù)據(jù)包,先從該數(shù)據(jù)包的消息幀頭中得到該安全聯(lián)盟(SA)標(biāo)示和該數(shù)據(jù)包的序列號(hào)(DataSequence);然后根據(jù)該安全聯(lián)盟(SA)的標(biāo)示得到相應(yīng)的安全聯(lián)盟(SA),并對(duì)該安全聯(lián)盟(SA)的序列號(hào)進(jìn)行下述處理如果該數(shù)據(jù)包的序列號(hào)(DataSequence)等于該安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)加1,說明該安全聯(lián)盟(SA)所對(duì)應(yīng)的數(shù)據(jù)包的驗(yàn)證處理屬于正常狀態(tài),該數(shù)據(jù)包為主機(jī)當(dāng)前所期望從加密卡得到的數(shù)據(jù)包,設(shè)置接收序列號(hào)(card_recv_seq)等于接收到的該數(shù)據(jù)包的序列號(hào)(DataSequence);如果該數(shù)據(jù)包的序列號(hào)(DataSequence)不等于該安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)加1,說明加密卡在使用該安全聯(lián)盟(SA)處理數(shù)據(jù)包過程中,已經(jīng)有數(shù)據(jù)包被丟失,該數(shù)據(jù)包并不是主機(jī)當(dāng)前所期望從加密卡得到的數(shù)據(jù)包,此時(shí)輸出提示信息“該安全聯(lián)盟(SA)已經(jīng)有數(shù)據(jù)包被丟棄”,同時(shí)設(shè)置該安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)為接收到的該數(shù)據(jù)包的序列號(hào)(DataSequence)。這是因?yàn)樵诖藭r(shí),凡是其數(shù)據(jù)包序列號(hào)(DataSequence)大于當(dāng)前接收序列號(hào)(card_recv_seq)、且小于當(dāng)前接收到的數(shù)據(jù)包序列號(hào)(DataSequence)的所有數(shù)據(jù)包都已經(jīng)在加密卡的處理過程中被丟棄了,且它們相應(yīng)的錯(cuò)誤信息也沒有返回。這樣處理的目的是為了使加密卡在繼續(xù)進(jìn)行驗(yàn)證處理時(shí)避免再次發(fā)生錯(cuò)誤。
      C、主機(jī)通過定時(shí)器對(duì)加密卡使用的每一條安全聯(lián)盟(SA)定時(shí)進(jìn)行檢測(cè),利用三個(gè)序列號(hào)和狀態(tài)標(biāo)示符確定發(fā)生問題的安全聯(lián)盟的具體位置。其過程包括有下列步驟(參見圖2)主機(jī)在定時(shí)檢測(cè)每個(gè)安全聯(lián)盟(SA)時(shí),首先判斷該安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)是否等于其接收序列號(hào),接著判斷該安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)是否等于其發(fā)送序列號(hào),還要判斷該安全聯(lián)盟(SA)的狀態(tài)標(biāo)示符是否等于1,再根據(jù)上述序列號(hào)和狀態(tài)標(biāo)示符的不同情況分別進(jìn)行相應(yīng)的處理如果初始值為0的某一條安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)(card_last_recv_seq)等于接收序列號(hào)(card_recv_seq),且不等于發(fā)送序列號(hào)(card_send_seq),即發(fā)送序列號(hào)(card_send_seq)和接收序列號(hào)(card_recv_seq)不相等,說明在本檢測(cè)周期內(nèi)主機(jī)沒有從加密卡接收到數(shù)據(jù)包,但向加密卡已發(fā)送過數(shù)據(jù)包;即在本檢測(cè)周期中與該安全聯(lián)盟(SA)相關(guān)的數(shù)據(jù)包在加密卡上的處理可能出現(xiàn)錯(cuò)誤,該錯(cuò)誤是指丟棄數(shù)據(jù)包,且沒有任何錯(cuò)誤信息反饋給主機(jī),或者是加密卡反饋的信息尚在傳輸?shù)倪^程中。這是因?yàn)橹鳈C(jī)系統(tǒng)和加密卡系統(tǒng)是相對(duì)獨(dú)立的,有可能是該加密卡反饋的信息還在兩者之間傳輸?shù)摹奥飞稀?。這時(shí),分為兩種情況分別進(jìn)行處理(1)如果該安全聯(lián)盟(SA)的狀態(tài)標(biāo)示符(card_last_check_result)為0,表示該安全聯(lián)盟(SA)在上一次檢測(cè)中是正常的,則設(shè)置該安全聯(lián)盟(SA)的狀態(tài)標(biāo)示符(card_last_check_result)為1,以紀(jì)錄本次檢測(cè)周期中該安全聯(lián)盟(SA)在加密卡上的對(duì)應(yīng)副本可能發(fā)生錯(cuò)誤,也可能正在加密卡上處理,隨后將發(fā)送回主機(jī);(2)如果該安全聯(lián)盟(SA)的狀態(tài)標(biāo)示符(card_last_check_result)為1,表示前一個(gè)周期該安全聯(lián)盟(SA)在加密卡上的副本已經(jīng)發(fā)生錯(cuò)誤(甚至在加密卡上根本不存在該安全聯(lián)盟(SA)的副本),并進(jìn)行了標(biāo)記。這時(shí)需要通過下發(fā)添加安全聯(lián)盟(SA)的命令來對(duì)加密卡上的該條安全聯(lián)盟(SA)進(jìn)行更新糾錯(cuò),同時(shí)向用戶提示該條安全聯(lián)盟(SA)發(fā)生錯(cuò)誤;對(duì)于序列號(hào)的其他情況都認(rèn)為加密卡對(duì)數(shù)據(jù)包的處理是正常的。例如該安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)(card_last_recv_seq)不等于其的接收序列號(hào)(card_recv_seq),說明在本檢測(cè)周期內(nèi)曾經(jīng)接收到加密卡反饋的與該安全聯(lián)盟(SA)相關(guān)的數(shù)據(jù)包,即在已經(jīng)過去的一段時(shí)間內(nèi)加密卡向主機(jī)反饋該安全聯(lián)盟(SA)相關(guān)數(shù)據(jù)包的處理過程是正常的,可以認(rèn)為該安全聯(lián)盟(SA)在加密卡上的副本是正確的,設(shè)置該安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)(card_last_recv_seq)等于它的接收序列號(hào)(card_recv_seq),同時(shí)設(shè)置其狀態(tài)標(biāo)示(card_last_check_result)為0,標(biāo)明該安全聯(lián)盟(SA)狀態(tài)正常。
      又例如該安全聯(lián)盟(SA)的發(fā)送序列號(hào)(card_send_seq)等于其接收序列號(hào)(card_recv_seq),即該安全聯(lián)盟(SA)相關(guān)的向加密卡發(fā)送的數(shù)據(jù)包全部得到了加密卡的反饋,說明該安全聯(lián)盟(SA)在加密卡上的副本是正確的,則設(shè)置該安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)(card_last_recv_seq)等于接收序列號(hào)(card_recv_seq),同時(shí)設(shè)置其狀態(tài)標(biāo)示(card_last_check_result)為0,標(biāo)明該安全聯(lián)盟(SA)狀態(tài)正常。
      這是因?yàn)樵诒景l(fā)明的上述處理過程中,每個(gè)安全聯(lián)盟(SA)的發(fā)送序列號(hào)(card_send_seq)始終等于主機(jī)系統(tǒng)向加密卡發(fā)送的、與該安全聯(lián)盟(SA)相關(guān)的所有數(shù)據(jù)包中最新(即序列號(hào)數(shù)目最大)的數(shù)據(jù)包序列號(hào)(DataSequence)。而每個(gè)安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)也始終等于主機(jī)系統(tǒng)從加密卡接收到的、與該安全聯(lián)盟(SA)相關(guān)的所有數(shù)據(jù)包中最新(即序列號(hào)數(shù)目最大)的數(shù)據(jù)包序列號(hào)(DataSequence)。這樣在理論上,如果加密卡對(duì)每個(gè)數(shù)據(jù)包的處理結(jié)果都反饋給了主機(jī)(無論是正確處理后得到的加密驗(yàn)證后的數(shù)據(jù)包,還是處理過程中發(fā)現(xiàn)錯(cuò)誤后給出的錯(cuò)誤信息),對(duì)于同一個(gè)安全聯(lián)盟(SA)來說,它的發(fā)送序列號(hào)(card_send_seq)應(yīng)該是和它的接收序列號(hào)(card_recv_seq)相等的(假設(shè)加密卡對(duì)該安全聯(lián)盟(SA)相關(guān)的所有數(shù)據(jù)包都已處理完畢,其所反饋的信息也都被主機(jī)接收到)。
      本發(fā)明的方法已經(jīng)在計(jì)算機(jī)進(jìn)行過仿真模擬和測(cè)試,并且在申請(qǐng)人研制的加密卡項(xiàng)目中進(jìn)行實(shí)施試驗(yàn),試驗(yàn)的實(shí)踐和測(cè)試證明,該方法是可行的,且工作可靠,實(shí)現(xiàn)了預(yù)期的發(fā)明目的。
      權(quán)利要求
      1.一種驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒ǎ涮卣髟谟谠摲椒ㄊ窃诿織l安全聯(lián)盟(SA)的結(jié)構(gòu)中添加發(fā)送序列號(hào)(card_send_seq)、接收序列號(hào)(card_recv_seq)和驗(yàn)證序列號(hào)(card_last_recv_seq)三個(gè)序列號(hào)標(biāo)示和一個(gè)狀態(tài)標(biāo)示符(card_last_check_result)符號(hào),接著,檢測(cè)這些標(biāo)示來驗(yàn)證加密卡在使用安全聯(lián)盟(SA)進(jìn)行數(shù)據(jù)處理的過程中是否發(fā)生錯(cuò)誤;同時(shí),主機(jī)定時(shí)檢測(cè)加密卡所使用的每條安全聯(lián)盟(SA),利用這些標(biāo)示來確定發(fā)生問題的安全聯(lián)盟(SA)的具體位置。
      2.根據(jù)權(quán)利要求1所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的安全?lián)盟(SA)的發(fā)送序列號(hào)(card_send_seq)是標(biāo)記主機(jī)向加密卡所發(fā)送的每個(gè)數(shù)據(jù)包的序列號(hào)。
      3.根據(jù)權(quán)利要求2所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒ǎ涮卣髟谟谒龅陌踩?lián)盟(SA)的發(fā)送序列號(hào)是在主機(jī)需要向加密卡發(fā)送數(shù)據(jù)包時(shí),根據(jù)該數(shù)據(jù)包本身的特征,確定它所對(duì)應(yīng)的安全聯(lián)盟(SA)而得到的;然后再將該發(fā)送序列號(hào)加1,作為該數(shù)據(jù)包的序列號(hào)保存在其消息幀頭中,發(fā)送給加密卡。
      4.根據(jù)權(quán)利要求3所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的該?shù)據(jù)包本身的特征包括有該IP數(shù)據(jù)包報(bào)文的源地址、目的地址類的信息。
      5.根據(jù)權(quán)利要求1所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的安全?lián)盟(SA)接收序列號(hào)(card_recv_seq)是標(biāo)記主機(jī)已經(jīng)從加密卡接收到的數(shù)據(jù)包的序列號(hào)。
      6.根據(jù)權(quán)利要求5所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的安全?lián)盟(SA)接收序列號(hào)是在主機(jī)接收到加密卡返回的數(shù)據(jù)包時(shí),根據(jù)其消息幀頭中的安全聯(lián)盟(SA)標(biāo)示,找到相應(yīng)的安全聯(lián)盟(SA)而得到的;然后比較該接收序列號(hào)和數(shù)據(jù)包消息幀頭中保存的接收序列號(hào)的數(shù)值是否相等,判斷該數(shù)據(jù)包是否為所期望接收的數(shù)據(jù)包。
      7.根據(jù)權(quán)利要求1所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的安全?lián)盟(SA)驗(yàn)證序列號(hào)(card_last_recv_seq)是標(biāo)記上一次對(duì)每一條安全聯(lián)盟(SA)進(jìn)行檢測(cè)時(shí),該被檢測(cè)的安全聯(lián)盟(SA)的接收序列號(hào)。
      8.根據(jù)權(quán)利要求7所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒ǎ涮卣髟谟谒龅陌踩?lián)盟(SA)驗(yàn)證序列號(hào)是用于定時(shí)檢測(cè)安全聯(lián)盟SA時(shí),與該安全聯(lián)盟(SA)的發(fā)送序列號(hào)、接收序列號(hào)相配合,來確定該安全聯(lián)盟(SA)當(dāng)前的狀態(tài)是否正常。
      9.根據(jù)權(quán)利要求1所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的安全?lián)盟(SA)狀態(tài)標(biāo)示符(card_last_check_result)是標(biāo)記安全聯(lián)盟(SA)的當(dāng)前狀態(tài)的符號(hào)。
      10.根據(jù)權(quán)利要求9所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的安全?lián)盟(SA)狀態(tài)標(biāo)示符有兩種當(dāng)狀態(tài)標(biāo)示符為0時(shí),說明上一次檢測(cè)安全聯(lián)盟(SA)時(shí),該安全聯(lián)盟(SA)正常;當(dāng)狀態(tài)標(biāo)示符為1時(shí),說明上一次檢測(cè)安全聯(lián)盟(SA)時(shí),該安全聯(lián)盟(SA)已經(jīng)出現(xiàn)異常。
      11.根據(jù)權(quán)利要求1所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于該方法包括有下列操作步驟A、首先使用IPSec協(xié)議通過IKE自動(dòng)協(xié)商或者手工配置生成安全聯(lián)盟(SA),并對(duì)該安全聯(lián)盟(SA)的發(fā)送序列號(hào)、接收序列號(hào)和驗(yàn)證序列號(hào)以及狀態(tài)標(biāo)示符進(jìn)行初始化;B、主機(jī)與加密卡之間互相發(fā)送數(shù)據(jù),并對(duì)其中相應(yīng)的安全聯(lián)盟(SA)的三個(gè)序列號(hào)以及狀態(tài)標(biāo)示符分別進(jìn)行處理;C、主機(jī)通過定時(shí)器對(duì)加密卡使用的每一條安全聯(lián)盟(SA)定時(shí)進(jìn)行檢測(cè),利用三個(gè)序列號(hào)和狀態(tài)標(biāo)示符之間的關(guān)系,確定發(fā)生問題的安全聯(lián)盟的具體位置。
      12.根據(jù)權(quán)利要求11所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的A步驟中對(duì)三個(gè)序列號(hào)和標(biāo)識(shí)符的初始化是分別設(shè)置發(fā)送序列號(hào)、接收序列號(hào)、驗(yàn)證序列號(hào)和狀態(tài)標(biāo)示符均為0。
      13.根據(jù)權(quán)利要求11所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的B步驟中主機(jī)與加密卡之間互相發(fā)送數(shù)據(jù),并對(duì)其中相應(yīng)的安全聯(lián)盟(SA)的三個(gè)序列號(hào)以及狀態(tài)標(biāo)示符分別進(jìn)行處理的過程包括有下列操作步驟B1、首先由主機(jī)根據(jù)數(shù)據(jù)本身特征查找到所對(duì)應(yīng)的安全聯(lián)盟(SA),得到該安全聯(lián)盟(SA)的發(fā)送序列號(hào)(card_send_seq);并將該發(fā)送序列號(hào)(card_send_seq)加1后的值作為該數(shù)據(jù)包的序列號(hào)(DataSequence)添加在數(shù)據(jù)包的消息幀頭中,同時(shí)將能夠在全局唯一地標(biāo)示該安全聯(lián)盟(SA)的標(biāo)示添加到該數(shù)據(jù)包的消息幀頭中,連同數(shù)據(jù)包一起發(fā)送到加密卡進(jìn)行處理;還將該安全聯(lián)盟(SA)的發(fā)送序列號(hào)加1,表示主機(jī)向加密卡發(fā)送了一個(gè)序列號(hào)為(DataSequence)的數(shù)據(jù)包;B2、加密卡接收到主機(jī)發(fā)送來的數(shù)據(jù)包,先根據(jù)該數(shù)據(jù)包消息幀頭中的安全聯(lián)盟(SA)標(biāo)示找到對(duì)應(yīng)的安全聯(lián)盟(SA),藉由該安全聯(lián)盟(SA)的信息對(duì)該數(shù)據(jù)包進(jìn)行驗(yàn)證處理;接著根據(jù)驗(yàn)證結(jié)果生成新的消息幀頭若驗(yàn)證成功,則生成加密驗(yàn)證后的數(shù)據(jù)包,其消息幀頭中的安全聯(lián)盟(SA)標(biāo)示以及數(shù)據(jù)包序列號(hào)(DataSequence)均和主機(jī)發(fā)送來的數(shù)據(jù)包消息幀頭中的原始值保持一致,若驗(yàn)證失敗,則生成錯(cuò)誤信息;然后將該消息幀頭或者所產(chǎn)生的錯(cuò)誤信息連同處理后的數(shù)據(jù)包一起發(fā)回給主機(jī)系統(tǒng);B3、主機(jī)系統(tǒng)接收到加密卡返送回來的數(shù)據(jù)包,從該數(shù)據(jù)包的消息幀頭中得到安全聯(lián)盟(SA)標(biāo)示和該數(shù)據(jù)包的序列號(hào)(DataSequence);然后根據(jù)安全聯(lián)盟(SA)的標(biāo)示得到相應(yīng)的安全聯(lián)盟(SA),并對(duì)該安全聯(lián)盟(SA)的序列號(hào)進(jìn)行下述處理如果該數(shù)據(jù)包的序列號(hào)(DataSequence)等于該安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)加1,說明該安全聯(lián)盟(SA)所對(duì)應(yīng)的數(shù)據(jù)包的驗(yàn)證處理屬于正常狀態(tài),該數(shù)據(jù)包為主機(jī)當(dāng)前所期望從加密卡得到的數(shù)據(jù)包,并設(shè)置接收序列號(hào)(card_recv_seq)等于接收到的該數(shù)據(jù)包的序列號(hào)(DataSequence);如果數(shù)據(jù)包的序列號(hào)(DataSequence)不等于該安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)加1,說明加密卡在使用該安全聯(lián)盟(SA)處理數(shù)據(jù)包過程中,已經(jīng)有數(shù)據(jù)包被丟失,該數(shù)據(jù)包不是主機(jī)當(dāng)前所期望從加密卡得到的數(shù)據(jù)包,此時(shí)輸出提示信息“該SA已經(jīng)有數(shù)據(jù)包被丟棄”,同時(shí)設(shè)置該安全聯(lián)盟(SA)的接收序列號(hào)(card_recv_seq)為接收到的該數(shù)據(jù)包的序列號(hào)(DataSequence)。
      14.根據(jù)權(quán)利要求11所述的驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,其特征在于所述的C步驟中主機(jī)通過定時(shí)器對(duì)加密卡使用的每一條安全聯(lián)盟(SA)進(jìn)行定時(shí)檢測(cè)的過程包括有下列步驟首先判斷該安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)(card_last_recv_seq)是否等于其接收序列號(hào)(card_recv_seq),接著判斷該安全聯(lián)盟(SA)的驗(yàn)證序列號(hào)(card_last_recv_seq)是否等于其發(fā)送序列號(hào)(card_send_seq),還要判斷該安全聯(lián)盟(SA)的狀態(tài)標(biāo)示符(card_last_check_result)是否等于1,再根據(jù)上述序列號(hào)和狀態(tài)標(biāo)示符的不同情況分別進(jìn)行相應(yīng)的處理如果該安全聯(lián)盟的驗(yàn)證序列號(hào)等于接收序列號(hào),而且驗(yàn)證序列號(hào)不等于發(fā)送序列號(hào)時(shí),則分為兩種情況處理(1)如果狀態(tài)標(biāo)示符為0,則將狀態(tài)標(biāo)示符設(shè)置為1;(2)如果狀態(tài)標(biāo)示符為1,則對(duì)該安全聯(lián)盟(AS)進(jìn)行更新糾錯(cuò),并向用戶發(fā)出相應(yīng)的提示信息;對(duì)于序列號(hào)的其他情況,則認(rèn)為加密卡對(duì)數(shù)據(jù)包的處理正常,同時(shí)設(shè)置驗(yàn)證序列號(hào)等于接收序列號(hào)。
      全文摘要
      一種使用安全聯(lián)盟序列號(hào)驗(yàn)證數(shù)據(jù)安全傳輸?shù)姆椒?,是在每條安全聯(lián)盟(SA)的結(jié)構(gòu)中添加發(fā)送序列號(hào)(card_send_seq)、接收序列號(hào)(card_recv_seq)和驗(yàn)證序列號(hào)(card_last_recv_seq)三個(gè)序列號(hào)標(biāo)示和一個(gè)狀態(tài)標(biāo)示符(card_last_check_result)字段,通過對(duì)這些標(biāo)示的檢測(cè)來驗(yàn)證加密卡在使用安全聯(lián)盟(SA)進(jìn)行數(shù)據(jù)處理的過程中是否發(fā)生錯(cuò)誤;同時(shí),主機(jī)定時(shí)檢測(cè)加密卡所使用的每條安全聯(lián)盟(SA),利用這些標(biāo)示來確定發(fā)生問題的安全聯(lián)盟的具體位置,并及時(shí)更新糾錯(cuò)。該方法比較方便、簡(jiǎn)捷,可以避免使用錯(cuò)誤的安全聯(lián)盟繼續(xù)驗(yàn)證處理相關(guān)數(shù)據(jù)包,保證數(shù)據(jù)安全傳輸。
      文檔編號(hào)H04L9/00GK1414730SQ02117818
      公開日2003年4月30日 申請(qǐng)日期2002年5月22日 優(yōu)先權(quán)日2002年5月22日
      發(fā)明者傅志剛, 趙玉金 申請(qǐng)人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1