大家好,我是亞馬遜雲科技的步道師王宇伯今天很高興有機會能夠和大家分享使用NITRO ANCLES在Linux上實現更為安全和機密的計算這樣一個話題眾所周知,近些年來移動通信和互聯網技術正在不斷的快速發展而客戶也需要在互聯網或者是移動端上處理各種各樣高度敏感的數據例如說個人信息、財務記錄、醫療信息、知識產權、商業機密等等而在處理這些高度敏感數據的時候數據洩漏是我們會極力避免的一個話題數據洩漏會造成直接的損失並對業務、用戶和企業產生極大的負面影響在業務更加深入數字化的時候尤其是我們看到越來越多的企業將工作負載遷移到雲端的時候如何在一個雲端的計算環境中來確保數據的機密性和完整性會是每一家企業都在面臨到的重大挑戰因此,客戶希望在處理敏感數據的時候減少攻擊的表面級所以可信執行環境這樣一個概念應運而生可信執行環境就是在芯片層面單獨劃分出來的一個隔離空間來建立起與本地操作系統並行運行的隔離執行環境來保證加載到內部的代碼和數據能夠在機密性和完整性方面受到良好保護來保證敏感代碼和數據免受來自本地操作系統潛在漏洞的一系列攻擊通過可信執行環境的用戶可以在隔離的安全環境中使用和處理密藥例如說加密簽名同時也可以阻止附實力上的用戶應用來查看和獲取這些密藥同時通過可信執行環境用戶也可以在隔離的安全區域內來運行應用將個人身份等敏感數據進行另排化同時加密的數據可以發送到安全區域裡進行解密並進行處理在整個過程中附實力將無法查看或者訪問敏感數據亞馬遜雲科技是如何構建可信執行環境的呢我們首先從NITRO系統開始看NITRO系統是EC2實力的底層平台通過NITRO系統可以使亞馬遜雲科技進行快速創新降低成本 增加安全性和全新的實力類型在傳統意義上講Hypervisor是用於保護物理硬件和BIOS來虛擬化CPU存儲網絡並且提供一組豐富的管理功能這樣一個軟件而通過NITRO系統我們會將這些功能分開並且將它們卸載到專用的硬件和軟件上在我們的NITRO系統中會包含NITRO CARDNITRO安全芯片以及NITRO HYPERWIZER三大主要部分NITRO CARD是一個系列的卡用於卸載和加速IO最終來提升整個系統的性能NITRO CARD包括用於VPC的NITRO CARD用於EBS的NITRO CARD用於實力存儲的NITRO CARD以及NITRO CARD的控制器以及NITRO的安全芯片等等而隨著虛擬化和安全功能被卸載到專用的硬件和軟件之上NITRO的安全芯片就能夠以最小的攻擊面來實現最安全的予命台此外我們通過一個鎖定的安全模型來禁止所有的管理訪問從而消除了人為的錯誤和篡改的可能性NITRO HYPERWIZER則是一個輕量級的hyperwizer它用於管理內存和CPU的分配並且提供於邏輯近乎一致的性能因此從安全性的角度來說我們NITRO系統是從零開始構建的一整套的安全這個安全涵蓋了從芯片到服務器中運行的軟件各個部分在安全層面NITRO HYPERWIZER主要負責為EC2實力提供CPU與內存的隔離能力例如說在EC2主機上我們可以通過NITRO HYPERWIZER實現同一主機內的實力A和實力B之間的隔離同樣基於NITRO HYPERWIZER研磨訊與割記也推出了自己的可信執行環境解決方案叫做NITRO ANCLEUS它也是基於NITRO HYPERWIZER的技術通過NITRO ANCLEUS在EC2實力內部實現了完全隔離的CPU和內存的計算環境NITRO ANCLEUS沒有持久化的存儲也沒有交互式的訪問和外部的網絡連接從這張圖中我們可以看出除了我們剛才談到的實力A和實力B之間同一主機的EC2實力之間的隔離之外我們還創造了一個ANCLEUS和EC2實力之間的額外隔離它們僅能通過安全的本地信道來進行通信這就保障了可信執行環境的安全性通過NITRO ANCLEUS我們可以構建起隔離和安全的運行環境這樣一個環境是基於NITRO HYPERWIZER實現的一個完全隔離的CPU和內存的計算環境可以用於處理高度敏感的數據NITRO ANCLEUS支持加密認證認證文件可以允許用戶在外部服務中授權ANCLEUS的一個訪問權限同時驗證ANCLEUS中的代碼的一個完整性NITRO ANCLEUS也是非常靈活的不需要綁定任何的CPU廠商截止到2021年11月份我們支持包括Intel包括AMD芯片同時也支持任意的編程語言另外NITRO ANCLEUS是運行於AMSEN EC2之中的沒有任何的額外費用可以和眾多的雲元生的安全服務進行緊密集成來提供給用戶更好的體驗和更多的安全保障接下來我們來看一下ANCLEUS的特性用一句話來高度概括NITRO ANCLEUS就是NITRO ANCLEUS是孤立加固以及高度受限的虛擬機這句話怎麼理解呢我們可以從下面幾個維度來看一下首先NITRO ANCLEUS是一個擁有獨立內核的輕量級Linux操作系統它本身並不是一個容器第二NITRO ANCLEUS本身並不帶有持久存儲同時也沒有提供任何的管理員或者操作權限接下來實力和ANCLEUS之間只能通過安全的本地信號進行通信同時NITRO ANCLEUS是擁有自己的加密密要的NITRO ANCLEUS是沒有持久存儲交互是訪問或者是外部網絡連接的NITRO ANCLEUS它僅僅支持與其負一系統實力之間的安全的SOCKET連接叫做VSOCKET是通過一個32位的上下環標識服來進行的用戶是沒有辦法通過SSH來進入ANCLEUS的而且付EC2進程應用或者是用戶都沒有辦法來訪問ANCLEUS內部的數據或者應用那NITRO ANCLEUS是如何來進行工作的呢其實我們可以從這張圖中看到整個NITRO ANCLEUS的工作過程是非常靈活同時也是非常簡單的客戶如果想借助NITRO ANCLEUS構建一個可信的執行環境首先他就可以把自己的應用打包成為一個刀殼印象之後借助亞馬遜雲科技的提供的NITRO ANCLEUS的命令行工具級就可以把這個刀殼印象轉換為ANCLEUS印象同時也可以借助這樣一個工具級來在EC2實力上分配特定的CPU和內存資源從而建立起一整套的可信執行環境來執行高度安全的應用而談到可信執行環境加密和認證就是裡面的一個非常重要的部分接下來我們就來看一下NITRO ANCLEUS是如何來實現加密和認證的在NITRO ANCLEUS中運行應用程序除了我們剛才談到的隔離環境帶來的安全性與私密性之外同時NITRO ANCLEUS也提供了額外的安全特性叫做加密認證加密認證是ANCLEUS用來證明其身份並且與外部服務建立現任的過程來保證整個數據通信的安全加密認證的目的是根據在特定的ANCLEUS中運行的代碼和配置來證明這個ANCLEUS是一個值得信賴的運行實體通過NITRO HIFEWISER可以生成一個包含ANCLEUS詳細信息的一個認證文件其中會包含ANCLEUS的一個公共密要包括ANCLEUS印象的HASI值FOO EC2實力ID的HASI值以及FOO家的IM角色等等在我們這樣一個認證文件中會包含一個公要當ANCLEUS應用向外部服務發起請求時戴上這樣一個認證文件外部應用就可以利用這個公要對需要返回給ANCLEUS的響應的進行加密而ANCLEUS收到這樣一個響應後就可以使用私要來進行解密來確保數據在傳輸過程中不會被嗅探而且只有發起服務請求的ANCLEUS才能解密這樣一個響應另外在認證文件中還包括每個ANCLEUS的一系列屬性的HASI值這樣一個HASI值叫做PCR Platform Configuration Registers平台配置註冊用戶可以使用PCR的HASI值在外部服務中來創建訪問策略來授予對服務請求的訪問權限對於ANCLEUS來說它有6個PCR來分別對應ANCLEUS不同的元數據其中PCR012是與ANCLEUS進行文件相關的會在ANCLEUS創建的時候來進行生成整個的ANCLEUS認證文件的這樣一個功能是通過NITRO Hypervisor中的NITRO Security ModuleNSM這樣一個組件來實現的而亞馬遜雲科技也提供了一套Hyperlibrary來方便用戶在開發ANCLEUS應用時與NSM進行交互來進行PCR的查詢和認證文件的請求等一系列操作NITRO ANCLEUS也可以與很多的雲元生的安全服務來進行集成例如說Amazon KMS是一項雲元生的密耀管理服務利用這樣一個服務可以用於密耀的創建和管理同時支持使用密耀進行server side加密解密簽名驗證等操作同時還可以支持生成用於Client side加密的密耀在KMS中我們內置了元生支持NITRO ANCLEUS能夠驗證來自於ANCLEUS請求中攜帶的認證文件並可以根據認證文件中的PCR值來定義密耀策略來授予對特定ANCLEUS的一個訪問權限通過NITRO ANCLEUS與KMS中認證文件的集成可以確保敏感數據只能夠在ANCLEUS中來進行處理和訪問不會被洩漏、嗅探或者是篡改明文數據只能夠在ANCLEUS中可見隔離的運行環境可以確保數據不會被嗅探在ANCLEUS中之外只能與加密後的形態對數據進行傳輸和存儲來確保原始數據不會被洩漏同時借助ANCLEUS的認證文件來確保ANCLEUS中的代碼不會被篡改通過KMS的密耀策略來確保數據只能夠在特定的ANCLEUS內部才能夠被解密在認證文件生成之後還將會由一個受信任的NITRO HYPERVISOR的一個認證供藥的基礎設施基於一個ACMPC的根證書來進行簽署用戶可以下載這樣一個根證書來導入到任何的外部服務之中當ANCLEUS所運行的應用程序需要請求任何的外部服務時就可以向NITRO HYPERVISOR來申請並且簽署這樣一個認證文件之後外部服務可以導入根證書來驗證ANCLEUS認證文件的有效性來確保服務請求是來自於特定的ANCLEUS超爾建立信任構建起我們這樣一個可信的執行環境下面我們來看一下NITRO ANCLEUS的一系列主要功能首先NITRO ANCLEUS支持靈活的CPU和內存的資源配置用戶可以自行決定向ANCLEUS分配多少CPU內核和內存這個分配本身是取決於Fu EC2實力的資源當然每一個ANCLEUS最少需要一個CPU內核也就是兩個VCPU才能運行同時NITRO ANCLEUS可以允許您在不受資源限制的情況下來運行各種跟安全相關的工作負載其次NITRO ANCLEUS也是非常易於進行應用集成的如果用戶需要開發一個運行與NITRO ANCLEUS中的應用首先它就需要將ANCLEUS運行所需要的代碼依賴包等等打包成為一個刀殼印象格式然後將刀殼印象轉換為ANCLEUS印象就是.EIF格式來啟動ANCLEUSNITRO ANCLEUS提供了一個運行工具集叫做NITRO ANCLEUS CLEE用於創建部署管理和終止ANCLEUS這樣一個工具集必須在Fu EC2實力上進行安裝和使用其中提供了非常豐富的功能包括Built ANCLEUS可以將刀殼印象轉換為ANCLEUS印象RUN ANCLEUS就可以從ANCLEUS印象文件中在EC2上進行ANCLEUS的啟動DISCRIBE ANCLEUS可以查看當前運行的ANCLEUS而TERMINATE ANCLEUS就可以關閉指定的ANCLEUS當然我們還提供了更多豐富的功能NITRO ANCLEUS SDK它是一套開源庫用於開發ANCLEUS應用或者更新現有應用以在ANCLEUS中進行運行NITRO Security Module Library是NITRO ANCLEUS用戶區可以使用的一個助手用於與連接的NITRO ANCLEUS進行通信而NITRO Security Module NSM我們剛才提到過通過它可以請求PCR的查詢以及認證等相關的操作接下來我們再來看一下NITRO ANCLEUS中的加密和認證目前亞馬遜營科技的兩個安全服務包括ANCLEUS KMS和ANCLEUS ACM都已經支持與NITRO ANCLEUS以及認證文件的原生集成通過這樣一個原生集成的NITRO ANCLEUS可以介入VSOCK就是本地的安全通信信道以及附ECDU實際上的代理向KMS或者ACM來發起API請求進行加密解密以及證書的申請更新等等操作同時KMS和ACM也支持對ANCLEUS簽名的認證文件的進行驗證並且可以將API響應用認證文件中的公要來進行加密確保數據的隱私安全另外還有一點是NITRO ANCLEUS已經支持預封裝的ANCLEUS印象用戶可以直接使用預封裝的ANCLEUS印象不需要成構或者是重建線務應用就可以快速方便的把現有的工作負載與NITRO ANCLEUS進行集成來幫助用戶快捷的使用可信執行環境來運行高度安全和高度敏感的應用了我們來總結一下NITRO ANCLEUS的主要安全優勢包括防內存秀碳、防代碼篡改、深深驗證防中間人以及無狀態等等可以看到通過我們一系列完善的設計可以幫助大家在雲端構建一個更加完善的可信的執行環境使得在可信安全環境中的每一步包括密藥、包括身份、包括和雲夫的集成都有更好的表現來幫助大家在雲端進行更多的安全、敏感應用負載的部署和構建開源是近些年來的熱門話題也是開發者持續關注的領域亞馬遜雲科技作為開源領域的核心貢獻者之一Nicholas現在已經開源開源的部分包括Nicholas的工具和監控Nicholas的印象參考以及ACM for Nicholas等等Nicholas對Linux內核的擴展已經貢獻到了上游同時我們也持續在Gaithub和Linux內核郵件列表中和更多的開發者進行深入的技術探討和互動我今天的介紹就到這裡謝謝大家希望能有機會和大家進行更多的互動