物聯網開辟了連接智能設備的新時代。這些設備的集成運轉具有無限的開發潛能,且大部分功能都極具個性化。物聯網的價值多來自于滿足客戶個人立即性需求的定制產品和服務。而物聯網面臨的最大挑戰則是確保未授權訪問機密信息和已授權發布信息的安全。
所幸,有可循的方法在確保機密信息和通信安全的同時,又可對信息發送者和接收者以及安全共享對象進行驗證。不過,這種方法涉及大量的數學運算,包括在內核中進行復雜的加密運算。但這些數學算法可以在我們使用的物聯網設備中進行,因而不需要我們了解“如何”實現加密運算。不過,了解加密算法以及相關設備的背景可以讓我們更加安全地置身于勇者締造的物聯網新世界中。
圖1:物聯網需要高級安全性能來保護我們的隱私。(圖片來源:IStockPhoto.com )
1安全通信
早期使用的加密方式是使用替換代碼,即用一個字母代替另一則短信息。如果接收方了解替換公式,便可輕松將替代字母A轉成B,再將B轉成C,解碼信息將變得輕而易舉。看到加密信息的任何人無法了解實際內容,除非他們也知道密鑰。不過可惜的是,計算程序多做幾次試錯嘗試便可輕松解碼。
在現代數字世界中,我們可以使用更復雜的方法來加密消息——利用計算機甚至是MCU的強大處理能力。這些方法雖仍然使用密鑰和加密算法的概念給信息加密,但通過數字處理技術(加密算法函數)使得在沒有密鑰的情況下便無法輕松解密消息。不過,使用現代計算機的處理能力也可能很容易破解過于簡單的代碼。因此,為強大的數字計算機創建復雜代碼來打破“暴力”(反復試驗)方法也成為急切的需求。
使用算法創建難以打破的加密函數即發現難以解決的問題所在,但有了問題“提示”便可更快解決。“以兩個大因數的乘積為例。如果僅知道乘積數,確定兩個因數將耗費大量的精力。若使用此乘積方法加密信息,僅在了解兩個因數(即提示)的情況下才能迅速進行解密。除此之外,您還可以選擇公開乘積數為“公共”密鑰。且任何想發送安全信息的人均可使用此密鑰,不過他們知道僅有某些了解主要因素的人才了解如何解密信息。如果有人也有一個公開密鑰,那您在回復消息時可以使用您的公開密鑰加密消息,這樣便可保證通信渠道的安全。安全通道的共用方式便是發送加密算法的公開密鑰,但這比公開密鑰系統需要的計算量更小。
圖2:公共和私人安全密鑰將用于保護我們在物聯網虛擬世界的隱私2
信息驗證
由于任何人都可以發送加密信息,任何有關加密處理的人均可驗證發送方。可以使用公開密鑰驗證發送方的身份。譬如,您將加密信息返回給發送方時,可以使用一個隨機數或要求對方反饋加密信息中的數字,以此來驗證對方身份。如果隨機數字被接收且正確,那發送方便已經證明他們知道如何使用有關公鑰的密鑰解密信息。這樣,您便可以確認信息的正確性,且確認信息是來自發送方。
3信息的完整性
確保信息沒有被第三方截獲和篡改也是至關重要的。如果信息被作為文本在電子郵件中發送,翻轉幾位字節通常會使文本不可讀,但您可能認為所有這些活動很尋常。然而,若涉及嵌入式MCU的代碼更新,幾位字節的改動可能使整個代碼發生變化,使MCU無法正常運轉。如果MCU的工作是在一個大型通訊開關中調節溫度,由此產生的后果可想而知。因此,必須找到一個方法來保證信息的完整性,即使是信息篡改也應該立即被探測到。
最常見的方法便是生成一個標簽 (通常稱為信息驗證代碼或MAC),這是一種復雜的方式,取決于信息主體的所有字節。還有更復雜的檢測字節是否被翻動的奇偶校驗法。此標簽隨信息主體一起被添加和加密。接收者可以解密信息(及標簽),然后再從解密的信息主體中重新生成標簽,以匹配信息中嵌入的沒有被篡改的字節。注意,MAC需要一個共享密鑰,以確保沒有其他人可以生成MAC。
可使用行業標準創建一系列可保護信息的標準。高級加密標準(AES)由美國國家標準與技術研究院(NIST)創建,是一種最通用的標準,且通常大小為128位、192位和256位。發送方和接收方都使用相同的密鑰——即所謂的對稱密碼,而不是發送方和接收方使用不同密鑰的公鑰系統——因此,對稱密碼通常是在單一會話中使用公鑰進行信息交換時使用。
MCU通過內部的專用硬件已經能夠輕松實現AES安全功能。例如,德州儀器MSP430FR5969 MCU系列包括專用的硬件AES加速度外圍設備,可實現需要的加密和解密功能。外圍設備還包括在加密或解密操作期間所需要的固態存儲內存(可通過安全密鑰實現一系列的轉變、替換、互換和異或運算),以及安全密鑰。設計工程師僅僅需要在內存和指定的函數中加載128位密鑰——加密或解密——便可自動啟動。可以在固態內存中讀取加密或解密輸出信息。
圖3: 德州儀器MSP430FR59xx MCU 中的AES硬件加速器 (圖片來源:德州儀器)
可以在其他常見的加密功能函數中找到類似的硬件加速器,如用于生成驗證摘要的MAC函數。最常見的MAC算法是由NIST創建的安全哈希函數(SHA)標準。SHA也適用于MCU的硬件加速器。例如,Freescale Kinetis K6x系列設備的硬件加速協處理器便可適用各種不同的標準,包括AES和SHA。該協處理器可單獨在CPU中運行且使用內存映射接口,這樣命令和數據便可在加密加速器裝置(CAU)中緩沖。由于此裝置是協處理器的架構,因此可以在沒有CPU干預的情況下進行操作,且若加密函數占處理需求的比重大,其還可以大大改善操作效率。
圖4: NXP Kinetis K60 MCU的加密加速器外圍設備
4其他實現安全功能的方法
除了提供硬件加速外設和協處理器,制造商也提供其他安全功能來保護我們在物聯網世界的隱私。例如,Atmel公司生產了一款特殊的安全存儲設備AT88SC0204CA。它使用對稱的相互認證、數據加密和MAC操作,以在通過MCU串行接口標準訪問系統時為敏感信息提供安全的存儲位置。且加上防篡改檢測電路,即使有人試圖攻擊硬件來訪問信息,也可以確保此信息的安全。
另一種實現安全功能的方法是以更專用的方式結合MCU進行操作。Maxim生產了一系列使用SHA-256硬件在標準機接口中安全傳遞數據的設備。MCU外圍認證器,如Maxim DS24L65,,將一個標準的I2C接口轉換成安全機接口,再連接到各種安全機外圍設備,如Maxim DS28EL22。Maxim DS28EL22是2Kbit EEPROM,芯片是基于SHA-256的MAC硬件和獨特的64位ROM ID代碼。從主機到代理機的身份驗證是用來保護DS28EL22用戶內存,防止內存被不可信的主機篡改。可以通過用戶內存中的數據、芯片保密數據、主機隨機數據及64位ROM ID來運算由DS28EL22生成的SHA-256 MAC,以確保安全性能。注意,這些設備可以包含在標準的使用I2C連接的外圍設置如智能傳感器中,以對預期制造商的傳感器進行驗證,并確保他們沒有被篡改。使用傳感器讀數為公用事業和相似的“到期即付”企業創造可觀的收益也非常重要。
5總結
無論使用何種方法保護機密數據——使用專用加密技術支持公共安全算法的MCU,或使用片外密碼記憶來存儲敏感信息,或在硬件級別進行身份驗證以確保外設的可信性——這些數據都是通過數學運算得到保護……并且是大量的數學運算。
-
加速器
+關注
關注
2文章
799瀏覽量
37853 -
物聯網
+關注
關注
2909文章
44595瀏覽量
372977 -
智能設備
+關注
關注
5文章
1056瀏覽量
50590
發布評論請先 登錄
相關推薦
評論