當(dāng)今社會(huì)的很多商業(yè)行為、通信、金融交易及娛樂(lè)在很大程度上依賴(lài)于互聯(lián)網(wǎng)。隨著越來(lái)越多的設(shè)備連接到物聯(lián)網(wǎng)(IoT)中,各個(gè)行業(yè)對(duì)互聯(lián)網(wǎng)的依賴(lài)性將不斷增加。如果設(shè)備不安全,這種依賴(lài)將導(dǎo)致互聯(lián)網(wǎng)重大的安全漏洞,并使設(shè)備遭到攻擊和破壞。
目前,很多在使用的物聯(lián)網(wǎng)設(shè)備,根據(jù)不同的應(yīng)用范圍將持續(xù)使用。例如,公用事業(yè)使用的儀表幾乎不會(huì)更換,通信基礎(chǔ)設(shè)施的設(shè)計(jì)使用年限為50年,電力傳輸系統(tǒng)使用壽命也在30年以上。住宅、辦公室、工業(yè)建筑和其他建筑物可以每10年裝修一次,以便長(zhǎng)期使用。如果這些設(shè)備不安全,在威脅增加時(shí),它們很快會(huì)被拋棄。
為保持用戶(hù)對(duì)智能設(shè)備的投資,保護(hù)設(shè)備免遭破壞,安全成為所有新型設(shè)備的基本要求。在未來(lái)的幾年中,將有500億的物聯(lián)網(wǎng)設(shè)備連入互聯(lián)網(wǎng),其中很大一部分是使用微控制器和資源有限的微處理器。幸運(yùn)的是,與大型設(shè)備相比,這些小型設(shè)備更容易保護(hù),更不易受到同類(lèi)型威脅的攻擊,因而顯得更安全。但并不意味著安全很容易實(shí)現(xiàn),只是如果能正確地利用MCU和小型的MPU的特性,則開(kāi)發(fā)安全的設(shè)備不困難而已。本文的后續(xù)部分將討論如何保護(hù)物聯(lián)網(wǎng)中的小型設(shè)備。
物聯(lián)網(wǎng)安全特征
為了充分保護(hù)MCU或小型MPU,下列安全功能通常是必需的。當(dāng)然,并不是每個(gè)系統(tǒng)都必須具備所有功能。使用標(biāo)準(zhǔn)信息技術(shù)實(shí)現(xiàn)的安全解決方案是嵌入式MCU和MPU產(chǎn)品安全機(jī)制的核心。這些安全協(xié)議包括:TLS、IPSec/VPN、SSH、SFTP、安全啟動(dòng)和自動(dòng)回調(diào)、過(guò)濾、HTTPS、SNMP v3、安全的無(wú)線連接、加密和解密、加密文件系統(tǒng)、DTLS(用于UDP安全)和安全電子郵件。
其中,TLS、IPSec/VPN、HTTPS、安全的無(wú)線連接及DTLS意味著安全的通信連接;SFTP提供了安全的文件傳輸;SSH提供了安全的遠(yuǎn)程訪問(wèn);而安全電子郵件則提供了基于加密連接的郵件服務(wù)。
支持自動(dòng)回退的安全啟動(dòng)程序(bootloader)確保系統(tǒng)不被破壞。SNMPv3、數(shù)據(jù)加密和加密文件系統(tǒng)通過(guò)加密保護(hù)本地?cái)?shù)據(jù)或傳輸?shù)狡渌麢C(jī)器的數(shù)據(jù)。過(guò)濾實(shí)際上是防火墻的功能,用于阻止不受歡迎的訪問(wèn)。各個(gè)協(xié)議將在系統(tǒng)安全一節(jié)之后討論。
系統(tǒng)安全
只有系統(tǒng)中最薄弱的連接或組件都可靠時(shí),整個(gè)系統(tǒng)才是安全的。為保證系統(tǒng)的安全,其所有的通信通道、文件傳輸、數(shù)據(jù)存儲(chǔ)和系統(tǒng)更新方式都必須是安全的。在系統(tǒng)支持動(dòng)態(tài)加載、可執(zhí)行文件修改及其他復(fù)雜功能時(shí),實(shí)現(xiàn)系統(tǒng)安全是非常困難的。想象以下這些場(chǎng)景:
1)入侵者通過(guò)電子郵件、ftp或其他方式將文件傳入設(shè)備。
2)文件動(dòng)態(tài)加載,其運(yùn)行時(shí),會(huì)破壞其他可執(zhí)行文件,然后需要清理現(xiàn)場(chǎng)并刪除自己。
3)如果病毒很新,系統(tǒng)不認(rèn)識(shí)該病毒,它將獲準(zhǔn)進(jìn)入系統(tǒng)并感染系統(tǒng)。
再考慮另外一種情況,在不安全或者沒(méi)有正確安全設(shè)計(jì)的通信連接中,有可能讀取少量的數(shù)據(jù),還可能有辦法在數(shù)據(jù)流中添加新的數(shù)據(jù),并破壞正在接收數(shù)據(jù)的系統(tǒng)。
通過(guò)互聯(lián)網(wǎng)加載不安全的鏡像文件到設(shè)備就是這種情況的一個(gè)實(shí)例。當(dāng)新加載的鏡像運(yùn)行時(shí),如果該鏡像可以正確訪問(wèn)系統(tǒng),不安全的鏡像文件將接管整個(gè)系統(tǒng)。
還有一種情況就是設(shè)備的關(guān)鍵數(shù)據(jù)會(huì)被竊取,除非數(shù)據(jù)被加密或保存在安全文件系統(tǒng)中,才可能從設(shè)備中恢復(fù)加密的數(shù)據(jù)。這是需要考慮的另一種情況。
為了確保系統(tǒng)安全,最好的方式是考慮如何訪問(wèn)設(shè)備信息。通常,好的安全系統(tǒng)要求:你知道的(密碼)、你擁有的(借記卡或可穿戴式設(shè)備)和你是誰(shuí)(虹膜掃描設(shè)備)。
對(duì)小型設(shè)備來(lái)說(shuō),這些安全措施過(guò)頭了。但如果系統(tǒng)有非常高的安全要求,可以通過(guò)間接方式來(lái)實(shí)現(xiàn),只要確保系統(tǒng)的各個(gè)組件都是安全的。通過(guò)與服務(wù)器的安全交互,服務(wù)器可以安全地訪問(wèn)設(shè)備,安全設(shè)備接口可以運(yùn)行在大型設(shè)備上,也可以用于小型設(shè)備。
安全系統(tǒng)的另一個(gè)關(guān)鍵要素是分層安全,假設(shè)一些人只需要訪問(wèn)系統(tǒng)的一部分,好的設(shè)計(jì)原則采用分層安全機(jī)制。這種情況下,如果沒(méi)有重要的工作,入侵者僅能訪問(wèn)部分系統(tǒng)。一個(gè)實(shí)例是使用兩個(gè)防火墻級(jí)聯(lián)來(lái)保護(hù)服務(wù)器,因此,一個(gè)防火墻的漏洞可以被第二個(gè)防火墻隔離。
如圖1所示提供了安全功能的軟件概述。后面將針對(duì)前面列出的場(chǎng)景,討論如何使用這些軟件,以保護(hù)系統(tǒng)。