利用TPM 硬體、TSS與安全技術保護網路設備

作者 : Infineon Technologies

開發人員可將諸如英飛凌的OPTIGA可信賴平台模組(TPM)與TCG的TPM軟體堆疊(TSS)結合起來,為網路設備提供安全防護,提高網路設備的安全性...

電腦、伺服器和操作人員曾經是攻擊者的主要目標。如今,隨著互連互通性和對網路的依賴性日益增強,網路設備已成為被頻繁攻擊的目標,特別是針對大型工商業組織甚至政府機構的複雜攻擊。於是,未受保護的路由器、交換機、防火牆、閘道和無線接取點紛紛成為最新的攻擊目標。

可信賴運算組織(TCG)的開放文檔「TCG 關於使用TCG 技術保護網路設備的指導原則」 講述了架構師和設計人員該如何保護網路設備。雖然該TCG文檔提供了理論,但要實現這種保護還必須付出更多實際行動。為了達到商業、工業和政府網路中網路設備所需的可信賴度和安全性,必須瞭解哪些概念和行動措施?

網路設備面臨的威脅及其風險

商業企業、工業組織和政府經常受到攻擊。最常見的攻擊目標是電腦伺服器及筆記型電腦和手機等終端使用者設備。然而,越來越多的攻擊者正尋找非傳統因而缺少防範的目標,如網路設備。如果攻擊成功,正常的硬體、韌體、軟體或配置即被惡意的取代,從而導致網絡設備遭到破壞。

被破壞的網路設備因為以下幾個原因而變得危險。其一,被破壞的網路設備可被用來監視通訊。其二,經由網路設備發送的訊息可被悄無聲息地篡改,使得正常操作遭到擾亂。其三,訊息可被刪除,使得正在進行的攻擊通知被隱藏。其四,關鍵配置資料(如DHCP訊息、DNS應答和軟體更新等)可被篡改,以致接收惡意篡改資料的系統被感染。其五,恐怕連VPN和VLAN網路也可能被攻破。而很少有人能想到網路設備可能遭到破壞。

網路設備可能從很多方面遭到破壞。第一,設備從一開始可能就是假冒的。第二,設備在供應鏈中可能遭到破壞。

二手的或者來自「灰色市場」的網路設備尤其可能如此。第三,部署之後的外部攻擊可能導致網路設備感染病毒。第四,受信賴的內部人員可能篡改網路設備。

被破壞的網路設備可帶來極大的風險。機密資料可能被竊取,從而導致資料洩露。運行於獨立的虛擬區域網路(VLAN)中的樓宇自動化系統(如門鎖和火警等)可能受到影響。防火牆可能被攻破。甚至如今的工業控制系統也常常是基於乙太網路或遺留網路中的傳輸控制協定/網際網路協定(TCP/IP)。這些系統都有交換機和路由器等網路設備。由於工業系統很少更新,所以它們往往容易遭到最常見的攻擊,因而需要依賴於網路設備來為它們阻擋攻擊。而正如我們所看到的,這一阻擋攻擊的屏障卻可能因為網路設備本身遭到破壞而被衝破。

所幸的是,網路設備製造商已經開始部署可信賴運算技術來保護他們的產品免受攻擊。本文接下來就將介紹這些可信賴運算技術,探討如何利用它們來重建使用者對網路設備的安全性和完整性的信心。

建議的對策

可信賴運算標準

由運算、網路、軟體和其他安全專家組成的可信賴運算組織,在將近二十年裡都在致力於制定開放的可信賴運算標準。這些標準的基礎是一個安全性群組件,它被稱為可信賴平台模組(TPM)。鑒於第一個被廣泛使用的TPM規範可以追溯到2003年,所以TPM並不是新鮮事物。事實上,TPM在許多領域(如PC)都有廣泛的應用,並已成為一項國際標準(ISO/IEC 11889)。關於TPM,有個令人匪夷所思的問題是,有些設備製造商已在他們的設備中部署TPM,但並未發揮出它的功能。更好地瞭解問題和解決辦法少能讓這個問題得到改觀。

TPM可提供一種基於硬體的信任根,它比單純依靠軟體的方法更能抵抗攻擊。如今,隨著最新版TPM 2.0規範的頒佈,TPM可以有多達五種不同的形式,但最常見的形式是硬體安全晶片。

領先的半導體供應商(如英飛凌)可提供符合TCG TPM 2.0 規範的TPM晶片。有了這種晶片,製造商和使用者可在電腦、嵌入式系統、雲端服務和網路(包括網路設備在內)中實現可信賴運算。所有TPM都支援相同的命令,但它們有一些或微妙或不那麼微妙的差別。只有高品質的TPM才能達到抵禦複雜攻擊所需的安全性。

OPTIGA TPM 晶片硬體

英飛凌科技(Infineon Technologies)提供各種TPM,分別擁有不同的介面、不同的溫度範圍和不同的版本,可以根據客戶需求進行客製。其OPTIGA TPM 最重要的不同之處在於,它有一系列不同的產品型號來滿足不同的應用需求,其中包括適合用在筆記型電腦等典型運算裝置中的標準TPM產品線,還有專為汽車和工業應用設計的特殊TPM產品,它們擁有更高的可靠性、更長的壽命和更寬的溫度範圍。

因為網路設備可能安裝在會出現極端溫度的、對可靠性要求極高的——原因是更換設備非常麻煩——戶外環境中,所以建構或部署網路設備的人可能要求溫度範圍越廣越好,產品壽命越長越好。還有個不同之處是,所有OPTIGA TPM都通過TCG的TPM測試套件的檢測,能夠達到經過TCG認證的高度相容性和互通性,且它們已被列入TCG認證產品名單。

該系列OPTIGA TPM並已通過通用標準評估保證層級(CC EAL)4+ 級認證,這也是TPM產品在獲得TCG的批准前必須達到的一項要求。它們包括6KB的使用者可存取的非揮發性記憶體,以及透過儲存在安全硬體(HW)中的私密金鑰,支援橢圓曲線加密法(ECC-256)和RSA加密演算法。如1所示,英飛凌還提供了一系列擁有其它安全特性集的OPTIGA Trust 產品(不是TPM),它們可以用於滿足各種系統的信任需求。

1:英飛凌能為網路、伺服器和連接的設備中的不同應用提供各種OPTIGA Trust 產品。

英飛凌OPTIGA TPM 產品還擁有直接參照TCG規範提供的專家支援,這是由受過培訓的支援工程師與十多個不同的技術合作夥伴共同組成的一個全球性網路,負責提供與TPM晶片相配套的產品和服務。

立端公司就是從合作中獲取協力效應的一個好例子。在印度、台灣和全球其他地區從事工程活動的立端公司,可以找到各種各樣可供選擇的硬體平台,並得到來自當地專家的支持,他們可以幫助解決可能出現的任何問題——無論是與英飛凌 OPTIGA TPM 硬體有關的問題,還是任何軟體問題。

TPM 軟體堆疊

TCG已製定TPM軟體堆疊規範(目前為TSS 2.0),目的是提供一組標準的應用開發介面(API),可供應用軟體用於與TPM建立通訊(見2)。雖然其他基本的TPM API軟體和應用軟體已被整合到裝有微軟Windows系統的電腦中,但所有其他平台還需要增加TPM API軟體(如TSS)和應用軟體,以便將TPM功能整合到系統中。可能用到TSS的常見應用包括:

› 網路設備
› 嵌入式系統
› 物聯網(IoT)設備和閘道
› 汽車應用
› 工業系統

2:透過TSS和序列週邊介面(SPI)TPM建立連接。

透過TSS的FAPI API,程式者不需要知道TPM的細節,或者有時甚至不需要知道具體的TPM命令。為了能在高層FAPI中實現這種便捷,TSS為TPM定義了兩種低層級的API,即ESAPI和SAPI。這三種API的底層是一些較低的層——例如TPM的設備驅動,但因為這些層只提供將命令傳輸到TPM的連接,所以這裡暫不作介紹。

最低層級的TSS被稱之為系統API (SAPI)。SAPI主要提供創建TPM函式呼叫的基本方法,以及將函式呼叫轉化為編碼的TPM 2.0命令的方法。SAPI程碼將函式呼叫轉換成位元組串流發送至TPM,然後將從TPM返回的位元組串流轉換成從函數調用返回的預期返回值。

增強系統API (ESAPI)比SAPI高一個層級。ESAPI主要協助降低應用軟體的複雜性,它可以處理一般程式人員在大多數應用中喜歡默認使用的內務,如會話管理和TPM之間的通訊保護等。

仍在開發中的最高層級TSS API被稱之為特性API (FAPI)。FAPI能達到更高的軟體抽象層級,從而實現諸如自動金鑰載入、資料加密和簽名之類的功能。

通過GitHub發佈的開放源碼TPM堆疊TPM2-TSS包括SAPI和ESAPI,它已經過許多TPM和軟體模擬器的測試。由於TSS API 是開放標準,所以可以從其他來源獲取類似的TSS庫。

為了進一步簡化TPM的使用,許多常用的應用軟體庫(如OpenSSL)都進行了改進,以通過將這些庫與TSS API相連來支持TPM。在3中,橫線以下屬於TPM。橫線以上屬於主機CPU和在其中運行的軟體層。深綠色的層表示英飛凌合作夥伴在TSS上實現的許多安全套件。

3TSS 使得許多套裝軟體能與TPM建立連接。

應用層套裝軟體可以在其上建構其他安全軟體。例如,Apache Web伺服器安裝通常利用OpenSSL實現通訊安全。

TCG 網路設備指導原則

TCG 的網路設備小組(由一群網路設備製造商組成)制定了《利用TCG技術保護網路設備的指導原則》,其中解釋了如何利用TPM 2.0和TSS來解決由不受保護的路由器、交換機、防火牆、閘道和無線接取點帶來迅速加劇的網路安全威脅。該規範定義了在保護網路設備(如保護秘密、保護配置資料和保護完整性的日誌)時通常實現的主要用例。它對每個用例的業務案例進行了解釋,然後針對如何利用TPM和TSS來實現它給出技術建議。

立端SDK:加速軟體發展的API

物聯網、尤其是工業物聯網(IIoT)中的資訊技術需要安全的通訊。作為安全硬體平台和安全顧問服務的供應商,立端公司利用其專業知識協助客戶解決特定的安全/信任問題。其中之一便是簡化TPM 功能的實現。

為了在設備到閘道和閘道到IT層之間實現安全通訊,立端公司提供具有全面的韌體安全特性、加密平台標識及符合TSS 2.0的中介軟體的產品。除了這些硬體平台之外,SDK還提供一組經過精心設計和驗證的可靠API來確保:

› 軟體程式碼執行得到監測
› 靜止中的資料得到保護
› 傳輸中的資料得到加密
› 機密得到封存

根據TCG的網路設備指導檔定義的通用架構,這些API提供的支援工具可供利用OPTIGA TPM——立端的平台不可或缺的組成部分之一——中整合的加密功能保護網路設備。立端所包含的開源TSS支持TCG的TPM 2.0規範,可為開發人員提供原始程式碼、二進位檔案、示例程式碼和一組簡單的API,供其利用TPM功能來建構可信賴的解決方案。4顯示了如何在立端的硬體和軟體基礎上,結合開發人員的額外貢獻,開發出安全的終端應用。整套解決方案由立端提供的綠色元件及由開發者(可能包含開源軟體及自己的應用程式碼)提供的黃色元件共同構建而成。

4:依託支援TPM 2.0TSS 2.0規範的立端硬體和軟體建構安全的解決方案。

在一個特定的網路中,如果有100個安全設備,則網路中可能有500個不一定是安全設備的其他設備在執行其他功能。擁有TPM 晶片和TSS 軟體堆疊的平台的目標是,透過使用簡單的開放源碼標準TSS 去存取TPM晶片,使得所有這些設備和其它裝置自身變得更加安全,進而使它們的系統更加安全。安全技術公司已經知道如何讓設備更安全,但可程式設計邏輯控制器(PLC)供應商、分析服務公司、路由器供應商和類似設備的供應商,可能有許多功能需要通過TPM中的硬體信任根來進行保護。透過包含TPM和TSS,安全技術公司(如立端)找到了簡單的方法讓系統只添加一層軟體更安全。

實際實施步驟

如上一節中所述,TCG的網路設備指南描述了可以用來增強網路設備安全性的許多不同用例:

› 設備標識
› 安全的零接觸配置
› 保護秘密*
› 保護配置資料*
› 遠端設備管理
› 軟體清單
› 網路設備完整性認證(健康檢查)
› 複合型網路設備
› 保護完整性的日誌
› 熵的產生*
› 取消配置

由於篇幅有限,本文將只著重講述幾個最關鍵的用例,即保護秘密、保護配置資料以及熵的產生。如欲瞭解其他用例,讀者可以去查閱TCG的文檔。

保護秘密

網路設備和工業閘道可能需要管理和儲存許多不同類型的秘密,包括密碼、密碼認證金鑰、檔或磁片加密金鑰等。TPM和TSS可用於保護所有這些秘密免遭各種攻擊,如物理篡改、利用應用軟體缺陷等。

利用TPM安全地創建和使用密碼認證金鑰的最簡單方法是,利用擁有能給OpenSSL添加TPM支持的tpm2-tss-engine的OpenSSL庫。請按照以下步驟進行:

  1. 利用tpm2-tss-genkey命令產生一個新的非對稱金鑰對。
  2. 獲取新金鑰對的證書:利用openssl req命令產生證書簽名請求(CSR),再利用認證機構(CA)獲取來自CSR的證書。
  3. 將證書和私密金鑰與其它OpenSSL 命令——例如可以用於安全地連接至遠端伺服器的openssl s_client命令——配合使用。

您還可以直接調用TSS來創建金鑰對(例如利用Esys_Create命令),產生CSR,並執行加密操作(例如利用Esys_Sign命令)。但是,如果OpenSSL和tpm2-tss-engine能替你完成這些,為何還要自找麻煩地去執行這些低層級的命令呢?

有許多方法可以保護機密資料或其他類型的秘密(如密碼):

› 將秘密儲存在TPM的非揮發性記憶體中(利用Esys_NV_Write 命令),在此處,它可以得到各種政策和其它保護措施的保護(利用Esys_NV_DefineSpace 命令),且只有在這些政策得到滿足時才能被讀取(利用Esys_NV_Read 命令)。
› 利用TPM「封存」秘密(利用Esys_Create 命令),從而產生一個可以保存到本機存放區中的二進位物件,到了後期,當相關政策得到滿足時,它又能被TPM解封(利用Esys_Unseal 命令)。
› 利用TPM產生非對稱金鑰(利用Esys_Create命令),然後利用該金鑰對對秘密進行加密和解密(利用Esys_RSA_Encrypt 和Esys_RSA_Decrypt 命令)。
› 利用TPM產生對稱金鑰(利用Esys_Create 命令),然後利用該金鑰實現金鑰匯出(例如,利用Esys_HMAC_Start 命令)。
› 利用OpenSSL的‘openssl pkeyutl’命令,並利用非對稱金鑰對秘密進行加密和解密。
› 使用cryptsetup/luks或類似的支持TPM的Linux磁片加密套件來對保存秘密的驅動進行加密。

保護配置資料

網路設備的配置資料必須予以保護。否則,網路通訊可能失敗,或者甚至受到威脅(例如,當攻擊者可以更改防火牆規則,使得攻擊可以衝破防火牆時)。因此,配置資料在傳輸時(發送到網路設備時)和靜止時(保存在網路設備上時)都必須受到保護。

為了保護傳輸中的配置資料,最好且最簡單的方法是,利用OpenSSL或類似的支援TPM的安全通訊庫。上述的說明也適用於此。如欲保護靜止中的配置資料,可以使用下列任意一種方法:

› 將秘密儲存在TPM的非揮發性記憶體中(利用Esys_NV_Write 命令),在此處,它可以得到各種政策和其它保護措施的保護(利用Esys_NV_DefineSpace 命令),且只有在這些政策得到滿足時才能被讀取(利用Esys_NV_Read 命令)。
› 利用TPM「封存」秘密(利用Esys_Create 命令),從而產生一個可以保存到本機存放區中的二進位物件,到了後期,當相關政策得到滿足時,它又能被TPM解封(利用Esys_Unseal 命令)。
› 利用TPM產生非對稱金鑰(利用Esys_Create 命令),然後利用該金鑰對對秘密進行簽名和驗證(利用Esys_Sign和sys_Verify 命令),或者也可選擇對秘密進行加密和解密(利用Esys_RSA_Encrypt 和Esys_RSA_Decrypt 命令)。
› 利用TPM產生對稱金鑰(利用Esys_Create 命令),然後利用該金鑰打散並驗證秘密(利用Esys_HMAC 命令),和/或對秘密進行加密和解密(利用Esys_EncryptDecrypt2 命令)。
› 利用OpenSSL的「openssl pkeyutl」命令,並利用非對稱金鑰對對秘密進行加密、解密及完整性保護。
› 使用luks或類似的支持TPM的Linux磁片加密套件來對保存秘密的驅動進行加密和完整性保護。

以上每種方法可謂各有利弊。您可以查閱參考資料中來研究這些利與弊,或者諮詢TPM業者(如立端公司),請他們推薦最適合您的保護方法。

熵的產生

熵(隨機性)雖未得到應有的重視,但對於安全卻具有舉足輕重的作用。例如,無論何時建立新的受保護的通訊會話,都必須產生新的工作階段金鑰。這需要具備高密碼強度的隨機性,以使攻擊者無法猜出將生成哪個金鑰。TPM可以通過提供高強度的熵源來解決這個問題。

要從TPM獲取亂數據,可以使用ESAPI中的Esys_GetRandom函數。但如果您用的是新版Linux,它可自動將熵從TPM輸入到Linux中需要強熵的大多數程式所用的/dev/random。舊版Linux可以利用rng-tools將TPM連接至/dev/random。

其他韌體安全措施

除了TPM的特性之外,立端的硬體平台還提供有額外的基本安全措施,而這些措施常常被工業網路電腦系統所忽略。由於基板管理控制器(BMC)(帶外管理子系統)常常是一個被忽視的攻擊面,所以必須確保它擁有最嚴密的安全保護,同時還能保持其實用性。

結論

不受保護的網路設備為攻擊者提供了新的目標。預防種種這些攻擊是IT、網路和安全專家乃至各級企業管理層必須提高重視的重要任務。根據可信賴運算組織制定的、定義了支撐技術的標準,英飛凌和諸如立端公司之類的企業合力打造出必需的工具,以供利用OPTIGA 基於硬體的安全產品來輕鬆實現所需的信任度和安全性。如今,網路設備安全威脅可以直接得到處理,以避免發生持續而不易察覺的感染,同時也能遏制工業、軍事和其它類型的企業中的問題。置之不理絕對不是辦法,因為這樣做的後果太嚴重了。而在英飛凌及其技術合作夥伴的共同努力下,實施保護反倒變得非常容易。

加入LINE@,最新消息一手掌握!

發表評論