本文特別關(guān)注小型無線連接系統(tǒng),這些系統(tǒng)通常由電池供電并運行輕量級,低帶寬RF協(xié)議。
明文披露
明文泄露是指機密(如密鑰或敏感數(shù)據(jù))以“明文形式”或未加密的方式傳遞或存儲。大多數(shù)傳輸漏洞適用于通過未加密通道傳遞的敏感用戶數(shù)據(jù)(如登錄憑據(jù))。存儲漏洞包括敏感的用戶數(shù)據(jù)和密鑰,這是一次性物聯(lián)網(wǎng)設(shè)備需要特別關(guān)注的領(lǐng)域。我們大多數(shù)人在處理筆記本電腦或智能手機時都要小心謹(jǐn)慎,以確保敏感信息已被適當(dāng)刪除。當(dāng)涉及到連接的燈泡時,您是否同樣小心?“垃圾桶攻擊”是指從丟棄的設(shè)備中提取敏感信息(如 Wi-Fi 憑據(jù))。
中間人攻擊
“中間人”(MITM)是一種攻擊,攻擊者秘密中繼并可能改變認(rèn)為自己直接相互通信的雙方之間的通信。MITM 攻擊的漏洞表示身份驗證存在弱點。這種類型的漏洞利用通常在調(diào)試期間將新設(shè)備引入網(wǎng)絡(luò)時執(zhí)行。有多種方法可用于對設(shè)備進(jìn)行身份驗證,以允許其安全地加入網(wǎng)絡(luò)。其中一些需要用戶干預(yù),例如輸入 PIN 碼 (BLE) 或掃描條形碼 (Z-Wave)。其他情況可能會在沒有用戶干預(yù)的情況下發(fā)生,例如使用設(shè)備證書與證書頒發(fā)機構(gòu)和/或云服務(wù)結(jié)合使用來提供身份驗證。
MITM 最常見的實現(xiàn)問題是無法包含身份驗證(例如,BLE 中的“Just Works”配對方法),或者未能使用受信任的第三方(如證書頒發(fā)機構(gòu) (CA))正確驗證證書。
暴力攻擊
“暴力”攻擊試圖利用加密系統(tǒng)實現(xiàn)中的弱點。如果正確實現(xiàn),破解加密系統(tǒng)所需的工作量可以在理論上估計,并且很容易超過計算可能性。但是,實現(xiàn)中的弱點會大大減少整體解決方案空間,將不可能的事情變成可行甚至容易的事情。示例包括弱密碼、加密函數(shù)使用不當(dāng)、硬編碼密鑰和熵不足。
弱密碼
由于計算能力的可及性越來越高,加上尋找加密弱點的進(jìn)步,許多早期的加密系統(tǒng)已經(jīng)過時了。例如,對具有 40 位密鑰的密碼的暴力攻擊需要大約 1.1 萬億次測試。這聽起來像是一個很大的數(shù)字,但當(dāng)與當(dāng)今顯卡、FPGA或云服務(wù)的計算能力相結(jié)合時,它是不夠的。
2017年,比利時KU魯汶大學(xué)的研究人員能夠破解DST40,這是早期特斯拉Model S密鑰卡中使用的40位密碼?!凹倜懊荑€卡”攻擊使用連接到Raspberry Pi的RF接收器來“嗅探”汽車的標(biāo)識符RF信標(biāo),從汽車請求隨機挑戰(zhàn)短語,并計算并傳輸對挑戰(zhàn)的正確響應(yīng),然后可用于解鎖門或啟動汽車,所有這些都在大約兩秒鐘內(nèi)完成。系統(tǒng)使用包含所有可能的質(zhì)詢短語的 5.4 TB 數(shù)據(jù)結(jié)構(gòu)來查找正確的響應(yīng)。破解密碼的蠻力工作,使用相同的Raspberry Pi需要777天,這是使用更強大的計算資源預(yù)先計算的。
這種攻擊的對策是不選擇弱密碼,特別是如果這些密碼已經(jīng)被破解。上面的DST40密碼最初是在2005年由約翰霍普金斯大學(xué)和RSA實驗室的團隊破解的,并在2005年的福特Escape SUV上以類似的方式進(jìn)行了演示。其他已被證明較弱的流行密碼包括 DES、3DES、RC2 和 RC4。對于 TLS 連接或協(xié)商密碼或密碼套件的任何連接,重要的是不允許弱協(xié)議(如 SSL)或弱密碼套件。
加密功能的不當(dāng)使用
高級加密標(biāo)準(zhǔn) (AES) 是一種分組密碼,它對固定大小為 128 位(16 字節(jié))的數(shù)據(jù)元素進(jìn)行操作。加密或解密長度超過 16 字節(jié)的數(shù)據(jù)流時,需要執(zhí)行多個 AES 操作。獨立處理每個塊(稱為“AES_ECB”或“電子代碼簿”)可以揭示密文數(shù)據(jù)中的一些模式,這對于機密性來說是不希望的,因此建議使用NIST批準(zhǔn)的鏈?zhǔn)矫艽a模式,例如AES_CBC(“密碼塊鏈接”)或AES_CTR(“計數(shù)器”),或者更好的是,使用經(jīng)過身份驗證的加密模式,例如AES_CCM(“CBC-MAC計數(shù)器”)或AES_GCM(“伽羅瓦/計數(shù)器模式”), 確保數(shù)據(jù)的機密性和真實性。
請注意,其中許多模式需要使用初始化向量 (IV),該向量的安全要求因所選的特定模式而異。保守的指導(dǎo)是使用強隨機數(shù),例如來自批準(zhǔn)的加密隨機數(shù)生成器,并且僅使用IV一次,使其成為“nonce”。IV最常見的錯誤是使用硬編碼或常量IV。
硬編碼鍵
“硬編碼”密鑰是指嵌入在源代碼中的密鑰。硬編碼的密鑰很糟糕,因為它們很難更改(需要重新編譯源代碼),并且它們是最容易竊取的密鑰之一(通過逆向工程,讀取源代碼或其他方式)。理想情況下,密鑰在需要時計算或以加密形式存儲。NIST SP 800-57 建議根據(jù)密鑰的使用方式定期更改密鑰,通常每一到三年或更頻繁地更改一次密鑰。此外,系統(tǒng)還應(yīng)支持一種機制,以便在密鑰遭到破壞時吊銷密鑰。
熵不足
密碼學(xué)依賴于具有高熵的隨機數(shù)的來源。常見且看似無害的加密實現(xiàn)錯誤之一是選擇錯誤的隨機數(shù)源。當(dāng)開發(fā)人員使用編譯器本機“rand()”函數(shù)而不是加密強偽隨機數(shù)生成器 (PRNG) 或使用具有錯誤種子值的良好 PRNG(如常量或時間引用)時,會發(fā)生這種情況。
圖 2 顯示了使用“rand()”生成的位圖和使用 TRNG(真隨機數(shù)生成器)生成的位圖。請注意“蘭特()”圖片中的摩爾紋狀圖案。模式不是隨機的,這表明這對于熵源來說是一個糟糕的選擇。
密碼學(xué)的強度取決于隨機數(shù)中的熵量。隨機數(shù)源中的任何模式或偏差都會減少在暴力攻擊期間測試所需的選項數(shù)。為了便于說明,我們假設(shè)嵌入式系統(tǒng)使用“自上次重置以來的系統(tǒng)時鐘”作為其“rand()”函數(shù)的種子,而“rand()”函數(shù)用于在系統(tǒng)初始化期間生成密鑰。由于MCU在很大程度上是確定性的,因此該系統(tǒng)將傾向于生成相同的密鑰或一小組密鑰之一。如果系統(tǒng)只生成八個唯一密鑰,則密鑰的長度是 128 位還是 256 位并不重要。該密鑰的強度僅為三位,因為攻擊者只需八次嘗試即可確定密鑰。此外,C標(biāo)準(zhǔn)規(guī)定“rand()”的周期至少為232,這完全在暴力攻擊范圍內(nèi),這意味著如果攻擊者能夠辨別PRNG序列中的當(dāng)前位置,則所有未來的數(shù)字都將是已知的。
幸運的是,許多MCU和無線SoC都配備了硬件TRNG外設(shè),這些外設(shè)提供了極好的熵源。TRNG是從物理源(如熱能)獲取熵的外圍設(shè)備。NIST 800-90A/B/C 和 AIS-31 規(guī)定了加密的合適要求?;蛘撸绻用?PRNG 定期播種 TRNG 源,則可以使用該加密 PRNG(例如CTR_DRBG)。
如果MCU沒有TRNG外設(shè),則可以使用另一個外設(shè)(例如無線RF接收器或ADC)作為熵源,但這種方法必須小心。具體來說,必須將源描述為熵源,以確定其數(shù)學(xué)屬性是否足以滿足 NIST 要求的加密。NIST標(biāo)準(zhǔn)還要求在原始熵源上添加運行狀況檢查,以確保其保持正確的功能,并添加條件函數(shù)(如SHA-256)以消除輸出中的任何偏差。
審核編輯:郭婷
-
無線連接
+關(guān)注
關(guān)注
2文章
433瀏覽量
39763 -
IOT
+關(guān)注
關(guān)注
187文章
4305瀏覽量
201819
發(fā)布評論請先 登錄
電商API常見錯誤排查指南:避免集成陷阱

電氣控制設(shè)備廠家如何避免 BK 控制變壓器的 “陷阱

如何避免振弦式應(yīng)變計在安裝過程中的誤差?

存儲示波器在校準(zhǔn)過程中需要注意哪些安全問題
如何避免存儲示波器再次崩潰?
避免踩坑!汽車配件氣密檢測設(shè)備的常見誤區(qū)與解決方案

必看!15個C語言常見陷阱及避坑指南
MOS管選型十大陷阱:參數(shù)誤讀引發(fā)的血淚教訓(xùn)MDD

評論