享受共享生活是否就一定要開啟藍芽?
在共享單車數量較多的城市,很多人似乎已經習慣了把它們作為出行必備的交通工具,不過在享受便利生活的同時,我們也應注意網路的安全因素。最近,很多小朋友是不是發現了某共享單車的顯示圖示中,出現了藍芽標識。
這些用藍芽標記的自行車,就代表只有你必須開啟藍芽。
小編我就因為要不要開啟藍芽這件事,而糾結了很久。作為一面網路安全的從業者,我深知藍芽的安全性是無法保障的,為此,我有時即使選擇步行,也不會開藍芽。不過這也不是個辦法,為此,我覺地有必要仔細的弄清楚藍芽的工作原理和攻擊途徑。
瞭解藍芽安全的 歷史
藍芽是1989年發明的,但是真正開始廣泛使用要等到2000年以後。一開始,藍芽是沒有安全協議的,只是把不同的協議簡單地拼湊在一起而已,且管理也僅由一個藍芽愛好小組即由藍芽特別興趣小組管理。目前,藍芽的最新協議是藍芽5(切記不是5.0,是5),是藍芽技術聯盟於2016年6月16日釋出的新一代藍芽標準。藍芽5是藍芽技術聯盟於2016年6月16日釋出的新一代藍芽標準,藍芽5比原來擁有更快的傳輸速度,更遠的傳輸距離。
藍芽5技術特點
1、更快的傳輸速度
藍芽5.0的開發人員稱,新版本的藍芽傳輸速度上限為24Mbps,是之前4.2LE版本的兩倍。
2、更遠的有效距離
藍芽5.0的另外一個重要改進是,它的有效距離是上一版本的4倍,理論上,藍芽發射和接收裝置之間的有效工作距離可達300米。
3、導航功能
藍芽5.0將新增更多的導航功能,因此該技術可以作為室內導航信標或類似定位裝置使用,結合wifi可以實現精度小於1米的室內定位。舉個例子,如果你和小編一樣是路痴的話,你可以使用藍芽技術,在諾大的商業中心找到路。
4、物聯網功能
物聯網還在持續火爆,因此,藍芽5.0針對物聯網進行了很多底層優化,力求以更低的功耗和更高的效能為智慧家居服務。
5、升級硬體
此前的一些藍芽版本更新只要求升級軟體,但藍芽5.0很可能要求升級到新的晶片。不過,舊的硬體仍可以相容藍芽5.0,你就無法享用其新的效能了。搭載藍芽5.0晶片的旗艦級手機將於2017年問世,相信中低端手機也將陸陸續續內建藍芽5晶片。
6、更多的傳輸功能
全新的藍芽5.0能夠增加更多的資料傳輸功能,硬體廠商可以通過藍芽5.0建立更復雜的連線系統,比如Beacon或位置服務。因此通過藍芽裝置傳送的廣告資料可以傳送少量資訊到目標裝置中,甚至無需配對。
7、更低的功耗
藍芽5.0將大大降低了藍芽的功耗,使人們在使用藍芽的過程中再也不必擔心待機時間短的問題。不過根據實際調查,目前大多數裝置使用的仍是4.0-4.2的協議,這些落後協議的使用大大的增加了使用者的使用風險。黑客利用藍芽技術允許裝置之間在短距離內無線連線的漏洞來控制裝置,從而盜取裝置裡的資訊和密碼。藍芽攻擊遠比以前的攻擊更加具有侵略性,並且仍然未被大多數當前的安全防衛所偵察。
與傳統的惡意軟體或攻擊不同,使用者不必點選連結或下載可疑的檔案。即使使用者什麼都不做攻擊就能自動開始。
從藍芽4.0以來,藍芽技術聯盟就為藍芽的安全模型架構了一個新的框架,低功耗藍芽(BLE)就是從藍芽4.0開始的。
藍芽技術聯盟於2010年6月30日正式推出藍芽核心規格4.0 (稱為Bluetooth Smart)。它包括經典藍芽、高速藍芽和藍芽低功耗協議。高速藍芽基於Wi-Fi,經典藍芽則包括舊有藍芽協議。
藍芽低功耗,也就是早前的Wibree,是藍芽4.0版本的一個子集,它有著全新的協議棧,可快速建立簡單的連結。作為藍芽1.0 – 3.0版本中藍芽標準協議的替代方案,它主要面向對功耗需求極低、用鈕釦電池供電的應用。晶片設計可有兩種:雙模、單模和增強的早期版本。早期的Wibree和藍芽ULP(超低功耗)的名稱被廢除,取而代之的是後來用於一時的BLE。2011年晚些時候,新的商標推出,即用於主裝置的 “Bluetooth Smart Ready”和用於感測器的“Bluetooth Smart”。
Bluetooth Smart Ready 裝置是連線使用者正在使用的數以十億計藍芽裝置—手機、平板電腦、個人電腦、電視,甚至機頂盒以及遊戲機最有效的方式。這些裝置可有效地接收傳統藍芽裝置和藍芽智慧裝置傳送的資料並傳送至應用程式,從而將資料轉換為有用的資訊。這些裝置都是藍芽系統的中樞裝置。
Bluetooth Smart不僅具備低耗能的特點,它還適合應用建立。這項技術能耗較低,是因為它的能耗遠遠少於其它無線技術。在應用建立時,適合於藍芽智慧感測器的應用成本較低,並可靈活選擇開發結構。
Bluetooth Smart 裝置主要用於收集特定型別的資訊,家中的所有窗戶都關好了嗎?我的血糖是多少,我今天的體重是多少?然後將這些資訊傳送至藍芽智慧就緒裝置。這類裝置具有無限的發展潛力,包括心率監測儀、血糖儀、智慧手錶、門窗安全感應器、汽車遙控鑰匙和血壓護腕等。
雖然 “Bluetooth Smart”和“Bluetooth Smart Ready”非常好用,但有沒有人想過如何在計算機和健身追蹤器之間以安全的方式保持配對,定期上傳資料?當裝置大部分時間處於睡眠模式時,如何保護裝置或確保裝置所有者的隱私?
藍芽的安全模 式
目前藍芽有兩種安全模式:LE安全模式1和LE安全模式2。安全模式1適用於沒有資料簽名的那些安全級別,而安全模式2與資料簽名類似,支援配對和不配對的通訊。
除此之外,還有四個編號為1到4的安全級別,其中4是最安全的級別。所以,在設定藍芽安全模式時,你可以將這兩大種安全模式混合著使用。
安全級別為1到4:安全級別1支援沒有安全性的通訊,並適用於任何藍芽通訊;安全級別2支援AES-CMAC加密,適用於裝置未配對的通訊過程;安全級別3支援加密並需要裝置配對;安全級別4支援目前所有的加密方式。
將兩種安全模式混合是指裝置需要同時支援安全模式1和2,即需要支援已簽名和未簽名的資料。僅安全連線模式是具有安全級別4的安全模式1,這意味著藍芽裝置中的所有傳入和傳出流量都只涉及經過身份驗證的連線和加密。如果你覺得複雜,那你也可以使用安全模式2而不是1來執行安全連線模式,以確保所有資料都已簽名,但由於資料是加密的,且加密的計算需要更強的計算能力這也意味著更快的電池消耗,而藍芽技術聯盟明顯感覺到沒有簽名的加密對於這種特定的模式來說已經足夠了。
在大家瞭解了安全模式和級別是什麼後,我就可以開始回答一些關於在睡眠模式下維持配對的問題,或者在不一定總是彼此通訊的裝置之間的藍芽連線上強制保密。但是我們需要討論它們是如何實施的,這就得從配對開始。
為什麼不配對便無法建立連線?
任何無線通訊技術都存在被監聽和破解的可能,藍芽SIG為了保證藍芽通訊的安全性,採用認證的方式進行資料互動。同時為了保證使用的方便性,以配對的形式完成兩個藍芽裝置之間的首次通訊認證,經配對之後,隨後的通訊連線就不必每次都要做確認。所以認證碼的產生是從配對開始的,經過配對,裝置之間以PIN碼建立約定的link key用於產生初始認證碼,以用於以後建立的連線。所以不配對,兩個裝置之間便無法建立認證關係,無法進行連線及其之後的操作,所以配對在一定程度上保證了藍芽通訊的安全,當然這個安全保證機制是比較容易被破解的。
從某種意義上來說,配對過程如果能保證安全,則藍芽的使用就是安全的,配對過程分三個程序。
第一個程序
在第一個程序中,要配對的裝置,首先閱讀的是“歸因協議”值,該值位於L2CAP第4層,通常不會被加密。這樣,在第二程序它們將決定使用哪種配對方法,進而決定裝置可以做什麼。
第二程序
在第二程序的目的是生成一個臨時金鑰(Short Term Key,簡稱STK)。臨時金鑰不會在裝置之間傳輸。通過STK進行的配對,通常被稱為LE配對。但是,如果僅使用安全連線模式,則會在此程序生成長期金鑰(LTK),這稱為LE安全連線。
第三程序
在第三程序,第二程序的金鑰被用來分配通訊所需的其它金鑰。如果在第二程序沒有生成LTK,則在第三程序就要生成一個長期金鑰。資料簽名的連線簽名解析金鑰(CSRK)和專用MAC地址生成和查詢的身份解析金鑰(IRK)等資料在此程序生成。
目前的配對方法共有有四種不同模式:
1.Numeric Comparison(數值比較),數值比較僅適用於低功耗安全連線,而不適用於傳統配對。
2. Just Works (不鑑權,直接使用),顯然,並非所有裝置都有顯示器,如耳機或揚聲器。因此,Just Works方法可能是最流行的方法。
3. Passkey Entry(密碼輸入)。使用金鑰輸入,會在一個裝置上顯示一個六位數的值,並將其輸入到另一個裝置中。
4.Out Of Band (OOB),即非藍芽的傳輸方式,如NFC。
配對模式和所對應的安全級別
1.發起者或接收者,確定裝置是發起者還是接收者。在初始配對期間,啟動藍芽連線的裝置將成為Bluetooth Smart Ready裝置,而被配對的裝置將成為Bluetooth Smart 裝置。然後你必須證明它們是Bluetooth Smart Ready還是Bluetooth Smart,這將有助於確定哪些資料包需要在藍芽協議監控分析儀上檢視BLE資料。
如果你正在探索的裝置是Bluetooth Smart接收器,則可以從Bluetooth Smart Ready膝上型電腦啟動配對,並使用膝上型電腦的藍芽介面作為Wireshark(一個網路封包分析軟體)中的分析源。https://duo.com/blog/bluetooth-hacking-tools-comparison
2.配對說明(Instructions for pairing)。當你獲得新的支援藍芽的裝置時,通常會包含配對說明。顯然,如果裝置的螢幕可以顯示值,你可以觀察到使用的Numeric Comparison或Passkey Entry。
3.掃描和探測,使用藍芽掃描器掃描裝置可以幫助確定安全級別。你可以從掃描中獲得任何資訊,包括所涉及的晶片組資訊。如果你可以確定正在使用的晶片組,則可以檢視晶片組的功能,例如“它最多可以處理八個連線,並且支援板載AES-128”。如果地址是公共地址,並且OUI( 組織唯一識別符號)在資料庫中,則它們它們始終使用一個常量作為MAC地址。
如果你可以連線到裝置進行探測,但是任何操作似乎都會讓你立即退出,此時,很可能只有安全連線模式已經就位。
4.嗅探配對,通過藍芽嗅探器來檢測安全元素的實現可能看起來非常困難,但是一旦你瞭解了不同的安全模式以及如何使用這些安全模式,就可以輕鬆確定已經實現的內容,但前提是你進行了分析跟蹤。
理想情況下,你最希望捕獲配對過程的分析痕跡。如果你正在檢查啟動程式或Bluetooth Smart Ready裝置,則需要“配對請求”資料包。相反,如果你正在檢查接收器或藍芽智慧裝置,則需要“配對應答”資料包。
配對請求的操作碼將是0x01,配對迴應的操作碼將是0x02。
OOB資料標記將是0x00,對於OOB資料來說,沒有OOB資料或0x01。最大加密金鑰大小以octets(八進位制數)的形式告訴加密金鑰的大小,並且啟動器和響應者金鑰分配位元組都用標記表示將分發的金鑰。
身份驗證請求位元組由五個欄位組成,不同的標誌使用的位也不同。
1.繫結標誌,使用兩位,最低位為0或1,另一位保留。如果使用繫結,LTK將被交換,這意味著兩個裝置可以配對,而重新啟動或休眠模式不會取消配對裝置。如果要支援加密,則在配對之後進行。
2.MITM標誌,使用一位,0表示不要求MITM保護,1表示請求了MITM保護。
3.安全連線,使用一位。如果設定為1,則裝置正在請求進行安全連線模式,否則設定為0。
4.按鍵標誌,使用一位。如果設定為1,則表示需要使用密碼輸入,否則將忽略。
5.最後三位保留。
請注意,要時刻檢查你的工具,以確保你準確地嗅探資料,不要指望每個製造商都遵守協議規則。以下是Apple Watch和Apple Watch的配對過程,所使用的金鑰輸入過程中的配對回覆資料包。
Wireshark對Apple Watch配對回覆資料包的解釋,請注意,AuthReq部分與原始資料不匹配。
在上圖中,主要問題是位元組24的(偏移0x17)值是0x0d。按著Wireshark的解釋,只有Bonding和MITM的位被設定,而0x0d的值表明安全連線位也被設定。在嗅探器跟蹤時,你會選擇金鑰輸入方法,但在這種情況下,不僅Wireshark解釋不顯示它的設定,原始資料也表明它沒有被設定。
低功耗藍芽的隱私性
每當藍芽裝置需要傳輸時,它就會進入廣播模式,讓其它裝置發現它。根據裝置的性質,它會在廣播過程中使用MAC地址,以便其他裝置可以與之通訊。
但這會出現一個問題,攻擊者可以通過跟蹤MAC地址來跟蹤一個人的行蹤。因此,會有避免跟蹤的裝置來定期地改變其MAC地址。不夠,這又會產生其他問題。如果地址不斷變化,配對的裝置將如何知道它們配對成功呢?我怎樣才能將我的MAC地址限制在只有我信任的裝置上,同時還能保護我自己不被追蹤?
這就是要用到低功耗藍芽的隱私性的地方,這個解決方案是在建立Bluetooth Smart(4.0標準)的基礎上引入的,它是解決這個問題的有效方法。在如上所述的第三程序的配對過程中,裝置之間會交換各種金鑰。其中一個關鍵是身份解析金鑰(IRK),這個金鑰允許建立和解析在廣告資料包中使用的隨機MAC地址。
為確保裝置重新連線,低功耗藍芽的隱私性裝置將建立一個廣播資料包,其中包含配對裝置的目標MAC地址和隨機MAC地址作,此時配對裝置就知道快速解析MAC地址以確定其身份,因為它可能與使用低功耗藍芽的隱私性的多個裝置進行配對。
這就為配對的兩個裝置提供了一個很好的方式,即使進入睡眠模式,功率迴圈或裝置之間的物理距離大於藍芽範圍而導致中斷,也仍然可以通過防止MAC地址跟蹤來確保使用者的隱私。
低功耗藍芽的隱私性在測試中非常容易被發現,你只需掃描MAC地址並隨時追蹤即可。通過在裝置上使用低功耗藍芽的隱私性進行操作,便可可以產生流量,這樣會更容易發現。不過時間延遲(從15到30分鐘不等)會有所不同,這完全取決於製造商所設定的時間間隔。
藍芽不用時就關掉
不用藍芽的時候就關掉,否則你的裝置可能會被病毒入侵。當藍芽在裝置上執行時,它會保持執行狀態並等待潛在的連線,此時病毒就會對裝置進行掃描並檢測它們的資訊,比如裝置型別和作業系統等等,看看它們是否存在相關漏洞,一旦攻擊者發現脆弱的目標,可以在很短時間內完成攻擊,然後控制使用者的裝置甚至能控制資料。
在現在的智慧機時代,藍芽依然是手機的標配,不過已經很少人用到這功能了,目前它存在安全隱患,美國的物聯網安全初創公司 Armis 2017年就發現了一種新型物聯網攻擊手段:BlueBorne,它能威脅所有執行在 Android、iOS、Windows 和 Linux 這幾種主流作業系統的裝置。
lueBorne 攻擊手段是如何工作的呢?
首先,要定位周圍有效的藍芽連線(雖然裝置沒有開啟藍芽連線,也能被攻擊者定位到)。
接下來,攻擊者利用藍芽連接獲得目標裝置的MAC地址,這是每臺裝置都擁有的唯一識別符號。
第三,確定目標裝置使用的作業系統,並針對對應的作業系統使用對應的藍芽協議漏洞。
最後,攻擊者就利用在相關係統上的藍芽協議漏洞,獲得裝置的訪問許可權。