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