基于MCU、MPU或FPGA的嵌入式M2M系統(tǒng)安全解決方案
基于使用機器到機器(M2M)等協(xié)議的聯(lián)網(wǎng)設(shè)備不斷普及的發(fā)展趨勢,網(wǎng)絡(luò)(特別是無線網(wǎng)絡(luò))的安全性越來越受人們的關(guān)注。外面的世界危險無處不在,仍有許多人想要破壞建立這些連接所需的社會性和關(guān)鍵性基礎(chǔ)設(shè)施。
本文引用地址:http://m.butianyuan.cn/article/201610/305433.htm針對基于MCU、MPU或FPGA的嵌入式無線或有線M2M系統(tǒng),特別是在當(dāng)今普遍聯(lián)網(wǎng)但易受攻擊的世界中,良好的安全性要求采取以下這些全部使用了標(biāo)準(zhǔn)加密算法的措施:
使用TLS的網(wǎng)絡(luò)通信安全
使用IPSec的虛擬專用網(wǎng)安全(VPN)
使用SSH的安全登錄和系統(tǒng)交互
使用SFTP的安全文件傳送
安全的電子郵件——加密的電子郵件和安全的郵件服務(wù)器鏈路
安全的網(wǎng)站服務(wù)器——https
安全的管理——SNMP v3
使用加密和檢查過的映像進行安全啟動
本文簡要討論了上述各項安全措施應(yīng)用到M2M的情況以及總的系統(tǒng)級考慮因素。M2M系統(tǒng)要求高度的安全性來保護信息和系統(tǒng)。沒有這種無縫的集成和測試,就會存在安全漏洞,系統(tǒng)很容易受到攻擊,并可能發(fā)生可怕的后果。
使用TLS進行網(wǎng)絡(luò)通信
在 M2M系統(tǒng)中,不管是哪種無線類型,所有無線鏈路都會使用某種加密技術(shù)來保護無線傳輸?shù)臄?shù)據(jù)。在一個節(jié)點內(nèi)或兩個有線節(jié)點之間,負(fù)荷數(shù)據(jù)以明碼的方式存在于有線/無線混合系統(tǒng)中。一種方法是使用傳輸層安全(TLS)協(xié)議。TLS作為網(wǎng)絡(luò)中兩個節(jié)點之間的端到端加密技術(shù),可確保數(shù)據(jù)不管走哪條路徑總是安全的。
如圖1所示,TLS很容易配置和使用,正是這個原因,TLS是人們非常青睞的一種通信安全方法。TLS的典型實現(xiàn)遵照的是針對應(yīng)用程序可移植性開發(fā)的事實上的openSSL接口標(biāo)準(zhǔn)。這種應(yīng)用程序編程接口(API)是套接字(socket)接口中的表示層,可為應(yīng)用程序提供安全性。
圖1:TLS可保證端到端通信的安全。
在套接字通信之上提供TLS層可以為安全應(yīng)用提供安全的套接字通信,而直接使用套接字的通信是不安全的,因為所有數(shù)據(jù)都是明碼傳輸。
使用IPSec協(xié)議的虛擬專用網(wǎng)(VPN)
許多時候,網(wǎng)絡(luò)中兩個節(jié)點之間的所有通信都要求是安全的。在這種情況下,可以建立虛擬專用網(wǎng)(VPN)(圖2)。這種協(xié)議深入TCP/IP實現(xiàn)內(nèi)部,對兩個節(jié)點間傳輸?shù)乃袛?shù)據(jù)包進行加密。因為IPSec是作為網(wǎng)絡(luò)層的一部分,因此節(jié)點之間的所有套接字調(diào)用都會自動加密。
圖2:在兩個節(jié)點之間使用VPN和IPSec可以確保節(jié)點之間所有通信業(yè)務(wù)的安全。
有人可能會問,既然如此,為什么我們還要使用其它方法,用這一種方法不就可以了嗎?原因有兩個。第一個原因很好理解:VPN的建立相當(dāng)麻煩,會遇到很多問題。正是這個原因使得它的使用面不如想像的那么廣。
第二個原因是最好的安全性需要建立在各層中。通過提供各個安全層,被攻破的難度就要大得多。這與打開多重鎖著的門才能進入金庫是一個道理——每個層都增加了入侵難度?;谶@個理由,最好采用更多的安全措施,而不僅是VPN.
安全殼
為了登錄并在遠(yuǎn)程系統(tǒng)上工作,小型系統(tǒng)上經(jīng)常使用telnet.現(xiàn)在通過增加額外的閃存空間,你可以運行安全殼(SSH)(圖3)。SSH就像是一種安全的 telnet,但并不是運行在TLS之上的telnet.SSH有它自己的協(xié)議。它通過在MCU上運行的SSH服務(wù)器提供安全殼訪問。
圖3:SSH代替Telnet提供節(jié)點間的安全通信。MCU產(chǎn)品只提供SSH服務(wù)器,該服務(wù)器。
只是因為在使用文件傳送協(xié)議(FTP)時使用了登錄身份和口令,許多人就認(rèn)為這是安全的傳送。事實上,即使是口令在網(wǎng)絡(luò)上也是明碼傳送的。更好的方法是使用安全文件傳送協(xié)議(SFTP)。SFTP并不是在TLS上運行的FTP.而是如圖4所示那樣,是另外一種用于加密文件傳送的特殊協(xié)議。
圖4:SFTP是一種新的協(xié)議,支持文件傳送時的加密和認(rèn)證通信,可替代所有數(shù)據(jù)都是明碼傳送的FTP
安全的電子郵件
郵件服務(wù)器之間的業(yè)務(wù)通常用TLS加以保護。但TLS只能保證只有授權(quán)和認(rèn)證的用戶才能使用服務(wù)器,而監(jiān)視網(wǎng)絡(luò)業(yè)務(wù)的任何人都無法閱讀郵件?;谶@個理由,如果你使用SMTP協(xié)議從基于MCU的M2M傳感設(shè)備安全地發(fā)送通知,你也需要TLS(圖5)。
圖5:使用TLS的SMTP傳輸可以確保只有授權(quán)用戶才能使用電子郵件服務(wù)器,并加密發(fā)送數(shù)據(jù)。如果消息在發(fā)送前得到了加密和簽名,那么這些消息就能被擁有正確消息密鑰的人加以鑒權(quán),確保其私密性。
當(dāng)然,在服務(wù)器上使用的安全性并不能應(yīng)用于任何給定節(jié)點中的消息內(nèi)容。因此消息需要簽名和加密才能確保自身的安全性。
安全的網(wǎng)站服務(wù)器訪問
為了安全地進行網(wǎng)站頁面訪問和數(shù)據(jù)傳送,可以使用HTTP Secure(HTTPS)。采用任何M2M配置的網(wǎng)站服務(wù)器(圖6)都要求支持HTTPS.HTTPS是聯(lián)合運用TLS以及HTTP協(xié)議實現(xiàn)的。網(wǎng)站服務(wù)器本身可以通過HTTPS獲得加密的數(shù)據(jù)包進行處理,并提供傳送之前加密的解過密的網(wǎng)頁。
圖6:瀏覽器具有足夠的智能使用TLS上的http進行連接,從而支持安全的網(wǎng)站訪問。http服務(wù)器也接受TLS上的請求,以便提供安全的網(wǎng)頁訪問和更新。
安全管理
為了管理遠(yuǎn)程設(shè)備,我們經(jīng)常使用安全網(wǎng)絡(luò)管理協(xié)議(SNMP)。SNMP提供了查看設(shè)備內(nèi)部細(xì)節(jié)、重新配置設(shè)備、執(zhí)行各種命令、讀取數(shù)據(jù)、讀取記錄和設(shè)置變量的一種方式。為了做到這一點,要求使用最新的安全版本(SNMP v3)(圖7)。許多實現(xiàn)人員試圖使用較早版本的SNMP,但這些版本都是不安全的。
評論