物聯(lián)網(wǎng)(IOT)掀起了近幾十年來最大的技術(shù)浪潮之一。預(yù)計(jì)到2020年將有500億臺設(shè)備實(shí)現(xiàn)互連,形成可能覆蓋我們周圍一切事物的網(wǎng)絡(luò)。物聯(lián)網(wǎng)將跨越工業(yè)、商業(yè)、醫(yī)療、汽車和其它應(yīng)用,影響數(shù)十億人。鑒于其對個人、機(jī)構(gòu)和系統(tǒng)的影響范圍甚廣,安全性上升成為所有物聯(lián)網(wǎng)系統(tǒng)中最關(guān)鍵的組成部分,任何負(fù)責(zé)任的商業(yè)物聯(lián)網(wǎng)企業(yè)都必須真正把握安全性的理念受到了廣泛認(rèn)可。
在評估物聯(lián)網(wǎng)網(wǎng)絡(luò)脆弱性時,開發(fā)人員將目光對準(zhǔn)了最基本的元素—邊緣節(jié)點(diǎn)。而作為物聯(lián)網(wǎng)中的“物”,數(shù)量眾多的傳感器和執(zhí)行器向物聯(lián)網(wǎng)提供數(shù)據(jù)并執(zhí)行來自云端或用戶與電腦、手機(jī)、車載系統(tǒng)、智能家電或其它平臺交互產(chǎn)生的指令。邊緣節(jié)點(diǎn)通常是小型低成本的智能設(shè)備,但正是由于它們訪問的資源有限,往往被錯誤地認(rèn)為不易受到攻擊。與邊緣節(jié)點(diǎn)交互的服務(wù)器以及與之連接的網(wǎng)絡(luò)已經(jīng)擁有了成熟的安全技術(shù),而邊緣節(jié)點(diǎn)到目前為止還未具備這樣的技術(shù)。
當(dāng)談到保護(hù)這樣的系統(tǒng)時,人們常把“加密”與“安全”視為相等,但其實(shí)那只是安全難題的一個方面。創(chuàng)建安全環(huán)境的首要任務(wù)之一是穩(wěn)妥地發(fā)現(xiàn)和證明連接到您網(wǎng)絡(luò)的設(shè)備的身份。必須首先確定是誰要連接到網(wǎng)絡(luò),因?yàn)槿绻麤]有預(yù)先建立起安全的身份認(rèn)證,加密和傳輸層安全協(xié)議(如SSL/TLS)做的就是“保護(hù)”那些根本不應(yīng)該進(jìn)入您的網(wǎng)絡(luò)訪問者。
為了更好地理解節(jié)點(diǎn)安全,讓我們以登錄網(wǎng)上銀行賬戶作類比。首先在您的電腦和銀行網(wǎng)站之間建立一個安全的(即經(jīng)過加密和認(rèn)證的)連接(這是一個https鏈接)。然而,這個安全鏈接只是在您的電腦和銀行之間創(chuàng)建加密通信通道時對您的電腦進(jìn)行了驗(yàn)證,而并沒有對您本人進(jìn)行認(rèn)證。此時,銀行還不了解您是不是一個騙子。您需要輸入密碼。這個密碼是您的加密密鑰,所以從理論上來講,只有您和銀行知道。一旦它被發(fā)送到銀行就會與已經(jīng)保存的您的密碼進(jìn)行比較。如果相匹配,那么對銀行而言,這證明您就是您所聲稱的人。從這個例子可以看到,網(wǎng)上銀行的安全性由兩個層次來提供:1)傳輸層建立安全連接,2)應(yīng)用層通過密碼證明(認(rèn)證)您的身份。同樣,如果物聯(lián)網(wǎng)受到足夠重視,那么物聯(lián)網(wǎng)的節(jié)點(diǎn)安全也必須由多個層次來提供。
物聯(lián)網(wǎng)節(jié)點(diǎn)也使用傳輸層安全協(xié)議來創(chuàng)建連到云端的安全連接。但要實(shí)現(xiàn)真正的安全,物聯(lián)網(wǎng)節(jié)點(diǎn)還必須獲得應(yīng)用層的安全性。這意味著不只是通信通道(即,管道),節(jié)點(diǎn)本身也需要經(jīng)過認(rèn)證。除了通道認(rèn)證,應(yīng)用層應(yīng)建立加密和數(shù)據(jù)完整性檢查機(jī)制來保護(hù)流經(jīng)管道的數(shù)據(jù)。
考慮到這一點(diǎn),由于這些物聯(lián)網(wǎng)設(shè)備往往是一些簡單小型設(shè)備,而其操作絕少或無需與人互動,因此, 也帶來了一種新的網(wǎng)絡(luò)連接范式。這通常會引發(fā)各種各樣的疑問。一方面,對基礎(chǔ)設(shè)施安全性的擔(dān)憂讓人們懷疑“如何確定一臺物聯(lián)網(wǎng)設(shè)備是可信的?甚至怎么知道連接到您的網(wǎng)絡(luò)的是一臺真實(shí)的物聯(lián)網(wǎng)設(shè)備,而不是假扮物聯(lián)網(wǎng)節(jié)點(diǎn)的某臺惡意入侵設(shè)備?”。這遭到了一些現(xiàn)實(shí)問題的反駁,比如“有人知道我的溫控器設(shè)定了幾度又有什么大不了的呢?”、“誰在乎是否有人知道我的燈是開著的?”、“誰想知道我的計(jì)步器記錄我走了幾步路呢?”。
如果您不僅考慮該設(shè)備訪問了自身的哪些數(shù)據(jù),還開始關(guān)心該設(shè)備已經(jīng)在網(wǎng)絡(luò)上 訪問了超出其本身范圍的哪些數(shù)據(jù),就會遇到更加實(shí)質(zhì)性的問題。幾宗廣泛報道的數(shù)據(jù)泄漏事故是由非安全網(wǎng)絡(luò)節(jié)點(diǎn)通過假冒身份造成的,而惡意入侵者可以偽裝成一個物聯(lián)網(wǎng)節(jié)點(diǎn)從而進(jìn)入公司網(wǎng)絡(luò)。一旦進(jìn)入網(wǎng)絡(luò),安全性變得更加脆弱,它們最終能夠訪問受害者的客戶數(shù)據(jù)庫并破壞生產(chǎn)流程。如果惡意入侵者除了訪問云服務(wù),還可能訪問并控制節(jié)點(diǎn)本身的操作,那么確定節(jié)點(diǎn)的身份(認(rèn)證)將成為一個極為重要的考慮因素。
盡管現(xiàn)有的SSL/TLS等網(wǎng)絡(luò)安全技術(shù)可以很好地保護(hù)未遭受入侵的邊緣節(jié)點(diǎn)與服務(wù)器之間的通信通道,它們卻不是無敵的--不能防止非入網(wǎng)型攻擊。可以很容易地看到,如果攻擊者控制了邊緣節(jié)點(diǎn),SSL/TLS將無濟(jì)于事。
嚴(yán)密的安全性包括三個基本要素,其首字母縮寫為“CIA”:
● 保密性-Confidentiality:儲存或以正進(jìn)行發(fā)送的數(shù)據(jù)都應(yīng)只供授權(quán)人可見;
● 完整性-Integrity:發(fā)送的消息不應(yīng)在到達(dá)目的地之前被修改;
● 真實(shí)性-Authenticity:可以向人們保證“消息的發(fā)送者正是聲稱的本人”。
滿足這些元素要求的技術(shù)有多種,其共性是使用密鑰或私鑰作為驗(yàn)證識別標(biāo)簽的獨(dú)特部分。如何管理這些密鑰的存儲和通信決定了系統(tǒng)的安全性。
目前面臨的挑戰(zhàn)是在實(shí)現(xiàn)邊緣節(jié)點(diǎn)安全性的同時確??捎糜?jì)算能力、內(nèi)存、電源以及預(yù)算維持在有限范圍內(nèi)。本文的目的是確定邊緣節(jié)點(diǎn)的關(guān)鍵安全策略,說明密鑰在所有安全解決方案中發(fā)揮的核心作用,并勾勒出成功的密鑰管理技術(shù)。
[page]
安全身份的級聯(lián)裨益
一旦某個節(jié)點(diǎn)或設(shè)備被確認(rèn)為是“可信的”,便可充分獲得無數(shù)的其它好處。包括安全通信、生態(tài)系統(tǒng)控制和安全存儲。
正如您所看到的,一旦可以驗(yàn)證物聯(lián)網(wǎng)設(shè)備與自稱相符,您就可以獲得只可在可信、安全的環(huán)境中才能擁有的好處。
邊緣節(jié)點(diǎn)的隱患:什么可能出錯?
在討論解決方案之前,我們需要更好地了解邊緣節(jié)點(diǎn)存在哪些隱患,以便提供有效的保護(hù)。這其中包含兩個方面:識別攻擊者侵害節(jié)點(diǎn)的方法和了解這種攻擊的后果。
攻擊模式
有四種方法來侵入邊緣節(jié)點(diǎn):通過網(wǎng)絡(luò)、通過外部端口、通過毗鄰攻擊(有時被稱為“旁路攻擊”),以及直接侵入設(shè)備。
網(wǎng)絡(luò)攻擊。只有網(wǎng)絡(luò)的入口得到最好的保護(hù)才能算是安全的。處在密切監(jiān)控下卻毫無保護(hù)的節(jié)點(diǎn)不再能夠幸免:Shodan1等網(wǎng)絡(luò)工具可以查找網(wǎng)絡(luò)、識別出所有未受保護(hù)的節(jié)點(diǎn)。雖然TLS保護(hù)可以發(fā)揮巨大作用,但是邊緣節(jié)點(diǎn)的TLS實(shí)現(xiàn)缺陷、加密算法未充分使用隨機(jī)數(shù)、未監(jiān)測出的惡意軟件、黑客專家發(fā)起的猛烈協(xié)議攻擊,甚至是最近發(fā)現(xiàn)的FREAK2攻擊等協(xié)議本身的弱點(diǎn)都可能導(dǎo)致細(xì)微的漏洞。即使在受到全面保護(hù)的網(wǎng)絡(luò)中,攻擊者也可以通過偽造固件更新并以其編寫的代碼替換合法代碼的方式來入侵防御薄弱的邊緣節(jié)點(diǎn)。
端口攻擊。(有線或無線的)網(wǎng)絡(luò)端口可能是小型基礎(chǔ)邊緣節(jié)點(diǎn)上唯一可用的連接。然而,復(fù)雜的邊緣節(jié)點(diǎn)可能配有插入不同傳感器的模塊端口、USB或其它端口,甚至是無線端口來連接一些配件、耗材(如墨盒),或是用于測試和調(diào)試設(shè)備。每種端口均提供了一個接入邊緣節(jié)點(diǎn)的機(jī)會。攻擊可能通過一個未使用的端口,或者一個可以被拆卸并更換為設(shè)計(jì)用于實(shí)現(xiàn)攻擊的其它硬件的配件來實(shí)施。與網(wǎng)絡(luò)端口不同,沒有既定的標(biāo)準(zhǔn)來保護(hù)這些端口。
毗鄰攻擊。不連接任何邊緣節(jié)點(diǎn)也可能發(fā)生復(fù)雜攻擊。通過在無保護(hù)裝置上進(jìn)行電源線竊聽,或是測量信號發(fā)送或振動,可以提取出密鑰信息。利用制造功率波動等非法行為或故障可以把設(shè)備置于無記錄非安全的狀態(tài)下。
物理攻擊。最后,堅(jiān)定的攻擊者可能會拆卸邊緣節(jié)點(diǎn)來探查其(有/無電源的)內(nèi)部電路,甚至取出并逆向處理芯片來獲取嵌入式存儲器的內(nèi)容。
全面的安全保護(hù)必須防范所有這些攻擊模式。
后果
當(dāng)然,我們只看護(hù)那些我們認(rèn)為有價值的東西。簡單的傳感器節(jié)點(diǎn)對于攻擊者來說似乎沒什么價值,但是成功攻擊的后果卻可以把整個網(wǎng)絡(luò)和連接到該網(wǎng)絡(luò)的所有東西都置于危險境地。
通過突破邊緣節(jié)點(diǎn),甚至是網(wǎng)絡(luò)的安全漏洞,攻擊者可以獲得其安全性應(yīng)受到保護(hù)的所有秘密,特別是實(shí)現(xiàn)安全性所需的密鑰。一旦獲取了鑰匙,便可突破包括加密和消息認(rèn)證在內(nèi)的所有其它安全保護(hù)。
一旦攻擊者控制了邊緣節(jié)點(diǎn),他或她就可以在不引發(fā)任何警報的情況下改變網(wǎng)絡(luò)節(jié)點(diǎn)的行為。對于其它的服務(wù)器而言,被控制的邊緣節(jié)點(diǎn)仍然是一個“可信”的實(shí)體,于是繼續(xù)主動向其泄露秘密而絲毫沒有發(fā)覺它們已經(jīng)落入壞人之手。
這種泄密會削弱消費(fèi)者對其財(cái)務(wù)、醫(yī)療,身份及其它數(shù)據(jù)的隱私和安全的信心。同時(在美國)還可能違反美國聯(lián)邦貿(mào)易委員會(FTC)對于貿(mào)易問題、美國醫(yī)治保險攜帶和責(zé)任法案(HIPAA)/美國食品藥品監(jiān)督管理局(FDA)對于醫(yī)療保健應(yīng)用,或美國證券交易委員會(SEC)/聯(lián)邦存款保險公司(FDIC)對于金融交易的規(guī)定。對空域控制和道路交通系統(tǒng)等網(wǎng)絡(luò)、電網(wǎng)、飛機(jī)和汽車的攻擊還可能影響公共安全,部分不安全會造成工業(yè)運(yùn)作的不可靠。
密鑰加密形成良好安全性的基礎(chǔ)
有很多種協(xié)議和方法可以解決各種安全問題,而所有這些均以一種或另一種方式使用了加密“密鑰”。密鑰類似于密碼,但有兩個關(guān)鍵不同:
● 密碼歸可以控制和隨意改變它們的用戶所有。相反,密鑰是系統(tǒng)固有的一部分,密鑰的某些方面必須保秘,用戶并不知道其安全事務(wù)中涉及的秘密或私鑰。
● 密碼往往很短,只有十幾個字左右。相比之下,鑰匙長而神秘,只能由計(jì)算機(jī)而不是人類來讀取。
密鑰可能是永久性的也可能是暫時性的,這意味著可以為特定的交易或通信生成、然后銷毀密鑰。在大多數(shù)情況下,密鑰是系統(tǒng)中的秘密。為保證這些系統(tǒng)的安全通信,必須在創(chuàng)建系統(tǒng)時插入預(yù)先共享的密鑰,或在部署之后實(shí)地進(jìn)行安全的密鑰交換。一旦獲知對方的密鑰,系統(tǒng)可以使用它們來驗(yàn)證消息或作為加密和解密算法的輸入。由于多臺終端設(shè)備可能擁有相同的密鑰,將設(shè)備序列號引入算法有助于確保如果單臺設(shè)備遭到黑客攻擊,其獲取的密鑰只在該設(shè)備所在系統(tǒng)有效,而不會傷及其它。(這種技術(shù)被稱為采用多元化密鑰的“對稱”認(rèn)證。
還有許多其它類型的交易。人們可能通過互聯(lián)網(wǎng)從某個公司購買一件商品,這種交易就沒有必要與其分享用戶的秘密。因此,最安全的做法是使用公鑰/私鑰對,即所謂的“非對稱”或“公鑰基礎(chǔ)設(shè)施(PKI)”系統(tǒng)。這意味著用戶有兩個密鑰:從來不與任何人分享的私鑰和共享的公鑰。它們之間通過復(fù)雜的數(shù)學(xué)關(guān)系(如RSA或橢圓曲線Elliptic Curve)關(guān)聯(lián)起來。關(guān)鍵是要確保用公鑰計(jì)算出私鑰是極端困難的。
基于大素?cái)?shù)分解的RSA密鑰已使用多年。橢圓曲線密碼機(jī)制(ECC)是一種新方法,由于可以用更短的密鑰達(dá)到類似的安全級別,因此減少計(jì)算量,而越來越受歡迎。這兩種密鑰都是所謂的數(shù)學(xué)“陷門”系統(tǒng),意味著其計(jì)算是極難反轉(zhuǎn)的。(他們因?yàn)楹苋菀淄ㄟ^,卻不可能反向走出而被稱之為“陷門”。)使用ECC和RSA(陷門函數(shù))分解來嘗試確定私鑰的值是行不通的。
安全性最基本的要求是避免密鑰落入未授權(quán)人的手中。絕不能“明文”(沒有加密)傳輸密鑰,而私鑰更是不能在任何時間任何范圍內(nèi)傳輸,包括在可以被攻擊者“嗅探”到簡單密鑰檢索操作的系統(tǒng)內(nèi)。用軟件實(shí)現(xiàn)的密鑰意味著存儲在RAM中的密鑰可以被攻擊者使用正確的工具探測到 -- 這是糟糕的實(shí)踐。
保護(hù)密鑰的最好方法是存儲在受保護(hù)的硬件,尤其是可以處理所有涉及密鑰計(jì)算的硬件中。這樣,密鑰不會離開它的藏身之處,并且如果措施得當(dāng),可以對任何外部觀察者屏蔽所有涉及密鑰的操作。如果必須與其它實(shí)體共享密鑰,那么它應(yīng)該是一個使用秘密密鑰計(jì)算出來并在通信時加密的(如在使用RSA的TLS協(xié)議情況下)臨時(會話)密鑰。私鑰不應(yīng)該離開它的保險柜。安全地共享會話密鑰的另一種方式是使用橢圓曲線密鑰交換機(jī)制(ECDH)等密鑰協(xié)議算法,安全地保護(hù)各方私鑰的同時只明文發(fā)送公鑰。
[page]
保護(hù)邊緣節(jié)點(diǎn)的正確方法
我們已經(jīng)介紹了邊緣節(jié)點(diǎn)受到攻擊的多種可能方式。所有下列措施均涉及以一種或另一種方式保存密鑰來確保挫敗這些攻擊。雖然不可能100%地保證安全,這些措施至少提供了可能的最佳保護(hù),并確保攻擊者無法獲取關(guān)鍵系統(tǒng)的密鑰。每個方法都滿足CIA重要元素的要求:
● 證明進(jìn)入網(wǎng)絡(luò)的所有訪客的身份。(真實(shí)性)
● 加密消息。(機(jī)密性)
● 為所有消息附加消息認(rèn)證碼(MAC)以證明消息沒有在途中被篡改。(完整性)
● 驗(yàn)證試圖附加到節(jié)點(diǎn)的所有配件。(真實(shí)性)
此外,可以采取以下措施防止“毗鄰”或“旁路”攻擊。這些都是可以在整個系統(tǒng)或只在某一關(guān)鍵子系統(tǒng)中采用的實(shí)用方法。
● 將密鑰存儲在受到保護(hù)的硬件中,確保無電路接觸密鑰。
● 屏蔽系統(tǒng)以防止電磁輻射泄露密鑰信息。
● 添加特別電路以挫敗監(jiān)控功率或其它信號的企圖。其中可能包括虛假計(jì)數(shù)器或帶有隨機(jī)元素爭奪有用信息的電路。
● 加密存儲的密鑰。盡管可以防止電路接觸密鑰,一個堅(jiān)定的攻擊者可能會嘗試剝離芯片外層來查看其內(nèi)部的嵌入式閃存,并以這種方式獲取密鑰。加密可以化解這種攻擊。
● 避免使用不必要的端口。有些端口看起來是有用的,例如調(diào)試端口;但是,如果存在不使用它的可能,那么沒有該端口,系統(tǒng)反到更加安全。
在整個制造過程中保護(hù)密鑰也極其重要。一個深思熟慮的方案必須要保持密鑰從其誕生到插入密鑰存儲裝置的全程機(jī)密性。使用加密格式并在受保護(hù)硬件中存儲密鑰的硬件安全模塊(HSM)是一個絕佳的、行之有效的方法。
保護(hù)密鑰的真正解決方案
Atmel公司以加密元器件4的形式提供一系列的加密解決方案。作為硬件加密加速器的這些元器件往往注重的是其幫助主機(jī)處理器擺脫復(fù)雜數(shù)學(xué)算法的有用性。但還有一個更重要的方面:加密操作涉及到的密鑰必須存儲在隱蔽的受到保護(hù)的硬件中,確保密鑰在軟件或未受保護(hù)的硬件中進(jìn)行同樣的計(jì)算而可能暴露的方式下永不可見。
Atmel的加密元器件包括ATSHA204A和ATAES132A,前者是基于安全哈希算法(SHA)對稱性認(rèn)證、對成本敏感的理想選擇,后者使用高級加密標(biāo)準(zhǔn)(AES)算法進(jìn)行對稱性認(rèn)證、同時提供32K字節(jié)安全的EEPROM)。Atmel公司的最新產(chǎn)品ATECC508A,在其前代產(chǎn)品ATECC108A上添加了橢圓曲線密鑰交換(ECDH)5密鑰協(xié)議?;跈E圓曲線密碼機(jī)制(ECC)的這兩款元器件都內(nèi)置有基于橢圓曲線數(shù)字簽名算法(ECDSA)6的非對稱認(rèn)證能力,所有四款加密元器件均以受保護(hù)的基于硬件的安全密鑰存儲為特征,這正是最強(qiáng)的優(yōu)勢所在。
同時擁有橢圓曲線數(shù)字簽名算法(ECDSA)和橢圓曲線密鑰交換(ECDH)的ATECC508A是保障物聯(lián)網(wǎng)邊緣節(jié)點(diǎn)安全的完美選擇。只需向物聯(lián)網(wǎng)節(jié)點(diǎn)等含有微控制器的任何系統(tǒng)中添加一個微小的ATECC508A,即可為該系統(tǒng)方便有效地帶來保密性、完整性和認(rèn)證機(jī)制。
圖3.ATECC508A與任何微處理器配合使用能夠安全地提供保密性、數(shù)據(jù)完整性和真實(shí)性。
只需很小的成本就可以將ATECC508A添加到任何微控制器中。它采用的單總線或二線制串行總線(I2C)僅連接最少的引腳數(shù),封裝規(guī)格可以小到2毫米×3毫米。小于150納安的睡眠電流使其功率消耗極低。
加密元件接收處理器提供的輸入,在內(nèi)部執(zhí)行計(jì)算并返回簽名、認(rèn)證、會話密鑰等計(jì)算結(jié)果,而不會泄漏計(jì)算方法。高品質(zhì)的真隨機(jī)數(shù)發(fā)生器(TRNG)有助于成功防止交易被回放。內(nèi)部序列號有助于確保密鑰的唯一性,而大容量的計(jì)數(shù)器則用于追蹤認(rèn)證過程。
物理和加密的對抗措施使得攻擊者無法通過嗅探操作或探測裝置來獲取密鑰。
● 整個芯片均覆蓋著蛇形金屬圖案,阻止內(nèi)部信號釋放被外部檢測到,并提供視覺障礙,阻止攻擊者打開包裝觀察和探測操作。保護(hù)殼與其余電路通電相連,如果它被攻破,該芯片將不再運(yùn)行,防止堅(jiān)定的攻擊者探測電路節(jié)點(diǎn)以獲取密鑰。
● 調(diào)節(jié)器和計(jì)數(shù)器用于混淆電源和信號特征。
● 沒有額外的內(nèi)部測試和調(diào)試襯墊,所以即使打開包裝也不會發(fā)現(xiàn)額外的接入點(diǎn)。
Atmel加密元器件的一個重要好處是,通過使用簡單的模塊(可從Atmel公司購置)可以很容易地在生產(chǎn)過程中進(jìn)行配置,確保密鑰和簽名證書安全插入到加密元器件。也可以由Atmel或Atmel公司的授權(quán)經(jīng)銷商來進(jìn)行配置。
結(jié)語
安全性是成功部署物聯(lián)網(wǎng)的基礎(chǔ)。目前,邊緣節(jié)點(diǎn)是確保物聯(lián)網(wǎng)安全性中最薄弱的環(huán)節(jié),而加密密鑰的保護(hù)鎖定了邊緣節(jié)點(diǎn)。實(shí)現(xiàn)鎖定的最佳方式是采用受保護(hù)的硬件。這是保持這些密鑰和其它秘密遠(yuǎn)離窺探的唯一途徑。
相關(guān)閱讀:
用WiFi路由器給物聯(lián)網(wǎng)設(shè)備“充點(diǎn)電”!
物聯(lián)網(wǎng)產(chǎn)品隱私設(shè)計(jì)為何如此重要?
如何保護(hù)物聯(lián)網(wǎng)微控制器的實(shí)時操作系統(tǒng)安全?