一種在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的方法和裝置的制造方法
【專利摘要】本發(fā)明提供一種在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的方法和裝置。本發(fā)明的方法包括:當(dāng)從屬藍(lán)牙設(shè)備與任一主藍(lán)牙設(shè)備連接時(shí),把從屬藍(lán)牙設(shè)備的開關(guān)參數(shù)的值設(shè)置為“主藍(lán)牙設(shè)備身份不合法”,啟動(dòng)定時(shí)器,并執(zhí)行對(duì)該主藍(lán)牙設(shè)備的身份認(rèn)證;當(dāng)身份認(rèn)證確定主藍(lán)牙設(shè)備合法,則把開關(guān)參數(shù)的值設(shè)置為“主藍(lán)牙設(shè)備身份合法”,否則斷開與該主藍(lán)牙設(shè)備的連接;根據(jù)定時(shí)器,在設(shè)定的時(shí)間期滿后立刻檢查開關(guān)參數(shù)的值,當(dāng)開關(guān)參數(shù)的值是“主藍(lán)牙設(shè)備身份不合法”,則斷開與該主藍(lán)牙設(shè)備的連接;當(dāng)主藍(lán)牙設(shè)備訪問從屬藍(lán)牙設(shè)備內(nèi)的數(shù)據(jù),如果開關(guān)參數(shù)的值是“主藍(lán)牙設(shè)備身份合法”,則允許訪問,否則斷開與該主藍(lán)牙設(shè)備的連接。
【專利說明】
_種在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的方法和裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,特別地涉及一種在從屬藍(lán)牙設(shè)備抵御非法連接攻 擊的方法和裝置。
【背景技術(shù)】
[0002] 低功耗藍(lán)牙,又稱BLE(Bluetooth Low Energy)。在處于連接狀態(tài)的一對(duì)BLE設(shè)備 中,必然有一個(gè)是Master(主角色),另一個(gè)是Slave(從角色)。在進(jìn)入連接狀態(tài)之前,Slave 一直在廣播信息,Master掃描到Slave的廣播信息之后可以對(duì)其發(fā)起連接請(qǐng)求,并且在 Slave接受請(qǐng)求后雙方建立連接關(guān)系。
[0003] Slave對(duì)于連接請(qǐng)求是來者不拒的,任何一個(gè)掃描到Slave廣播的BLE Master設(shè)備 都可以向Slave發(fā)起連接請(qǐng)求,Slave只要收到連接請(qǐng)求就會(huì)立即接受。如圖1所示,是低功 耗藍(lán)牙設(shè)備的連接狀態(tài)示意圖,因?yàn)橐粋€(gè)slave只能連接一個(gè)master,所以如果一個(gè)非法 mas ter連接上了 slave,此時(shí)合法的mas ter就無法連接這個(gè)slave,從而也就無法與這個(gè) slave實(shí)現(xiàn)藍(lán)牙通訊。在非法mas ter和slave連接的這段時(shí)間里合法mas ter-直無法和 slave建立連接,更無法與其通信。這樣就構(gòu)成了拒絕服務(wù)攻擊。
[0004] 要想讓合法master有機(jī)會(huì)連接slave,就得使slave重新進(jìn)入廣播狀態(tài),目前常用 的辦法是將slave斷電重新上電,或者使得slave遠(yuǎn)離非法master。
[0005] 但是目前常用的方法,由于不能保證合法master會(huì)第一時(shí)間與slave連接上,因此 可能需要頻繁的將slave斷電和重新加電,導(dǎo)致用戶體驗(yàn)度差。而且,由于slave不能記錄非 法mas ter,因此不能避免同一非法mas ter的多次連接。
【發(fā)明內(nèi)容】
[0006] 為了至少部分地解決上述問題,本發(fā)明提供一種在從屬藍(lán)牙設(shè)備抵御非法連接攻 擊的方法和裝置,能夠保證當(dāng)slave被非法master連接之后,不用重新斷電或者遠(yuǎn)離即可在 很短的時(shí)間之內(nèi)使slave自動(dòng)斷開和非法master的連接,并且可以對(duì)非法master進(jìn)行記錄, 以更快速地?cái)嚅_同一非法master與slave的重復(fù)連接,給合法master以重新與slave建立合 法連接的機(jī)會(huì)。
[0007] 為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種在從屬藍(lán)牙設(shè)備抵御非法 連接攻擊的方法。
[0008] -種在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的方法,包括:當(dāng)所述從屬藍(lán)牙設(shè)備與任 一主藍(lán)牙設(shè)備連接時(shí),把所述從屬藍(lán)牙設(shè)備的開關(guān)參數(shù)的值設(shè)置為"主藍(lán)牙設(shè)備身份不合 法",啟動(dòng)定時(shí)器,并執(zhí)行對(duì)該主藍(lán)牙設(shè)備的身份認(rèn)證;其中,當(dāng)所述身份認(rèn)證確定所述主藍(lán) 牙設(shè)備合法,則把所述開關(guān)參數(shù)的值設(shè)置為"主藍(lán)牙設(shè)備身份合法",否則斷開與該主藍(lán)牙 設(shè)備的連接;其中,根據(jù)所述定時(shí)器,在設(shè)定的時(shí)間期滿后立刻檢查所述開關(guān)參數(shù)的值,當(dāng) 所述開關(guān)參數(shù)的值是"主藍(lán)牙設(shè)備身份不合法",則斷開與該主藍(lán)牙設(shè)備的連接;其中,當(dāng)所 述主藍(lán)牙設(shè)備訪問所述從屬藍(lán)牙設(shè)備內(nèi)的數(shù)據(jù),如果所述開關(guān)參數(shù)的值是"主藍(lán)牙設(shè)備身 份合法",則允許訪問,否則斷開與該主藍(lán)牙設(shè)備的連接。
[0009] 可選地,檢查所述開關(guān)參數(shù)的值通過所述定時(shí)器發(fā)出定時(shí)中斷來觸發(fā),其中當(dāng)所 述設(shè)定的時(shí)間期滿后,所述定時(shí)器立即發(fā)出所述定時(shí)中斷。
[0010] 可選地,所述設(shè)定的時(shí)間是根據(jù)所述從屬藍(lán)牙設(shè)備的硬件能力和產(chǎn)品需求設(shè)置 的。
[0011] 可選地,所述開關(guān)參數(shù)沒有標(biāo)簽,且不能被主藍(lán)牙設(shè)備操作。
[0012] 可選地,所述身份認(rèn)證包括:從屬藍(lán)牙設(shè)備生成隨機(jī)數(shù),并將該隨機(jī)數(shù)發(fā)送給主藍(lán) 牙設(shè)備;所述主藍(lán)牙設(shè)備使用自己的私鑰對(duì)所述隨機(jī)數(shù)進(jìn)行數(shù)字簽名,并將所述數(shù)字簽名 發(fā)送給所述從屬藍(lán)牙設(shè)備;所述從屬藍(lán)牙設(shè)備對(duì)所述數(shù)字簽名使用所述主藍(lán)牙設(shè)備的公鑰 進(jìn)行驗(yàn)證,如果能夠還原出所述隨機(jī)數(shù),則認(rèn)證所述主藍(lán)牙設(shè)備身份合法,否則認(rèn)證所述主 藍(lán)牙設(shè)備身份不合法。
[0013] 可選地,還包括:通過使所述隨機(jī)數(shù)盡量隨機(jī)并且足夠長,和/或通過使用對(duì)稱加 密算法對(duì)隨機(jī)數(shù)及其數(shù)字簽名進(jìn)行加密,以抵御不合法的主藍(lán)牙設(shè)備對(duì)身份認(rèn)證數(shù)據(jù)的竊 聽。
[0014] 可選地,還包括:通過設(shè)置黑名單,用于保存之前與所述從屬藍(lán)牙設(shè)備連接過的身 份不合法的主藍(lán)牙設(shè)備,使得不合法的主藍(lán)牙設(shè)備與所述從屬藍(lán)牙設(shè)備再次連接后會(huì)直接 斷開連接。
[0015] 根據(jù)本發(fā)明的另一方面,提供了一種在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的裝置。
[0016] -種在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的裝置,包括:存儲(chǔ)器和處理器,其中,所 述存儲(chǔ)器存儲(chǔ)指令;所述處理器執(zhí)行所述指令用于:當(dāng)所述從屬藍(lán)牙設(shè)備與任一主藍(lán)牙設(shè) 備連接時(shí),把所述從屬藍(lán)牙設(shè)備的開關(guān)參數(shù)的值設(shè)置為"主藍(lán)牙設(shè)備身份不合法",啟動(dòng)定 時(shí)器,并執(zhí)行對(duì)該主藍(lán)牙設(shè)備的身份認(rèn)證;其中,當(dāng)所述身份認(rèn)證確定所述主藍(lán)牙設(shè)備合 法,則把所述開關(guān)參數(shù)的值置為"主藍(lán)牙設(shè)備身份合法",否則斷開與該主藍(lán)牙設(shè)備的連接; 其中,根據(jù)所述定時(shí)器,在設(shè)定的時(shí)間期滿后立刻檢查所述開關(guān)參數(shù)的值,當(dāng)所述開關(guān)參數(shù) 的值是"主藍(lán)牙設(shè)備身份不合法",則斷開與該主藍(lán)牙設(shè)備的連接;其中,當(dāng)所述主藍(lán)牙設(shè)備 訪問所述從屬藍(lán)牙設(shè)備內(nèi)的數(shù)據(jù),如果所述開關(guān)參數(shù)的值是"主藍(lán)牙設(shè)備身份合法",則允 許訪問,否則斷開與該主藍(lán)牙設(shè)備的連接。
[0017] 可選地,所述處理器檢查所述開關(guān)參數(shù)的值通過所述定時(shí)器發(fā)出定時(shí)中斷來觸 發(fā),其中當(dāng)所述設(shè)定的時(shí)間期滿后,所述定時(shí)器立即發(fā)出所述定時(shí)中斷。
[0018] 可選地,所述設(shè)定的時(shí)間是根據(jù)所述從屬藍(lán)牙設(shè)備的硬件能力和產(chǎn)品需求設(shè)置 的。
[0019 ]可選地,所述開關(guān)參數(shù)沒有標(biāo)簽,且不能被主藍(lán)牙設(shè)備操作。
[0020] 可選地,所述處理器進(jìn)行所述身份認(rèn)證包括:從屬藍(lán)牙設(shè)備生成隨機(jī)數(shù),并將該隨 機(jī)數(shù)發(fā)送給主藍(lán)牙設(shè)備;所述主藍(lán)牙設(shè)備使用自己的私鑰對(duì)所述隨機(jī)數(shù)進(jìn)行數(shù)字簽名,并 將所述數(shù)字簽名發(fā)送給所述從屬藍(lán)牙設(shè)備;所述從屬藍(lán)牙設(shè)備對(duì)所述數(shù)字簽名使用所述主 藍(lán)牙設(shè)備的公鑰進(jìn)行驗(yàn)證,如果能夠還原出所述隨機(jī)數(shù),則認(rèn)證所述主藍(lán)牙設(shè)備身份合法, 否則認(rèn)證所述主藍(lán)牙設(shè)備身份不合法。
[0021 ] 可選地,所述處理器還用于:通過使所述隨機(jī)數(shù)盡量隨機(jī)并且足夠長,和/或通過 使用對(duì)稱加密算法對(duì)隨機(jī)數(shù)及其數(shù)字簽名進(jìn)行加密,以抵御不合法的主藍(lán)牙設(shè)備對(duì)身份認(rèn) 證數(shù)據(jù)的竊聽。
[0022] 可選地,所述處理器還用于:通過設(shè)置黑名單,用于保存之前與所述從屬藍(lán)牙設(shè)備 連接過的身份不合法的主藍(lán)牙設(shè)備,使得不合法的主藍(lán)牙設(shè)備與所述從屬藍(lán)牙設(shè)備再次連 接后會(huì)直接斷開連接。
[0023] 根據(jù)本發(fā)明的技術(shù)方案,通過為從屬藍(lán)牙設(shè)備引入開關(guān)參數(shù)switch來標(biāo)識(shí)主藍(lán)牙 設(shè)備的身份是否合法,并通過對(duì)主藍(lán)牙設(shè)備進(jìn)行身份認(rèn)證以修改開關(guān)參數(shù)的值,以及根據(jù) 開關(guān)參數(shù)的值來確定是保持還是斷開與主藍(lán)牙設(shè)備的連接,能夠保證當(dāng)slave被非法 master連接之后,不用重新斷電或者遠(yuǎn)離,至多在設(shè)定的短時(shí)間期滿后立刻使slave自動(dòng)斷 開與非法master的連接。同時(shí),對(duì)主藍(lán)牙設(shè)備的身份認(rèn)證進(jìn)行加密,可以抵御非法master對(duì) 身份認(rèn)證數(shù)據(jù)的被動(dòng)偷聽,提高藍(lán)牙設(shè)備連接的安全性。另外,通過設(shè)置黑名單的方式可以 對(duì)非法master進(jìn)行記錄,以更快速地?cái)嚅_同一非法master與slave的重復(fù)連接,從而給合法 master以重新與slave建立合法連接的機(jī)會(huì)。
【附圖說明】
[0024] 附圖用于更好地理解本發(fā)明,不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。其中:
[0025] 圖1是低功耗藍(lán)牙設(shè)備的連接狀態(tài)示意圖;
[0026] 圖2是根據(jù)本發(fā)明實(shí)施例的在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的方法的主要步驟 示意圖;
[0027]圖3是本發(fā)明實(shí)施例的身份認(rèn)證過程示意圖;
[0028] 圖4是根據(jù)本發(fā)明實(shí)施例的在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的裝置的主要模塊 示意圖。
【具體實(shí)施方式】
[0029] 以下結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例做出說明,其中包括本發(fā)明實(shí)施例的各種 細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí) 到,可以對(duì)這里描述的實(shí)施例做出各種改變和修改,而不會(huì)背離本發(fā)明的范圍和精神。同 樣,為了清楚和簡明,以下的描述中省略了對(duì)公知功能和結(jié)構(gòu)的描述。
[0030]圖2是根據(jù)本發(fā)明實(shí)施例的在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的方法的主要步驟 示意圖。根據(jù)本發(fā)明的實(shí)施例,本發(fā)明主要可以包括兩部分內(nèi)容:一是對(duì)主藍(lán)牙設(shè)備的身份 認(rèn)證;二是根據(jù)身份認(rèn)證的結(jié)果確定是否斷開與主藍(lán)牙設(shè)備的連接。如圖2所示,本發(fā)明的 在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的方法主要包括如下的步驟S21和步驟S22。
[0031 ]步驟S21:當(dāng)從屬藍(lán)牙設(shè)備與任一主藍(lán)牙設(shè)備連接時(shí),把從屬藍(lán)牙設(shè)備的開關(guān)參數(shù) 的值設(shè)置為"主藍(lán)牙設(shè)備身份不合法",同時(shí)啟動(dòng)定時(shí)器,并執(zhí)行對(duì)該主藍(lán)牙設(shè)備的身份認(rèn) 證;
[0032]步驟S22:當(dāng)身份認(rèn)證確定主藍(lán)牙設(shè)備合法,則把開關(guān)參數(shù)的值設(shè)置為"主藍(lán)牙設(shè) 備身份合法",否則斷開與該主藍(lán)牙設(shè)備的連接;根據(jù)定時(shí)器,在設(shè)定的時(shí)間期滿后立刻檢 查開關(guān)參數(shù)的值,當(dāng)開關(guān)參數(shù)的值是"主藍(lán)牙設(shè)備身份不合法",則斷開與該主藍(lán)牙設(shè)備的 連接;當(dāng)主藍(lán)牙設(shè)備訪問從屬藍(lán)牙設(shè)備內(nèi)的數(shù)據(jù),如果開關(guān)參數(shù)的值是"主藍(lán)牙設(shè)備身份合 法",則允許訪問,否則斷開與該主藍(lán)牙設(shè)備的連接。
[0033] 在從屬藍(lán)牙設(shè)備slave上,至少要設(shè)置一個(gè)服務(wù)service,這個(gè)service至少要包括 --個(gè)會(huì)κ寫write的特性characteristic)不管是write with response還是write without response)。這樣主藍(lán)牙設(shè)備master才能夠?qū)憇lave的數(shù)據(jù),才能夠控制slave。當(dāng)然了,如果 slave設(shè)備想讓master讀自己的數(shù)據(jù)的話,那么應(yīng)當(dāng)在service之下設(shè)置一個(gè)指示特性 indication characteristic或者通知特性notification characteristic。
[0034] 在本發(fā)明中,為從屬藍(lán)牙設(shè)備slave引入一個(gè)開關(guān)參數(shù)switch用于記錄主藍(lán)牙設(shè) 備master的身份是否合法。該開關(guān)參數(shù)switch沒有標(biāo)簽,且不能被主藍(lán)牙設(shè)備操作。由于 switch數(shù)據(jù)沒有編制標(biāo)簽Tag,因此主藍(lán)牙設(shè)備master無法對(duì)其尋址,也就無法讀寫這個(gè)數(shù) 據(jù)。其中。本發(fā)明的slave設(shè)備中數(shù)據(jù)存儲(chǔ)的方式將于后詳述。
[0035] 當(dāng)從屬藍(lán)牙設(shè)備slave開始加電并運(yùn)行時(shí),即將switch的初值設(shè)置成"Master身份 不合法"。同樣地,當(dāng)slave與任一master連接時(shí),也會(huì)立即將switch的值設(shè)置成"Master身 份不合法",同時(shí),立即使能一個(gè)定時(shí)器,并執(zhí)行對(duì)該master進(jìn)行身份認(rèn)證的程序。
[0036]根據(jù)本發(fā)明的實(shí)施例,對(duì)master進(jìn)行身份認(rèn)證主要可以包括以下步驟:
[0037]從屬藍(lán)牙設(shè)備生成隨機(jī)數(shù),并將該隨機(jī)數(shù)發(fā)送給主藍(lán)牙設(shè)備;
[0038]所述主藍(lán)牙設(shè)備使用自己的私鑰對(duì)所述隨機(jī)數(shù)進(jìn)行數(shù)字簽名,并將所述數(shù)字簽名 發(fā)送給所述從屬藍(lán)牙設(shè)備;
[0039]所述從屬藍(lán)牙設(shè)備對(duì)所述數(shù)字簽名使用所述主藍(lán)牙設(shè)備的公鑰進(jìn)行驗(yàn)證,如果能 夠還原出所述隨機(jī)數(shù),則認(rèn)證所述主藍(lán)牙設(shè)備身份合法,否則認(rèn)證所述主藍(lán)牙設(shè)備身份不 合法。
[0040]圖3是本發(fā)明實(shí)施例的身份認(rèn)證過程示意圖。如圖3所示,當(dāng)有master與slave建立 連接之后,slave將強(qiáng)制master進(jìn)行身份認(rèn)證。認(rèn)證過程如下:
[0041 ] 1、slave設(shè)備端生成隨機(jī)數(shù)random,并將隨機(jī)數(shù)random發(fā)送給master,注意:一旦 使能定時(shí)器之后就立即將隨機(jī)數(shù)random發(fā)送給master以進(jìn)行身份認(rèn)證;
[0042] 2、master使用自己的私鑰priv_key對(duì)random進(jìn)行數(shù)字簽名,并將數(shù)字簽名發(fā)送給 slave;
[0043] 3、slave對(duì)數(shù)字簽名使用master的公鑰pub_key進(jìn)行驗(yàn)證;
[0044] 4、如果能夠還原出random,那么說明master身份合法,如果還原不出random,那么 說明master身份不合法。
[0045] 如果認(rèn)證mas ter的身份合法,將switch的值置成"Mas ter身份合法";如果認(rèn)證 master的身份不合法,則保持switch的初值"Master身份不合法"不變。
[0046]在根據(jù)身份認(rèn)證的結(jié)果確定是否斷開與主藍(lán)牙設(shè)備的連接時(shí),主要是根據(jù)全局變 量switch的值來進(jìn)行。
[0047]如前所述,在身份認(rèn)證之后,如果switch的值為"Master身份合法"時(shí),將保持 slave與該master的連接,如果switch的值為"Master身份不合法"時(shí),將斷開與master的連 接。
[0048] 在slave與任一 master連接后,立即使能一個(gè)定時(shí)器。在不能及時(shí)確定master的身 份是否合法的情況下,利用定時(shí)器根據(jù)一設(shè)定的時(shí)間^!1^_1是否期滿來決定是否需要斷開 slave和master的連接。由于在進(jìn)行身份認(rèn)證的時(shí)候,會(huì)出現(xiàn)網(wǎng)絡(luò)延遲或者master惡意拖延 回復(fù)時(shí)間等情況,導(dǎo)致不能及時(shí)完成身份認(rèn)證。為了保證安全性,在設(shè)定的時(shí)間期滿時(shí)將可 能的不合法m a s t e r的連接斷開,因此利用定時(shí)器根據(jù)設(shè)定的時(shí)間t i m e _ x將可能不合法 master的連接斷開。
[0049] 上述設(shè)定的時(shí)間是根據(jù)所述從屬藍(lán)牙設(shè)備的硬件能力和產(chǎn)品需求設(shè)置的。
[0050] 根據(jù)本發(fā)明的實(shí)施例,檢查所述開關(guān)參數(shù)的值可以通過所述定時(shí)器發(fā)出定時(shí)中斷 來觸發(fā),其中當(dāng)所述設(shè)定的時(shí)間期滿后,所述定時(shí)器立即發(fā)出所述定時(shí)中斷。例如:可設(shè)置 定時(shí)器在time_x (例如:1秒)期滿時(shí)發(fā)出一個(gè)定時(shí)中斷,在對(duì)這個(gè)定時(shí)器的定時(shí)中斷的處理 函數(shù)中,要檢查master身份驗(yàn)證結(jié)果:
[0051 ]如果(switch= =Master 身份合法)
[0052]不執(zhí)行任何操作
[0053] 否則
[0054] 斷開和不合法Master的連接。
[0055]另外,在master與slave連接后,身份認(rèn)證還未進(jìn)行或者雖然已開始但未完成的情 況下,還可針對(duì)主藍(lán)牙設(shè)備master訪問從屬藍(lán)牙設(shè)備slave內(nèi)的數(shù)據(jù)的事實(shí)來斷開slave和 master的連接,從而防止可能非法的master獲得slave的數(shù)據(jù)。當(dāng)主藍(lán)牙設(shè)備master訪問從 屬藍(lán)牙設(shè)備slave內(nèi)的數(shù)據(jù),如果開關(guān)參數(shù)switch的值是"主藍(lán)牙設(shè)備身份合法",則允許訪 問,否則立刻斷開與該主藍(lán)牙設(shè)備的連接。也就是說,利用全局變量switch來保護(hù)slave中 的其他數(shù)據(jù)。保護(hù)方式如下:
[0056]如果(switch= =Master 身份合法)
[0057] Slave中的數(shù)據(jù)允許訪問
[0058] 否則
[0059] 斷開和不合法Master的連接。
[0000] 采取以上方案,在slave與mas ter連接之后,如果master是非法mas ter的話,最多 至設(shè)定的時(shí)間time_x(如1秒)期滿,slave設(shè)備就會(huì)主動(dòng)斷開和master的連接。如果在time_ X期滿前master有訪問slave設(shè)備內(nèi)數(shù)據(jù)的動(dòng)作,那么就會(huì)直接導(dǎo)致slave設(shè)備和該master 斷開連接;如果在time_x期滿前master身份認(rèn)證失敗,即認(rèn)證結(jié)果是master非法,那么也會(huì) 直接導(dǎo)致slave設(shè)備和非法master斷開連接。
[0061 ] 因此,如果在time_x期滿時(shí)未完成對(duì)master的身份認(rèn)證,則斷開與該master的連 接;如果master不進(jìn)行身份認(rèn)證直接訪問slave的數(shù)據(jù),則會(huì)被直接斷開與該master的連 接;如果對(duì)master身份認(rèn)證的結(jié)果是該master非法,則直接斷開與該master的連接。
[0062] 如果在time_x期滿前完成身份認(rèn)證且認(rèn)證結(jié)果是master合法,那么該master可以 正常訪問數(shù)據(jù)。這種情況下,到了time_X期滿時(shí)定時(shí)器可仍然發(fā)出定時(shí)中斷。此時(shí),中斷處 理函數(shù)檢查s w i t ch的值,該值應(yīng)該是"Mas t er身份合法"。
[0063]根據(jù)本發(fā)明的技術(shù)方案,為了更好地抵御非法連接攻擊,還可以采取以下方案: [0064]方案1、抵御被動(dòng)偷聽以獲取身份認(rèn)證數(shù)據(jù)
[0065] 通過使所述隨機(jī)數(shù)盡量隨機(jī)并且足夠長,和/或通過使用對(duì)稱加密算法對(duì)隨機(jī)數(shù) 及其數(shù)字簽名進(jìn)行加密,以抵御不合法的主藍(lán)牙設(shè)備對(duì)身份認(rèn)證數(shù)據(jù)的竊聽。
[0066] 結(jié)合圖3,如果有非法master竊聽獲得合法master的〈random,數(shù)字簽名priv_key (random)〉數(shù)據(jù)對(duì),并建立列表。這樣一旦它再次竊聽到random之后,雖然它無法計(jì)算出數(shù) 字簽名priv_key(random),但卻可以通過查表獲得數(shù)字簽名priv_key(random),從而冒充 合法身份。為抵御這種攻擊,可以采取兩種措施:
[0067] 措施一:隨機(jī)數(shù)random的產(chǎn)生要盡量隨機(jī),并足夠長,這樣發(fā)生隨機(jī)數(shù)碰撞的概率 接近于〇;
[0068] 措施二:可以對(duì)〈random,數(shù)字簽名priv_key (random)〉數(shù)據(jù)傳輸進(jìn)行對(duì)稱加密,使 用master和slave共享的對(duì)稱密鑰,采用對(duì)稱算法進(jìn)行加解密。
[0069]方案2、可以建立黑名單制度
[0070]通過設(shè)置黑名單,用于保存之前與所述從屬藍(lán)牙設(shè)備連接過的身份不合法的主藍(lán) 牙設(shè)備,使得不合法的主藍(lán)牙設(shè)備與所述從屬藍(lán)牙設(shè)備再次連接后會(huì)直接斷開連接。
[0071 ] 因?yàn)樵谶B接請(qǐng)求中包含著master的物理地址mac address,所以對(duì)于被slave設(shè)備 斷開過連接的master,在slave中可以保存一份非法master的物理地址mac address列表。 這樣當(dāng)在黑名單中的master再一次重新連接上slave之后,slave不必驗(yàn)證這個(gè)master的身 份,直接斷開和它的連接即可。如此,即可更快速地?cái)嚅_和不合法mas ter的連接。
[0072] 下面將介紹本發(fā)明slave設(shè)備中的數(shù)據(jù)存儲(chǔ)形式。
[0073] slave設(shè)備中的數(shù)據(jù)可以采取的組織方式見表1。
[0074] 表 1
[0076]其中,name表示數(shù)據(jù)的名稱,value表示數(shù)據(jù)的值。
[0077] 其中,switch即為本發(fā)明中為slave設(shè)置的開關(guān)參數(shù),property_x(x = 1、2、…、η) 即為slave和master可進(jìn)行通信的數(shù)據(jù)。本發(fā)明采用標(biāo)簽長度值TLV(Tag+Length+Value)編 碼的通信方式,使slave和master進(jìn)行數(shù)據(jù)通信。
[0078] 其中,每個(gè)標(biāo)簽長度值TLV編碼的格式如表2所示。
[0079] 表 2
[0081]其中,標(biāo)簽Tag是當(dāng)前通信要操作的數(shù)據(jù)Property_x對(duì)應(yīng)的Tag,可靈活編號(hào);長度 Length是Value的長度,也就是數(shù)據(jù)Property_x_值所對(duì)應(yīng)的長度;值Value是當(dāng)前操作的 Property_x在本次通信過程中的值。
[0082]由表1可以看出,數(shù)據(jù)switch是沒有編制標(biāo)簽Tag值的,這樣master就無法對(duì) switch進(jìn)行尋址,從而無法讀寫該數(shù)據(jù),亦即無法修改switch的值。從而可以保證switch的 值的客觀正確性。
[0083]圖4是根據(jù)本發(fā)明實(shí)施例的在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的裝置的主要模塊 示意圖。如圖4所示,本發(fā)明的在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的裝置40主要包括存儲(chǔ)器 41和處理器42。
[0084]其中,存儲(chǔ)器41存儲(chǔ)指令;處理器42執(zhí)行所述指令用于:當(dāng)所述從屬藍(lán)牙設(shè)備與任 一主藍(lán)牙設(shè)備連接時(shí),把所述從屬藍(lán)牙設(shè)備的開關(guān)參數(shù)的值設(shè)置為"主藍(lán)牙設(shè)備身份不合 法",啟動(dòng)定時(shí)器,并執(zhí)行對(duì)該主藍(lán)牙設(shè)備的身份認(rèn)證;其中,當(dāng)所述身份認(rèn)證確定所述主藍(lán) 牙設(shè)備合法,則把所述開關(guān)參數(shù)的值設(shè)置為"主藍(lán)牙設(shè)備身份合法",否則斷開與該主藍(lán)牙 設(shè)備的連接;其中,根據(jù)所述定時(shí)器,在設(shè)定的時(shí)間期滿后立刻檢查所述開關(guān)參數(shù)的值,當(dāng) 所述開關(guān)參數(shù)的值是"主藍(lán)牙設(shè)備身份不合法",則斷開與該主藍(lán)牙設(shè)備的連接;其中,當(dāng)所 述主藍(lán)牙設(shè)備訪問所述從屬藍(lán)牙設(shè)備內(nèi)的數(shù)據(jù),如果所述開關(guān)參數(shù)的值是"主藍(lán)牙設(shè)備身 份合法",則允許訪問,否則斷開與該主藍(lán)牙設(shè)備的連接。
[0085] 處理器42檢查所述開關(guān)參數(shù)的值通過所述定時(shí)器發(fā)出定時(shí)中斷來觸發(fā),其中當(dāng)所 述設(shè)定的時(shí)間期滿后,所述定時(shí)器立即發(fā)出所述定時(shí)中斷。
[0086] 本發(fā)明中,所述設(shè)定的時(shí)間是根據(jù)所述從屬藍(lán)牙設(shè)備的硬件能力和產(chǎn)品需求設(shè)置 的。
[0087] 所述開關(guān)參數(shù)沒有標(biāo)簽,且不能被主藍(lán)牙設(shè)備操作。
[0088]根據(jù)本發(fā)明的技術(shù)方案,處理器42進(jìn)行所述身份認(rèn)證包括:從屬藍(lán)牙設(shè)備生成隨 機(jī)數(shù),并將該隨機(jī)數(shù)發(fā)送給主藍(lán)牙設(shè)備;所述主藍(lán)牙設(shè)備使用自己的私鑰對(duì)所述隨機(jī)數(shù)進(jìn) 行數(shù)字簽名,并將所述數(shù)字簽名發(fā)送給所述從屬藍(lán)牙設(shè)備;所述從屬藍(lán)牙設(shè)備對(duì)所述數(shù)字 簽名使用所述主藍(lán)牙設(shè)備的公鑰進(jìn)行驗(yàn)證,如果能夠還原出所述隨機(jī)數(shù),則認(rèn)證所述主藍(lán) 牙設(shè)備身份合法,否則認(rèn)證所述主藍(lán)牙設(shè)備身份不合法。
[0089] 處理器42還可以用于:通過使所述隨機(jī)數(shù)盡量隨機(jī)并且足夠長,和/或通過使用對(duì) 稱加密算法對(duì)隨機(jī)數(shù)及其數(shù)字簽名進(jìn)行加密,以抵御不合法的主藍(lán)牙設(shè)備對(duì)身份認(rèn)證數(shù)據(jù) 的竊聽。
[0090] 處理器42還可以用于:通過設(shè)置黑名單,用于保存之前與所述從屬藍(lán)牙設(shè)備連接 過的身份不合法的主藍(lán)牙設(shè)備,使得不合法的主藍(lán)牙設(shè)備與所述從屬藍(lán)牙設(shè)備再次連接后 會(huì)直接斷開連接。
[0091] 根據(jù)本發(fā)明實(shí)施例的技術(shù)方案,通過為從屬藍(lán)牙設(shè)備引入開關(guān)參數(shù)switch來標(biāo)識(shí) 主藍(lán)牙設(shè)備的身份是否合法,并通過對(duì)主藍(lán)牙設(shè)備進(jìn)行身份認(rèn)證以修改開關(guān)參數(shù)的值,以 及根據(jù)開關(guān)參數(shù)的值來確定是保持還是斷開與主藍(lán)牙設(shè)備的連接,能夠保證當(dāng)slave被非 法master連接之后,不用重新斷電或者遠(yuǎn)離,至多在設(shè)定的短時(shí)間期滿后立即使slave自動(dòng) 斷開與非法master的連接。同時(shí),對(duì)主藍(lán)牙設(shè)備的身份認(rèn)證進(jìn)行加密,可以抵御非法master 對(duì)身份認(rèn)證數(shù)據(jù)的被動(dòng)偷聽,提高藍(lán)牙設(shè)備連接的安全性。另外,通過設(shè)置黑名單的方式可 以對(duì)非法master進(jìn)行記錄,以更快速地?cái)嚅_同一非法master與slave的重復(fù)連接,從而給合 法mas ter以重新與s lave建立合法連接的機(jī)會(huì)。
[0092] 上述【具體實(shí)施方式】,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限制。本領(lǐng)域技術(shù)人員應(yīng)該明 白的是,取決于設(shè)計(jì)要求和其他因素,可以發(fā)生各種各樣的修改、組合、子組合和替代。任何 在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)范圍 之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的方法,其特征在于,包括: 當(dāng)所述從屬藍(lán)牙設(shè)備與任一主藍(lán)牙設(shè)備連接時(shí),把所述從屬藍(lán)牙設(shè)備的開關(guān)參數(shù)的值 設(shè)置為"主藍(lán)牙設(shè)備身份不合法",啟動(dòng)定時(shí)器,并執(zhí)行對(duì)該主藍(lán)牙設(shè)備的身份認(rèn)證; 其中,當(dāng)所述身份認(rèn)證確定所述主藍(lán)牙設(shè)備合法,則把所述開關(guān)參數(shù)的值設(shè)置為"主藍(lán) 牙設(shè)備身份合法",否則斷開與該主藍(lán)牙設(shè)備的連接; 其中,根據(jù)所述定時(shí)器,在設(shè)定的時(shí)間期滿后立刻檢查所述開關(guān)參數(shù)的值,當(dāng)所述開關(guān) 參數(shù)的值是"主藍(lán)牙設(shè)備身份不合法",則斷開與該主藍(lán)牙設(shè)備的連接; 其中,當(dāng)所述主藍(lán)牙設(shè)備訪問所述從屬藍(lán)牙設(shè)備內(nèi)的數(shù)據(jù),如果所述開關(guān)參數(shù)的值是 "主藍(lán)牙設(shè)備身份合法",則允許訪問,否則斷開與該主藍(lán)牙設(shè)備的連接。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,檢查所述開關(guān)參數(shù)的值通過所述定時(shí)器發(fā) 出定時(shí)中斷來觸發(fā),其中當(dāng)所述設(shè)定的時(shí)間期滿后,所述定時(shí)器立即發(fā)出所述定時(shí)中斷。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)定的時(shí)間是根據(jù)所述從屬藍(lán)牙設(shè)備 的硬件能力和產(chǎn)品需求設(shè)置的。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述開關(guān)參數(shù)沒有標(biāo)簽,且不能被主藍(lán)牙 設(shè)備操作。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述身份認(rèn)證包括: 從屬藍(lán)牙設(shè)備生成隨機(jī)數(shù),并將該隨機(jī)數(shù)發(fā)送給主藍(lán)牙設(shè)備; 所述主藍(lán)牙設(shè)備使用自己的私鑰對(duì)所述隨機(jī)數(shù)進(jìn)行數(shù)字簽名,并將所述數(shù)字簽名發(fā)送 給所述從屬藍(lán)牙設(shè)備; 所述從屬藍(lán)牙設(shè)備對(duì)所述數(shù)字簽名使用所述主藍(lán)牙設(shè)備的公鑰進(jìn)行驗(yàn)證,如果能夠還 原出所述隨機(jī)數(shù),則認(rèn)證所述主藍(lán)牙設(shè)備身份合法,否則認(rèn)證所述主藍(lán)牙設(shè)備身份不合法。6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括: 通過使所述隨機(jī)數(shù)盡量隨機(jī)并且足夠長,和/或通過使用對(duì)稱加密算法對(duì)隨機(jī)數(shù)及其 數(shù)字簽名進(jìn)行加密,以抵御不合法的主藍(lán)牙設(shè)備對(duì)身份認(rèn)證數(shù)據(jù)的竊聽。7. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 通過設(shè)置黑名單,用于保存之前與所述從屬藍(lán)牙設(shè)備連接過的身份不合法的主藍(lán)牙設(shè) 備,使得不合法的主藍(lán)牙設(shè)備與所述從屬藍(lán)牙設(shè)備再次連接后會(huì)直接斷開連接。8. -種在從屬藍(lán)牙設(shè)備抵御非法連接攻擊的裝置,其特征在于,包括: 存儲(chǔ)器和處理器,其中, 所述存儲(chǔ)器存儲(chǔ)指令; 所述處理器執(zhí)行所述指令用于: 當(dāng)所述從屬藍(lán)牙設(shè)備與任一主藍(lán)牙設(shè)備連接時(shí),把所述從屬藍(lán)牙設(shè)備的開關(guān)參數(shù)的值 設(shè)置為"主藍(lán)牙設(shè)備身份不合法",啟動(dòng)定時(shí)器,并執(zhí)行對(duì)該主藍(lán)牙設(shè)備的身份認(rèn)證; 其中,當(dāng)所述身份認(rèn)證確定所述主藍(lán)牙設(shè)備合法,則把所述開關(guān)參數(shù)的值設(shè)置為"主藍(lán) 牙設(shè)備身份合法",否則斷開與該主藍(lán)牙設(shè)備的連接; 其中,根據(jù)所述定時(shí)器,在設(shè)定的時(shí)間期滿后立刻檢查所述開關(guān)參數(shù)的值,當(dāng)所述開關(guān) 參數(shù)的值是"主藍(lán)牙設(shè)備身份不合法",則斷開與該主藍(lán)牙設(shè)備的連接; 其中,當(dāng)所述主藍(lán)牙設(shè)備訪問所述從屬藍(lán)牙設(shè)備內(nèi)的數(shù)據(jù),如果所述開關(guān)參數(shù)的值是 "主藍(lán)牙設(shè)備身份合法",則允許訪問,否則斷開與該主藍(lán)牙設(shè)備的連接。9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述處理器檢查所述開關(guān)參數(shù)的值通過所 述定時(shí)器發(fā)出定時(shí)中斷來觸發(fā),其中當(dāng)所述設(shè)定的時(shí)間期滿后,所述定時(shí)器立即發(fā)出所述 定時(shí)中斷。10. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述設(shè)定的時(shí)間是根據(jù)所述從屬藍(lán)牙設(shè) 備的硬件能力和產(chǎn)品需求設(shè)置的。11. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述開關(guān)參數(shù)沒有標(biāo)簽,且不能被主藍(lán)牙 設(shè)備操作。12. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述處理器進(jìn)行所述身份認(rèn)證包括: 從屬藍(lán)牙設(shè)備生成隨機(jī)數(shù),并將該隨機(jī)數(shù)發(fā)送給主藍(lán)牙設(shè)備; 所述主藍(lán)牙設(shè)備使用自己的私鑰對(duì)所述隨機(jī)數(shù)進(jìn)行數(shù)字簽名,并將所述數(shù)字簽名發(fā)送 給所述從屬藍(lán)牙設(shè)備; 所述從屬藍(lán)牙設(shè)備對(duì)所述數(shù)字簽名使用所述主藍(lán)牙設(shè)備的公鑰進(jìn)行驗(yàn)證,如果能夠還 原出所述隨機(jī)數(shù),則認(rèn)證所述主藍(lán)牙設(shè)備身份合法,否則認(rèn)證所述主藍(lán)牙設(shè)備身份不合法。13. 根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述處理器還用于: 通過使所述隨機(jī)數(shù)盡量隨機(jī)并且足夠長,和/或通過使用對(duì)稱加密算法對(duì)隨機(jī)數(shù)及其 數(shù)字簽名進(jìn)行加密,以抵御不合法的主藍(lán)牙設(shè)備對(duì)身份認(rèn)證數(shù)據(jù)的竊聽。14. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述處理器還用于: 通過設(shè)置黑名單,用于保存之前與所述從屬藍(lán)牙設(shè)備連接過的身份不合法的主藍(lán)牙設(shè) 備,使得不合法的主藍(lán)牙設(shè)備與所述從屬藍(lán)牙設(shè)備再次連接后會(huì)直接斷開連接。
【文檔編號(hào)】H04W12/06GK106028319SQ201610563344
【公開日】2016年10月12日
【申請(qǐng)日】2016年7月18日
【發(fā)明人】張華
【申請(qǐng)人】北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司