物聯(lián)網(wǎng)的實(shí)用加密方法

責(zé)任編輯:zsheng

2018-07-18 15:52:16

摘自:物聯(lián)之家網(wǎng)

物聯(lián)網(wǎng)( IoT )開始變得聲名不佳——我們幾乎每天都能聽到又有一種不安全的物聯(lián)網(wǎng)設(shè)備被另外一種方式破壞。讓物聯(lián)網(wǎng)變得更加安全的途徑之一就是正確使用加密方法,而不是使用家庭作坊式、自帶類型的密碼系統(tǒng)。

物聯(lián)網(wǎng)( IoT )開始變得聲名不佳——我們幾乎每天都能聽到又有一種不安全的物聯(lián)網(wǎng)設(shè)備被另外一種方式破壞。讓物聯(lián)網(wǎng)變得更加安全的途徑之一就是正確使用加密方法,而不是使用家庭作坊式、自帶類型的密碼系統(tǒng)。

有很多情況都是這樣的,你自己低估創(chuàng)建一個(gè)安全設(shè)備的重要性,結(jié)果只會(huì)淪為黑客的一個(gè)好玩游戲罷了。沒有什么借口不使用經(jīng)過驗(yàn)證的、真實(shí)的、符合標(biāo)準(zhǔn)的加密算法,因?yàn)閹缀跞魏尉幊陶Z言都有大量的加密庫可供使用。

\

現(xiàn)代加密學(xué)可以幫助物聯(lián)網(wǎng)變得更安全和更可靠。一些實(shí)用方法如下:

加密通信協(xié)議

在物聯(lián)網(wǎng)中,密碼技術(shù)最大的應(yīng)用領(lǐng)域是確保通信信道安全方面。以物聯(lián)網(wǎng)為中心的通信協(xié)議(如MQTT和AMQP)允許開發(fā)人員使用安全傳輸層協(xié)議(TLS)來確保通過網(wǎng)絡(luò)發(fā)送的所有數(shù)據(jù)外部各方都無法讀取。TLS是眾所周知的安全套接層(SSL)標(biāo)準(zhǔn)的合法繼承者,SSL是Web加密的長期標(biāo)準(zhǔn)(請參閱HTTPS),但現(xiàn)在被認(rèn)為是不安全的。TLS確保兩個(gè)實(shí)體之間的數(shù)據(jù)不可讀,也不容易被第三方操縱。

除了加密主要數(shù)據(jù)連接之外,加密任何可用的輔助通信通道也很重要。例如,如果物聯(lián)網(wǎng)設(shè)備帶有供消費(fèi)者使用的門戶界面(想想打印機(jī)的WEB界面接口),則在默認(rèn)情況下也應(yīng)該加密。如果不是,則同一網(wǎng)絡(luò)上的任何人都可以攔截用戶名、密碼或使用會(huì)話數(shù)據(jù)來模擬登錄用戶來控制這些設(shè)備。出于同樣原因,像遠(yuǎn)程登錄這樣不安全的維護(hù)接口應(yīng)該關(guān)閉,以支持像安全外殼協(xié)議(SSH)這樣的安全方法。

加鹽密碼哈希

有句老話,最安全的系統(tǒng)就是那些沒有東西可偷的系統(tǒng),存儲(chǔ)哈希密碼是實(shí)現(xiàn)此目的的一種方法。哈希函數(shù)是一種加密算法,它是一種單向密碼體制,即一個(gè)從明文到密文的不可逆映射,只有加密過程,沒有解密過程。

好的哈希函數(shù)幾乎是無法逆轉(zhuǎn)。換句話說,一旦原始密碼被哈希,原始密碼經(jīng)哈希函數(shù)計(jì)算后得到一個(gè)哈希值,然后你就不能反轉(zhuǎn)哈希值來確定密碼是什么。但是,哈希值仍可用于驗(yàn)證提交的密碼,因?yàn)橥瑯拥拿艽a,哈希值也是相同的。哈希函數(shù)的一些例子是MD5(流行的,但不再被認(rèn)為是安全的)、SAH256和BooFISH。

哈希值的一個(gè)流行攻擊方式是生成所謂的彩虹表或查找表。這是一個(gè)表格,其中對每個(gè)可能的(或至少是常見的)文本輸入進(jìn)行哈希處理,并存儲(chǔ)其相應(yīng)的輸出。這使得某人可以快速執(zhí)行帶有哈希輸出的反向查找。

如果黑客從受感染系統(tǒng)中檢索出密碼哈希值列表,那么使用彩虹表將這些哈希值轉(zhuǎn)換為原始密碼并不困難。然而,這種攻擊可以通過使用所謂的加鹽來減輕。鹽是一組隨機(jī)數(shù)據(jù),在對字符串進(jìn)行哈希處理之前,會(huì)將其附加到一串字符中(放在前面或后面都可以)。

鹽也存儲(chǔ)在哈希值結(jié)果中,但是對于每一個(gè)哈希計(jì)算的變化使得沒有兩個(gè)哈希值將使用相同的鹽。因?yàn)辂}使密碼變得更長、更隨機(jī),它使得彩虹表和反查表不在有效。攻擊者無法確知鹽值,于是就不能預(yù)先計(jì)算出一個(gè)查詢表或者彩虹表。這樣每個(gè)用戶的密碼都混入不同的鹽值后再進(jìn)行哈希,因此反向查表法也變得難以實(shí)施。

非對稱加密算法

非對稱加密算法是提供兩個(gè)密鑰,一個(gè)公鑰,一個(gè)私鑰。如果數(shù)據(jù)是用私鑰加密的,則只能用公鑰解密,反之亦然。這種加密功能特別適合于物聯(lián)網(wǎng)基礎(chǔ)設(shè)施的幾個(gè)方面。

首先是加入物聯(lián)網(wǎng)網(wǎng)絡(luò)的單臺機(jī)器認(rèn)證。例如,終端點(diǎn)可能需要連接到中央MQTT代理,以便向上游發(fā)布數(shù)據(jù)。在加入網(wǎng)絡(luò)時(shí),使用私鑰為每臺機(jī)器提供了一個(gè)秘密且唯一的標(biāo)識符,并且由于其長度而實(shí)際上不可能被暴力破解。

私鑰認(rèn)證在物聯(lián)網(wǎng)中可以提供幫助的第二個(gè)領(lǐng)域是設(shè)備之間的消息驗(yàn)證。哈希或其他完整性檢查算法將根據(jù)消息進(jìn)行計(jì)算,然后使用私鑰進(jìn)行加密并附加到消息中。再然后,該檢查由消息接收方用公鑰解密,證明它只能由私鑰持有者生成。

最后,驗(yàn)證完整性檢查的結(jié)果,以確保消息在傳輸過程中不被破壞或更改。在安全通信信道不可用的情況下,這種電子簽名方法可能是有用的。

簽名固件(Signed Firmware)與安全引導(dǎo)(Secure Boot)

上一節(jié)中描述的電子簽名方法也可以用于安全引導(dǎo)和固件映像的簽名。這種所謂的簽名可確保授權(quán)用戶或機(jī)器在執(zhí)行前已在固件上貼上批準(zhǔn)標(biāo)記,這使得惡意個(gè)人創(chuàng)建惡意固件并劫持一臺機(jī)器變得困難。

安全引導(dǎo)是利用這一特性,確保在設(shè)備上運(yùn)行的任何代碼都是適當(dāng)?shù)?。設(shè)備啟動(dòng)后運(yùn)行的第一個(gè)代碼位包括計(jì)算和驗(yàn)證電子簽名功能。此外,使用具有安全引導(dǎo)的私鑰基礎(chǔ)設(shè)施(private key infrastructure)給維護(hù)人員提供了一種補(bǔ)救途徑,在用于簽名代碼的密鑰被泄露情況下。

資源受限設(shè)備

你可能認(rèn)為這一切都很好,但是如果你在物聯(lián)網(wǎng)中工作了很長時(shí)間,你會(huì)遇到在邊緣使用資源匱乏設(shè)備的情況。這些設(shè)備在功率、處理能力和內(nèi)存方面都受到限制,這可能會(huì)給開發(fā)人員帶來一些巨大技術(shù)障礙。更不幸的是,現(xiàn)代密碼方法還需要消耗大量資源,因此自然會(huì)產(chǎn)生這樣問題:我們?nèi)绾螛?gòu)建既安全又有保障的設(shè)備,同時(shí)又滿足這些設(shè)備的限制條件?

別沮喪!可以在這種環(huán)境中做出明智妥協(xié)。例如,如果數(shù)據(jù)完整性很重要,但不一定是數(shù)據(jù)的保密性,那么可以放棄對數(shù)據(jù)流的完全加密,轉(zhuǎn)而采取一種更簡單的方法,用共享隱秘鹽來計(jì)算哈希值——你可以說這是窮人用的電子簽名。

這將使接收系統(tǒng)能夠驗(yàn)證數(shù)據(jù),并有把握確保數(shù)據(jù)是由授權(quán)機(jī)器生成的。這并不理想,但在某些環(huán)境下是可接受的風(fēng)險(xiǎn)。這只是一個(gè)例子,它的理念是,憑借一些創(chuàng)造力和良好密碼學(xué)知識,你可以在物聯(lián)網(wǎng)系統(tǒng)中有效平衡這些風(fēng)險(xiǎn)和安全性。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號