萬物互聯(lián)時代,如何確保M2M通信安全?
使用物理不可克隆功能(PUF)確保機(jī)器對機(jī)器通信安全
本文引用地址:http://butianyuan.cn/article/201808/387899.htm目前,世界上能夠進(jìn)行機(jī)器對機(jī)器(M2M)通信的器件數(shù)量呈現(xiàn)爆炸性增長趨勢。思科公司經(jīng)常被引用的一項(xiàng)預(yù)測指出,到2020年將有500億臺器件連接全球互聯(lián)網(wǎng),其中多數(shù)器件是無人操作或自主運(yùn)行的器件,即所謂物聯(lián)網(wǎng)(IoT)。此外,M2M通信也利用其它類型的網(wǎng)絡(luò):通過蜂窩電話基礎(chǔ)設(shè)施、使用藍(lán)牙或近場通信(NFC)的個人區(qū)域網(wǎng)絡(luò),以及更專業(yè)的網(wǎng)絡(luò),比如航空管制、醫(yī)療器械及車輛(V2x)網(wǎng)絡(luò)?,F(xiàn)代幾乎所有M2M通信也都利用多個無線通信協(xié)議,及互聯(lián)網(wǎng)和蜂窩(對比舊式安全專用線路)等公共網(wǎng)絡(luò),因此很容易遭遇惡意監(jiān)控和篡改,若要安全、放心地使用聯(lián)網(wǎng)的機(jī)器,便必須采取相應(yīng)的防護(hù)措施。
A) SRAM啟動值用于計(jì)算私有密匙,通過注冊階段保存的“激活碼”確保該密匙可靠
B)根據(jù)私有密匙,器件制造商計(jì)算和認(rèn)證一個公有密匙,賦予每個器件一個可以認(rèn)證的不可克隆的全球唯一的身份標(biāo)識.
安全服務(wù)有多種,其中兩種分別是保密性和可靠性。目前,保密性通常通過加密實(shí)現(xiàn),防止信息被未經(jīng)授權(quán)的人員獲取??煽啃灾傅氖撬瓦_(dá)的信息完好無損,沒有未檢測出的錯誤,而且來自一個已知的(可信任)源。雖然保密性是最被關(guān)注的加密業(yè)務(wù),但通常可靠性在M2M通信中才是更重要的,例如在建立安全的網(wǎng)絡(luò)時間源時,隱藏的有效載荷并不重要(正確的時間并不是秘密);重要的是確保接收的時間值未被篡改,并且來自可靠信息源而非不可靠源。這一點(diǎn)與利用IEEE 1588精密時間協(xié)議(PTP)標(biāo)準(zhǔn)以確保時間同步安全性的互聯(lián)網(wǎng)RFC7384的觀點(diǎn)一致。
我有一個秘密
為了證明真實(shí)性,信息發(fā)送者必須有一個秘碼,當(dāng)這個秘碼應(yīng)用于信息時,接收者可以驗(yàn)證這個秘碼,從而證明信息來源于正確的來源。加密的方法主要有兩種。在對稱加密中,發(fā)送機(jī)器和接收機(jī)器共享通常預(yù)先置于這兩臺機(jī)器中的密匙,發(fā)送者采用根據(jù)信息計(jì)算出的信息鑒別代碼(MAC)和密匙,對信息進(jìn)行“標(biāo)記”,接收方使用同一密匙進(jìn)行驗(yàn)證。對于使用少量節(jié)點(diǎn)的虛擬私有網(wǎng)絡(luò),這種加密方法足以應(yīng)付。對于更大型的網(wǎng)絡(luò),對稱加密效果并不是很好:若所有節(jié)點(diǎn)使用同一密匙,便會存在令人無法接受的安全風(fēng)險;或者每一對機(jī)器都必須使用不同的密匙,但由于隨著節(jié)點(diǎn)數(shù)量的增加,密匙數(shù)量呈指數(shù)級增長,因此這種方法很難處理。更好的解決方案是采用不對稱加密或“公共密匙”加密和混合加密。
A)SRAM位由兩個名義上相同的交叉耦合反相器組成
B)制造工藝造成的隨機(jī)微小的變化導(dǎo)致每個SRAM位具有優(yōu)選的啟動狀態(tài),用于計(jì)算密匙
在非對稱加密中,信息創(chuàng)建者具有一個僅這個節(jié)點(diǎn)知道的私有密匙。發(fā)送者利用其私有密匙對將要發(fā)送的信息進(jìn)行數(shù)字標(biāo)記。當(dāng)信息被接收時,利用發(fā)送者的相關(guān)公共密匙對數(shù)字簽名進(jìn)行驗(yàn)證,便可以證明真實(shí)性。由于只有一臺而不是兩臺或多臺器件必須存儲(私有)密匙,因此安全性得到提高。任何數(shù)量的器件都可以使用這個公共密匙,該密匙可以隨著信息傳輸,不需要由接收者保密或永久地儲存。在遭遇入侵的情況下,只有受影響的器件需要脫離網(wǎng)絡(luò)及更換密匙對。整個系統(tǒng)可以根據(jù)節(jié)點(diǎn)數(shù)量線性擴(kuò)展,這是超越對稱密匙系統(tǒng)的重大改進(jìn)。
在混合加密中,私有密匙用于創(chuàng)建暫時的對稱會話密匙,然后采用對稱MAC標(biāo)記來提供真實(shí)性?;旌霞用艹?jì)算效率通常更高之外,整體效果與單純的非對稱密匙方法相同。這種會話密匙還可以作為加密/解密密匙,從而提供機(jī)密性。
該方法仍然存在一些問題:首先,如何在源機(jī)器中創(chuàng)建和保護(hù)用于創(chuàng)建身份的私有密匙及數(shù)字簽名(或會話密匙),其次,如何分配和確保用于檢查那些簽名的相關(guān)公共密匙是真實(shí)的。
用于識別一個器件的最好的私有密匙,就是利用所謂的物理不可克隆功能(PUF)計(jì)算得出的密匙。PUF基于器件生產(chǎn)制造期間隨意生成的物理特性,由于加工過程中微小的不可控的隨機(jī)變化,使得這些特點(diǎn)成為每臺器件獨(dú)一無二的特點(diǎn)。雖然這些變化無法預(yù)先確定或控制(即克隆),但是,如果它們可以在足夠低的噪聲中測量或足夠穩(wěn)定,則它們可用于PUF。這些測量可用于構(gòu)建該器件特有的私有密匙。PUF是無生命器件的“生物測定特征”,與人類的指紋或視網(wǎng)膜類似。與由相同DNA“制造”卻具有獨(dú)特指紋的人類雙胞胎一樣,采用相同藍(lán)本和工藝制造的無生命物體固有的PUF也是獨(dú)一無二的。由于無法避免的小的變化,在一定程度上,完美的克隆實(shí)際上是不可能的,而PUF正時利用了這一事實(shí)來提供了優(yōu)勢。
通過PUF創(chuàng)建的器件不可克隆身份標(biāo)識和密鑰,被器件制造商用來建立信任鏈,使每個系統(tǒng)集成商/運(yùn)營商可以對自己獨(dú)立的PKI進(jìn)行認(rèn)證,這樣他們制造和使用的機(jī)器可以與經(jīng)過他們授權(quán)的其它機(jī)器和服務(wù)器安全地通信,而把其它設(shè)備則會被拒諸門外。
絕對沒有相同的兩次
PUF具有優(yōu)異的安全特性,可以說是最好的非易失性密匙儲存技術(shù)。由于制造差別通常是原子級別的,所以除不可克隆之外(無論怎樣嘗試也不可能制造具有相同特性的兩個器件),對手也很難提取基于PUF的密匙。PUF有多種形式,從藥瓶上的防篡改標(biāo)簽到電子器件。集成電路PUF可以基于存儲器元件、邏輯延遲、電阻或其它物理因素,它們是適用于M2M應(yīng)用的最有用的PUF。
SRAM PUF是一種最具特色和可靠性的存儲器PUF類型,通常創(chuàng)建在集成電路芯片上,比如智能卡芯片或FPGA上。它通過測量SRAM模塊中的位的隨機(jī)啟動狀態(tài)來生成特定的數(shù)據(jù)。每個SRAM位包括兩個名義上相同的交叉耦合的反相器,但由于實(shí)際上沒有兩個反相器完全相同,因此,當(dāng)開始施加電源時,每個SRAM位的啟動狀態(tài)將優(yōu)先選擇一種狀態(tài)而非另一種狀態(tài),結(jié)果將優(yōu)先啟動“1”或“0”狀態(tài)。這種優(yōu)先性很大程度上是在集成電路制造期間已經(jīng)“固有”的,與每個位無關(guān)。
對于那些反相器平衡性異常良好的位,熱噪聲可能克服固有的優(yōu)先性,該位將偶爾從其正常狀態(tài)的相反狀態(tài)啟動,但是,在大多數(shù)位中,隨機(jī)固有(靜態(tài))優(yōu)先性足夠強(qiáng)大,它將克服任何動態(tài)噪聲。溫度、使用壽命和其它環(huán)境因素也會產(chǎn)生噪聲。PUF設(shè)計(jì)中已經(jīng)考慮了噪聲的影響,利用糾錯技術(shù)來保證其可靠性。當(dāng)PUF首次登記時,對SRAM位的啟動值拍攝快照,并計(jì)算出糾錯代碼,即激活碼(有時稱為輔助數(shù)據(jù)),從而在所有隨后的上電周期中,可以對有噪聲位進(jìn)行校正并恢復(fù)原快照中的數(shù)值。因此,每次打開時也可以重新構(gòu)建相同的密匙。SRAM PUF的一個很大的好處是,當(dāng)電源關(guān)閉時,秘密從該器件中迅速消失:當(dāng)電源關(guān)閉時,沒有任何已知技術(shù)能夠預(yù)測SRAM位的啟動狀態(tài)。在安全方面另一個好的屬性就是如果激活碼歸零(即被擦除),不管之后對該器件進(jìn)行如何詳盡的分析,也無法重建該P(yáng)UF密匙。
構(gòu)建一個高質(zhì)量的256-位加密密匙的可以采用SRAM的1-2k字節(jié)。理想的情況是,每個位同等地選擇1或0(即50:50的幾率),這種優(yōu)先性與所有其它位無關(guān)。在這種情況下,每個位具有100%的熵。由于較小的偏差和相互關(guān)系,現(xiàn)實(shí)世界中的存儲位可能僅有95%的熵。與原來登錄的儲存圖像進(jìn)行對比,動態(tài)噪聲及環(huán)境影響會造成位反轉(zhuǎn)(bit-flip)。在理想的打開至打開情況中(例如,恒定溫度),有噪位的數(shù)量可能是3-5%。在所有條件,包括溫度和時間,噪聲可能增加到12-15%,仍然位于糾錯碼的范圍之內(nèi)(25%或更高)。SRAM PUF可能是最有特點(diǎn)和最可靠的PUF技術(shù),可以設(shè)計(jì)用于保證在所有環(huán)境下和全生命周期內(nèi)完美的密匙重建,錯誤率低至十億分之一。這種不常發(fā)生的故障可以檢測出來的幾率很高,通常只需要重試便可以得到正確的密匙。
我們已經(jīng)回答了第一個問題:“如何最好地創(chuàng)建和保護(hù)用于創(chuàng)建數(shù)字簽名的私有密匙和會話密匙”;第二個問題是如何分配公共密匙和確保其真實(shí)性。
基礎(chǔ)設(shè)施
這需要公匙基礎(chǔ)設(shè)施(PKI)。在PKI中,證書授權(quán)中心(CA)利用CA自已的私有密匙對網(wǎng)絡(luò)內(nèi)所有批準(zhǔn)器件的公共密匙進(jìn)行數(shù)字簽名,從而對其進(jìn)行認(rèn)證。最常用的認(rèn)證格式是X.509標(biāo)準(zhǔn)定義的格式。當(dāng)器件傳輸數(shù)字簽名信息(或創(chuàng)建會話密匙)時,它也可以發(fā)送自己的X.509公共密匙認(rèn)證,讓接收方可以利用來自認(rèn)證的公共密匙來驗(yàn)證信息上的數(shù)字簽名。
如果信息已經(jīng)被篡改,其數(shù)字簽名將無法正確驗(yàn)證。接收方還必須檢查其正在使用的公共密匙是否真實(shí),如果公匙是隨信息發(fā)送的而并非接收方預(yù)先內(nèi)置的,則特別需要進(jìn)行檢查。這一點(diǎn)可通過CA的公共密匙以檢查X.509認(rèn)證上的CA數(shù)字簽名來完成,而公共密匙通常由制造商或網(wǎng)絡(luò)操作員預(yù)先置于每臺器件中,所以是固有可信任的,因此創(chuàng)建了一條基于等級認(rèn)證的信任鏈;由于發(fā)送器件應(yīng)用的簽名經(jīng)過認(rèn)證,因此信息被證明是真實(shí)的;由于用于進(jìn)行這種認(rèn)證的公共密匙通過了CA認(rèn)證,而CA的公共密匙是原先安裝在所有器件內(nèi)的,因此具備固有可信性。網(wǎng)絡(luò)中每臺合法機(jī)器的身份都可被辨認(rèn),而且確信度非常高,所以,把信息分發(fā)給這些機(jī)器的可信度很高。反過來說,偽冒機(jī)器和偽造信息很容易被檢測出來。
開放市場上使用PUF技術(shù)的器件的最佳實(shí)例就是美高森美的SmartFusion2 SoC FPGA和IGLOO2 FPGA器件系列。由于其固有的靈活性和數(shù)量較多的I/O引腳,F(xiàn)PGA和SoC FPGA在M2M應(yīng)用中提供了諸多優(yōu)勢。這些特定FPGA器件中的SRAM PUF以美高美森作為認(rèn)證授權(quán)中心,為每個器件建立了預(yù)先配置的認(rèn)證身份。這些器件還具有內(nèi)置加密功能,比如適用于AES、SHA、HMAC和橢圓曲線加密(ECC)的硬件加速器,以及加密級真隨機(jī)位生成器。這些功能可用于建立用戶PKI,利用用戶自己的認(rèn)證授權(quán)中心對網(wǎng)絡(luò)中的每臺合法機(jī)器進(jìn)行認(rèn)證;每臺機(jī)器也都具有一個信任鏈,從用戶保護(hù)很好的根CA密匙直到美高美森FPGA中PUF創(chuàng)建的原子級別的高確信度身份標(biāo)識。PUF和PKI互相配合,一起為虛擬私有網(wǎng)絡(luò)中的每臺設(shè)備建立穩(wěn)固的身份標(biāo)識和關(guān)聯(lián),這樣,設(shè)備和通信都得到了很好的保護(hù),可以安全、放心地在M2S和IOT系統(tǒng)中使用。
評論