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