本發(fā)明屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,具體涉及一種藍(lán)牙設(shè)備安全登錄身份驗(yàn)證方法及裝置。
背景技術(shù):
藍(lán)牙(Bluetooth):是一種無(wú)線技術(shù)標(biāo)準(zhǔn),可實(shí)現(xiàn)固定設(shè)備、移動(dòng)設(shè)備和樓宇個(gè)人域網(wǎng)之間的短距離數(shù)據(jù)交換,出于安全上的考量,兩個(gè)藍(lán)牙設(shè)備建立可信任的連接之前,通常需要對(duì)對(duì)方設(shè)備進(jìn)行身份驗(yàn)證,驗(yàn)證通過(guò)后配對(duì)連接。傳統(tǒng)的藍(lán)牙設(shè)備之間的配對(duì)方式為:每個(gè)設(shè)備必須輸入PIN碼,只有當(dāng)兩個(gè)設(shè)備都輸入相同的PIN碼方能配對(duì)成功,由于PIN碼是一串靜態(tài)明文,這樣就很容易在傳遞的過(guò)程中被截取,導(dǎo)致設(shè)備功能信息泄露或被破解,存在著很大的安全隱患。
為解決合法身份驗(yàn)證的安全問(wèn)題,有的方案采用藍(lán)牙設(shè)備本身固有的mac地址作為唯一識(shí)別碼進(jìn)行認(rèn)證通信,該方案雖然簡(jiǎn)單,但是存在mac地址很容易被獲取并被復(fù)制偽照等嚴(yán)重安全問(wèn)題。還有的方案采用藍(lán)牙技術(shù)提供的常規(guī)保密措施,即在應(yīng)用層和鏈路層上都采取了保密措施以保證通信的安全,所有藍(lán)牙設(shè)備都采用相同的認(rèn)證和加密方式。在登錄驗(yàn)證上采用“口令-應(yīng)答”的方式,驗(yàn)證方要求申請(qǐng)者鑒別隨機(jī)數(shù)以及認(rèn)證碼并返回計(jì)算結(jié)果,若雙方的計(jì)算結(jié)果相等則認(rèn)證成功,然后在應(yīng)用層和鏈路層上都采取了加密措施以保證通信的安全性。該方法雖然安全性較高,但也存在連接認(rèn)證口令泄漏被破解或被截取等風(fēng)險(xiǎn);數(shù)據(jù)傳輸時(shí)信息加解密處理也較為復(fù)雜,需要較多資源的處理器才能實(shí)現(xiàn)并實(shí)時(shí)響應(yīng),成本相對(duì)較高等問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的之一在于克服以上缺點(diǎn),提供一種認(rèn)證過(guò)程簡(jiǎn)單,安全性高,占用資源低的藍(lán)牙設(shè)備安全登錄身份驗(yàn)證方法。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種藍(lán)牙設(shè)備安全登錄身份驗(yàn)證方法,包括以下步驟:
藍(lán)牙從設(shè)備生成隨機(jī)碼,并使用預(yù)設(shè)的加密密鑰將隨機(jī)碼加密成密文;同時(shí),藍(lán)牙從設(shè)備根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,等待藍(lán)牙主設(shè)備連接;
藍(lán)牙主設(shè)備連接藍(lán)牙從設(shè)備;所述藍(lán)牙主設(shè)備預(yù)設(shè)與藍(lán)牙從設(shè)備相同的加密密鑰;
藍(lán)牙從設(shè)備發(fā)送隨機(jī)碼密文給藍(lán)牙主設(shè)備;
藍(lán)牙主設(shè)備使用加密密鑰解密出隨機(jī)碼,根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,并用所述登錄密碼訪問(wèn)藍(lán)牙從設(shè)備;
藍(lán)牙從設(shè)備對(duì)藍(lán)牙主設(shè)備發(fā)送的登錄密碼進(jìn)行驗(yàn)證,若正確,則發(fā)送登錄成功應(yīng)答,允許藍(lán)牙主設(shè)備訪問(wèn),否則發(fā)送登錄失敗應(yīng)答并斷開(kāi)連接。
本發(fā)明的技術(shù)方案中,由藍(lán)牙從設(shè)備生成隨機(jī)碼,藍(lán)牙從設(shè)備和藍(lán)牙主設(shè)備均根據(jù)隨機(jī)碼計(jì)算登錄密碼,進(jìn)行身份的驗(yàn)證,由于系統(tǒng)生成隨機(jī)碼的不可預(yù)知性和隨機(jī)性,保證了每次使用的登錄密碼不會(huì)是相同值,不容易被破解,提高了安全性。
進(jìn)一步地,所述加密密鑰由公共加密密鑰和用戶(hù)加密密鑰組成。
進(jìn)一步地,所述密文由隨機(jī)碼和加密秘鑰計(jì)算生成。
進(jìn)一步地,所述登錄密碼由所述隨機(jī)碼和所述用戶(hù)加密密鑰計(jì)算生成。
進(jìn)一步地,所述用戶(hù)加密密鑰可在藍(lán)牙主設(shè)備登錄成功后修改。
本發(fā)明的技術(shù)方案中,藍(lán)牙從設(shè)備生成的隨機(jī)碼是加密成密文發(fā)往藍(lán)牙主設(shè)備,由于隨機(jī)碼在空間傳輸是進(jìn)行加密的,也增加了破解的難度,提高安全性。
本發(fā)明的技術(shù)方案中,用戶(hù)加密密鑰變化后,由于加密密鑰和登錄密碼均和用戶(hù)加密密鑰相關(guān),所以也會(huì)同時(shí)發(fā)生變化,同樣可以增加密碼破解的難度,提高安全性。
進(jìn)一步地,所述的藍(lán)牙安全登錄身份驗(yàn)證方法,還包括以下步驟:若在設(shè)置的時(shí)間間隔內(nèi)藍(lán)牙主設(shè)備未登錄,藍(lán)牙從設(shè)備斷開(kāi)與藍(lán)牙主設(shè)備的連接。
藍(lán)牙主設(shè)備超時(shí)未登錄后,可以重新生成新的隨機(jī)碼,等待藍(lán)牙主設(shè)備重新連接,通過(guò)隨機(jī)碼的變化,保證密碼和上一次不相同,提高安全性。
相應(yīng)地,本發(fā)明還提供了一種藍(lán)牙設(shè)備安全登錄身份驗(yàn)證裝置,包括:
第一處理模塊,用于藍(lán)牙從設(shè)備生成隨機(jī)碼,并使用預(yù)設(shè)的加密密鑰將隨機(jī)碼加密成密文;同時(shí),藍(lán)牙從設(shè)備根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,等待藍(lán)牙主設(shè)備連接;
第二處理模塊,用于藍(lán)牙主設(shè)備連接藍(lán)牙從設(shè)備;所述藍(lán)牙主設(shè)備預(yù)設(shè)與藍(lán)牙從設(shè)備相同的加密密鑰;
第三處理模塊,用于藍(lán)牙從設(shè)備發(fā)送隨機(jī)碼密文給藍(lán)牙主設(shè)備;
第四處理模塊,用于藍(lán)牙主設(shè)備使用加密密鑰解密出隨機(jī)碼,根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,并用所述登錄密碼訪問(wèn)藍(lán)牙從設(shè)備;
第五處理模塊,用于藍(lán)牙從設(shè)備對(duì)藍(lán)牙主設(shè)備發(fā)送的登錄密碼進(jìn)行驗(yàn)證,若正確,則發(fā)送登錄成功應(yīng)答,允許藍(lán)牙主設(shè)備訪問(wèn),否則發(fā)送登錄失敗應(yīng)答并斷開(kāi)連接。
進(jìn)一步地,所述的藍(lán)牙安全登錄身份驗(yàn)證裝置,還包括:
第六處理模塊,用于若在設(shè)置的時(shí)間間隔內(nèi)藍(lán)牙主設(shè)備未登錄,藍(lán)牙從設(shè)備斷開(kāi)與藍(lán)牙主設(shè)備的連接。
綜上所述,本發(fā)明技術(shù)方案的有益效果有:
1.每次藍(lán)牙主設(shè)備連接前,由藍(lán)牙從設(shè)備生成隨機(jī)碼,藍(lán)牙從設(shè)備和藍(lán)牙主設(shè)備均根據(jù)隨機(jī)碼計(jì)算登錄密碼,進(jìn)行身份的驗(yàn)證,由于系統(tǒng)生成隨機(jī)碼的不可預(yù)知性和隨機(jī)性,保證了每次使用的登錄密碼不會(huì)是相同值,不容易被破解,提高了安全性。
2.用戶(hù)加密密鑰允許修改,由于加密密鑰和登錄密碼均和用戶(hù)加密密鑰相關(guān),所以也會(huì)同時(shí)發(fā)生變化,同樣可以增加密碼破解的難度,提高安全性。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例的一種藍(lán)牙設(shè)備安全登錄身份驗(yàn)證方法步驟流程圖。
圖2是本發(fā)明實(shí)施例的一種藍(lán)牙設(shè)備安全登錄身份驗(yàn)證裝置結(jié)構(gòu)圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
藍(lán)牙(Bluetooth):是一種無(wú)線技術(shù)標(biāo)準(zhǔn),可實(shí)現(xiàn)固定設(shè)備、移動(dòng)設(shè)備和樓宇個(gè)人域網(wǎng)之間的短距離數(shù)據(jù)交換。藍(lán)牙技術(shù)規(guī)定每一對(duì)設(shè)備之間進(jìn)行藍(lán)牙通訊時(shí),必須一個(gè)為主設(shè)備,另一為從設(shè)備,才能進(jìn)行通信,通信時(shí),必須由主設(shè)備進(jìn)行查找,發(fā)起登錄驗(yàn)證,驗(yàn)證成功后,雙方即可收發(fā)數(shù)據(jù)。一個(gè)具備藍(lán)牙通訊功能的設(shè)備,可以在兩個(gè)角色間切換,平時(shí)工作在從設(shè)備模式,等待其它主設(shè)備來(lái)連接,需要時(shí),轉(zhuǎn)換為主設(shè)備模式,向其它設(shè)備發(fā)起呼叫。一個(gè)藍(lán)牙設(shè)備以主模式發(fā)起呼叫時(shí),需要知道對(duì)方的藍(lán)牙地址,登錄密碼等信息,登錄驗(yàn)證完成后,雙方可進(jìn)行數(shù)據(jù)訪問(wèn)或傳輸操作。
如圖1,是本發(fā)明實(shí)施例的一種藍(lán)牙設(shè)備安全登錄身份驗(yàn)證方法步驟流程圖,包括以下步驟:
步驟1,藍(lán)牙從設(shè)備生成隨機(jī)碼,并使用預(yù)設(shè)的加密密鑰將隨機(jī)碼加密成密文;同時(shí),藍(lán)牙從設(shè)備根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,等待藍(lán)牙主設(shè)備連接;
本發(fā)明的藍(lán)牙設(shè)備安全登錄身份驗(yàn)證方法,在藍(lán)牙主設(shè)備未連接藍(lán)牙從設(shè)備的時(shí)候,藍(lán)牙從設(shè)備先進(jìn)行本次連接驗(yàn)證相關(guān)的準(zhǔn)備處理,包括生成隨機(jī)碼,對(duì)生成的隨機(jī)碼進(jìn)行加密以及根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,以便在藍(lán)牙主設(shè)備連接后進(jìn)行后續(xù)相關(guān)認(rèn)證操作。
首先,本發(fā)明的技術(shù)方案中所述的隨機(jī)碼是由數(shù)字、英文大小寫(xiě)字母混合組成的固定長(zhǎng)度8字節(jié)隨機(jī)碼(RAND),隨機(jī)碼的產(chǎn)生方式是使用設(shè)備自帶的內(nèi)部定時(shí)器和日期/時(shí)間戳混合作為隨機(jī)碼的種子,使用軟件函數(shù)來(lái)產(chǎn)生偽隨機(jī)碼。雖然該偽隨機(jī)碼存在重復(fù)的概率,但在某一時(shí)刻所產(chǎn)生隨機(jī)碼是由定時(shí)器和日期/時(shí)間戳定的,是不可預(yù)知的,其隨機(jī)性和安全性也是可保證的,該隨機(jī)碼為藍(lán)牙設(shè)備登錄密碼的生成提供了運(yùn)算基礎(chǔ)。
其次,為保證隨機(jī)碼在發(fā)送給藍(lán)牙主設(shè)備過(guò)程中的安全性,必須對(duì)隨機(jī)碼進(jìn)行加密操作,采用加密算法將明文隨機(jī)碼與密鑰進(jìn)行復(fù)雜的運(yùn)算生成一串隨機(jī)碼的密文數(shù)據(jù)流,而加密算法中的重點(diǎn)就是加密密鑰(PRIVATE_KEY),一旦加密密鑰被破解,就會(huì)造成明文隨機(jī)碼的泄露。目前常用的加密算法主要有對(duì)稱(chēng)性的TEA加密算法、對(duì)稱(chēng)性的DES、IDE或AES等加密算法等。
本發(fā)明的藍(lán)牙安全登錄身份驗(yàn)證方法,加密密鑰是在藍(lán)牙設(shè)備出廠的時(shí)候就預(yù)設(shè)在設(shè)備中的,它由公共加密密鑰(PUBLIC_KEY)和用戶(hù)加密密鑰(USER_KEY)兩部分組成,以保證其復(fù)雜性和安全性。其中,公共加密密鑰通常為不可修改的固定值,用戶(hù)加密密鑰是可以修改的非固定值,最終的加密密鑰是由公共加密密鑰和用戶(hù)加密密鑰經(jīng)過(guò)一定的算法規(guī)則計(jì)算而得出。
例如,在采用對(duì)稱(chēng)性的TEA加密算法的實(shí)施例中,其加密密鑰的長(zhǎng)度是固定的16字節(jié)(即128bit)無(wú)法變更,其值是由公共加密密鑰和用戶(hù)加密密鑰通過(guò)如下算法規(guī)則計(jì)算得出:PRIVATE_KEY=(USER_KEY)0-3(PUBLIC_KEY)0-3(USER_KEY)4-7(PUBLIC_KEY)4-7。即:16字節(jié)的加密密鑰是由用戶(hù)加密密鑰的0-3字節(jié)、公共加密密鑰的0-3字節(jié)、用戶(hù)加密密鑰的4-7字節(jié)、公共加密密鑰的4-7字節(jié)這四個(gè)部分依次拼接而成。在具體的實(shí)施例中,若公共加密密鑰(PUBLIC_KEY)=“E&nMV!78”,用戶(hù)加密密鑰(USER_KEY)=“12345678”,根據(jù)上述算法規(guī)則計(jì)算出的加密密鑰(PRIVATE_KEY)=“1234E&nM5678V!78”。當(dāng)然,上述加密密鑰的算法規(guī)則并不唯一,還可以根據(jù)安全性的要求采用更加復(fù)雜的算法規(guī)則生成加密密鑰。
再次,藍(lán)牙從設(shè)備需要計(jì)算生成本次登錄密碼,以便在藍(lán)牙主設(shè)備請(qǐng)求驗(yàn)證登錄密碼的時(shí)候進(jìn)行比對(duì),只有在藍(lán)牙主設(shè)備持有的登錄密碼和藍(lán)牙從設(shè)備的登錄密碼一致時(shí),才能成功登錄藍(lán)牙從設(shè)備,否則將不能訪問(wèn)并修改藍(lán)牙從設(shè)備的信息。本發(fā)明技術(shù)方案中的登錄密碼是由隨機(jī)碼(RAND)和用戶(hù)加密密鑰(USER_KEY)計(jì)算生成。
例如,在一具體的實(shí)施例中,藍(lán)牙的登錄密碼(LOGIN_PWD)由大小寫(xiě)字母和數(shù)字組成的固定長(zhǎng)度8字節(jié)的字符串組成,其生成的規(guī)則為:
LOGIN_PWD=(RAND)1-6+校驗(yàn)值(2字節(jié))
即:長(zhǎng)度為8字節(jié)的登錄密碼LOGIN_PWD等于隨機(jī)碼(RAND)的1-6字節(jié)與2字節(jié)長(zhǎng)度的校驗(yàn)值拼接的結(jié)果。其中,校驗(yàn)值2字節(jié)字符串,是由用戶(hù)加密密鑰(USER_KEY)的0-7字節(jié)與隨機(jī)碼(RAND)的0-7字節(jié)合并后16字節(jié)的字符串不進(jìn)位累加和得到的一個(gè)字節(jié)十六進(jìn)制數(shù),再轉(zhuǎn)換為2個(gè)字節(jié)字符,如得到十六進(jìn)制數(shù)0x3F,則校驗(yàn)值為“3F”。
例如,假設(shè)用戶(hù)加密密鑰(USER_KEY)為:“12345678”,生成隨機(jī)碼(RAND)為:“A9V5xb92”,那么合并后的字符串為“12345678A9V5xb92”,用該合并后的字符串不進(jìn)位累加和得到的一個(gè)字節(jié)十六進(jìn)制數(shù)0xEE,再把這個(gè)十六進(jìn)制轉(zhuǎn)換為2個(gè)字節(jié)字符‘E’‘E’,即校驗(yàn)值為“EE”,最后得到8字節(jié)的登錄密碼LOGIN_PWD為“A9V5xbEE”。
其中不進(jìn)位累加和計(jì)算過(guò)程為:
首先,將字符串“12345678A9V5xb92”轉(zhuǎn)換為ASCII碼的十六進(jìn)制數(shù)為0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x41 0x39 0x56 0x35 0x78 0x62 0x39 0x32
其次,計(jì)算累加和計(jì)算如:0x31+0x32+0x33+0x34+0x35+0x36+0x37+0x38+0x41+0x39+0x56+0x35+0x78+0x62+0x39+0x32=0x3EE
最后,取累加和的低8位得到一個(gè)字節(jié)十六進(jìn)制數(shù)0xEE,再把這個(gè)十六進(jìn)制轉(zhuǎn)換為2個(gè)字節(jié)字符‘E’‘E’,即為“EE”。
步驟2,藍(lán)牙主設(shè)備連接藍(lán)牙從設(shè)備;所述藍(lán)牙主設(shè)備預(yù)設(shè)與藍(lán)牙從設(shè)備相同的加密密鑰;
本發(fā)明的技術(shù)方案中,為了保證藍(lán)牙主設(shè)備能根據(jù)藍(lán)牙從設(shè)備發(fā)送的隨機(jī)碼密文正確解碼出隨機(jī)碼明文,就必須將藍(lán)牙主設(shè)備的加密密鑰(PRIVATE_KEY)在出廠時(shí)預(yù)設(shè)成與藍(lán)牙從設(shè)備的加密密鑰一致,即公共加密密鑰(PUBLIC_KEY)和用戶(hù)加密密鑰(USER_KEY)均與藍(lán)牙從設(shè)備預(yù)設(shè)的一致。
步驟3,藍(lán)牙從設(shè)備發(fā)送隨機(jī)碼密文給藍(lán)牙主設(shè)備;
步驟4,藍(lán)牙主設(shè)備使用加密密鑰解密出隨機(jī)碼,根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,并用所述登錄密碼訪問(wèn)藍(lán)牙從設(shè)備;
藍(lán)牙主設(shè)備在接收到藍(lán)牙從設(shè)備發(fā)送的隨機(jī)碼密文后,首先,采用與藍(lán)牙從設(shè)備相同的計(jì)算算法,用公共加密密鑰(PUBLIC_KEY)和用戶(hù)加密密鑰(USER_KEY)計(jì)算出加密密鑰(PRIVATE_KEY);其次,再用加密密鑰(PRIVATE_KEY)對(duì)隨機(jī)碼密文進(jìn)行解密,得到隨機(jī)碼明文;再次,采用與藍(lán)牙從設(shè)備相同的計(jì)算算法,用隨機(jī)碼(RAND)和用戶(hù)加密密鑰(USER_KEY),計(jì)算出本次登錄密碼;最后,藍(lán)牙主設(shè)備用登錄密碼請(qǐng)求藍(lán)牙從設(shè)備進(jìn)行登錄驗(yàn)證。
步驟5,藍(lán)牙從設(shè)備對(duì)藍(lán)牙主設(shè)備發(fā)送的登錄密碼進(jìn)行驗(yàn)證,若正確,則發(fā)送登錄成功應(yīng)答,允許藍(lán)牙主設(shè)備訪問(wèn),否則發(fā)送登錄失敗應(yīng)答并斷開(kāi)連接。
藍(lán)牙從設(shè)備在接收到藍(lán)牙主設(shè)備的登錄請(qǐng)求后,將藍(lán)牙主設(shè)備請(qǐng)求的登錄密碼與本地計(jì)算的登錄密碼進(jìn)行比對(duì),如果兩者一致,則認(rèn)證成功,藍(lán)牙從設(shè)備將發(fā)送登錄成功應(yīng)答給藍(lán)牙主設(shè)備,并允許藍(lán)牙主設(shè)備訪問(wèn),兩者之間可以進(jìn)行數(shù)據(jù)訪問(wèn),傳輸?shù)炔僮?;若兩者不一致,則認(rèn)證失敗,藍(lán)牙從設(shè)備將發(fā)送登錄失敗應(yīng)答給藍(lán)牙主設(shè)備,同時(shí)斷開(kāi)與藍(lán)牙主設(shè)備之間的連接。藍(lán)牙從設(shè)備斷開(kāi)與藍(lán)牙主設(shè)備的連接后,可以重新生成隨機(jī)碼,并進(jìn)行加密得到新的隨機(jī)碼密文以及重新計(jì)算登錄密碼,為下次藍(lán)牙主設(shè)備的連接登錄做準(zhǔn)備。
在一優(yōu)選的實(shí)施例中,當(dāng)藍(lán)牙主設(shè)備與藍(lán)牙從設(shè)備身份驗(yàn)證成功之后,本發(fā)明的技術(shù)方案還可以對(duì)雙方設(shè)備所預(yù)設(shè)的用戶(hù)加密密鑰(USER_KEY)同時(shí)進(jìn)行修改。由于用戶(hù)加密密鑰(USER_KEY)發(fā)生改變后,將影響加密密鑰(PRIVATE_KEY)和登錄密碼(LOGIN_PWD)也同時(shí)改變,可以增加密碼破解的難度,提高安全性。
在另一優(yōu)選的實(shí)施例中,若在設(shè)置的時(shí)間間隔內(nèi)藍(lán)牙主設(shè)備未登錄,藍(lán)牙從設(shè)備將斷開(kāi)與藍(lán)牙主設(shè)備的連接,重新生成隨機(jī)碼,并進(jìn)行加密得到隨機(jī)碼密文以及重新計(jì)算登錄密碼,為下次藍(lán)牙主設(shè)備的連接登錄做準(zhǔn)備。通過(guò)這種方式,產(chǎn)生新的隨機(jī)碼,保證了下次使用的登錄密碼不會(huì)是相同值,不容易被破解,提高了安全性。
下面以一具體實(shí)施例詳細(xì)說(shuō)明本發(fā)明的藍(lán)牙設(shè)備安全登錄身份驗(yàn)證方法。
本實(shí)施例中,藍(lán)牙主設(shè)備和藍(lán)牙從設(shè)備出廠預(yù)設(shè)相同的公共加密密鑰(PUBLIC_KEY)為:“ABCDEFGH”,預(yù)設(shè)相同的用戶(hù)加密密鑰(USER_KEY)為:“12345678”,藍(lán)牙主設(shè)備和藍(lán)牙從設(shè)備進(jìn)行認(rèn)證連接的的具體過(guò)程為:
步驟1,藍(lán)牙從設(shè)備生成隨機(jī)碼(RAND)“A9V5xb92”;根據(jù)預(yù)設(shè)的公共加密密鑰(PUBLIC_KEY)和用戶(hù)加密密鑰(USER_KEY),計(jì)算出加密密鑰為:“1234ABCD5678EFGH”,再采用對(duì)稱(chēng)TEA加密算法對(duì)隨機(jī)碼進(jìn)行加密得到8字節(jié)密文(用十六進(jìn)制表示):0xe0 0x05 0x60 0x21 0x44 0x09 0xbb 0x28;同時(shí)根據(jù)隨機(jī)碼(RAND)和用戶(hù)加密密鑰(USER_KEY)計(jì)算得到登錄密碼為:“A9V5xbEE”。在完成上述處理后,藍(lán)牙從設(shè)備等待藍(lán)牙主設(shè)備連接;
步驟2,藍(lán)牙主設(shè)備連接藍(lán)牙從設(shè)備;
步驟3,藍(lán)牙從設(shè)備發(fā)送隨機(jī)碼密文(0xe0 0x05 0x60 0x21 0x44 0x09 0xbb 0x28)給藍(lán)牙主設(shè)備;
步驟4,藍(lán)牙主設(shè)備根據(jù)預(yù)設(shè)的公共加密密鑰(PUBLIC_KEY)和用戶(hù)加密密鑰(USER_KEY),計(jì)算出加密密鑰為:“1234ABCD5678EFGH”,再使用加密密鑰對(duì)隨機(jī)碼密文解密出隨機(jī)碼“A9V5xb92”,根據(jù)隨機(jī)碼(RAND)和用戶(hù)加密密鑰(USER_KEY),采用同樣的登錄密碼計(jì)算方法計(jì)算出登錄密碼為“A9V5xbEE”,并用所述登錄密碼訪問(wèn)藍(lán)牙從設(shè)備;
步驟5,藍(lán)牙從設(shè)備對(duì)藍(lán)牙主設(shè)備發(fā)送的登錄密碼“A9V5xbEE”進(jìn)行驗(yàn)證,確認(rèn)與本地計(jì)算的登錄密碼一致,則發(fā)送登錄成功應(yīng)答,允許藍(lán)牙主設(shè)備訪問(wèn)。
如圖2,是本發(fā)明實(shí)施例的一種藍(lán)牙設(shè)備安全登錄身份驗(yàn)證裝置結(jié)構(gòu)圖,包括:
第一處理模塊,用于藍(lán)牙從設(shè)備生成隨機(jī)碼,并使用預(yù)設(shè)的加密密鑰將隨機(jī)碼加密成密文;同時(shí),藍(lán)牙從設(shè)備根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,等待藍(lán)牙主設(shè)備連接;
本處理模塊主要進(jìn)行藍(lán)牙主設(shè)備連接驗(yàn)證前相關(guān)的準(zhǔn)備處理,包括生成隨機(jī)碼,對(duì)生成的隨機(jī)碼進(jìn)行加密以及根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,以便在藍(lán)牙主設(shè)備連接后進(jìn)行后續(xù)相關(guān)認(rèn)證操作。
第二處理模塊,用于藍(lán)牙主設(shè)備連接藍(lán)牙從設(shè)備;所述藍(lán)牙主設(shè)備預(yù)設(shè)與藍(lán)牙從設(shè)備相同的加密密鑰;
第三處理模塊,用于藍(lán)牙從設(shè)備將加密好的隨機(jī)碼密文發(fā)送給藍(lán)牙主設(shè)備;
第四處理模塊,用于藍(lán)牙主設(shè)備使用加密密鑰解密出隨機(jī)碼,根據(jù)隨機(jī)碼計(jì)算本次登錄密碼,并用所述登錄密碼訪問(wèn)藍(lán)牙從設(shè)備;
本模塊主要用于藍(lán)牙主設(shè)備在接收到藍(lán)牙從設(shè)備發(fā)送的隨機(jī)碼密文后的相關(guān)處理,包括:一,采用與藍(lán)牙從設(shè)備相同的計(jì)算算法,用公共加密密鑰(PUBLIC_KEY)和用戶(hù)加密密鑰(USER_KEY)計(jì)算出加密密鑰(PRIVATE_KEY);二,再用加密密鑰(PRIVATE_KEY)對(duì)隨機(jī)碼密文進(jìn)行解密,得到隨機(jī)碼明文;三,采用與藍(lán)牙從設(shè)備相同的計(jì)算算法,用隨機(jī)碼(RAND)和用戶(hù)加密密鑰(USER_KEY),計(jì)算出本次登錄密碼;最后,藍(lán)牙主設(shè)備用登錄密碼請(qǐng)求藍(lán)牙從設(shè)備進(jìn)行登錄驗(yàn)證。
第五處理模塊,用于藍(lán)牙從設(shè)備對(duì)藍(lán)牙主設(shè)備發(fā)送的登錄密碼進(jìn)行驗(yàn)證,若正確,則發(fā)送登錄成功應(yīng)答,允許藍(lán)牙主設(shè)備訪問(wèn),否則發(fā)送登錄失敗應(yīng)答并斷開(kāi)連接。
在優(yōu)選的實(shí)施例中,本發(fā)明實(shí)施例的一種藍(lán)牙設(shè)備安全登錄身份驗(yàn)證裝置,還包括:第六處理模塊,用于若在設(shè)置的時(shí)間間隔內(nèi)藍(lán)牙主設(shè)備未登錄,藍(lán)牙從設(shè)備斷開(kāi)與藍(lán)牙主設(shè)備的連接。通過(guò)增加本處理模塊,在藍(lán)牙主設(shè)備長(zhǎng)時(shí)間未發(fā)起認(rèn)證請(qǐng)求或認(rèn)證請(qǐng)求失敗的時(shí)候,藍(lán)牙從設(shè)備可以生成新隨機(jī)碼,從而改變下一次登錄密碼,以增加登錄密碼的破解難度,提高安全性。
上述具體實(shí)施方式只是對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)解釋?zhuān)景l(fā)明并不只僅僅局限于上述實(shí)施例,凡是依據(jù)本發(fā)明原理的任何改進(jìn)或替換,均應(yīng)在本發(fā)明的保護(hù)范圍之內(nèi)。