近場(chǎng)通信中點(diǎn)對(duì)點(diǎn)通信模式下防范中繼攻擊的輕量級(jí)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)通信保護(hù)技術(shù),特別涉及一種用于近場(chǎng)通信中點(diǎn)對(duì)點(diǎn)通信模式下防范中繼攻擊的輕量級(jí)方法。
【背景技術(shù)】
[0002]近場(chǎng)通信(NFC)是一種新興的短程無線通信技術(shù),其通信通常在1cm范圍之內(nèi)。NFC技術(shù)是在RFID技術(shù)的基礎(chǔ)上演變而來并且向下兼容RFID。其近距離通信以及相對(duì)較低的數(shù)據(jù)傳輸率的特點(diǎn)使其適用于訪問控制、移動(dòng)支付、門禁系統(tǒng)以及其它少量數(shù)據(jù)交換的應(yīng)用中。例如具有NFC功能的手機(jī)和門禁系統(tǒng)讀卡器,通過NFC交換挑戰(zhàn)響應(yīng)數(shù)據(jù)以達(dá)到身份認(rèn)證的目的。2013年谷歌公司推出了基于NFC平臺(tái)的谷歌錢包用于交易支付,2014年蘋果公司也宣布在手機(jī)應(yīng)用中支持NFC功能。
[0003]隨著NFC的應(yīng)用范圍越來越廣,關(guān)于NFC的安全問題也逐漸引起人們重視。在眾多的安全問題中,中繼攻擊是一個(gè)不容忽視的威脅。其主要原因是由于這種攻擊只是在兩個(gè)合法設(shè)備之間轉(zhuǎn)發(fā)數(shù)據(jù)以達(dá)到使通信距離延長的目的,因此任何應(yīng)用層的身份認(rèn)證對(duì)這種攻擊都無法奏效。這種攻擊的應(yīng)用實(shí)例就是盜用合法用戶的身份攻擊門禁系統(tǒng)和濫用支付功能。為了保護(hù)用戶的數(shù)據(jù)安全,針對(duì)中繼攻擊已經(jīng)出現(xiàn)了一些防范措施,這些措施在一定范圍內(nèi)可以實(shí)現(xiàn)防范功能,以下為已經(jīng)提出的措施:
[0004]方式1,GPS定位:通過在設(shè)備上安裝GPS定位裝置確定兩個(gè)設(shè)備的位置信息或者利用設(shè)備自帶的定位功能定位,然后根據(jù)位置信息計(jì)算兩個(gè)設(shè)備之間的距離。
[0005]方式2,屏蔽裝置:當(dāng)設(shè)備不使用時(shí)將其放入信號(hào)屏蔽裝置中,使無線信號(hào)無法到達(dá)設(shè)備,進(jìn)而不能與設(shè)備進(jìn)行無線通信。
[0006]方式3,使用不可中繼的通道:在兩個(gè)合法設(shè)備通信過程中加入不可中繼的通道,例如用紙片傳遞一些秘密信息,信息傳遞完畢后立即銷毀并且要求紙片信息不可泄露。
[0007]方式4,距離限制協(xié)議:在通信雙方中發(fā)起挑戰(zhàn)響應(yīng),記錄挑戰(zhàn)響應(yīng)的時(shí)間延遲并且根據(jù)時(shí)間延遲計(jì)算通信雙方的物理距離。
[0008]方式5,用戶確認(rèn):在設(shè)備需要發(fā)送數(shù)據(jù)或者做出其他操作時(shí)需要用戶參與確認(rèn)正在進(jìn)行的操作是否合法,用戶參與形式可以有多種,例如輸入PIN碼或者按鍵確認(rèn)。
[0009]上述方式雖然可以在一定程度上防范中繼攻擊,保護(hù)用戶的數(shù)據(jù),但是,在實(shí)際應(yīng)用中均會(huì)存在一定的問題,如:
[0010]對(duì)于方式1,設(shè)備的位置信息受到GPS精度以及GPS信號(hào)的影響,如果精度太低就會(huì)由于計(jì)算誤差太大,導(dǎo)致無法分辨是否受到攻擊,如果信號(hào)太差或者沒有信號(hào)那么就無法使用GPS提供的位置信息計(jì)算設(shè)備的物理距離。
[0011]對(duì)于方式2,雖然能夠保證在設(shè)備不使用時(shí)候免于受到中繼攻擊,但是設(shè)備的使用方式變得復(fù)雜,從而減少了 NFC通信的便捷性,同時(shí)由于需要外加屏蔽裝置,因此也增加了設(shè)備的成本。
[0012]對(duì)于方式3,需要額外加入紙片的流程以及嚴(yán)格保密紙片上的信息,使通信流程更加復(fù)雜化并且增加了交易的時(shí)間,另外紙片上的信息如果泄露仍然會(huì)導(dǎo)致中繼攻擊成功實(shí)現(xiàn)。
[0013]對(duì)于方式4,使用距離限定協(xié)議需要低延時(shí)設(shè)備,而傳統(tǒng)的射頻信道為了保持?jǐn)?shù)據(jù)的穩(wěn)定性引入了很多冗余數(shù)據(jù)和時(shí)間容忍度,導(dǎo)致時(shí)間上的不確定性。
[0014]對(duì)于方式5,輸入PIN碼或者加入按鍵操作增加了用戶參與度,使用流程更加復(fù)雜并且延長了交易時(shí)間,NFC通信的便捷性大大降低。
【發(fā)明內(nèi)容】
[0015]有鑒于此,本發(fā)明的主要目的在于提供一種用于近場(chǎng)通信中點(diǎn)對(duì)點(diǎn)通信模式下防范中繼攻擊的輕量級(jí)方法,使用這種方法可以在一定范圍內(nèi)有效降低中繼攻擊的成功率。本發(fā)明的另一目的在于,通信設(shè)備在不增加任何硬件的條件下可以實(shí)現(xiàn)安全的數(shù)據(jù)傳輸。
[0016]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種用于近場(chǎng)通信中點(diǎn)對(duì)點(diǎn)通信模式下防范中繼攻擊的輕量級(jí)方法,其總體流程如圖1所示,具體包括:
[0017]初始化步驟:
[0018]首先兩個(gè)主控制器發(fā)送命令將兩個(gè)合法設(shè)備分別配置成主動(dòng)通信模式,隨后分別將兩個(gè)合法設(shè)備配置成主設(shè)備initiator和從設(shè)備target。
[0019]數(shù)據(jù)傳輸步驟:
[0020]initiator將需要發(fā)送的應(yīng)用層數(shù)據(jù)和用于為target設(shè)備指示角色變換的命令放在同一個(gè)數(shù)據(jù)包中發(fā)送。數(shù)據(jù)包中數(shù)據(jù),使用雙方共享的密鑰進(jìn)行加密,以防止攻擊者竊取。共享密鑰可以通過預(yù)先設(shè)置也可以通過初始化過程中交換的設(shè)備ID計(jì)算獲得。
[0021]target設(shè)備接收到數(shù)據(jù)包后通過解析數(shù)據(jù)包中的命令確定下次通信中需要配置的角色。在設(shè)置角色變換命令時(shí),主控制器根據(jù)隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)確定兩個(gè)設(shè)備在下次通信過程中的角色信息。在數(shù)據(jù)傳輸過程中數(shù)據(jù)包長度可以設(shè)置成固定長度或者可變長度,但是數(shù)據(jù)包總長度不應(yīng)超過芯片提供的數(shù)據(jù)緩存長度。
[0022]角色變換命令共包含如下字節(jié):C1、C2、ID。其中Cl用于指示具體的角色變換信息:bito表示后續(xù)是否還有數(shù)據(jù)需要傳輸,如果為O表示沒有數(shù)據(jù)需要傳輸,數(shù)據(jù)已經(jīng)完全傳輸結(jié)束,否則表示后續(xù)仍有數(shù)據(jù)需要傳輸;bitl表示是否需要為下一次的數(shù)據(jù)傳輸進(jìn)行變換角色,如果為O表示不需要作任何變換,仍用當(dāng)前角色進(jìn)行下一次傳輸,否則表示用相反角色進(jìn)行傳輸,例如當(dāng)前設(shè)備是initiator那么下次就需要配置成target進(jìn)行數(shù)據(jù)傳輸;bit2-bit7保留。當(dāng)數(shù)據(jù)包的長度為固定長度時(shí)C2用于指示數(shù)據(jù)包中真實(shí)數(shù)據(jù)的長度,其值為需要傳輸?shù)臄?shù)據(jù)總長度對(duì)固定長度的取模值,如果數(shù)據(jù)包的長度為可變長度,那么C2即為這個(gè)可變長度值。ID是變換角色后的新target設(shè)備的身份標(biāo)識(shí),initiator可以根據(jù)ID值判斷是否連接到了正確的設(shè)備,優(yōu)選地,ID包含IDl和ID2,IDl和ID2分別對(duì)應(yīng)一個(gè)字節(jié),用來更好地區(qū)分新target設(shè)備。
[0023]角色變換步驟:
[0024]主控制器根據(jù)所發(fā)數(shù)據(jù)包中指示角色變換信息的命令,重新初始化initiator設(shè)備并且發(fā)送配置命令將initiator配置成角色變換命令中規(guī)定的角色以便于下次通信。Target設(shè)備接收到來自initiator的數(shù)據(jù)包后,通過解析數(shù)據(jù)包中的命令,確定下次通信過程中需要配置的角色,隨即進(jìn)行重新初始化并且配置成相應(yīng)的角色,當(dāng)兩個(gè)設(shè)備配置完畢后自動(dòng)配對(duì)連接。
[0025]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:
[0026]采用本發(fā)明提供的近場(chǎng)通信中點(diǎn)對(duì)點(diǎn)通信模式下防范中繼攻擊的輕量級(jí)方法,在角色轉(zhuǎn)換階段,通信雙方通過解析角色轉(zhuǎn)換命令確認(rèn)下一次通信中需要配置的角色,重新配置角色連接后繼續(xù)進(jìn)行數(shù)據(jù)通信,即通過不斷協(xié)商變換設(shè)備角色的方法,使通信雙方在通信過程中不斷改變通信方式。由于中繼攻擊者無法確定在下一次通信中合法設(shè)備的需要配置的角色,因此也就無法正確配置自身的角色,以達(dá)到與合法設(shè)備成功配對(duì)的目的,從而也就不能進(jìn)行中繼攻擊。這種方法在一定程度上降低了中繼攻擊成功的概率,保護(hù)了 NFC設(shè)備通信的安全,通信設(shè)備在不增加任何硬件的條件下即可以實(shí)現(xiàn)安全的數(shù)據(jù)傳輸。
【附圖說明】
[0027]圖1為本發(fā)明方法的總體流程圖。
[0028]圖2為實(shí)施例中主動(dòng)模式點(diǎn)對(duì)點(diǎn)通信防范中繼攻擊輕量級(jí)方法流程示意圖;
[0029]圖3為實(shí)施例中初始化步驟流程示意圖;
[0030]圖4為實(shí)施例中數(shù)據(jù)傳輸流程示意圖;
[0031]圖5為實(shí)施例中設(shè)備角色變換示意圖。
【具體實(shí)施方式】
[0032]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0033]本發(fā)明提供了一種近場(chǎng)通信中點(diǎn)對(duì)點(diǎn)通信模式下防范中繼攻擊的輕量級(jí)方法,如圖2所示,包括:
[0034]A、初始化步驟:
[0035]主控制器I和2通過發(fā)送初始化命令,將各自控制的設(shè)備初始化,隨后發(fā)送配置命令將設(shè)備配置成initiator或者target狀態(tài)。初始化和配置命令將設(shè)備配置成主動(dòng)模式下的peer-to-peer通信模式。
[0036]B、數(shù)據(jù)傳輸步驟:
[0037]主控制器I將需要發(fā)送的應(yīng)用層數(shù)據(jù)以及角色配置信息通過命令發(fā)送到initiator設(shè)備,initiator設(shè)備在收到命令后,立即通過數(shù)據(jù)交換協(xié)議將該數(shù)據(jù)包發(fā)送給target設(shè)備;另一方面,主控制器2向target設(shè)備發(fā)送數(shù)據(jù)接收命令,一旦檢測(cè)到initiator有數(shù)據(jù)要發(fā)送就立即開始接收數(shù)據(jù)。target接收到數(shù)據(jù)后將數(shù)據(jù)返回給主控制器2,主控制器2對(duì)接收到的數(shù)據(jù)進(jìn)行處理后,通過命令使target設(shè)備返回響應(yīng)。角色變換命令共包含四個(gè)字節(jié):C1、C2、ID1、ID2。其中Cl用于指示具體的角色變換信息:bit0表示后續(xù)是否還有數(shù)據(jù)需要傳輸,如果為O表示沒有數(shù)據(jù)需要傳輸,數(shù)據(jù)已經(jīng)完全傳輸結(jié)束,否則表示后續(xù)仍有數(shù)據(jù)需要傳輸;bitl表示是否需要為下一次的數(shù)據(jù)傳輸進(jìn)行變換角色,如果為O表示不需要作任何變換,仍用當(dāng)前角色進(jìn)行下一次傳輸,否則表示用相反角色進(jìn)