在步驟423中,服務(wù)器存儲(chǔ)地址@1而不準(zhǔn)許該地址的任何其它的訪問(wèn)。有利的是,服務(wù)器不解釋請(qǐng)求的數(shù)據(jù)或者有效負(fù)載,服務(wù)器僅存儲(chǔ)地址@1,因而有利地減少了攻擊面。
[0045]針對(duì)按照順序排列的地址序列中的每個(gè)連續(xù)地址,步驟421、422和423被迭代地重復(fù)。因此,在步驟424中,客戶端使用表示為f的單向函數(shù)計(jì)算序列中表示為On的第η個(gè)地址,其中:
[0046]in = f (k, in-1)
[0047]在步驟425中,客戶端試圖使用直接從k、ic得出的On連接到服務(wù)器。在接收到該地址時(shí),服務(wù)器存儲(chǔ)地址On和@1、……、On-1而不準(zhǔn)許該地址的任何其它的訪問(wèn)。
[0048]根據(jù)特定的特征,通過(guò)實(shí)現(xiàn)Diffie-Hellman (DH)密鑰交換(其允許對(duì)彼此沒(méi)有先驗(yàn)知識(shí)的兩方通過(guò)不安全的通信通道共同建立共享密鑰)來(lái)保護(hù)連接嘗試422、425不被下級(jí)網(wǎng)絡(luò)層竊聽(tīng)。因此,連接嘗試中的地址@1、……、On-1被保護(hù)不受外部黑客攻擊。根據(jù)變型,諸如TCPcrypt、VPN隧道、IPsec之類的其它技術(shù)可以被用于防止竊聽(tīng)。
[0049]第二階段430包括連接地址(即,客戶端可以用該地址連接到服務(wù)器)的注冊(cè)。客戶端和服務(wù)器還可以商定在連接中最終使用的地址。根據(jù)變型,客戶端和服務(wù)器還商定包括使用客戶端的實(shí)際地址@c、使用序列中的第(n+1)個(gè)地址@(n+l)、使用序列中的第j個(gè)地址@i (其中,j屬于I到η)、或者使用序列中的地址的組合的協(xié)定。一旦客戶端設(shè)備由于從該序列地址中所使用的地址發(fā)出的請(qǐng)求被認(rèn)證,客戶端和服務(wù)器之間的任何協(xié)定可以與本發(fā)明兼容。然而,在第一優(yōu)選實(shí)施例中,該協(xié)定最好是比較簡(jiǎn)單的:在步驟431中,客戶端利用它的實(shí)際地址Oc連接到服務(wù)器。因此,在步驟432中,針對(duì)所有的η和白名單@c,服務(wù)器很容易地驗(yàn)證@1 = f (k,ic)和On = f (k,in-1)。
[0050]根據(jù)另一特定特征,最近的連接(即,使用注冊(cè)地址)被保護(hù)免受下級(jí)網(wǎng)絡(luò)層的竊聽(tīng)(比如,使用DH),因而注冊(cè)地址Oc不會(huì)被竊聽(tīng)。根據(jù)變型,可以使用諸如,TCPcrypt、VPN隧道、IPsec之類的其它技術(shù)來(lái)防止竊聽(tīng)。因此,當(dāng)注冊(cè)地址Oc被保護(hù)免受竊聽(tīng)時(shí),該方案有利地對(duì)于外部攻擊更加強(qiáng)壯。否則,攻擊者可以很簡(jiǎn)單地捕獲并假冒最近的地址Oc并獲得對(duì)專用網(wǎng)絡(luò)的訪問(wèn)。此外,應(yīng)當(dāng)注意,最近的地址On有利地不作為連接地址被重復(fù),尤其是在第一階段沒(méi)有被保護(hù)的情況下,否則攻擊者也可以很簡(jiǎn)單地捕獲并假冒這個(gè)最近的地址。這種條件通??梢员籚PN(比如,上面所描述的TCPcrypt上的OpenVPN或者IP)滿足。然而,它不被當(dāng)前的802.11通信滿足。因此,如果802.11通信與認(rèn)證階段兼容,則對(duì)于注冊(cè)地址上所使用的通信,該協(xié)議優(yōu)選地不被使用,或者應(yīng)當(dāng)如上面所描述的被其它的保護(hù)層封裝。
[0051]在另一特定特征中,一旦客戶端已經(jīng)與服務(wù)器建立第一連接,則在客戶端隨后希望用不同的地址連接重新連接到服務(wù)器的情況下,客戶端使用在先的連接地址(即,注冊(cè)地址)作為新地址序列中的第一地址。在一個(gè)變型特征中,客戶端使用最近的地址作為新地址序列中的第一地址。因此,客戶端有利地避免了重放來(lái)自它的實(shí)際地址Oc的地址序列。例如,如果客戶端使得先前注冊(cè)的地址@n+l被服務(wù)器注冊(cè),則客戶端首先使用作為新序列中的第一地址的地址@n+2向服務(wù)器發(fā)送請(qǐng)求。
[0052]在另一特定特征中,服務(wù)器在注冊(cè)階段中對(duì)該序列地址進(jìn)行驗(yàn)證,但是該驗(yàn)證也可以在來(lái)自客戶端的請(qǐng)求被接收時(shí)發(fā)生。此外,服務(wù)器可以適于提前計(jì)算序列中的連續(xù)地址(即,使用序列中的在先的地址),從而將驗(yàn)證步驟簡(jiǎn)化為簡(jiǎn)單的比較。
[0053]圖5示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的注冊(cè)方法的步驟。在優(yōu)選實(shí)施例中,對(duì)于依賴于共享密鑰并進(jìn)一步實(shí)現(xiàn)MAC地址訪問(wèn)控制的OpenVPN以太網(wǎng)隧道,MAC地址被注冊(cè)。OpenVPN是允許構(gòu)建虛擬專用網(wǎng)絡(luò)的客戶端和服務(wù)器軟件。OpenVPN允許在可能的遠(yuǎn)程站點(diǎn)之間構(gòu)建路由或者交換連接。傳輸控制協(xié)議(TCP)是廣泛地被用于在互聯(lián)網(wǎng)網(wǎng)絡(luò)上建立連接的協(xié)議。在OpenVPN中,客戶端設(shè)備的認(rèn)證依賴于共享密鑰(被所有的客戶端共享)或者證書(shū)。在本發(fā)明的優(yōu)選實(shí)施例中,OpenVPN依賴于共享密鑰(Sk)。此外,為了保護(hù)OpenVPN上的通信,VPN連接和加密隧道在多個(gè)層上通過(guò)使用各種方法被建立。因此,在優(yōu)選實(shí)施例中,OpenVPN使用共享秘密(Sk)建立安全通道。在不知道Sk的情況下,是不可能對(duì)流量進(jìn)行解密的。為了防止具有Sk的客戶端竊聽(tīng),假定這些客戶端與在先前的設(shè)備和服務(wù)器之間的一個(gè)客戶端不在同一網(wǎng)絡(luò)鏈路上。在變型實(shí)施例中,基于TCPCrypt或者SSL的通信也可以被用于防止竊聽(tīng)。媒體訪問(wèn)控制地址(MAC地址)是分配給網(wǎng)絡(luò)接口的用于物理網(wǎng)段上的通信的唯一標(biāo)識(shí)符。MAC地址被用于多種網(wǎng)絡(luò)技術(shù)和大部分IEEE 802網(wǎng)絡(luò)技術(shù),包括以太網(wǎng)。在本發(fā)明的優(yōu)選實(shí)施例中,基于MAC地址的訪問(wèn)控制還因?yàn)楣蚕砻荑€的脆弱性被進(jìn)一步實(shí)現(xiàn)。
[0054]在預(yù)備步驟510中,服務(wù)器向客戶端設(shè)備提供用于注冊(cè)目的的權(quán)證k、連接URL、和共享密鑰Sk。權(quán)證k是用于分別在客戶端處和服務(wù)器處計(jì)算和驗(yàn)證一序列地址的共享秘密。連接URL(或者統(tǒng)一資源定位符)構(gòu)成對(duì)被用于訪問(wèn)虛擬專用網(wǎng)絡(luò)的互聯(lián)網(wǎng)服務(wù)器資源的參考。服務(wù)器有利地(例如,通過(guò)郵件或者在設(shè)備被物理連接到專用網(wǎng)絡(luò)時(shí))在帶外將安全資料Sk、URL、k發(fā)送到客戶端。
[0055]在第一步驟520中,客戶端啟動(dòng)VPN應(yīng)用、選擇連接URL和共享密鑰、并檢索所存儲(chǔ)的與URL相關(guān)聯(lián)的注冊(cè)權(quán)證k。客戶端通過(guò)加密物理設(shè)備的特征(表示為MAC_W1-fi)來(lái)計(jì)算瞬時(shí)MAC地址(表示為T(mén)ransient_MAC_addr):
[0056]Transient_MAC_addr = Encrypt(ticket k, MAC_ff1-fi)
[0057]在第二步驟530中,客戶端用瞬時(shí)MAC地址連接到服務(wù)器。這種連接請(qǐng)求被保護(hù)免受VPN隧道中常見(jiàn)的竊聽(tīng):
[0058]Connect (Transient_Mac_addr, URL,Sk)
[0059]在第三步驟540中,服務(wù)器解密設(shè)備特征、計(jì)算被授權(quán)的MAC-vpn-addr、保存所有的信息并對(duì)MAC_vpn_addr授予如下權(quán)限:
[0060]Get device info:MAC_ff1-fi = (Decrypt(ticket k, Transient_Mac_addr))
[0061]Compute MAC_vpn_addr = HASH(MAC_ff1-fi)
[0062]Save info (MAC_vpn_addr, MAC_ff1-fi)
[0063]Grant rights(MAC_vpn_addr)
[0064]然后,服務(wù)器重置自動(dòng)重啟客戶端的連接。
[0065]因此在隨后的步驟550中,客戶端計(jì)算新的連接地址MAC_vpn_addr:
[0066]Compute MAC_vpn_addr = HASH(MAC_ff1-fi)
[0067]在步驟560中,客戶端用MAC_vpn_addr重新連接到服務(wù)器: