對稱加密 FPGA 物聯網 PTP

保障加密演算法真實性 PUF/PKI聯手建構安全M2M應用

2015-05-04
目前,世界上能夠進行機器對機器(M2M)通訊的元件正呈現爆炸性地增長。據思科(Cisco)預測,到2020年將有五百億台裝置會連接到網際網路,其中多數裝置是無人操作的或自主運行的,即所謂物聯網(IoT)。此外,M2M通訊也可利用其他類型的網路來傳輸資料,如通過蜂巢電話基礎設施、使用藍牙或近場通訊(NFC)的個人區域網路,以及更專業的網路,比如航空管制、醫療器械及車輛(V2X)網路。
現代所有的M2M通訊幾乎都是利用這幾種無線通訊協定及網際網路和蜂巢(相較於舊式安全專用線路)等公共網路,因此很容易遭受惡意監控和篡改,因此,若要安全、安心地使用聯網機器,必須採取相應的防護對策來抗衡這些攻擊(圖1)。

圖1 A)靜態隨機存取記憶體(SRAM)啟動值用於計算個人密匙,利用註冊階段保存的啟動碼來確保該密匙的可靠性。B)元件製造商根據個人密匙計算出一個公用密匙並加以認證,賦予每個元件一個可以認證、全球唯一且不可仿製的(Unclonable)身份。

安全服務有幾種,其中兩種是機密性和真實性(Authenticity)。目前,機密性通常以加密方式實現,防止未經授權的人員知道這些資訊;真實性指的是送達的資訊完好無損,沒有未檢測出的錯誤,而且是來自已知(信任)源。雖然機密性是最著名的加密服務,但是在M2M通訊中,真實性通常更重要。

例如,在建立安全的網路時間源時,隱藏有效載荷並不重要(正確的時間並不是秘密);更重要的是確保接收的時間值未被篡改,並且是來自於信任源而非競爭對手。這觀點與利用IEEE 1588精密時間協議(PTP)標準以確保時間同步安全性的網際網路RFC7384一致。

對稱加密風險高 混合運算更有保障

為了證明真實性,資訊發送者必須有一個秘密(Secret),當這個秘密應用於資訊時,接收者可以驗證這個秘密,從而證明訊息的來源是正確的。

加密的方法主要有兩種。在對稱加密(Symmetric Cryptography)中,發送機器和接收機器共用通常預先置於這兩台機器中的密匙,發送者採用根據有關資訊運算出的資訊鑑別代碼(Message Authentication Code, MAC)和密匙,對資訊進行標記,然後接收方使用同一密匙來進行驗證。

對於使用少量節點的虛擬私人網路,這種加密方法已足以應付;但對於更大型的網路,對稱加密效果並不是很好:若所有節點使用同一密匙,便會帶來令人無法接受的安全風險;或者每一對機器都使用不同的密匙,那麼隨著節點數量的增加,密匙數量便會呈指數級增長,因此,這種方法很難處理。另一種比較好的解決方案是採用不對稱加密或公共密匙加密和混合加密。

在非對稱加密中,資訊的發起者(Originator)具有一個僅這個節點知道的私有密匙,發送者利用其私有密匙對將要發送的資訊進行數位標記,當資訊被接收時,利用發送者的相關公共密匙對數位簽章進行驗證,便可以證明真實性。

由於只有一台而不是兩台或多台元件必須儲存(私有)密匙,因此可以提高安全性。任何數量的元件都可以使用這個公共密匙,該密匙可以隨著資訊傳輸,不需要由接收者保密或永久地儲存。在被入侵的情況下,只有受到影響的元件須要脫離網路及更換密匙對(Replacement Key Pair),整個系統可以根據節點數量進行線性擴展,這是超越對稱密匙系統的一大改進。

在混合加密中,私有密匙會被用來建立一個暫時的對稱會話密匙,然後採用對稱MAC標記來提供真實性。混合加密除了運算效率通常更高之外,整體效果與單純的非對稱密匙方法相同,還可以做為可提供機密性的加密/解密密匙。

PUF打造獨有私有密匙

然而,這種方法仍然存在一些問題。首先是如何在來源機器中建立和保護用於創建身份的私有密匙及數位簽章(或會話密匙),其次是如何分配和確保用於檢查那些簽名的相關公共密匙的真實性。

用於識別一台元件的最佳私有密匙,就是由稱為物理不可仿製功能(Physically Unclonable Function, PUF)計算得出的密匙。PUF是以元件製造期間有效且無意產生的物理特點為基礎,這些隨機製造變化十分微小且不受控制,結果成為每個元件獨一無二的特點。

雖然這些變化無法預先確定或控制(即仿製),但是,如果它們可以用夠低的雜訊測量或夠穩定,便可用於PUF。這些測量可用於構建該元件特有的私有密匙。PUF是無生命元件的「生物量測特徵」,與人類的指紋或視網膜類似,正如人類雙胞胎由相同DNA製造,但卻擁有獨特的指紋。

PUF的概念也很相似,名義上採用相同藍本和製程生產的無生命物體固有的PUF,其實也是獨一無二的,但由於無法避免的微小變化,在一定程度上是不可能進行完美的仿製,PUF正是利用這一特性來工作。

由PUF創建的不可仿製的元件身份,包括由元件製造商認證的密匙;而在不可仿製元件身份的基礎上會形成一信任鏈,讓每個系統整合者/操作人員可以對自己獨立的公匙基礎設施(PKI)進行認證,因此,他們製造和使用的機器可以與他們授權的其他機器和伺服器安全地通訊,而拒絕與其他機器連接。

具不可仿製性 積體電路PUF適於M2M應用

PUF具有優異的安全特性,可以說是最好的非揮發性密匙儲存技術,由於製造過程中的變化通常在原子層面,無論怎樣嘗試也不可能製造具有完全相同特性的兩台元件,基於不可仿製的特性,對手很難提取基於PUF的密匙。

PUF有多種形式,從藥瓶上的防篡改標籤到電子元件。積體電路PUF可以建基於記憶體元件、邏輯延遲、電阻或其他物理因素,是適用於M2M應用最有效的PUF。

SRAM PUF是具備最佳特性和可靠的記憶體PUF類型之一,建立在積體電路上,比如智慧卡晶片或現場可編程閘陣列(FPGA)基礎上的PUF,透過測量SRAM區塊中位元的隨機啟動狀態而工作的。

每個SRAM位元包括兩個名義上相等的交叉耦合的逆變器。但是,由於實際上沒有兩個逆變器是完全相同的,因此當首次施加電源時,每個SRAM位元的啟動狀態將優先選擇一種狀態而非另一種狀態,結果將優先啟動「一」或「零」狀態。這種優先性在很大程度上是在積體電路製造期間就已經存在,與每個位元無關。

對於那些逆變器非常平衡的位元,熱雜訊可能克服固有的優先性,該位元將偶爾從其正常狀態的相反狀態啟動,但是,在大多數位元中,隨機固有(靜態)優先性足夠強大,它將克服任何動態雜訊。

溫度、使用壽命和其他環境因素也會產生雜訊,而PUF設計中已考慮到雜訊,因此使用了糾錯技術。當PUF首次註冊時,對SRAM位元的啟動值拍攝快照(Snap-shot)並計算出糾錯代碼,即啟動碼(或者有時稱為助手資料),從而在所有隨後的上電週期中,可以對雜訊位元進行校正和恢復原快照中的數值。因此,每次打開時也可以重新構建相同的密匙。

SRAM PUF的好處是,當電源關閉時,沒有任何已知技術能夠預測SRAM位元的啟動狀態,所以秘密從該元件有效地消失;如果啟動碼歸零(即被擦除),不管之後對該元件進行如何詳盡的分析,也無法重建該PUF密匙,這是另一個有利的安全屬性。

為了解實際值,用於構建單一高品質256位元密匙的SRAM可以採用SRAM的1?2k位元組,理想的情況是,每個位元同等地選擇一或零(即50:50機率)。在這種情況下,每個位元據說具有100%的熵。由於較小的偏差和相互關係,現實世界中記憶體位元可能僅有95%的熵。

相較於原來註冊的記憶體圖像,動態雜訊及環境影響會造成位元反轉(Bit-flip)。在理想的打開至打開情況中(如恆定溫度),雜訊位元的數量可能會在3?5%的範圍內。

在所有條件下,包括溫度和時間,雜訊可能增加到12~15%,但仍然在改錯碼的範圍之內(25%或更高)。SRAM PUF可能是具有最佳特點和最可靠的PUF技術,可以用於保證所有環境下和全生命週期內完美的密匙重建,錯誤率低至十億分之一,這種不常發生的故障可以檢測出來的機率很高,通常只須重試便可以得到正確的密匙。

數位簽章供驗證 公共密匙真實性掛保證

要如何分配和確保相關公共密匙是真實的?這需要PKI。在PKI中,證書授權(CA)中心利用自己的私有密匙對網路內所有認可元件的公共密匙進行數位簽章,從而為其進行認證。最常用的認證格式是X.509標準定義的格式。當元件傳輸數位簽章資訊(或創建會話密匙)時,它也可以發送自己的X.509公共密匙認證,讓接收方可以利用來自認證的公共密匙來驗證訊息上的數位簽章。

如果資訊已經被篡改,其數位簽章將無法正確驗證。接收方還必須檢查其正在使用的公共密匙是否真實,如果公匙是隨資訊發送而非接收方預先內置,則特別須要進行檢查。

這一點可通過利用CA的公共密匙檢查X.509認證上的CA數位簽章來完成,而公共密匙通常由製造商或網路營運業者(Network Operator)預先置於每台裝置中,天生就是可以信任的,因此創建了以階層式認證為基礎的(Hierarchical Certificate-based)信任鏈;由於發送元件應用的簽名經過認證,因此資訊被證明是真實的。

再加上用於進行這種認證的公共密匙已通過了CA認證,而CA的公共密匙是原先安裝在所有元件內的,因此公匙被證明是真實的。

網路中每台合法機器的身份都可以被確認,且具有非常高的可信度,則資訊可以在高可信度的情況下分發給這些機器;反過來說,偽冒機器和偽造資訊是很容易被檢測出來的。

SmartFusion2系統單晶片(SoC)FPGA和IGLOO2 FPGA元件系列是公開市場上採用PUF技術的元件的實例。FPGA和SoC FPGA固有的靈活性和數量較多的I/O引腳,為M2M應用中提供了諸多優勢。

這些特定FPGA元件中的SRAM PUF以晶片製造商為認證授權中心,為每個元件建立了預先配置的認證身份。此外,這些元件還具有內建的加密功能,比如適用於先進加密標準(AES)、安全散列演算法(SHA)、HMAC的硬體加速器和橢圓曲線加密(ECC),以及加密級真正隨機位元產生器。

這些功能可用於建立使用者的PKI,利用使用者自己的認證授權中心,對網路中的每台合法機器進行認證;每台機器都具有一個信任鏈,從使用者充分保護的根-CA(Root-CA)密匙直到FPGA中PUF創建的原子級別之高確信度身份。

PUF和PKI可共同為虛擬個人網路中的每台機器建立起穩固的身份和關聯,並保護M2M和IoT應用中的機器和通訊,讓企業可安全、安心地使用。

(本文作者任職於美高森美)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!