導航:首頁 > 源碼編譯 > e21e22演算法

e21e22演算法

發布時間:2023-03-14 05:49:22

『壹』 藍牙的安全機制有哪些

藍牙採取的安全機制適用於對等通信的情況,即雙方以相同的方式實現認證與加密規程。主要的安全機制為使用密鑰。它的鏈路層使用4個實體提供安全性,一個公開的藍牙設備地址,長度為48比特;認證密鑰,長度為128比特;加密密鑰,長度為8~128比特;隨機數,長為128比特。藍牙安全管理器存貯著有關設備和服務的安全信息,安全管理器將決定是否接收數據,斷開連接或是否需要加密和身份認證,它還初始化一個可信任的關系以及從用戶那裡得到一個PIN碼。

藍牙設備有兩種信任級別,即可信任和不可信任。可信任級別有一個固定的可信任關系,可以得到大多數服務。可信任設備是預先得到鑒別的。而不可信任設備所得到的服務是有限的,它也可以具有一個固定的關系,但不是可信任的。一個新連接的設備總是被認為是未知的,不可信任的。

對藍牙協議本身的攻擊可以分為兩類:主動攻擊和被動攻擊。主動攻擊是沒有被認證的第三方對傳輸過程中的數據流進行修改。主動攻擊包括偽裝、中繼、信息修改以及拒絕服務。被動攻擊可以是對傳輸內容進行竊聽,也可以是對通信模式進行監聽獲取相關信息。




2.1字管理機制

藍牙鏈字是長度為128位的隨機數,它是藍牙系統鑒權和加密的基礎。為了支持不同階段、模式的要求,藍牙系統在鏈路層上用了4種不同的字來保證系統的安全性。包括單元字KA組合字是KAB,臨時字Kmaster及初始化字Kinit。單元字KA與組合字KAB僅產生方式不同,執行的功能是完全相同的。也就是說,KAB是由兩個單元A,B共同產生的,而KA僅由一個單元A產生,因此KA在初始化階段產生後就基本不變了。系統的內存比較小時通常選擇KA,而系統對穩定性要求比較高時選擇KAB。臨時字Kmaster只是臨時取代原始字。例如,當主機想與多個子機通信時主機將用同一個加密字,因此把它存放在臨時字中,以便於使用。初始化字Kinit僅僅在初始化階段有效,也主是單元字KA,KAB產生的階段,它不僅僅是初始化階段的一個臨時字,其產生需要一個PIN。半永久性的鏈接字在特定的時間內被稱作當前鏈接字。當前鏈接字和其它

鏈接字一樣,用於鑒權和加密過程。

此外,還用到了加密字KC,加密字被LM的命令激活後將自動被改變。

另外,鑒權字和加密字在不同的階段執行不同的功能。例如:在兩個單元沒有建立連接的階段和已經建立連接的階段有很大的不同,前者必須首先產生加密字,而後者可以繼續使用上次通信的加密字。相應地不同的階段對字的管理是不一樣的。此外當主機想廣播消息,而不是一個一個地傳送消息時,需要特殊的字管理方法。正是藍牙系統有力的字管理機制,才使得系統具有很好的安全性,而且支持不同的應用模式。

2.2鏈接字的產生

初始化字Kunit的值以申請者的藍牙設備地址、一個PIN碼、PIN碼的長度和一個隨機數作為參數,通過E22演算法產生。而申請者相對校驗者而言是需要通過驗證的一方。因此,申請者需要正確的PIN碼和PIN碼的長度。一般來講,由HCI決定誰是申請者,誰是校驗者。當PIN的長度少於16個八進制數時,可以通過填充藍牙設備地址的數據使其增大,因此如果循環使用E22可以使鏈接字的長度增長為128位。初始化鏈接字Kint產生後,該單元將產生一個半永久字KA或KAB。如果產生的是一人KAB,則該單元將用一個隨機數LK_RAND周期性地加密藍牙設備地址,加密後的結果為LK_KA,而各自產生的LK_RAND與當前的鏈接字進行異或運算後,分別產生新值,永為CA和CA,然後互相交換,從而得到了對方的LK_RAND,並以對方的LK_RAND和藍牙設備地址作為參數,用E21函數產生新值LK_KB的異或運算得到組合字KAB。當KAB產生後,首先單向鑒權一次,看KAB變為當前鏈接字,而丟棄原先的鏈接字K。E22的工作原理與E21類似。

『貳』 小小要不要出A仗啊,還有效果不怎麼顯示要出A仗的英雄有哪些啊

藍牙作為一種新興的短間隔無線通訊技巧已經在各個范疇得到普遍利用,它供給低本錢、低功耗、近間隔的無線通信,構成固定與移動裝備通信環境中的個人網路,使得近間隔內各種信息設備能夠實現無縫資源共享。

由於藍牙通信標準是以無線電波作為媒介,第三方可能輕易截獲信息,所以藍牙技巧必需採用必定的安全維護機制,尤其在電子交易應用時。為了提供使用的安全性和信息的可信度,體系必須在應用層和鏈路層提供安全辦法。

本文重點討論了藍牙信息安全機制的構成原理及相干演算法,並指出其在安全性方面存在的不足與問題。由於對於大多數須要將保密放在首位來斟酌的運用來說,藍牙現行標准所供給的數據安全性是不夠的。藍牙現行規范採用的128位密鑰長度的序列的加密在某些情形下可以被破*解。本文同時提出了一種藍牙安全機制的改良計劃,即採用DES加密體制構建強壯的加鑰演算法,能夠在盤算上證實此加密演算法是安全可靠的。

1 藍牙的安全機制

藍牙採用的安全機制實用於對等通信情況,即雙方以雷同方法實現認證與加密規程。鏈路層使用4個實體提供安全性:一個公然的藍牙設備地址,長度為48bit;認證密鑰,長度為128bit;加密密鑰,長度為8~128bit;隨機數,長度為128bit。以下重點討論藍牙安全機制的組成及相干演算法。

1.1 隨機數產生器

隨機數發生器在藍牙標准中有主要應用,例如在生成認證密鑰和加密密鑰中以及查詢-應答計劃中等。產生隨機數的幻想辦法是使用具有隨機物理特徵的真實隨機數·發生器,例如某些電子器件的熱雜訊等,但是在實際應用中通常應用基於軟體實現的偽隨機數發生器。藍牙體系對於隨機數的要求是隨機生成和非反復性。隨機生成是指不可能以顯明大於零的概率(對於長度為L位的藍牙加密密鑰,概率大於1/2L)估量出隨機數值。

目前在眾多類型的偽隨機數發生器中,線性同餘產生器(Linear Congruential Generator)被最普遍地研討與應用。其表達式為:

Xn+1=Xn+c(modm) n0。

式中和c為常量,m為模數,均為正整數。Xn+c對m作模運算後得到Xn+1。開端時以某種方法給出一個種子數X0;然後應用前一個隨機整數Xn天生下一個隨機整數Xn+1,由此發生整數隨機數列{Xn}。

1.2 密鑰治理

藍牙單元密鑰長度不能由單元製作者預置,不能由用戶設置。藍牙基帶標准規定不接受由高層軟體給出的加密密鑰以防止使用者完整把持密鑰長度。

1.2.1 密鑰類型

鏈路密鑰是一個128位隨機數,為通信雙方或多方共享的臨時性或半永久性密鑰。半永久性鏈路密鑰可以用於共享鏈路單元之間的幾個相繼認證過程中。臨時密鑰的典範運用是:在點對多點通訊情形下,同一信息需要安全地發往多個接受端,這時採用主單元密鑰代替當前鏈路密鑰。藍牙標準定義了四種鏈路密鑰:①結合密鑰KAB;②單元密鑰KA;③臨時密鑰Kmoster;④初始化密鑰Kinit。此外還定義了加密密鑰Kc,由當前鏈路密鑰生成。對藍牙單元來說,單元密鑰KA在單元A中生成,依附於該單元,很少轉變。結合密鑰KAB。由單元A、B方共同生成。臨時密鑰Kmoster僅在當前會話中使用,也稱主單元密鑰。初始化密鑰Kinit是藍牙初始化過程中使用的鏈路密鑰。該密鑰由一個隨機數、一個通常為十進制的PIN碼以及發起單元的藍牙裝備地址BD_ADDR生成。PIN碼可由用戶選擇也可以是隨藍牙一起提供的固定數。目前大多數應用中PIN碼為4位的10進制數,無法提供較高的安全性。藍牙基帶標准請求PIN碼長度為1~16位,因此建議盡量使用較長的PIN碼以加強安全性。

1.2.2 密鑰生成與初始化

每一對要實現認證與加密的藍牙單元都要履行初始化進程,其過程由以下幾部分組成:

(1)生成初始化密鑰Kinit:為初始化過程中臨時使用的鏈路密鑰。該密鑰由E22演算法及相關參數生成,其生成原理圖見圖1。E22輸出的128位初始化密鑰Kinit用於鏈路密鑰的交流分配過程。如果申請者與證實者沒有交流過鏈路密鑰,則Kinit用於認證過程,否則不再使用。該過程必需保證能夠抵抗必定的攻擊,例如攻擊者使用大批的假藍牙地址BD_ADDR來測試大批PIN等,如果設備地址固定則每次測試PIN碼等候間隔應按指數增添。

(2)認證:假如兩個單元沒有產生過通訊接洽,則使用初始化密鑰作為鏈路密鑰。每次執行認證規程,均宣布新隨機參數AU_RANDA。在相互認證中,首先在一個方向履行認證規程,成功後再反向執行認證。認證勝利將得到一個幫助參數ACO,即認證加密偏移量。它將用於生成加密密鑰。

(3)生成單元密鑰:單元密鑰在藍牙單元首次運行時生成,依據E21演算法生成並幾乎不轉變。初始化時,通信雙方通常選用一個內存容量較少的單元中的密鑰作為鏈路密鑰。

(4)生成聯合密鑰:聯合密鑰是分離在A單元與B單元中生成的兩個數字的組合。生成過程是:每個單元生成隨機數LK_RANDA與Lk_RANDB,採用E21演算法與各自的隨機數、藍牙地址分辨生成另一個隨機數LK_KA與LK_KB,並通過其他操作後兩個單元得出聯合密鑰。然後開端互相認證過程以確認交互過程勝利。結合密鑰交流分配成功後將廢棄使用原鏈路密鑰。

(5)生成加密密鑰:加密密鑰Kc依據E3演算法,由當前鏈路密鑰、96bit加密偏移數COF和一個128bit隨機數導出。

(6)點對多點配置情況:實際上,主單元通知幾個從單元使用一個公共鏈路密鑰廣播加密新聞,在多數應用中這個公共鏈路密鑰是臨時密鑰,記為Kmoster。Kmoster被從單元接受後便可用它替換原鏈路密鑰Kmoster的產生過程為:首先由2個128bit的隨機數RAND1與RAND2生成新鏈路密鑰Kmoster:Kmoster=E22(RAND1,RAND2,16)。然後將第3個隨機數RANO發往從單元,主、從單元根據E22、當前鏈路密鑰及RAND盤算出128bit搗亂碼overlay,主單元將overlay與新鏈路密鑰按位異或成果發送給從單元,再計算出Kmoster。在後面的認證過程中盤算出一個新ACO值。

1.3 加密規程

對有效載荷加密通過流密碼演算法實現,流密碼與有效載荷同步,加密原理圖如圖2所示。流密碼體系由三部分組成:履行初始化、生成密鑰流比特、執行加密或解密。有效載荷密鑰生成器將輸進比特流以適當次序進行組合並移人密鑰流生成器使用的4個線性反饋移位存放器LFSR。第二部分是重要部分,密鑰流比特根據Massey與Rueppel提出的方法生成,該方法經過一定的剖析與研討,證實具有較高的加密性能,但此法可能受到相關攻擊,其改良方法在本文後面具體描寫。

1.3.1 約定加密密鑰長度與加密模式

實現基帶尺度的藍牙裝備須要定義最大容許密鑰位元組長度Lmax,1Lmax16。在天生加密密鑰前,有關單元必需約定密鑰實際長度。主單元將建議值L(M)sug發送給從單元。假如L(S)minL(M)min並且從單元支撐建議值,從單元對此給予確認,L(M)min成為本鏈路加密密鑰長度值。假如不滿足上述條件,從單元將向主單元發送新的建議值L(S)min〈L(M)sug,主單元對此建議評估。反復此規程直至達成協定或一方廢棄商談。

1.3.2 加密演算法

加密規程使用流密碼加密。加密系統使用線性反饋移位存放器(LFSRs),寄存器系統輸出由具有16狀況的有限狀態機進行組合,狀況機輸出或是密鑰流序列,或是初始化階段的隨機初始值。加密演算法需要提供加密密鑰、48bit藍牙地址、主單元時鍾比特與128bit隨機數RAND,加密演算法原理如圖3所示。

其中,有4個LFSR(LFSR1,…,LFSR4),比專長度分辨為L1=25,L2=31,L3=33,L4=39,反饋多項式(抽頭多項式,特點多項式)。4個存放器長度之和是128bit。

這些多項式都是本原多項式,漢明重量都為5,可以統籌天生序列具有良好的統計特徵與減少硬體實現所須要的異或門數兩方面的請求。

令xit表現LFSRit時刻輸出狀況比特,由四元組(x1t,…,x4t)得Yt為:

,式中Yt為整數,取值為0,1,2,3或4。加法生成器輸出由下述方程給出:

式中,T1〔.〕與T2〔.〕是GF(4)上兩個不同的線性雙射。

密鑰流生成器工作前需要為4個LFSR(總共128bit)裝載初始值並且斷定C0與C-14bit值,這些132bit初始值使用密鑰流生成器由規定的輸入量導出,輸入量分離為密鑰Kc、48bit藍牙地址和26bit主單元時鍾CLK26-1。加密演算法初始化過程:(1)由128bit加密密鑰Kc生成有效加密密鑰,記為K』c,令L(1L16)為用8bit組數目表現的有效密鑰長度,則K』c(x)=g2(L)(x)(Kc(x)modg1(L)(x))。(2)將K』c、藍牙地址、時鍾以及6bit常數111001移入LFSR。加密演算法初始化完成後,從加法組合器輸出密鑰流用於加密/解密。

1.3.2 認證

藍牙技術認證實體使用所謂查驗-應答方案。通過兩步協定,申請者是否知道機密密鑰使用對稱密鑰進行證實。這意味著,一個准確的申請者/證實者對,在查驗-應答方案中將共享雷同密鑰Kc,證實者對於申請者是否能夠認證演算法K1認證隨機數AU_RANDA,並返回認證成果SERS,進行查驗。其認證及加密密鑰生成函數可以參考相關材料,此處略。?

2 藍牙安全機制的方案改進

現有藍牙安全機制重要存在兩個重要問題。一個是單元密鑰的應用問題:在鑒權和加密進程中,由於單元密鑰沒有轉變,第三方應用此密鑰來竊取信息。128位密鑰長度的E0序列加密在某些情形下可通過不是很龐雜的方式破*解。另一個是藍牙單元供給的個人辨認碼(PIN碼)的不安全問題:由於大多數利用中PIN碼是由4位十進制數組成,所以採取窮舉法很輕易攻擊勝利。

戰勝這些安全性問題的解決辦法除了增添PIN碼長度外,要害是要採用更為強壯的加密演算法,如用數字加密標准DES取代序列加密演算法。DES是一種塊加密方式,加密過程是針對一個個數據塊進行的。在DES演算法中,原始信息被分為64位的固定長度數據塊,然後應用56位的加密密鑰通過置換和組合辦法生成64位的加密信息。與藍牙序列的加密演算法不同,數學上可以證實塊加密演算法是完整安全的。DES塊密碼是高度隨機和非線性的,其發生的密文和明文與密鑰的每一位都相干。DES的可用加密密鑰數目非常宏大,應用於每一位明文信息的密鑰都是從這個宏大數目的密鑰中隨機產生的。DES演算法已經被廣泛採用並以為非常可靠。採用DES加密演算法的藍牙技巧可以將藍牙運用到安全性較高的應用中往,例如電子金融交易、ATM等。

2.1 DES演算法

1977年美國國度尺度局頒布了聯邦數據加密標准DES。由於DES演算法保密性強,迄今尚無切實可行的破譯方式,所以DES得到了普遍地利用。DES是一種分組密碼體制,它將明文按64位一組分成若干組,密鑰長為56位。其基礎思想是採取變換的組合與迭代,將明文中的各組變為密文組。

在DES系統中,乘積變換是加密過程的核心,持續進行16次操作,每次更新一組密鑰。移位變換B是移位變換A的逆變換。圖4為DES體制加密流程,圖的右側表現DES系統的密鑰生成過程。初始密鑰是一串64bit的隨機序列。經過重復移位變換,產生16組子密鑰(K1~K16),每組子密鑰用於一次乘積變換。所謂初始重排(IP)就是打亂輸進分組內比特原有排列順序,重新排列,排列方式是固定的。

DES的一次乘積變換運算步驟為:(1)把64bit輸入碼分成左右兩組,每組32位比特,分辨用Li-1和Ri-1代表。其中i代表第i次乘積變換,i=1~16。(2)把該次乘積變換輸入分組的右組32位比特變為輸出分組的左組32位比特,即Li=Ri-1。(3)輸入分組右組32位比特經過擴大操作變為48位比特*碼組。(4)擴大變換輸出的48位比特與子密鑰Ki的48位比特按模2相加,輸出的48位比特分為8組,每組6位。(5)把每組6位比特進行密表(S-盒)替換,產生4位比特。輸入的6位比特的第1、6兩位決議密表內所要選擇的行數,其餘4位決議密表內的列數。(6)把8組密表輸出合並為32位比特,然後與本次乘積變換輸進左組Ci-1按位模2相加,即可得到第i次乘積變換的右32位輸出Ri。

2.2 DES演算法的特色

DES演算法具有以下特色:

(1)DES的保密性僅僅取決於對密鑰的保密,演算法公然。

(2)在目前程度下,不知道密鑰而在一定的時光內要破譯(即解析出密鑰K或明文)是不可能的,至少要樹立2 56或2 64個項的表,這是現有資源無法實現的。

(3)由於雪崩效應,無法分而破之,一位的變更將引起若干位同時變更。

綜上所述,由DES演算法構建的藍牙安全機制是可靠的,採取窮舉方法攻擊是不現實的。假設有一台每秒完成一次DES加密的機器要用將近1000年的時光才幹破譯這個密碼。

以上演算法能夠堅持數據加密進程中與藍牙尺度所需參數的一致性,它與藍牙演算法發生的單元密鑰在時光實現上同處一個數目級別,符合藍牙規范請求。

本文首先重點討論了藍牙信息安全的機制構成,對其各部分的演算法及實現步驟進行了具體闡明。然後對現有藍牙規范安全性做了必定的評估,

並依據其不足提出了由DES演算法構建新的安全計劃,能夠給藍牙在安全性要求較高的應用上提供一個安全設計的改良參考。
相關的主題文章:

藉助亞運契機把產品推向海外

亞運官方的無紙化低碳宣傳

想讓您商店商場生意源源不斷嗎?

『叄』 藍牙的技術信息

主要文章:藍牙協議棧和藍牙協議


藍牙被定義為協議層架構,包括核心協議、電纜替代協議、電話傳送控制協議、選用協議。所有藍牙堆棧的強制性協議包括:LMP、L2CAP和SDP。此外,與藍牙通信的設備基本普遍都能使用HCI和 RFCOMM這些協議。
1 LMP:
鏈路管理協議(LMP)用於兩個設備之間無線鏈路的建立和控制。應用於控制器上。
2 L2CAP
邏輯鏈路控制與適配協議(L2CAP)常用來建立兩個使用不同高級協議的設備之間的多路邏輯連接傳輸。提供無線數據包的分割和重新組裝。
在基本模式下,L2CAP能最大提供64kb的有效數據包,並且有672位元組作為默認MTU(最大傳輸單元),以及最小48位元組的指令傳輸單元。
在重復傳輸和流控制模式下,L2CAP可以通過執行重復傳輸和CRC校驗(循環冗餘校驗)來檢驗每個通道數據是否正確或者是否同步。
藍牙核心規格附錄1 在核心規格中添加了兩個附加的L2CAP模式。這些模式有效的否決了原始的重傳和流控模式。 增強型重傳模式(Enhanced Retransmission Mode,簡稱ERTM):該模式是原始重傳模式的改進版,提供可靠的L2CAP 通道。 流模式(Streaming Mode,簡稱SM):這是一個非常簡單的模式,沒有重傳或流控。該模式提供不可靠的L2CAP 通道。 其中任何一種模式的可靠性都是可選擇的,並/或由底層藍牙BDR/EDR空中介面通過配置重傳數量和刷新超時而額外保障的。順序排序是是由底層保障的。
只有ERTM 和 SM中配置的 L2CAP通道才有可能在AMP邏輯鏈路上運作。
3 SDP
服務發現協議(SDP)允許一個設備發現其他設備支持的服務,和與這些服務相關的參數。比如當用手機去連接藍牙耳機(其中包含耳機的配置信息、設備狀態信息,以及高級音頻分類信息(A2DP)等等)。並且這些眾多協議的切換需要被每個連接他們的設備設置。每個服務都會被全局獨立性識別號(UUID)所識別。根據官方藍牙配置文檔給出了一個UUID的簡短格式(16位)。
4 RFCOMM
射頻通信(RFCOMM)常用於建立虛擬的串列數據流。RFCOMM提供了基於藍牙帶寬層的二進制數據轉換和模擬EIA-232(即早前的的RS-232)串列控制信號,也就是說,它是串口模擬。
RFCOMM向用戶提供了簡單而且可靠的串列數據流。類似TCP。它可作為AT指令的載體直接用於許多電話相關的協議,以及通過藍牙作為OBEX的傳輸層。
許多藍牙應用都使用RFCOMM由於串列數據的廣泛應用和大多數操作系統都提供了可用的API。所以使用串列介面通訊的程序可以很快的移植到RFCOMM上面。
5 BNEP
網路封裝協議(BNEP)用於通過L2CAP傳輸另一協議棧的數據。主要目的是傳輸個人區域網路配置文件中的IP 封包。BNEP在無線區域網中的功能與SNAP類似。
6AVCTP
音頻/視頻控制傳輸協議(AVCTP)被遠程式控制制協議用來通過L2CAP傳輸AV/C指令。立體聲耳機上的音樂控制按鈕可通過這一協議控制音樂播放器。
7 AVDTP
音視頻分發傳輸協議(AVDTP)被高級音頻分發協議用來通過L2CAP向立體聲耳機傳輸音樂文件。適用於藍牙傳輸中的視頻分發協議。
8 TCS
電話控制協議–二進制(TCS BIN)是面向位元組協議,為藍牙設備之間的語音和數據通話的建立定義了呼叫控制信令。此外,TCS BIN 還為藍牙TCS設備的的群組管理定義了移動管理規程。
TCS-BIN僅用於無繩電話協議,因此並未引起廣泛關注。
9採用的協議
採用的協議是由其他標准制定組織定義、並包含在藍牙協議棧中,僅在必要時才允許藍牙對協議進行編碼。採用的協議包括: 點對點協議(PPP):通過點對點鏈接傳輸IP數據報的互聯網標准協議 TCP/IP/UDP:TCP/IP 協議組的基礎協議 對象交換協議(OBEX):用於對象交換的會話層協議,為對象與操作表達提供模型 無線應用環境/無線應用協議(WAE/WAP):WAE明確了無線設備的應用框架,WAP是向移動用戶提供電話和信息服務接入的開放標准。
根據不同的封包類型,每個封包可能受到糾錯功能的保護,或許是1/3速率的前向糾錯(FEC) ,或者是2/3速率。此外,出現CRC錯誤的封包將會被重發,直至被自動重傳請求(ARQ)承認。 任何可發現模式下的藍牙設備都可按需傳輸以下信息: 設備名稱 設備類別 服務列表 技術信息(例如設備特性、製造商、所使用的藍牙版本、時鍾偏移等) 任何設備都可以對其他設備發出連接請求,任何設備也都可能添加可回應請求的配置。但如果試圖發出連接請求的設備知道對方設備的地址,它就總會回應直接連接請求,且如果有必要會發送上述列表中的信息。設備服務的使用也許會要求配對或設備持有者的接受,但連接本身可由任何設備發起,持續至設備走出連接范圍。有些設備在與一台設備建立連接之後,就無法再與其他設備同時建立連接,直至最初的連接斷開,才能再被查詢到。
每個設備都有一個唯一的48-位的地址。然而這些地址並不會顯示於連接請求中。但是用戶可自行為他的藍牙設備命名(藍牙設備名稱),這一名稱即可顯示在其他設備的掃描結果和配對設備列表中。
多數手機都有藍牙設備名稱(Bluetooth name),通常默認為製造商名稱和手機型號。多數手機和手提電腦都會只顯示藍牙設備名稱,想要獲得遠程設備的更多信息則需要有特定的程序。當某一范圍內有多個相同型號的手機(比如 Sony Ericsson T610)時,也許會讓人分辨哪個才是它的目標設備。(詳見Bluejacking) 1 動機
藍牙所能提供多很多服務都可能顯示個人數據或受控於相連的設備。出於安全上的考量,有必要識別特定的設備,以確保能夠控制哪些設備能與藍牙設備相連的。同時,藍牙設備也有必要讓藍牙設備能夠無需用戶干預即可建立連接(比如在進入連接范圍的同時).
未解決該矛盾,藍牙可使用一種叫bonding(連接) 的過程。Bond是通過配對(paring)過程生成的。配對過程通過或被自用戶的特定請求引發而生成bond(比如用戶明確要求「添加藍牙設備」),或是當連接到一個出於安全考量要求需要提供設備ID的服務時自動引發。這兩種情況分別稱為dedicated bonding和general bonding。
配對通常包括一定程度上的用戶互動,已確認設備ID。成功完成配對後,兩個設備之間會形成Bond,日後再再相連時則無需為了確認設備ID而重復配對過程。用戶也可以按需移除連接關系。
2 實施
配對過程中,兩個設備可通過一種創建一種稱為鏈路字的共享密鑰建立關系。如果兩個設備都存有相同的鏈路字,他們就可以實現paring或bonding。一個只想與已經bonding的設備通信的設備可以使用密碼驗證對方設備的身份,以確保這是之前配對的設備。一旦鏈路字生成,兩個設備間也許會加密一個認證的非同步無連接(Asynchronous Connection-Less,簡稱ACL) 鏈路,以防止交換的數據被竊取。用戶可刪除任何一方設備上的鏈路字,即可移除兩設備之間的bond,也就是說一個設備可能存有一個已經不在與其配對的設備的鏈路字。
藍牙服務通常要求加密或認證,因此要求在允許設備遠程連接之前先配對。一些服務,比如對象推送模式,選擇不明確要求認證或加密,因此配對不會影響服務用例相關的用戶體驗。
3 配對機制
在藍牙2.1版本推出安全簡易配對(Secure Simple Pairing) 之後,配對機制有了很大的改變。以下是關於配對機制的簡要總結: 舊有配對:這是藍牙2.0版及其早前版本配對的唯一方法。每個設備必須輸入PIN碼;只有當兩個設備都輸入相同的PIN碼方能配對成功。任何16-比特的 UTF-8字元串都能用作PIN碼。然而並非所有的設備都能夠輸入所有可能的PIN碼。 有限的輸入設備: 顯而易見的例子是藍牙免提耳機,它幾乎沒有輸入界面。這些設備通常有固定的PIN,如0000或1234,是設備硬編碼的。 數字輸入設備: 比如行動電話就是經典的這類設備。用戶可輸入長達16位的數值。 字母數字輸入設備: 比如個人電腦和智能電話。用戶可輸入完整的UTF-8 字元作為PIN碼。如果是與一個輸入能力有限的設備配對,就必須考慮到對方設備的輸入限制,並沒有可行的機制能夠讓一個具有足夠輸入能力的設備去決定應該如何限制用戶可能使用的輸入。 安全簡易配對(SSP):這是藍牙2.1版本要求的,盡管藍牙2.1版本的也許設備只能使用舊有配對方式和早前版本的設備互操作。 安全簡易配對使用一種公鑰密碼學(public key cryptography),某些類型還能防禦中間人(man in the middle,簡稱MITM)攻擊。SSP 有以下特點: 即刻運行(Just works):正如其字面含義,這一方法可直接運行,無需用戶互動。但是設備也許會提示用戶確認配對過程。此方法的典型應用見於輸入輸出功能受限的耳機,且較固定PIN機制更為安全。此方法不提供中間人(MITM) 保護。 數值比較(Numeric comparison):如果兩個設備都有顯示屏,且至少一個能接受二進制的「是/否」用戶輸入,他們就能使用數值比較。此方法可在雙方設備上顯示6位數的數字代碼,用戶需比較並確認數字的一致性。如果比較成功,用戶應在可接受輸入的設備上確認配對。此方法可提供中間人(MITM) 保護,但需要用戶在兩個設備上都確認,並正確的完成比較。 萬能鑰匙進入(Passkey Entry):此方法可用於一個有顯示屏的設備和一個有數字鍵盤輸入的設備(如計算機鍵盤),或兩個有數字鍵盤輸入的設備。第一種情況下,顯示屏上顯示6位數字代碼,用戶可在另一設備的鍵盤上輸入該代碼。第二種情況下,兩個設備需同時在鍵盤上輸入相同的6位數字代碼。兩種方式都能提供中間人(MITM) 保護。 非藍牙傳輸方式(OOB):此方法使用外部通信方式,如近場通信(NFC),交換在配對過程中使用的一些信息。配對通過藍牙射頻完成,但是還要求非藍牙傳輸機制提供信息。這種方式僅提供OOB機制中所體現的MITM保護水平。 SSP被認為簡單的原因如下: 多數情況下無需用戶生成萬能鑰匙。 用於無需MITM保護和用戶互動的用例。 用於數值比較,MITM 保護可通過用戶簡單的等式比較來獲得。 使用NFC等OOB,當設備靠近時進行配對,而非需要一個漫長的發現過程。 4 安全性擔憂

藍牙2.1之前版本是不要求加密的,可隨時關閉。而且,密鑰的有效時限也僅有約23.5 小時。單一密鑰的使用如超出此時限,則簡單的XOR攻擊有可能竊取密鑰。 一些常規操作要求關閉加密,如果加密因合理的理由或安全考量而被關閉,就會給設備探測帶來問題。 藍牙2.1版本從一些幾個方面進行了說明: 加密是所有非-SDP(服務發現協議)連接所必需的。 新的加密暫停和繼續功能用於所有要求關閉加密的常規操作,更容易辨認是常規操作還是安全攻擊。 加密必須在過期之前再刷新。 鏈路字可能儲存於設備文件系統,而不是在藍牙晶元本身。許多藍牙晶元製造商將鏈路字儲存於設備—然而,如果設備是可移動的,就意味著鏈路字也可能隨設備移動。 另請參見:基於通信網路的移動安全和攻擊
藍牙擁有機密性、完整性和基於SAFER+分組密碼的定製演算法的密鑰導出。藍牙密鑰生成通常基於藍牙PIN,這是雙方設備都必須輸入的。如果一方設備(如耳機、或類似用戶界面受限的設備)有固定PIN,這一過程也可能被修改。配對過程中,初始密鑰或主密鑰通過E22演算法生成。 E0流密碼也用於加密數據包、授權機密性,它是基於公共加密的、也就是之前生成的鏈路字或主密鑰。這些密鑰可用於對通過空中介面傳輸的數據進行後續加密,密鑰有賴於雙方或一方設備中輸入的PIN。
Andreas Becher於2008年發表了藍牙漏洞信息的利用概況。
2008年9月,美國國家標准與技術研究院(National Institute of Standards and Technology,NIST)發布了藍牙安全指南(Guide to Bluetooth Security),供相關機構參考。該指南描述了藍牙的安全功能,以及如何有效的保護藍牙技術。藍牙技術有它的優勢,但它易受拒絕服務攻擊、竊聽、中間人攻擊、消息修改及資源濫用。用戶和機構都必須評估自己所能接受的風險等級,並在藍牙設備的生命周期中增添安全功能。為減輕損失,NIST文件中還包括安全檢查列表,其內包含對藍牙微微網、耳機和智能讀卡器的創建和安全維護的指南和建議。
藍牙2.1發布於2007年,相應的消費設備最早出現於2009年,為藍牙安全(包括配對)帶來了顯著的改觀。更多關於這一改變的信息,請參見「配對機制」部分。 主要文章:Bluejacking

Bluejacking是指用戶通過藍牙無線技術向對方不知情的用戶發送圖片或信息。常見的應用包括簡訊息,比如「你被Bluejack了」。Bluejacking不涉及設備上任何數據的刪除或更改。Bluejacking可能涉及取得對移動設備的無線控制和撥打屬於Bluejack發起者的付費電話。安全上的進展已經緩解了這一問題。 一、2001–2004
2001年,貝爾實驗室的Jakobsson和Wetzel from發現並指出了藍牙配對協議和加密方案的缺陷。2003年,A.L. Digital 公司的Ben和Adam Laurie發現藍牙安全實施上的一些重要缺陷有可能導致個人信息的泄露。隨後Trifinite Group的Martin Herfurt在德國漢諾威電腦展(CEBIT)的游樂場中進行了現場試驗,向世界展示了這一問題的重要性。 一種稱為BlueBug的新型攻擊被用於此次實驗。2004年,第一個生成通過藍牙在行動電話間傳播的病毒出現於塞班系統。卡巴斯基實驗室最早發現了該病毒,並要求用戶在病毒傳播之前確認未知軟體的安裝。病毒是由一群自稱「29A」的病毒開發者作為驗證概念編寫,並發送防病毒機構的。因此,它應被看作是對藍牙技術或塞班系統的潛在威脅,而非實際的威脅,原因是該病毒並未散播至塞班系統之外。2004年8月,一個世界紀錄級的實驗(另請參見Bluetooth sniping)證實,如果有定向天線和信號放大器,2類藍牙無線電的范圍可擴增至1.78km(1.11mi)。這就造成了潛在的安全威脅,因為攻擊者將能夠在相當程度的遠距離之外接入有缺陷的藍牙設備。攻擊者想要與目標設備建立連接,還必須能夠接受其發出的信息。如果攻擊者不知道藍牙地址和傳輸通道(盡管它們在設備使用狀態下幾分鍾之內就能推導出來),就不可能對藍牙設備進行攻擊。
二、2005年
2005年1月,一種稱為Lasco.A的移動惡意程序蠕蟲開始針對採用塞班系統(60系列平台)的行動電話,通過藍牙設備自我復制並傳播至其他設備。一旦移動用戶允許接收另一設備發送來的文件(velasco.sis),這一蠕蟲即可開始自動安裝。一旦安裝成功,蠕蟲變回開始尋找並感染其他的藍牙設備。此外,蠕蟲會感染設備上其他的.SIS文件,通過可移動的媒體文件(保全數位、CF卡等)復制到另一設備上。蠕蟲可導致行動電話的不穩定。
2005年4月,劍橋大學安全研究員發表了針對兩個商業藍牙設備間基於PIN配對的被動攻擊的研究結果。他們證實了實際攻擊之快,以及藍牙對稱密鑰建立方法的脆弱。為糾正爭議缺陷,他們通過實驗證實,對於某些類型的設備(如行動電話),非對稱密鑰建立更可靠且可行。
2005年6月,Yaniv Shaked和Avishai Wool發表文章,描述了藍牙鏈路獲得PIN的被動和主動方法。如果攻擊者出現在最初配對時,被動攻擊允許配有相應設備的攻擊者竊聽通信或冒名頂替。主動攻擊方法使用專門建立的、必須插入到協議中特定的點的信息,
讓主從設備不斷重復配對過程。然後再通過被動攻擊即可攻獲PIN碼。這一攻擊的主要弱點是它要求用戶在設備受攻擊時根據提示重新輸入PIN。主動攻擊可能要求定製硬體,因為大多數商業藍牙設備並不具備其所需的定時功能。
2005年8月,英國劍橋郡警方發布警告,稱有不法分子通過有藍牙功能的電話跟蹤放置於車中的其他設備。警方建議當用戶把手提電腦或其他設備放置於車中時,須確保任何移動網路連接均處於禁用狀態。
三、2006年
2006年4月, Secure Network和F-Secure的研究人員發布了一份報告,提醒人們注意可見狀態下的設備之多,並公布了有關藍牙服務的傳播、以及藍牙蠕蟲傳播進程緩解的相關數據。
四、2007年
2007年10月,在盧森堡黑客安全大會上,Kevin Finistere和Thierry Zoller展示並發布了一款課通過Mac OS X v10.3.9 和 v10.4上的藍牙進行通信的遠程跟外殼(root shell)。它們還展示了首個PIN 和 Linkkeys 破解器,這是基於Wool 和 Shaked的研究。

閱讀全文

與e21e22演算法相關的資料

熱點內容
秦九昭演算法v0怎麼求 瀏覽:382
斗魚java 瀏覽:894
程序員對老師的感謝 瀏覽:27
什麼app能查看銀行卡照片 瀏覽:22
win7pdf虛擬列印 瀏覽:330
程序員喜歡的女生條件 瀏覽:123
阿里雲伺服器ip搭建教程 瀏覽:85
解壓和拉伸這一動畫的原理是什麼 瀏覽:740
tbc戰士的命令怒吼 瀏覽:481
idea快捷鍵看源碼 瀏覽:976
手機碎屏解壓工具 瀏覽:245
jsonrpcphp使用 瀏覽:566
網上求職系統源碼 瀏覽:699
pdf數字不顯示 瀏覽:890
convertwordtopdf 瀏覽:253
程序編譯基本單位 瀏覽:23
python分析圖片角度 瀏覽:64
阿里雲伺服器能復制數據嗎 瀏覽:562
python拼音轉換文字 瀏覽:563
動畫遺傳演算法 瀏覽:63