伊莉斯雷維爾
共存的相關(guān)專利申請(qǐng)
本申請(qǐng)與同一申請(qǐng)人提交并且按照如下標(biāo)題的申請(qǐng)同時(shí)提交。關(guān)于各專利申請(qǐng)中的具體問題的細(xì)節(jié)將被視為并入其他相關(guān)專利申請(qǐng)的每一個(gè)中。
相關(guān)專利申請(qǐng)的標(biāo)題為:
安全系統(tǒng)中終端的改進(jìn)安裝;
生成對(duì)稱加密密鑰;
通過認(rèn)證令牌的改進(jìn)安全;以及
用于建立安全通信信道的改進(jìn)系統(tǒng)。
本申請(qǐng)涉及一種用于改進(jìn)的安全和安全性的系統(tǒng)、方法、設(shè)備和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),并且特別涉及一種用于建立安全通信信道的系統(tǒng)、方法、設(shè)備和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
在當(dāng)今社會(huì)中,數(shù)字通信日益增多,并且大部分人對(duì)使用互聯(lián)網(wǎng)執(zhí)行任務(wù)感覺到舒適,所述任務(wù)諸如管理他們的銀行賬戶、申報(bào)他們的收入、或交換其他秘密信息。為了執(zhí)行這樣的任務(wù),同時(shí)維持令人滿意的安全級(jí)別,已經(jīng)提出了基于加密的許多不同的安全解決方案。大多數(shù)這樣的解決方案涉及某種類型的公鑰和私鑰,并且用戶必須在可以與另一方建立安全通信之前共享該用戶的公鑰。在密碼術(shù)中,密鑰可以被看作是確定加密算法的函數(shù)輸出的一條信息。
通常認(rèn)為在設(shè)計(jì)安全系統(tǒng)時(shí),假設(shè)攻擊者可能已經(jīng)獲得了加密算法的細(xì)節(jié)是明智的。這個(gè)原則被稱為柯克霍夫原則,并且因此只有保密的密鑰才能提供安全。這個(gè)原則是基于這一事實(shí):即很難保密廣泛使用的算法的細(xì)節(jié)。密鑰通常比較容易保護(hù),因?yàn)榕c加密算法相比,它通常是一小條信息。然而,保密密鑰也可能是困難的。如果攻擊者以某種方式獲取密鑰,則他或她可以從加密數(shù)據(jù)中恢復(fù)原始消息。
使用相同密鑰進(jìn)行加密和解密的加密算法被稱為對(duì)稱加密密鑰算法。還有非對(duì)稱加密密鑰算法,所述非對(duì)稱加密密鑰算法使用一對(duì)密鑰,一個(gè)用于加密而一個(gè)用于解密。這些非對(duì)稱加密密鑰算法允許將一個(gè)密鑰公開,同時(shí)僅在一個(gè)位置保留私鑰。非對(duì)稱加密密鑰被設(shè)計(jì)為使得發(fā)現(xiàn)私鑰是非常困難的,即使相應(yīng)的公鑰已知。用戶在保密私鑰的同時(shí)可以公布他或她的公鑰,允許任何人向他們發(fā)送加密的消息。
為了使密鑰連同對(duì)稱加密算法“安全”,一般將80比特的長度視為最小值,并且128比特密鑰被通常使用并被認(rèn)為是非常強(qiáng)大的。公鑰密碼術(shù)中使用的密鑰具有某種數(shù)學(xué)結(jié)構(gòu)。例如,rsa系統(tǒng)中使用的公鑰是兩個(gè)素?cái)?shù)的乘積。因此,公鑰系統(tǒng)需要比對(duì)稱系統(tǒng)更長的密鑰長度以達(dá)到等同的安全級(jí)別。對(duì)于基于因數(shù)分解和整數(shù)離散對(duì)數(shù)的系統(tǒng),建議密鑰長度為3072比特,其目標(biāo)是具有等同于128比特對(duì)稱密碼的安全性。
如上所述,如果對(duì)于基于對(duì)稱和非對(duì)稱算法兩者的密鑰而言都足夠長,則有可能生成具有高度安全性的密鑰。然而,在密鑰分發(fā)中可能存在問題。例如,如果雙方想使用對(duì)稱密碼術(shù)彼此通信,他們首先必須決定使用什么密鑰,并且然后將該密鑰安全地從一方分發(fā)到另一方。此外,雙方必須保密該密鑰。入侵者可能發(fā)現(xiàn)密鑰的風(fēng)險(xiǎn)隨著密鑰使用的時(shí)間的增加而增加。因此,密鑰通常僅在有限的時(shí)間期間有效,例如六或十二個(gè)月。此后必須分發(fā)新的密鑰。
另外,對(duì)于非對(duì)稱密碼術(shù)加密的密鑰分發(fā),當(dāng)雙方想要彼此通信時(shí)遇到密鑰分發(fā)的問題。為了在兩個(gè)方向上發(fā)送信息,他們通常需要彼此交換公鑰。同樣在這種情況下,密鑰通常具有有限的時(shí)間段,在該時(shí)間段期間密鑰是有效的。對(duì)于與許多不同方進(jìn)行通信的一方,管理和分發(fā)有效的公鑰可能令人煩惱。一個(gè)典型的示例是當(dāng)你需要將某一秘密信息緊急地發(fā)送給另一方或者你還沒有交換公鑰時(shí),密鑰的有效性已經(jīng)過期。
在wo2011/002412中提供了一種解決方案,該解決方案公開了一種用于生成加密/解密密鑰的方法,并且特別是用于生成用于對(duì)稱加密的一次性加密/解密密鑰,即其中使用相同的密鑰用于加密和解密。為了開始密鑰生成,第一終端(a)向中央服務(wù)器(2)發(fā)送用于建立與第二終端(b)的通信的請(qǐng)求。中央服務(wù)器(2)向兩個(gè)終端(即終端a和b)發(fā)送密鑰生成文件。每個(gè)終端生成不同的中間數(shù)據(jù)集合,即第一和第二數(shù)據(jù)集合。由第一終端(a)生成的第一數(shù)據(jù)集合被發(fā)送到第二終端(b),該第二終端基于該數(shù)據(jù)集合生成發(fā)送回第一終端的第三數(shù)據(jù)集合。終端(a)中的第一加密密鑰的生成是基于第三和第一中間數(shù)據(jù)集合之間的逐比特比較,并且第二加密密鑰的生成是基于第一和第二中間數(shù)據(jù)集合之間的逐比特比較。第一和第二加密密鑰是相同的。
盡管這種方式具有許多優(yōu)點(diǎn),但是當(dāng)在具有防火墻或其他類似安全措施的系統(tǒng)中實(shí)現(xiàn)時(shí),可能會(huì)提出挑戰(zhàn)。鑒于上述挑戰(zhàn),發(fā)明人已經(jīng)意識(shí)到需要一種方法,利用該方法,雙方可以彼此以安全的方式進(jìn)行通信,而彼此不必事先交換密鑰,并且該方法可以用于采用防火墻或其他類似安全措施的系統(tǒng)。
因此,需要加密密鑰的改進(jìn)處理。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)的教導(dǎo)的目的是通過提供一種包括第一終端和服務(wù)器的系統(tǒng)克服上述所列的問題,其中所述第一終端被配置為通過以下步驟認(rèn)證服務(wù)器:生成第一認(rèn)證令牌,所述令牌是一種數(shù)據(jù)結(jié)構(gòu),將用于向第二計(jì)算裝置認(rèn)證第一計(jì)算裝置;并發(fā)送第一認(rèn)證令牌到服務(wù)器,其中,所述服務(wù)器被配置為接收第一認(rèn)證令牌并對(duì)該第一認(rèn)證令牌進(jìn)行認(rèn)證;生成用于第一終端的第二認(rèn)證令牌;以及將該第二認(rèn)證令牌發(fā)送到第一終端,借以所述第一終端被配置為接收第二認(rèn)證令牌并對(duì)該第二認(rèn)證令牌進(jìn)行認(rèn)證,從而執(zhí)行第一終端和服務(wù)器的相互認(rèn)證。
本發(fā)明的另一個(gè)目的是通過提供一種供在包括第一終端和服務(wù)器的系統(tǒng)中使用的方法來克服上述所列的問題,其中所述方法用于通過以下步驟認(rèn)證服務(wù)器:第一終端生成第一認(rèn)證令牌,所述令牌是一種數(shù)據(jù)結(jié)構(gòu),將用于向第二計(jì)算裝置認(rèn)證第一計(jì)算裝置;且第一終端發(fā)送第一認(rèn)證令牌到服務(wù)器;服務(wù)器接收第一認(rèn)證令牌并對(duì)該第一認(rèn)證令牌進(jìn)行認(rèn)證;服務(wù)器生成用于第一終端的第二認(rèn)證令牌;且服務(wù)器發(fā)送第二認(rèn)證令牌到第一終端,第一終端接收第二認(rèn)證令牌并對(duì)該第二認(rèn)證令牌進(jìn)行認(rèn)證,從而執(zhí)行第一終端和服務(wù)器的相互認(rèn)證。
本申請(qǐng)的教導(dǎo)的目的還在于,通過提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以克服上述所列的問題,該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)編碼有當(dāng)在處理器上執(zhí)行時(shí)執(zhí)行根據(jù)上述的方法的指令。
本文中的教導(dǎo)在用于確保安全連接的系統(tǒng)中使用,諸如銀行業(yè)務(wù)應(yīng)用程序,但也在其中一個(gè)裝置需要對(duì)其他裝置進(jìn)行認(rèn)證的系統(tǒng)中使用,諸如連接到計(jì)算機(jī)的外部存儲(chǔ)器。
所公開的實(shí)施例的其他特征和優(yōu)點(diǎn)將從以下詳細(xì)公開內(nèi)容、從所附的從屬權(quán)利要求以及從附圖中顯現(xiàn)。
通常,權(quán)利要求中使用的所有術(shù)語均應(yīng)根據(jù)技術(shù)領(lǐng)域的術(shù)語的普通含義進(jìn)行解釋,除非本文另有明確定義。除非另有明確說明,否則所有對(duì)“一/一個(gè)/該[元件、裝置、組件、部件、步驟等]”的引用被開放地解釋為指代元件、裝置、組件、部件、步驟等的至少一個(gè)實(shí)例。除非明確說明,否則本文公開的任何方法的步驟不必以所公開的確切順序加以執(zhí)行。
附圖說明
將參考附圖更詳細(xì)地描述本發(fā)明,其中:
圖1是根據(jù)本文中的教導(dǎo)的終端的示意圖;
圖2是根據(jù)本文中的教導(dǎo)的終端的組件的示意圖;
圖3是根據(jù)本文中的教導(dǎo)的計(jì)算機(jī)網(wǎng)絡(luò)的總體視圖的示意圖;
圖4示出了根據(jù)本申請(qǐng)的教導(dǎo)的一個(gè)實(shí)施例的計(jì)算機(jī)可讀介質(zhì)的示意圖;
圖5示出了根據(jù)本文中的教導(dǎo)的用于在系統(tǒng)中的第一終端和第二終端之間建立通信信道的方法的流程圖;
圖6示出了根據(jù)本文中的教導(dǎo)的用于在系統(tǒng)中安裝終端的方法的流程圖;
圖7是根據(jù)本文中的教導(dǎo)的用于終端和服務(wù)器相互認(rèn)證的一般方法的流程圖;
圖8是根據(jù)本文中的教導(dǎo)在相互認(rèn)證期間完成的認(rèn)證傳輸?shù)氖疽飧艌D;
圖9示出了根據(jù)本文中的教導(dǎo)的實(shí)施例的元數(shù)據(jù)字符串和相應(yīng)的認(rèn)證令牌的示例;
圖10a示出了根據(jù)本文中的教導(dǎo)的用于生成認(rèn)證令牌的一般流程圖;
圖10b示出了根據(jù)本文中的教導(dǎo)的用于認(rèn)證認(rèn)證令牌的一般流程圖;
圖11示出了根據(jù)本文中的教導(dǎo)的用于生成對(duì)稱加密密鑰的方法的流程圖;
圖12是根據(jù)本文中的教導(dǎo)的在生成對(duì)稱加密密鑰期間完成的傳輸?shù)氖疽飧艌D;
圖13是根據(jù)本文中的教導(dǎo)的用于根據(jù)本文從兩個(gè)終端的密鑰數(shù)據(jù)生成處理文件的一般方法的流程圖;
圖14是根據(jù)本文中的教導(dǎo)的用于生成對(duì)稱加密密鑰的方式的流程圖;以及
圖15示出了根據(jù)本文中的教導(dǎo)的系統(tǒng)通信的示意概圖。
具體實(shí)施方式
現(xiàn)在將參考附圖在下文中更充分地描述所公開的實(shí)施例,在附圖中示出了本發(fā)明的某些實(shí)施例。然而,本發(fā)明可以以許多不同的形式實(shí)施,并且不應(yīng)被解釋為限于本申請(qǐng)所闡述的實(shí)施例;相反地,作為示例提供這些實(shí)施例,以使得本公開將詳盡和完整,并將向本領(lǐng)域技術(shù)人員充分地傳達(dá)本發(fā)明的范圍。遍及全文相同的標(biāo)號(hào)指代相同的元件。
圖1示出了根據(jù)本文中的實(shí)施例的通信設(shè)備100。在一個(gè)實(shí)施例中,通信設(shè)備100被配置用于無線或有線的網(wǎng)絡(luò)通信。在一個(gè)實(shí)施例中,通信設(shè)備100被配置用于無線和有線的網(wǎng)絡(luò)通信。這種通信設(shè)備100的示例是:個(gè)人計(jì)算機(jī)、臺(tái)式或膝上型計(jì)算機(jī)、互聯(lián)網(wǎng)平板電腦、移動(dòng)電話、智能電話、個(gè)人數(shù)字助理、服務(wù)器、電子密鑰、機(jī)器對(duì)機(jī)器裝置(m2m)和工作站等等。
通信設(shè)備100將在下文中將被例示和描述為個(gè)人計(jì)算機(jī)100。個(gè)人計(jì)算機(jī)或終端100包括顯示器110和外殼120。外殼包括控制器或cpu(未示出)和一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(未示出),諸如存儲(chǔ)單元和內(nèi)部存儲(chǔ)器。存儲(chǔ)單元的示例是磁盤驅(qū)動(dòng)器或硬盤驅(qū)動(dòng)器。終端100還包括至少一個(gè)數(shù)據(jù)端口。數(shù)據(jù)端口可以是有線和/或無線的。數(shù)據(jù)端口的示例是usb(通用串行總線)端口、以太網(wǎng)端口或wifi(根據(jù)ieee標(biāo)準(zhǔn)802.11)端口。數(shù)據(jù)端口被配置為使得終端100能夠與其他終端或服務(wù)器連接。
終端100還包括至少一個(gè)諸如鍵盤130的輸入單元。輸入單元的其他示例是計(jì)算機(jī)鼠標(biāo)、觸摸板、觸摸屏或操縱桿等等。
圖2示出了計(jì)算裝置的一般結(jié)構(gòu)的示意圖。計(jì)算裝置可以是如圖1中的通信設(shè)備或服務(wù)器。在一個(gè)實(shí)施例中,計(jì)算裝置是如下將進(jìn)一步詳細(xì)討論的計(jì)算設(shè)備。在下面的描述中,計(jì)算裝置將被公開為根據(jù)圖1的終端。終端100包括控制器210,該控制器負(fù)責(zé)終端100的整體操作,并且優(yōu)選地由任何市售cpu(“中央處理單元”)、dsp(“數(shù)字信號(hào)處理器”)或任何其他電子可編程邏輯裝置來實(shí)現(xiàn)。控制器210可以使用能夠?qū)崿F(xiàn)硬件功能的指令來實(shí)現(xiàn),例如通過使用在通用或?qū)S锰幚砥髦锌蓤?zhí)行計(jì)算機(jī)程序指令,這些可執(zhí)行計(jì)算機(jī)程序指令可被存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(磁盤、存儲(chǔ)器等)240上以由這樣的處理器執(zhí)行??刂破?10被配置為從存儲(chǔ)器240讀取指令并執(zhí)行這些指令以控制終端100的操作。存儲(chǔ)器240可以使用用于計(jì)算機(jī)可讀存儲(chǔ)器的任何公知技術(shù)來實(shí)現(xiàn),諸如rom、ram、sram、dram、cmos、flash、ddr、eeprom存儲(chǔ)器,閃存,硬盤驅(qū)動(dòng)器,光學(xué)存儲(chǔ)裝置或其任何組合。
終端100還可以連接到諸如外部存儲(chǔ)器245的外部裝置,可能是u盤(通用串行總線)或外部硬盤驅(qū)動(dòng)器的形式。在將這樣的外部裝置連接到終端后,然后作為包括終端和外部終端或裝置245的設(shè)備。需要實(shí)現(xiàn)以使得外部裝置能夠與終端100協(xié)同工作的任何驅(qū)動(dòng)程序更新或下載可以通過在控制器中執(zhí)行的驅(qū)動(dòng)程序應(yīng)用程序或通過未示出的另一控制器來執(zhí)行。
終端100還包括一個(gè)或多個(gè)應(yīng)用程序250。應(yīng)用程序是當(dāng)由控制器210執(zhí)行時(shí)控制終端100的操作的指令集。存儲(chǔ)器240通過控制器210用于各種用途,其中一個(gè)用途是用于存儲(chǔ)用于終端100中的各種軟件模塊的應(yīng)用程序數(shù)據(jù)和程序指令250。軟件模塊包括實(shí)時(shí)操作系統(tǒng)、用于人機(jī)接口220的驅(qū)動(dòng)程序、應(yīng)用程序處理程序以及各種應(yīng)用程序250。應(yīng)用程序250可以包括消息傳遞應(yīng)用程序,諸如電子郵件、瀏覽應(yīng)用程序、銀行業(yè)務(wù)應(yīng)用程序以及各種其他應(yīng)用程序250。
終端100還可以包括在圖1的終端100中的用戶接口220,該用戶接口由顯示器110、小鍵盤130組成。顯示器110可以是觸摸顯示器,可以在該觸摸顯示器上虛擬鍵(未示出)顯示和操作。這樣的虛擬鍵可以替代任何或所有的物理鍵130,如果沒有明確地說明,將不會(huì)有差異。
用戶接口(ui)220還包括一個(gè)或多個(gè)硬件控制器,該一個(gè)或多個(gè)硬件控制器與ui驅(qū)動(dòng)程序一起與顯示器110、小鍵盤130以及諸如聲音系統(tǒng)、led指示器等的各種其他i/o裝置協(xié)同工作。眾所周知,用戶可以通過如此形成的人機(jī)接口來操作終端100。
終端100還可以包括射頻接口230,該射頻接口適于允許終端通過使用不同的射頻技術(shù)通過無線電頻帶與其他裝置通信。這樣的技術(shù)的示例有wifi、藍(lán)牙
終端100還可以包括有線接口235,該有線接口適于允許終端通過使用不同的網(wǎng)絡(luò)技術(shù)與其他裝置通信。這樣的技術(shù)的示例有usb、以太網(wǎng)、局域網(wǎng)、tcp/ip(傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)等等。
控制器210被配置為使用存儲(chǔ)在存儲(chǔ)器240中的軟件,通過rf接口230和/或有線接口235可操作地執(zhí)行諸如網(wǎng)頁瀏覽或電子郵件應(yīng)用程序的應(yīng)用程序250,該軟件包括用來為rf接口230和有線接口235以及可選地用于本地連接的藍(lán)牙接口和/或irda接口提供通信服務(wù)(例如傳輸,網(wǎng)絡(luò)和連接)的各種模塊、協(xié)議棧、驅(qū)動(dòng)程序等。rf接口230包括內(nèi)部或外部天線以及用于建立和維持到基站的無線鏈路的適當(dāng)?shù)臒o線電電路。如本領(lǐng)域技術(shù)人員所熟知的,無線電電路包括一系列模擬和數(shù)字電子組件,一起形成無線電接收器和發(fā)射器。這些組件包括,即,帶通濾波器、放大器、混頻器、本地振蕩器、低通濾波器、ad/da轉(zhuǎn)換器等。
圖3示出了根據(jù)本文中的實(shí)施例的計(jì)算機(jī)網(wǎng)絡(luò)300的示意概圖。諸如圖1或圖2的終端100的兩個(gè)終端100a、100b通過網(wǎng)絡(luò)或其他連接330連接,在一個(gè)示例中經(jīng)由互聯(lián)網(wǎng)。兩個(gè)終端可以通過有線連接或無線連接或已知連接方法的任何組合連接,例如通過專用網(wǎng)絡(luò)或連接。在圖3中,有兩個(gè)終端100a和100b,其中一個(gè)是臺(tái)式計(jì)算機(jī)100a,另一個(gè)是智能電話100b。應(yīng)當(dāng)注意,任何終端都可以連接到互聯(lián)網(wǎng),并且圖3中的終端100的數(shù)目和類型不應(yīng)被解釋為限制。計(jì)算機(jī)網(wǎng)絡(luò)300還包括至少一個(gè)服務(wù)器340。在圖3中,僅示出了一個(gè)服務(wù)器340,但是應(yīng)當(dāng)注意,可以在計(jì)算機(jī)網(wǎng)絡(luò)300中實(shí)現(xiàn)任意數(shù)目的服務(wù)器340。通常,服務(wù)器是專用于運(yùn)行一個(gè)或多個(gè)服務(wù)(作為主機(jī))的物理計(jì)算機(jī)(硬件系統(tǒng)),以服務(wù)網(wǎng)絡(luò)300上的其他計(jì)算機(jī)或終端100a、100b的用戶的需要。根據(jù)服務(wù)器提供的計(jì)算服務(wù),服務(wù)器可以是數(shù)據(jù)庫服務(wù)器、文件服務(wù)器、郵件服務(wù)器、打印服務(wù)器、網(wǎng)絡(luò)服務(wù)器或其他。
在一個(gè)實(shí)施例中,服務(wù)器340是網(wǎng)絡(luò)服務(wù)器340。通常,網(wǎng)絡(luò)服務(wù)器340可以指代幫助遞送內(nèi)容的硬件(計(jì)算機(jī))或軟件(計(jì)算機(jī)應(yīng)用程序),該內(nèi)容可以通過相互通信網(wǎng)絡(luò),諸如互聯(lián)網(wǎng)330,被訪問。
互聯(lián)網(wǎng)330是使用標(biāo)準(zhǔn)互聯(lián)網(wǎng)協(xié)議組(tcp/ip-傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)來服務(wù)全世界數(shù)以億計(jì)的用戶的互聯(lián)計(jì)算機(jī)網(wǎng)絡(luò)的全球系統(tǒng)。它是由數(shù)以百萬計(jì)的私人、公共、學(xué)術(shù)、商業(yè)和政府網(wǎng)絡(luò)組成的網(wǎng)絡(luò)的網(wǎng)絡(luò),本地到全球范圍的網(wǎng)絡(luò),這些網(wǎng)絡(luò)通過各種各樣的電子、無線和光學(xué)聯(lián)網(wǎng)技術(shù)進(jìn)行鏈接。互聯(lián)網(wǎng)承載多種多樣的信息資源和服務(wù),諸如萬維網(wǎng)(www)相互鏈接的超文本文件。
如對(duì)于本領(lǐng)域的讀者將顯而易見的,如何連接兩個(gè)終端的可能性和變化性充滿了互聯(lián)網(wǎng),并且本文公開的實(shí)施例僅單純出于示例性目的,而不應(yīng)被理解為限制。
即使本文中的公開內(nèi)容集中在終端和服務(wù)器之間的通信網(wǎng)絡(luò)上,本文中的教導(dǎo)也可以用在用于在兩個(gè)裝置之間建立安全連接的設(shè)備300內(nèi),諸如連接到個(gè)人計(jì)算機(jī)的外部存儲(chǔ)器。參考圖3,然后將第一裝置100a連接到第二裝置100b。如本領(lǐng)域技術(shù)人員已知的,通信將通過數(shù)據(jù)總線或其他內(nèi)部通信網(wǎng)絡(luò)建立。在裝置100a和100b中的一個(gè)(或兩者)中或者可替換地在另一個(gè)未示出的裝置中,諸如設(shè)備30的控制器中運(yùn)行的服務(wù)器應(yīng)用程序?qū)?yīng)于圖3的服務(wù)器340。參考圖2,這樣的設(shè)備300可以被設(shè)想成外部裝置245要被連接到的終端100。然后可以通過控制器來實(shí)現(xiàn)根據(jù)本文中的教導(dǎo)的安全通信信道的建立,該控制器可能通過由控制器210,或由另一個(gè)驅(qū)動(dòng)控制器執(zhí)行的服務(wù)器應(yīng)用程序用作服務(wù)器。服務(wù)器可能是通過有線或無線通信信道接觸的外部安全服務(wù)器,用以處理本地總線或其他裝置內(nèi)通信硬件的通信交換地址的建立。
應(yīng)當(dāng)注意,在本上下文中的外部裝置可以在一個(gè)實(shí)施例中被理解為要連接到終端的裝置。其在此后可能是終端100的或多或少永久性的組件,也可能是在終端100內(nèi)部。
圖4示出了如上所述的計(jì)算機(jī)可讀介質(zhì)的示意圖。計(jì)算機(jī)可讀介質(zhì)40在本實(shí)施例中是數(shù)據(jù)光盤40。在一個(gè)實(shí)施例中,數(shù)據(jù)光盤40是磁數(shù)據(jù)存儲(chǔ)盤。數(shù)據(jù)光盤40被配置為承載指令41,當(dāng)指令41被加載到諸如處理器的控制器中時(shí),執(zhí)行根據(jù)上述公開的實(shí)施例的方法或過程。數(shù)據(jù)光盤40被布置成連接到讀取裝置42或位于讀取裝置42內(nèi)并由讀取裝置42讀取,以便將指令加載到控制器中。與一個(gè)(或幾個(gè))數(shù)據(jù)光盤40組合的讀取裝置42的一個(gè)這樣的示例是硬盤驅(qū)動(dòng)器。應(yīng)當(dāng)注意,計(jì)算機(jī)可讀介質(zhì)也可以是諸如光盤、數(shù)字視頻盤、閃速存儲(chǔ)器或其他通常使用的存儲(chǔ)器技術(shù)的其他介質(zhì)。在這樣的實(shí)施例中,數(shù)據(jù)光盤40是一類有形計(jì)算機(jī)可讀介質(zhì)40。
通過在計(jì)算機(jī)可讀信號(hào)43中包括指令41,指令41還可以被下載到計(jì)算機(jī)數(shù)據(jù)讀取裝置44,諸如計(jì)算機(jī)或能夠讀取計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)編碼數(shù)據(jù)的其他裝置,該計(jì)算機(jī)可讀信號(hào)43是經(jīng)由無線(或有線)接口(例如經(jīng)由互聯(lián)網(wǎng))傳送到計(jì)算機(jī)數(shù)據(jù)讀取裝置44的,以便將指令41加載到控制器中。在這樣的實(shí)施例中,計(jì)算機(jī)可讀信號(hào)43是一類非有形計(jì)算機(jī)可讀介質(zhì)40。
指令可以存儲(chǔ)在計(jì)算機(jī)44的存儲(chǔ)器(圖4中未明確示出,但在圖2中被標(biāo)記為240)中。
對(duì)計(jì)算機(jī)程序、指令、代碼等的引用應(yīng)當(dāng)被理解為包含用于可編程處理器或固件的軟件,諸如例如硬件裝置的可編程內(nèi)容,無論是用于處理器的指令還是用于固定功能裝置、門陣列或可編程邏輯裝置等的配置設(shè)置。
發(fā)明人已經(jīng)意識(shí)到,如果以巧妙且有見地的方式修改方式,則可以在使用諸如防火墻的安全措施的系統(tǒng)中使用與wo2011/002412類似的方式。圖5示出了用于在兩個(gè)終端之間建立相互安全連接的這種方式的概述。
圖5示出了根據(jù)本文中的教導(dǎo)的用于在如圖3中的系統(tǒng)300中的第一終端100a和第二終端100b之間建立通信信道的方法的流程圖。
在建立連接之前,在相關(guān)應(yīng)用程序的通信網(wǎng)絡(luò)300中安裝或發(fā)起諸如圖3的第一終端100a和/或第二終端100b的終端510。這樣的應(yīng)用程序可以是銀行業(yè)務(wù)應(yīng)用程序、安全通信應(yīng)用程序或需要在通信中的雙方被識(shí)別的任何其他應(yīng)用程序。在一個(gè)實(shí)施例中,這樣的應(yīng)用程序是當(dāng)一個(gè)裝置要連接到設(shè)備的另一裝置時(shí)。
安裝由將要被安裝的請(qǐng)求發(fā)送到服務(wù)器340的終端100執(zhí)行。服務(wù)器340通過將關(guān)于密鑰生成的信息或數(shù)據(jù)發(fā)送回接收密鑰生成數(shù)據(jù)的終端100進(jìn)行響應(yīng)。這樣的密鑰生成數(shù)據(jù)由此被分發(fā)515。
將參考圖6給出關(guān)于將終端100安裝到系統(tǒng)300中的更多細(xì)節(jié)。
當(dāng)已安裝了第一終端100a時(shí),可能需要與另一終端100b建立安全通信。
在其中整體應(yīng)用程序是銀行業(yè)務(wù)應(yīng)用程序的一個(gè)示例實(shí)施例中,第一終端100a表示客戶端,而第二終端100b表示銀行。服務(wù)器340可以由相互銀行合作、銀行本身或安全連接提供商來托管。
為了建立這樣的安全連接,第一終端100a通過向服務(wù)器340發(fā)送第一會(huì)話請(qǐng)求520來發(fā)起建立。第一會(huì)話請(qǐng)求包括用于第二終端100b的識(shí)別符,該第二終端100b是第一終端想要與之建立通信的終端。在一個(gè)實(shí)施例中,信道數(shù)據(jù)的識(shí)別符可以是互聯(lián)網(wǎng)協(xié)議通信信道的地址(諸如統(tǒng)一資源定位符地址(url)或互聯(lián)網(wǎng)協(xié)議(ip)地址)。
服務(wù)器340發(fā)起或建立會(huì)話信道530,并且以第一會(huì)話響應(yīng)535來響應(yīng),第一終端100a接收的第一會(huì)話響應(yīng)535指示會(huì)話信道的識(shí)別符和用于第二終端100b的密鑰數(shù)據(jù)。然后,第一終端100a向第二終端100b發(fā)送第二會(huì)話請(qǐng)求。第二會(huì)話請(qǐng)求包括第一終端100a的識(shí)別和第一終端100a的密鑰加密種子。
當(dāng)?shù)诙K端100b從第一終端100a接收到第二會(huì)話請(qǐng)求時(shí),第二終端100b向服務(wù)器340發(fā)送第三會(huì)話請(qǐng)求550。第三會(huì)話請(qǐng)求包括用于第一終端100a的識(shí)別符和/或用于當(dāng)前會(huì)話的識(shí)別符。服務(wù)器340確定是否允許第一終端100a與第二終端100b連接,如果是,則向第二終端100b發(fā)送第二會(huì)話響應(yīng)560,其中第二會(huì)話響應(yīng)包括用于會(huì)話信道的識(shí)別符以及關(guān)于用于第一終端100a的密鑰產(chǎn)生的數(shù)據(jù)。
當(dāng)?shù)诙K端100b接收到第二會(huì)話響應(yīng)時(shí),第二終端100b可以確定第一終端被允許與第二終端100b建立連接。第二終端100b此后向第一終端100a發(fā)送第三會(huì)話響應(yīng)570,該第三會(huì)話響應(yīng)包括密鑰數(shù)據(jù)和用于終端100b的密鑰加密種子。
因此,第二終端100b和第一終端100a兩者都已經(jīng)從服務(wù)器340接收到了密鑰數(shù)據(jù)和彼此的密鑰加密種子?;诖?,第一終端和第二終端生成用于在發(fā)起的會(huì)話信道上加密要發(fā)送的數(shù)據(jù)的對(duì)稱加密密鑰580,并且從而建立信道590。
參考圖12、13和14給出關(guān)于如何生成對(duì)稱加密密鑰的更多細(xì)節(jié)。
在wo2011/002412的教導(dǎo)中將找到生成這種對(duì)稱加密密鑰的一種替代方式。
以這種方式,由于兩個(gè)終端已被服務(wù)器340認(rèn)證,所以第一終端100a和第二終端100b都可以確定另一終端的身份和可信性。終端還能夠生成對(duì)稱加密密鑰而不必彼此之間交換完整密鑰,也不必與服務(wù)器340交換完整密鑰,諸如對(duì)稱密鑰。
此外,服務(wù)器由終端100a和100b兩者進(jìn)行認(rèn)證。在現(xiàn)有技術(shù)示例中只有服務(wù)器認(rèn)證終端,而不是根據(jù)本文中的教導(dǎo)的另一方式。
參考圖6和圖7在相互認(rèn)證中給出了關(guān)于這種相互認(rèn)證的更多細(xì)節(jié)。
注意,安全通信信道的整個(gè)建立由來自終端的活動(dòng)提示來執(zhí)行,響應(yīng)被提供至該終端,從而使得能夠在采用諸如防火墻的安全措施的系統(tǒng)中將使用通信系統(tǒng)建立。
終端的安裝
為了確保要安裝在系統(tǒng)300中的終端被信任,并且為了確保在終端和服務(wù)器之間傳送的任何安裝數(shù)據(jù)不被第三方濫用,本申請(qǐng)的作者設(shè)計(jì)出了一種安全的安裝方式,其中密鑰數(shù)據(jù)不被全部發(fā)送,從而使其對(duì)任何攔截通信的第三方是無用的。圖6示出了根據(jù)本文中的教導(dǎo)的用于將終端100安裝在如圖3中的系統(tǒng)300中的一般方法的流程圖。
由于將在系統(tǒng)中安裝終端100,諸如安裝在圖5中標(biāo)記為510的終端時(shí),服務(wù)器通過生成隨機(jī)識(shí)別數(shù),節(jié)點(diǎn)id,511和隨機(jī)加密密鑰,標(biāo)記為y,512來建立用于終端100的賬戶。
隨機(jī)識(shí)別數(shù)和隨機(jī)加密密鑰然后以安全的方式分發(fā)到要安裝的終端100。它們可以通過普通郵件、電子郵件、文本消息(諸如短消息服務(wù)(sms)消息傳遞,或其他安全信道分發(fā)。
隨機(jī)識(shí)別數(shù)和隨機(jī)加密密鑰可能由用戶或者由(另一個(gè))安全應(yīng)用程序輸入513到終端100中,在該終端中100可能通過使用作為隨機(jī)識(shí)別數(shù)和隨機(jī)加密密鑰一部分的校驗(yàn)和來檢查隨機(jī)識(shí)別符和隨機(jī)加密密鑰以查看它們是否正確。
終端100然后通過隨機(jī)識(shí)別符,節(jié)點(diǎn)id向服務(wù)器300識(shí)別514該終端本身,并因此由服務(wù)器340識(shí)別。
然后,服務(wù)器生成兩個(gè)隨機(jī)加密密鑰種子,密鑰數(shù)據(jù)種子和元數(shù)據(jù)種子,通常稱為數(shù)據(jù)種子。
密鑰數(shù)據(jù)種子可以具有例如128或256比特長度。元數(shù)據(jù)種子可以具有例如128或256比特長度。
使用這些種子,服務(wù)器生成密鑰數(shù)據(jù)和元數(shù)據(jù)。密鑰數(shù)據(jù)是被用于生成對(duì)稱加密密鑰的數(shù)據(jù),并且元數(shù)據(jù)與密鑰數(shù)據(jù)一起使用或不與密鑰數(shù)據(jù)一起使用以生成認(rèn)證令牌,這將在下面進(jìn)一步描述。
密鑰數(shù)據(jù)可以是128、256、512或1024比特長度。元數(shù)據(jù)可以是8192比特長度。
為了防止竊取,服務(wù)器340僅將密鑰生成種子分發(fā)515到終端100,也就是說,僅將密鑰數(shù)據(jù)種子和元數(shù)據(jù)種子分發(fā)到終端100。這確保了實(shí)際的密鑰數(shù)據(jù)和元數(shù)據(jù)被保密在服務(wù)器340中。
密鑰數(shù)據(jù)和元數(shù)據(jù)在被分發(fā)到終端100之前使用隨機(jī)加密密鑰來對(duì)所述密鑰數(shù)據(jù)和元數(shù)據(jù)進(jìn)行加密。并且終端100使用隨機(jī)加密密鑰來解密密鑰數(shù)據(jù)和元數(shù)據(jù)。
然后,終端100通過使用與服務(wù)器340所使用的函數(shù)相同的函數(shù)來生成密鑰數(shù)據(jù)和元數(shù)據(jù)。該函數(shù)可以與隨機(jī)識(shí)別符和隨機(jī)加密密鑰一起分發(fā),或者可以單獨(dú)分發(fā),其中隨機(jī)識(shí)別符和/或隨機(jī)加密密鑰是函數(shù)的參數(shù),和/或該函數(shù)可以在終端和/或服務(wù)器中實(shí)現(xiàn)。在一個(gè)實(shí)施例中,該函數(shù)是密碼散列函數(shù),諸如feistel網(wǎng)絡(luò)。
已知用于生成數(shù)字的數(shù)個(gè)函數(shù),將不在本文進(jìn)一步詳細(xì)討論。對(duì)于函數(shù)重要的唯一特征在于終端100使用與由服務(wù)器340使用的函數(shù)相同的函數(shù)。
種子與要生成的相應(yīng)數(shù)據(jù)相比要小得多,并且服務(wù)器340僅需要將更小的種子傳送到終端,由此節(jié)省帶寬并且增加安全性,因?yàn)樵跊]有函數(shù)的情況下種子是無價(jià)值的。
因此,服務(wù)器340和終端100兩者都生成密鑰數(shù)據(jù)和元數(shù)據(jù)516。
由終端100基于密鑰數(shù)據(jù)和/或元數(shù)據(jù)生成認(rèn)證令牌517,并且將認(rèn)證令牌發(fā)送到服務(wù)器340,服務(wù)器340對(duì)認(rèn)證令牌進(jìn)行認(rèn)證518,服務(wù)器可以訪問認(rèn)證令牌所基于的密鑰數(shù)據(jù)和元數(shù)據(jù)。
下面將參考圖10a和圖10b給出關(guān)于如何生成并且認(rèn)證認(rèn)證令牌的更多細(xì)節(jié)。
如果認(rèn)證令牌被認(rèn)證,則終端100的身份(諸如識(shí)別)被存儲(chǔ)在服務(wù)器340中。在一個(gè)實(shí)施例中,終端100的識(shí)別是節(jié)點(diǎn)id。在一個(gè)實(shí)施例中,終端100的識(shí)別是終端100的imsi(國際移動(dòng)用戶識(shí)別)、imei(國際移動(dòng)設(shè)備識(shí)別符)和/或(一個(gè)或多個(gè))序列號(hào)。在一個(gè)實(shí)施例中,終端100的識(shí)別是應(yīng)用程序識(shí)別符,該應(yīng)用程序識(shí)別符被提供有利用如本文中的教導(dǎo)所教導(dǎo)的安全通信信道的應(yīng)用程序。
對(duì)于其中終端是外部裝置的實(shí)施例,用于外部裝置的節(jié)點(diǎn)id可以與外部裝置一起提供,或者在外部裝置245注冊(cè)時(shí)被發(fā)送給用戶或外部裝置。
相互認(rèn)證
由于已經(jīng)安裝了終端100a并且嘗試與諸如銀行應(yīng)用程序服務(wù)器的第二終端100b建立通信信道,其中通信信道由安全服務(wù)器340管理,可能是相同銀行服務(wù)器的一部分或者實(shí)現(xiàn)在相同銀行服務(wù)器中,待認(rèn)證的終端100a將由安全服務(wù)器340進(jìn)行認(rèn)證,在下文中和上文中安全服務(wù)器340被稱為服務(wù)器340。在終端100a被服務(wù)器340認(rèn)證之后,向終端100a提供建立與第二終端100b的安全通信所需的密鑰數(shù)據(jù)。
然而,在現(xiàn)今社會(huì),許多詐騙都是通過互聯(lián)網(wǎng)運(yùn)行的,這是需要安全通信信道的原因。然而,本發(fā)明人已經(jīng)意識(shí)到,所有這樣的安全通信系統(tǒng)都固有存在一個(gè)潛在的問題,因?yàn)槭褂卯?dāng)今的先進(jìn)技術(shù),第一終端100a(或第二終端100b)兩者都不能確定服務(wù)器340實(shí)際上是被信任的。服務(wù)器340的地址實(shí)際上可能已被惡意的詐騙操作者所劫持,惡意的詐騙操作者可提供導(dǎo)致加密的密鑰數(shù)據(jù),詐騙操作者然后可以對(duì)該加密進(jìn)行解密。
意識(shí)到這個(gè)問題存在,并且通過深刻的推理和創(chuàng)造性思考,本申請(qǐng)的發(fā)明人已經(jīng)設(shè)計(jì)了一種方式,其中也認(rèn)證服務(wù)器340。
對(duì)于在諸如終端100的設(shè)備300中安裝外部裝置245的實(shí)施例,這樣的認(rèn)證用于保護(hù)敏感數(shù)據(jù)不被另一裝置或替換的操作軟件所讀取,所述另一裝置是設(shè)備300的一部分或后來被連接至設(shè)備300。因此,相互認(rèn)證用于防止通過簡單地替換一些組件(承載軟件代碼的存儲(chǔ)器)或其他裝置來獲得對(duì)受保護(hù)裝置的訪問。
圖7是根據(jù)本文中的教導(dǎo)的終端100和服務(wù)器340的相互認(rèn)證的一般方法的流程圖,而圖8是在這樣的相互認(rèn)證期間完成的認(rèn)證傳輸?shù)氖疽飧艌D。以下將同時(shí)參考圖7和圖8給出這樣的認(rèn)證的詳細(xì)描述。
第一終端100a通過生成認(rèn)證令牌at1-s(此標(biāo)記指示它是從終端1到服務(wù)器s的認(rèn)證令牌),且可能與會(huì)話請(qǐng)求一起發(fā)送710到服務(wù)器340來發(fā)起認(rèn)證。或者,在認(rèn)證已成功完成后發(fā)送會(huì)話請(qǐng)求。應(yīng)當(dāng)注意,終端100a、100b中的任何一個(gè)都可以發(fā)起認(rèn)證。服務(wù)器340也可以發(fā)起認(rèn)證。服務(wù)器可以通過提示第一終端100a(或第二終端)提供認(rèn)證令牌來發(fā)起認(rèn)證。
服務(wù)器340接收認(rèn)證令牌at1-s并認(rèn)證該認(rèn)證令牌715。
認(rèn)證令牌可以是用于終端的識(shí)別符(諸如節(jié)點(diǎn)id),該識(shí)別符可能用先前接收的隨機(jī)加密數(shù)字進(jìn)行加密,該隨機(jī)加密數(shù)字僅對(duì)第一終端100a和服務(wù)器340已知。認(rèn)證令牌也可以是僅對(duì)服務(wù)器340和終端100a已知的另一字符串或數(shù)字,該另一字符串或數(shù)字可能通過已知協(xié)議或算法確定,并且也可以用隨機(jī)加密數(shù)字進(jìn)行加密。
為確保認(rèn)證是安全的,使用大的字符串是有益的,因?yàn)檫@樣的字符串比較難以猜中。這樣的字符串是僅對(duì)服務(wù)器340和終端100已知的元數(shù)據(jù)。這樣的問題在于,每次進(jìn)行認(rèn)證時(shí)都必須發(fā)送大文件,并且如下面將公開的那樣,元數(shù)據(jù)也將與第二終端共享,從而將元數(shù)據(jù)泄漏給第二終端,該第二終端不應(yīng)該具有第一終端100a的元數(shù)據(jù)知識(shí)。然而,使用元數(shù)據(jù)將是有益的,因?yàn)樗请y以惡意獲得的大字符串,并且僅對(duì)服務(wù)器340和終端100已知。
因此,發(fā)明人已設(shè)計(jì)了從元數(shù)據(jù)設(shè)計(jì)認(rèn)證令牌的巧妙且簡單的方式,其中從該元數(shù)據(jù)中隨機(jī)選擇多個(gè)塊或部分。
認(rèn)證令牌
圖9示出了元數(shù)據(jù)字符串mts和對(duì)應(yīng)的認(rèn)證令牌at的示例。在圖9的示例中,元數(shù)據(jù)字符串僅包括40個(gè)字符,然而應(yīng)當(dāng)注意,元數(shù)據(jù)字符串mts的實(shí)際長度優(yōu)選地更長。在一個(gè)實(shí)施例中,長度為8192比特。此外,在該示例中使用的部分的數(shù)目是四個(gè),并且每個(gè)部分的長度是2,但在實(shí)際的實(shí)施方式中一個(gè)部分的長度應(yīng)該是64-128比特,并且在一個(gè)實(shí)施例中該部分的長度是96比特。應(yīng)當(dāng)注意,在認(rèn)證令牌內(nèi)部分的長度也可以變化,部分的數(shù)目也可以變化。在其中部分的數(shù)目變化的實(shí)施例中,認(rèn)證令牌的頭部(header)可以用于指示部分的數(shù)目。在其中一個(gè)或多個(gè)部分的長度變化的實(shí)施例中,認(rèn)證令牌的頭部可以用于指示部分的長度,或者每個(gè)部分可以由該部分的長度發(fā)起。
所述四個(gè)部分通過索引來參考。索引可以隨機(jī)地或通過已知函數(shù)來選擇,諸如隨機(jī)數(shù)生成器,例如,使用種子。上面已經(jīng)在如何在系統(tǒng)中安裝終端的公開內(nèi)容中給出了這樣的函數(shù)的示例。
在其中種子被用于函數(shù)來生成索引的這樣的實(shí)施例中,只有種子可能是必要在認(rèn)證令牌中傳送的。
索引應(yīng)該具有足以充分地尋址較大數(shù)據(jù)集合的長度,所述較大數(shù)據(jù)集合即元數(shù)據(jù)字符串(mts)。對(duì)于8192比特的元數(shù)據(jù),索引必須具有13比特的長度。也可以作為下一部分的若干步驟數(shù)來給出索引,其中假設(shè)下一部分至少在元數(shù)據(jù)的下一半內(nèi),索引長度可以減少一個(gè)比特。
可以在認(rèn)證令牌的頭部中給出索引或種子。索引也可以作為每個(gè)部分的頭部給出。圖9示出了這樣的認(rèn)證令牌的三個(gè)示例,其中在頭部中給出種子,在頭部中給出四個(gè)索引,并且其中四個(gè)索引作為每個(gè)部分的頭部給出。在所有三個(gè)示例中,種子為24,并且索引為3、7、13和16,并且相應(yīng)的部分分別為“as”,“or”,“l(fā)p”和“it”。
應(yīng)當(dāng)注意,如上所述,將示例索引和部分長度以及元數(shù)據(jù)字符串mts的長度縮短以更容易地說明本文中的教導(dǎo)。
通過僅發(fā)送元數(shù)據(jù)的部分,確保終端100和服務(wù)器340可以被認(rèn)證而不浪費(fèi)帶寬,并且不泄漏敏感信息,因?yàn)橹挥性獢?shù)據(jù)的部分被傳送。
然后可以通過簡單地將所述部分與元數(shù)據(jù)中的對(duì)應(yīng)部分進(jìn)行比較來對(duì)認(rèn)證令牌at進(jìn)行認(rèn)證。通過索引來檢索對(duì)應(yīng)的部分,所述索引是作為認(rèn)證令牌的一部分被接收的或作為認(rèn)證令牌的一部分的種子的函數(shù)被檢索的。
索引也可以基于定時(shí)函數(shù)給出,諸如當(dāng)日時(shí)間或計(jì)數(shù)器。計(jì)數(shù)器必須以認(rèn)證令牌可以被生成、發(fā)送和接收的速度遞增。
圖10a示出了根據(jù)本文中的教導(dǎo)的用于生成認(rèn)證令牌的一般流程圖,并且圖10b示出了根據(jù)本文中的教導(dǎo)的用于認(rèn)證認(rèn)證令牌的一般流程圖。
通過生成至少一個(gè)索引1010來生成認(rèn)證令牌at。如上文已經(jīng)討論的,索引的數(shù)目可以在實(shí)施方式內(nèi)以及實(shí)施方式之間變化。在一個(gè)實(shí)施例中,索引的數(shù)目是4。
索引可以被生成為隨機(jī)選擇的數(shù)字,或者通過隨機(jī)選擇的種子與函數(shù)一起使用。
此后,從諸如元數(shù)據(jù)(圖9中的mts)的較大數(shù)據(jù)集合中檢索1020至少一個(gè)部分,并將該部分連同索引(或種子)一起打包到諸如圖9中所示的數(shù)據(jù)結(jié)構(gòu)1030中。
當(dāng)接收到認(rèn)證令牌1040時(shí),索引被檢索1050(從認(rèn)證令牌中或通過使用基于種子的函數(shù)),并且從本地存儲(chǔ)的數(shù)據(jù)集合,諸如元數(shù)據(jù)中檢索(一個(gè)或多個(gè))對(duì)應(yīng)的部分。然后將該(一個(gè)或多個(gè))對(duì)應(yīng)的部分與接收到的(一個(gè)或多個(gè))部分進(jìn)行比較1080,并且如果它們匹配則認(rèn)證令牌被認(rèn)證。
可以逐比特或通過任何其他已知的比較進(jìn)行比較。逐比特比較的益處是執(zhí)行快速。
如果索引被選擇太靠近數(shù)據(jù)集合的結(jié)尾,使得沒有剩下足夠的字符或比特來完成部分,則可以從數(shù)據(jù)集合的開始獲取其他的或缺少的字符或比特,即,數(shù)據(jù)集合是循環(huán)的。
在上文中,在包含字符的數(shù)據(jù)集合和包含比特的數(shù)據(jù)集合之間沒有區(qū)別。如技術(shù)人員將理解的,可以在本文中的教導(dǎo)的范圍內(nèi)容易地替換這樣的實(shí)體。
對(duì)于8192比特并且具有每個(gè)96比特的四個(gè)部分或塊的元數(shù)據(jù)集合,認(rèn)證令牌為4×96+4×13(索引需要至少為13比特,以正確地尋址8192比特)=436比特。因此,不僅在元數(shù)據(jù)保密的情況下單獨(dú)發(fā)送認(rèn)證令牌比發(fā)送元數(shù)據(jù)更安全,而且所需的帶寬也減少了大約95%。
在一個(gè)實(shí)施例中,該索引被選擇為能夠?qū)ぶ范嘤谠撛獢?shù)據(jù),并且然后通過在元數(shù)據(jù)大小的索引模塊(modula)處尋址該元數(shù)據(jù)可以容易地找到對(duì)應(yīng)的部分。因此在具有8192比特的元數(shù)據(jù)的示例中,在索引模塊8192處將找到用以檢索部分的地址。
根據(jù)上面的描述可以清楚,可以由終端和服務(wù)器兩者生成并認(rèn)證認(rèn)證令牌。事實(shí)上,認(rèn)證令牌可以由任何計(jì)算裝置生成,圖1和圖2的終端和圖3的服務(wù)器是這樣的計(jì)算裝置的示例。外部裝置也可以是這樣的計(jì)算裝置。
返回到圖7和圖8以及相互認(rèn)證,當(dāng)服務(wù)器340已對(duì)從第一終端100a接收到的認(rèn)證令牌at1-s進(jìn)行認(rèn)證時(shí),服務(wù)器生成720一個(gè)針對(duì)第一終端100a的認(rèn)證令牌ats-1和一個(gè)針對(duì)第二終端100b認(rèn)證令牌ats-2,并將兩個(gè)認(rèn)證令牌ats-1,ats-2都發(fā)送725到第一終端100a。
在一個(gè)實(shí)施例中,服務(wù)器340加密針對(duì)第二終端100b的認(rèn)證令牌ats-2??梢允褂糜糜诘诙K端100b的元數(shù)據(jù)的一部分來加密認(rèn)證令牌,并且在這樣的實(shí)施例中,認(rèn)證令牌可以被配置為包括指示加密索引的另外的字段,該另外的字段指示將在元數(shù)據(jù)中何處找到用于加密認(rèn)證令牌的加密密鑰。因此,加密索引是不加密傳送的。這避免任何惡意攻擊者偽裝成第二終端100b解密認(rèn)證令牌ats-2。
當(dāng)?shù)谝唤K端100a接收到730該兩個(gè)認(rèn)證令牌ats-1和ats-2時(shí),第一終端100a認(rèn)證735從服務(wù)器340接收到的第一認(rèn)證令牌ats-1。
由于第一終端100a不能訪問第二終端100b的元數(shù)據(jù),所以它不能對(duì)從服務(wù)器340接收到的第二認(rèn)證令牌ats-2進(jìn)行認(rèn)證。然而,通過服務(wù)器340將目的在于第二終端100b的認(rèn)證令牌發(fā)送到第一終端100a,通過第二終端100b實(shí)現(xiàn)服務(wù)器340的附加認(rèn)證。
如果從服務(wù)器340接收到的第一認(rèn)證令牌ats-1認(rèn)證成功,則第一終端100b繼續(xù)進(jìn)行由第二終端100b實(shí)現(xiàn)的附加認(rèn)證。為此,第一終端將從服務(wù)器340接收到的第二認(rèn)證令牌ats-2發(fā)送740到第二終端100b。第二終端100b接收并認(rèn)證745認(rèn)證令牌ats-2。如果認(rèn)證成功,則已通過第一終端100a和第二終端100b兩者認(rèn)證服務(wù)器340。因此實(shí)現(xiàn)了高度安全性的相互認(rèn)證。
然而,由于認(rèn)識(shí)到,如果惡意的詐騙操作者已經(jīng)能夠劫持第一終端100a和服務(wù)器340之間的通信信道,則用于第二終端2的認(rèn)證令牌也可能潛在地被泄露。為了更進(jìn)一步提高認(rèn)證的安全性,第二終端100b有利地被配置為也對(duì)服務(wù)器340進(jìn)行認(rèn)證。
當(dāng)?shù)诙K端100b已認(rèn)證了通過第一終端100a從服務(wù)器340接收到的并且目的在于第二終端100b的認(rèn)證令牌ats-2時(shí),該第二終端繼續(xù)使用其自身到服務(wù)器340的通信信道認(rèn)證服務(wù)器340。
因此,第二終端為服務(wù)器340生成認(rèn)證令牌at2-s,并將其發(fā)送750到服務(wù)器340。服務(wù)器340接收認(rèn)證令牌at2-s并對(duì)其進(jìn)行認(rèn)證755。如果認(rèn)證成功,則第二終端100b被服務(wù)器340認(rèn)證,并且服務(wù)器340生成760針對(duì)第一終端100a的一個(gè)認(rèn)證令牌ats-1和針對(duì)第二終端100b的一個(gè)認(rèn)證令牌ats-2,并發(fā)送765認(rèn)證令牌ats-1、ats-2兩者到第二終端100b。
當(dāng)?shù)诙K端100b接收到770兩個(gè)認(rèn)證令牌ats-1和ats-2時(shí),第二終端100b認(rèn)證從服務(wù)器340接收到的第二認(rèn)證令牌ats-2,如果成功則向第一終端100a發(fā)送第二認(rèn)證令牌ats-1,第一終端100a認(rèn)證780通過第二終端100b從服務(wù)器340接收到的目的在于該第一終端100a的認(rèn)證令牌ats-1。
因此服務(wù)器340不僅由第一終端100a認(rèn)證,而且還由第二終端100b代表第一終端100a認(rèn)證。因此,兩個(gè)終端彼此協(xié)助認(rèn)證服務(wù)器340。此外,第二終端100b通過經(jīng)由第二終端100b從服務(wù)器340接收到的認(rèn)證令牌被第一終端100隱含地認(rèn)證。而且,使用兩個(gè)不同的通信信道對(duì)服務(wù)器340進(jìn)行認(rèn)證,從而使得詐騙操作者非常難以惡意地將自身識(shí)別為安全服務(wù)器340。
對(duì)稱加密密鑰的生成
當(dāng)兩個(gè)終端100和服務(wù)器340已被認(rèn)證時(shí),生成對(duì)稱加密密鑰。參考圖5,終端100在被安裝時(shí)接收515密鑰生成數(shù)據(jù),并且基于該密鑰生成數(shù)據(jù)生成516密鑰數(shù)據(jù)。密鑰數(shù)據(jù)將用于生成將在下文中公開的對(duì)稱加密密鑰。對(duì)稱加密密鑰將用于加密第一終端100a和第二終端100b之間的通信。如上所述,第一終端100a可以是安全服務(wù)的客戶端,并且第二終端100b可以是服務(wù)的提供商。
或者,第一終端100a可以是要連接到設(shè)備300的外部裝置245,其中第二終端100b表示設(shè)備300。
生成的密鑰數(shù)據(jù)僅對(duì)第一終端100a和服務(wù)器340已知,并且第二終端100b不知道該密鑰數(shù)據(jù)。這樣使得能夠在建立通信連接而不交換相應(yīng)終端的密鑰數(shù)據(jù)的情況下提高安全性,從而使惡意的詐騙操作者難以攔截任何密鑰數(shù)據(jù)。
為此,發(fā)明人已設(shè)計(jì)了一種簡單且巧妙地從相應(yīng)終端的密鑰數(shù)據(jù)產(chǎn)生對(duì)稱加密密鑰而不實(shí)際共享密鑰數(shù)據(jù)的方法。
圖11示出了生成這樣的對(duì)稱加密密鑰的方法的流程圖,并且圖12是根據(jù)本文中的教導(dǎo)在生成對(duì)稱加密密鑰期間完成的傳輸?shù)氖疽飧艌D。
第一終端100a通過發(fā)送針對(duì)待生成的對(duì)稱加密密鑰580的請(qǐng)求開始。該請(qǐng)求可以根據(jù)圖5作為會(huì)話建立請(qǐng)求的一部分被發(fā)送,或者可以獨(dú)自被發(fā)送。該請(qǐng)求也可以在之前的請(qǐng)求中隱含。然后,服務(wù)器340繼續(xù)生成581返回582到第一終端100a的第一處理文件pf1。
然后,第一終端100a從第一處理文件pf1提取583組合的密鑰數(shù)據(jù)。然后,第一終端100a生成第一隨機(jī)密鑰種子,該第一隨機(jī)密鑰種子被加密并發(fā)送到第二終端584。第二終端100b還向服務(wù)器340發(fā)送580用于生成對(duì)稱加密密鑰的請(qǐng)求,而服務(wù)器340生成并發(fā)送585第二處理文件pf2到第二終端100b。
第二終端100b然后從第二處理文件pf2中提取586組合的密鑰數(shù)據(jù),并生成第二隨機(jī)密鑰種子,該第二隨機(jī)密鑰種子被發(fā)送587到第一終端100a。然后第一和第二終端100兩者都各自生成588、589對(duì)稱加密密鑰。
圖13是根據(jù)本文的一般方法的流程圖,用于從兩個(gè)終端的密鑰數(shù)據(jù)生成處理文件pf。用于第一個(gè)終端的密鑰數(shù)據(jù)將被標(biāo)記為kd1,并且用于第二個(gè)終端的密鑰數(shù)據(jù)將被標(biāo)記為kd2。
當(dāng)將要生成581處理文件時(shí),在用于每個(gè)終端的密鑰數(shù)據(jù)上進(jìn)行逐比特and操作而生成組合的密鑰數(shù)據(jù)5811(被標(biāo)記為ckd),即:
ckd=kd1andkd2。
然后生成用于相關(guān)終端的密鑰數(shù)據(jù)的相反數(shù)5812,即,生成~kd,且將~kd經(jīng)過函數(shù)f5813,其中每1比特以例如10%、25%、50%的概率變化為0比特,或者以10-80%、20-70%或25-50%范圍內(nèi)任意一個(gè)的概率變化為0比特。所得到的經(jīng)變化的比特串可以被標(biāo)記為f(~kd)。然后,作為組合的密鑰數(shù)據(jù)和所得到的經(jīng)變化的比特串之間的邏輯or,生成處理文件5814。即:
pf1=ckdorf(~kd1)=(kd1andkd2)orf(~kd1),以及
pf2=ckdorf(~kd2)=(kd1andkd2)orf(~kd2)
所生成的處理文件pf因此完全不同于密鑰數(shù)據(jù),并且也與組合的密鑰數(shù)據(jù)完全不同,因此相應(yīng)的密鑰數(shù)據(jù)對(duì)另一個(gè)終端保密,并且組合的密鑰數(shù)據(jù)和相應(yīng)的密鑰數(shù)據(jù)兩者都對(duì)外界保密。
當(dāng)已接收到處理文件時(shí),通過簡單地執(zhí)行處理文件與相應(yīng)的終端的密鑰數(shù)據(jù)的邏輯或逐比特and來提取組合的密鑰數(shù)據(jù)(圖11中的583/586),即:
ckd=pf1andkd1以及
ckd=pf2andkd2。
為了說明以上內(nèi)容,下面給出了一個(gè)示例。應(yīng)當(dāng)注意,出于說明的目的,該示例被限制為8比特,而在現(xiàn)實(shí)生活實(shí)施方式中,應(yīng)當(dāng)使用更長的串,例如128比特、256、512、1024比特,因?yàn)楦啾忍靥峁└叩陌踩浴?/p>
示例
kd110001110
kd201111101
ckd=kd1andkd200001100
~kd101110001
f(~kd1)01010000
pf1=ckdorf(~kd1)01011100
提取
ckd=pf1andkd100001100
當(dāng)已提取組合的密鑰數(shù)據(jù)時(shí),在傳輸期間保持該組合的密鑰數(shù)據(jù)安全地隱藏在處理文件中的同時(shí),將生成對(duì)稱加密密鑰。圖14是根據(jù)本文中的教導(dǎo)的用于生成對(duì)稱加密密鑰的示例方式的流程圖。
通過將先前為每個(gè)終端生成的組合的密鑰數(shù)據(jù)和隨機(jī)密鑰種子(第一終端為584,第二終端為587)作為種子為每個(gè)終端100輸入到函數(shù),諸如加密散列函數(shù)或異或函數(shù)(xor)5801中,由兩個(gè)終端100最終生成對(duì)稱加密密鑰588/589。在一個(gè)實(shí)施例中,該函數(shù)用以重復(fù)隨機(jī)密鑰種子8次以成為例如512比特的擴(kuò)展隨機(jī)密鑰種子,并對(duì)組合的密鑰數(shù)據(jù)和擴(kuò)展隨機(jī)密鑰種子執(zhí)行異或函數(shù)??赡苁褂媚:瘮?shù)從經(jīng)異或(xor)的值獲取128比特,從而產(chǎn)生半個(gè)對(duì)稱密鑰。該步驟由先前已經(jīng)接收到另一終端的隨機(jī)密鑰種子的兩個(gè)終端100執(zhí)行。在一個(gè)實(shí)施例中,結(jié)果是對(duì)于每個(gè)終端例如128比特的比特串,并且兩個(gè)比特串連接到由此生成的對(duì)稱加密密鑰中。
對(duì)稱加密密鑰是會(huì)話建立的結(jié)果,并且該對(duì)稱加密密鑰將在第一終端100a和第二終端100b之間的通信期間使用,以用于對(duì)通信進(jìn)行編碼和解碼。
應(yīng)當(dāng)注意,盡管用于相互認(rèn)證的流程和用于生成對(duì)稱加密密鑰的流程已經(jīng)被公開為單獨(dú)的流程,但它們可以是相同流程的部分,并且在任一流程的傳輸中要發(fā)送的數(shù)據(jù)可以被組合成公共傳輸以減少帶寬并且使認(rèn)證流程并行化。
密鑰數(shù)據(jù)的變異(mutation)
為了防止惡意攻擊者試圖劫持密鑰數(shù)據(jù)或其他加密數(shù)據(jù),本申請(qǐng)的發(fā)明人提出了一種變異或改變密鑰數(shù)據(jù)的簡單解決方案。應(yīng)當(dāng)注意,元數(shù)據(jù)、密鑰數(shù)據(jù)和對(duì)稱加密密鑰可以單獨(dú)地或集體地變異。
在一個(gè)實(shí)施例中,該元數(shù)據(jù)一天變異一次,因?yàn)槠渲饕糜谡J(rèn)證目的。
在一個(gè)實(shí)施例中,密鑰數(shù)據(jù)在會(huì)話期間在每個(gè)會(huì)話建立時(shí)變異或每隔一定時(shí)間變異或當(dāng)有來自第一終端的提示時(shí)變異。
在一個(gè)實(shí)施例中,該對(duì)稱加密密鑰在會(huì)話期間每隔一定時(shí)間變異或當(dāng)有來自第一終端的提示時(shí)變異。
用以變異該對(duì)稱加密密鑰的一個(gè)方式是建立新的會(huì)話。在該會(huì)話建立期間將變異密鑰數(shù)據(jù),并且因此對(duì)稱加密密鑰也被變異。然而,這消耗計(jì)算機(jī)資源和時(shí)間兩者來執(zhí)行完整的會(huì)話建立。一種更快的方式是僅變異該對(duì)稱加密密鑰。這僅在終端處完成;未涉及服務(wù)器。
這取決于安全應(yīng)用程序決定何時(shí)完成變異。例如在聊天應(yīng)用程序中,可能針對(duì)每個(gè)被發(fā)送至另一終端的消息來變異該對(duì)稱加密密鑰是適當(dāng)?shù)?。在時(shí)間關(guān)鍵的應(yīng)用程序中,例如,每十個(gè)包(package)就進(jìn)行變異可能是較佳的,或者甚至完全不進(jìn)行變異。
這取決于發(fā)起終端(發(fā)送者)來控制新的包是否應(yīng)該具有經(jīng)變異的對(duì)稱加密密鑰。這通過對(duì)每個(gè)通信包添加一個(gè)版本號(hào),對(duì)稱加密密鑰版本,來完成。如果發(fā)起終端想要使用此特征,則它必須對(duì)每個(gè)發(fā)送的包增加該變量。
在服務(wù)器設(shè)置時(shí),該對(duì)稱加密密鑰版本初始被設(shè)為0。如果該發(fā)送者從未改變這個(gè)值,則將不會(huì)發(fā)生變異。另一方面,如果發(fā)送者,例如,在頭四個(gè)包中使用值3、7、13、14,則響應(yīng)終端需要對(duì)相應(yīng)的包變異3、4、6、1次。
接收第一終端始終檢查其接收到的每個(gè)通信包的版本號(hào)。如果版本號(hào)已經(jīng)改變,則該接收終端必須在解密該消息之前相應(yīng)地變異該對(duì)稱加密密鑰。如果該值大于先前的包,則該接收終端只要變異適當(dāng)?shù)拇螖?shù)。如果該值較小,則該接收終端必須使用具有對(duì)稱加密密鑰版本=0的對(duì)稱加密密鑰并重新開始。
對(duì)稱加密密鑰的變異可使用512比特的加密散列函數(shù)并使用當(dāng)前對(duì)稱加密密鑰作為輸入來完成。
系統(tǒng)概述
圖15示出了根據(jù)本文中的教導(dǎo)的系統(tǒng)通信的示意概圖。圖15中所示的系統(tǒng)300可以是如上所述的系統(tǒng)300或設(shè)備300。
第一終端100a發(fā)起與服務(wù)器340和作為響應(yīng)終端的第二終端100b的建立,如上面參考圖5、6、7、8、9、10a、10b、11、12、13和14已公開的那樣。
當(dāng)已經(jīng)生成對(duì)稱加密密鑰時(shí),第一終端100a和第二終端100b能夠通過建立的通信信道安全地通信。
本文中的教導(dǎo)的一個(gè)益處在于可以由兩個(gè)通信終端生成對(duì)稱加密密鑰,而不必在終端或其他裝置之間共享該對(duì)稱加密密鑰。
以上已經(jīng)參考幾個(gè)實(shí)施例主要描述了本發(fā)明。然而,如本領(lǐng)域技術(shù)人員容易理解的那樣,除以上所公開的實(shí)施例以外的其它實(shí)施例同樣可能落入本發(fā)明的范圍內(nèi),本發(fā)明的范圍由所附的專利權(quán)利要求所限定。