圖1 安全物聯(lián)網(wǎng)系統(tǒng)應(yīng)該包含的互聯(lián)網(wǎng)協(xié)議軟件
通信安全
通信安全協(xié)議確保機(jī)器到機(jī)器間的通信安全。有一個可以依賴的信任等級,以建立安全通信。
TLS及其前身SSL是為TCP套接字流和需按順序交付的流連接提供通信安全的最常用的方式。DTLS是一個新的協(xié)議,提供可靠的UDP傳輸和基于TLS的數(shù)據(jù)包傳輸。TLS和DTLS協(xié)議面向應(yīng)用到應(yīng)用間的通信。
IPSec或虛擬專用網(wǎng)絡(luò)(VPN)在TCP協(xié)議棧的基礎(chǔ)上使用虛擬鏈路安全技術(shù)。它的設(shè)置比較困難,但它允許應(yīng)用通過鏈路通信,即使應(yīng)用沒有提供安全保護(hù)。通常情況下,由于設(shè)置困難,并且很多人認(rèn)為NSA(美國國家安全局)參與開發(fā)的算法不安全,導(dǎo)致它沒有被廣泛使用。
HTTPS是建立在TLS上的安全的網(wǎng)絡(luò)服務(wù)器訪問協(xié)議,它提供了安全的應(yīng)用訪問,通過與SSH相同的方式,為遠(yuǎn)程用戶提供安全的模擬終端訪問。
安全的無線連接確保無線信息不被收集,數(shù)據(jù)不會被其他人通過天線獲取。
安全電子郵件用于確保數(shù)據(jù)不會通過電子郵件直接傳輸。一種方式是在郵件發(fā)送之前加密數(shù)據(jù)。而更簡單、更通用的方案是在加密連接中提供郵件服務(wù),以確保管理郵件的服務(wù)器接收的所有郵件數(shù)據(jù)都是安全的。
基于SNMP的安全文件傳輸
使用加密和解密程序保護(hù)數(shù)據(jù)時,SNMPv3用于加密數(shù)據(jù)。如果所有的數(shù)據(jù)都很重要,可以使用文件加密,盡管文件加密方式會損失性能。
過濾和防火墻
防火墻通過過濾網(wǎng)絡(luò)服務(wù)器發(fā)送所有數(shù)據(jù)包,拒絕未授權(quán)的訪問。通過過濾,設(shè)計者可以確保只有真正的用戶才能訪問系統(tǒng),阻止非法訪問,保證系統(tǒng)安全。這些過濾規(guī)則需要在設(shè)備上配置,過濾功能通常需要結(jié)合SSH或SNMP使用。
安全啟動
安全啟動是一個安全系統(tǒng)的重要組成部分,支持固件更新并通過安全的方式實現(xiàn)更新非常重要,固件更新可以刪除所有工廠固件,并通過自動回退(fall back)機(jī)制增強了該功能。通過自動回退,如果新的固件(可能損壞)導(dǎo)致啟動失敗,可以使用舊的安全版本重新啟動系統(tǒng),這是分層安全機(jī)制的部分功能。
Unison操作系統(tǒng)(Nanoexec)分層安全機(jī)制通過解釋器或其他方式加載的程序運行時,可能破壞系統(tǒng)。Unison的操作系統(tǒng)在底層提供了額外的安全啟動功能,以保護(hù)系統(tǒng),該功能使得系統(tǒng)很難被攻擊,如圖2所示。
圖2 Unison操作系統(tǒng)(Nanoexec)架構(gòu)
系統(tǒng)安全的考慮
現(xiàn)在考慮一下這種情況:MCU或資源有限的MPU需要應(yīng)用很多協(xié)議以實現(xiàn)安全目的。一個參考實例是Unison的操作系統(tǒng),它是一個小型的POSIX實時操作系統(tǒng),以非常小的代碼尺寸提供了這些安全功能。
首先,Unison系統(tǒng)使用了安全通信協(xié)議,目標(biāo)設(shè)備的所有應(yīng)用是安全的。這些應(yīng)用包括手機(jī)應(yīng)用、面向小型網(wǎng)絡(luò)服務(wù)器的安全Web訪問等。類似緩沖區(qū)溢出之類的攻擊是不可能的,因為Unison設(shè)計在運行時占用很少的資源,禁止任何不合理的資源占用。還可以使用安全無線連接,但必須使用VPN。
可以使用SFTP將文件傳輸?shù)较到y(tǒng)。該機(jī)制保證數(shù)據(jù)在傳輸時不被破壞,這對安全系統(tǒng)更新非常重要。在TCP服務(wù)器前端增加過濾處理,可以確保只處理授權(quán)的請求和更新,防止設(shè)備被入侵,極大地提高了安全性。此外,可以使用終端通過SSH協(xié)議遠(yuǎn)程配置設(shè)備。與使用網(wǎng)絡(luò)服務(wù)器相比,使用腳本的方法更可靠。這種配置方式確保了配置設(shè)備也是安全的。此時,設(shè)備接收和發(fā)送的數(shù)據(jù)是安全的。任何更改或配置也是可靠的,授權(quán)的應(yīng)用和用戶可以使用設(shè)備的數(shù)據(jù)和功能。
如果設(shè)備被偷了,怎么辦?為了應(yīng)對這種情況,可以加密設(shè)備存儲的數(shù)據(jù),不使用本地數(shù)據(jù)或使用加密文件系統(tǒng),這將確保設(shè)備的關(guān)鍵數(shù)據(jù)是安全的。如果用戶的設(shè)備有密碼,通常被認(rèn)為是合適的安全措施。還可以增加其他安全措施,如增加指紋掃描、虹膜掃描、掌紋和其他功能給設(shè)備,或?qū)⑵溥B接到安全工作站,以增加設(shè)備的可靠性。