基于MCU、MPU或FPGA的嵌入式M2M系統安全解決方案
基于使用機器到機器(M2M)等協(xié)議的聯(lián)網(wǎng)設備不斷普及的發(fā)展趨勢,網(wǎng)絡(luò )(特別是無(wú)線(xiàn)網(wǎng)絡(luò ))的安全性越來(lái)越受人們的關(guān)注。外面的世界危險無(wú)處不在,仍有許多人想要破壞建立這些連接所需的社會(huì )性和關(guān)鍵性基礎設施。
本文引用地址:http://dyxdggzs.com/article/201610/305433.htm針對基于MCU、MPU或FPGA的嵌入式無(wú)線(xiàn)或有線(xiàn)M2M系統,特別是在當今普遍聯(lián)網(wǎng)但易受攻擊的世界中,良好的安全性要求采取以下這些全部使用了標準加密算法的措施:
使用TLS的網(wǎng)絡(luò )通信安全
使用IPSec的虛擬專(zhuān)用網(wǎng)安全(VPN)
使用SSH的安全登錄和系統交互
使用SFTP的安全文件傳送
安全的電子郵件——加密的電子郵件和安全的郵件服務(wù)器鏈路
安全的網(wǎng)站服務(wù)器——https
安全的管理——SNMP v3
使用加密和檢查過(guò)的映像進(jìn)行安全啟動(dòng)
本文簡(jiǎn)要討論了上述各項安全措施應用到M2M的情況以及總的系統級考慮因素。M2M系統要求高度的安全性來(lái)保護信息和系統。沒(méi)有這種無(wú)縫的集成和測試,就會(huì )存在安全漏洞,系統很容易受到攻擊,并可能發(fā)生可怕的后果。
使用TLS進(jìn)行網(wǎng)絡(luò )通信
在 M2M系統中,不管是哪種無(wú)線(xiàn)類(lèi)型,所有無(wú)線(xiàn)鏈路都會(huì )使用某種加密技術(shù)來(lái)保護無(wú)線(xiàn)傳輸的數據。在一個(gè)節點(diǎn)內或兩個(gè)有線(xiàn)節點(diǎn)之間,負荷數據以明碼的方式存在于有線(xiàn)/無(wú)線(xiàn)混合系統中。一種方法是使用傳輸層安全(TLS)協(xié)議。TLS作為網(wǎng)絡(luò )中兩個(gè)節點(diǎn)之間的端到端加密技術(shù),可確保數據不管走哪條路徑總是安全的。
如圖1所示,TLS很容易配置和使用,正是這個(gè)原因,TLS是人們非常青睞的一種通信安全方法。TLS的典型實(shí)現遵照的是針對應用程序可移植性開(kāi)發(fā)的事實(shí)上的openSSL接口標準。這種應用程序編程接口(API)是套接字(socket)接口中的表示層,可為應用程序提供安全性。

圖1:TLS可保證端到端通信的安全。
在套接字通信之上提供TLS層可以為安全應用提供安全的套接字通信,而直接使用套接字的通信是不安全的,因為所有數據都是明碼傳輸。
使用IPSec協(xié)議的虛擬專(zhuān)用網(wǎng)(VPN)
許多時(shí)候,網(wǎng)絡(luò )中兩個(gè)節點(diǎn)之間的所有通信都要求是安全的。在這種情況下,可以建立虛擬專(zhuān)用網(wǎng)(VPN)(圖2)。這種協(xié)議深入TCP/IP實(shí)現內部,對兩個(gè)節點(diǎn)間傳輸的所有數據包進(jìn)行加密。因為IPSec是作為網(wǎng)絡(luò )層的一部分,因此節點(diǎn)之間的所有套接字調用都會(huì )自動(dòng)加密。

圖2:在兩個(gè)節點(diǎn)之間使用VPN和IPSec可以確保節點(diǎn)之間所有通信業(yè)務(wù)的安全。
有人可能會(huì )問(wèn),既然如此,為什么我們還要使用其它方法,用這一種方法不就可以了嗎?原因有兩個(gè)。第一個(gè)原因很好理解:VPN的建立相當麻煩,會(huì )遇到很多問(wèn)題。正是這個(gè)原因使得它的使用面不如想像的那么廣。
第二個(gè)原因是最好的安全性需要建立在各層中。通過(guò)提供各個(gè)安全層,被攻破的難度就要大得多。這與打開(kāi)多重鎖著(zhù)的門(mén)才能進(jìn)入金庫是一個(gè)道理——每個(gè)層都增加了入侵難度?;谶@個(gè)理由,最好采用更多的安全措施,而不僅是VPN.
安全殼
為了登錄并在遠程系統上工作,小型系統上經(jīng)常使用telnet.現在通過(guò)增加額外的閃存空間,你可以運行安全殼(SSH)(圖3)。SSH就像是一種安全的 telnet,但并不是運行在TLS之上的telnet.SSH有它自己的協(xié)議。它通過(guò)在MCU上運行的SSH服務(wù)器提供安全殼訪(fǎng)問(wèn)。

圖3:SSH代替Telnet提供節點(diǎn)間的安全通信。MCU產(chǎn)品只提供SSH服務(wù)器,該服務(wù)器。
只是因為在使用文件傳送協(xié)議(FTP)時(shí)使用了登錄身份和口令,許多人就認為這是安全的傳送。事實(shí)上,即使是口令在網(wǎng)絡(luò )上也是明碼傳送的。更好的方法是使用安全文件傳送協(xié)議(SFTP)。SFTP并不是在TLS上運行的FTP.而是如圖4所示那樣,是另外一種用于加密文件傳送的特殊協(xié)議。

圖4:SFTP是一種新的協(xié)議,支持文件傳送時(shí)的加密和認證通信,可替代所有數據都是明碼傳送的FTP
安全的電子郵件
郵件服務(wù)器之間的業(yè)務(wù)通常用TLS加以保護。但TLS只能保證只有授權和認證的用戶(hù)才能使用服務(wù)器,而監視網(wǎng)絡(luò )業(yè)務(wù)的任何人都無(wú)法閱讀郵件?;谶@個(gè)理由,如果你使用SMTP協(xié)議從基于MCU的M2M傳感設備安全地發(fā)送通知,你也需要TLS(圖5)。

圖5:使用TLS的SMTP傳輸可以確保只有授權用戶(hù)才能使用電子郵件服務(wù)器,并加密發(fā)送數據。如果消息在發(fā)送前得到了加密和簽名,那么這些消息就能被擁有正確消息密鑰的人加以鑒權,確保其私密性。
當然,在服務(wù)器上使用的安全性并不能應用于任何給定節點(diǎn)中的消息內容。因此消息需要簽名和加密才能確保自身的安全性。
安全的網(wǎng)站服務(wù)器訪(fǎng)問(wèn)
為了安全地進(jìn)行網(wǎng)站頁(yè)面訪(fǎng)問(wèn)和數據傳送,可以使用HTTP Secure(HTTPS)。采用任何M2M配置的網(wǎng)站服務(wù)器(圖6)都要求支持HTTPS.HTTPS是聯(lián)合運用TLS以及HTTP協(xié)議實(shí)現的。網(wǎng)站服務(wù)器本身可以通過(guò)HTTPS獲得加密的數據包進(jìn)行處理,并提供傳送之前加密的解過(guò)密的網(wǎng)頁(yè)。

圖6:瀏覽器具有足夠的智能使用TLS上的http進(jìn)行連接,從而支持安全的網(wǎng)站訪(fǎng)問(wèn)。http服務(wù)器也接受TLS上的請求,以便提供安全的網(wǎng)頁(yè)訪(fǎng)問(wèn)和更新。
安全管理
為了管理遠程設備,我們經(jīng)常使用安全網(wǎng)絡(luò )管理協(xié)議(SNMP)。SNMP提供了查看設備內部細節、重新配置設備、執行各種命令、讀取數據、讀取記錄和設置變量的一種方式。為了做到這一點(diǎn),要求使用最新的安全版本(SNMP v3)(圖7)。許多實(shí)現人員試圖使用較早版本的SNMP,但這些版本都是不安全的。
評論