Skip to main content

介紹

Apple 在2018 七月推出全新的Macbook  Pro Retina , 也同於2017年12 的iMac Pro,使用全新的t2 安全晶片,有人說 t2 安全晶片是SSD控制器。
在2016年末的MacBook Pro和Touch Bar中加入了T1處理器,但它只提供了一些特定的任務,比如驅動Touch Bar顯示屏和触摸屏,從Touch ID傳感器讀取指紋並將指紋數據存儲在T1的SEP (Secure Enclave Processor或)。

T1 SOC是基於32位ARMv7處理器,類似於Apple Watch I中使用的 AP。其專用的基於watchOS的操作系統名為BridgeOS,而硬件標識符為iBridge。

本文從這翻譯
https://duo.com/blog/apple-imac-pro-and-secure-storage

iMac Pro的發布時候提到了另一個安全處理器的存在,也提到了系統安全性的一些變化。
雖然沒有Touch ID跟Face ID。Apple使用下一代T2協處理器來強化安全系統,包含了Secure Boot。

由於對安全協處理器的依賴程度越來越高,Apple決定以與Apple A10處理器相同的AP核心為T2協處理器帶來顯著的性能提升,這是一款64位ARMv8處理器,也可以在iPhone7和7 Plus上找到。T2協處理器與A10處理器並不完全相同,因為它只包含一個構成A10封裝的T801x內核。
Apple向AP提供了型號T8012,可以在整個BridgeOS中找到參考號。在T2中也可以找到類似於T1單獨的SEP(Secure Enclave Processor)。

鑑於所有這些變化,我們想要探索Apple如何使用T2協處理器以及它如何適應更大的系統安全模型,以及未來如何發展。接下來是本次探索的第一部分,我們將介紹如何使用T2協處理器在iMac Pro上實現安全啟動,以及將此安全啟動方法與Apple的iDevices中存在的方法進行比較和對比。

存儲和T2

首先,我們需要了解T2協處理器在系統中存儲的數據的安全性中所起的作用,並了解從主CPU委派給它的任務。接下來是對我們在分析過程中發現的內容以及我們從中得出的結論的技術演練。

通過顯著提高T2協處理器的性能以處理早期啟動任務,T2協處理器還獲得了許多功能,可以利用這些功能來增強iMac Pro的靜態數據存儲的安全性。Apple在iMac Pro的官方產品頁面上宣布了其改進的安全功能:

“由於Secure Enclave協處理器為新的加密存儲和安全啟動功能奠定了基礎,T2還使iMac Pro更加安全。SSD上的數據使用專用的AES硬件加密,不會影響SSD的性能,同時保持英特爾至強處理器免費用於您的計算任務。“

此外,Apple發布了“關於您的iMac Pro上的加密”支持文檔,該文檔進一步指出:

“iMac Pro內置固態硬盤(SSD)上的數據使用T2芯片內置的硬件加速AES引擎進行加密。使用256位密鑰執行加密,該密鑰綁定到T2芯片內的唯一標識符。“

當我們查看實現了許多加密加速方法的com.apple.iokit.IOCryptoAcceleratorFamily.kext內核擴展時,我們在BridgeOS本身中發現了這些聲明。具體來說,IOAESAccelerator類是什麼幫助卸載以前建成的x86 CPU的AES-XTS支持所做的工作,如記錄在這裡

“IOAESAccelerator服務在CBC模式下提供硬件加速的AES加密/解密功能。它還提供對安全UID(2000)和GID(1000)密鑰的訪問,以及生成的安全性(2101 / 0x835)和各種固件加密密鑰。“

但是蘋果公司不僅僅是將主要的CPU綁定AES加密工作卸載到T2協處理器作為專用安全協處理器。為了使對物理訪問iMac Pro的攻擊者更難以訪問存儲在內部存儲器上的數據,Apple實現了似乎是加密存儲的方式,使T2協處理器正好位於I中間/ O路徑而不是通過正常的PCIe / NVMe路徑提供主CPU訪問。

有關使用專用加密硬件和軟件的進一步證據可以通過查看SEPOS找到,因為iPhone 5s上的SEPOS映像的解密密鑰於2017年8月上市。

Apple NVMe

Apple決定從舊的串行ATA(SATA)接口切換到性能更高的非易失性存儲器或NVMe,我們建議您閱讀Ramtin Amin對其實施的深入了解。使用NVMe提供SSD存儲訪問的主要優點是,通過四通道PCIe連接使用現代基於閃存的存儲可以實現所有可用的並行操作,與舊的HDD特定相比,可以實現更好的I / O速度接口。

簡而言之,NVMe採用固態存儲設計作為核心設計目標,不像SATA這樣的老式接口,旨在滿足旋轉盤片硬盤的需求。macOS和BridgeOS上的NVMe支持由com.apple.iokit.IONVMeFamily.kext內核擴展處理。當我們看一下iMac Pro的SSD存儲設備的IORegistry佈局時,我們可以更清楚地看到這一點:

在上圖中,我們可以看到Apple SSD AP1024M Media設備,因為它在macOS中對用戶可見。該設備通過IOStorageFamily.kext內核擴展作為常規塊存儲設備提供,代替NVMe內核擴展。與此同時,Apple ANS2(Apple NAND存儲)控制器似乎只能在最近的iOS設備上找到,例如iPad Pro,iPhone 7,8和X.檢查Apple的“iOS安全指南”白皮書可以進一步了解這一點:

“每個iOS設備都有一個專用的AES-256加密引擎,內置在閃存存儲器和主系統內存之間的DMA路徑中,使文件加密高效。在A9或更高版本的A系列處理器上,閃存存儲子系統位於隔離總線上,只允許通過DMA加密引擎訪問包含用戶數據的內存。

這個聲明證實了我們在BridgeOS代碼中看到的內容,以及T2協處理器外部連接的已知信息:作為單個設備暴露給macOS的物理SSD內存芯片對通過雙x4 PCIe直接連接到SoC的通道,它們與AP 唯一配對,默認情況下啟用靜態加密。Apple也在白皮書中證實了這一點:

“設備的唯一ID(UID)和設備組ID(GID)是在製造過程中將AES 256位密鑰融合(UID)或編譯(GID)到應用程序處理器和Secure Enclave中。沒有軟件或固件可以直接讀取它們; 他們只能看到使用UID或GID作為密鑰在矽中實現的專用AES引擎執行的加密或解密操作的結果。此外,Secure Enclave的UID和GID只能由專用於Secure Enclave的AES引擎使用。“

這裡獨特的配對提供了一些非常重要的安全屬性,可防止構成SSD本身的內存芯片從系統中物理移除並連接到不同的系統,或防止其內容從芯片中提取並閃存到另一個SSD芯片上系統。Apple進一步詳細說明了T2協處理器和SSD芯片唯一綁定在一起的方式,以便在SSD芯片首次初始化時提供這些保護:

“在T1,S2,S3和A9或更高版本的A系列處理器上,每個Secure Enclave都會生成自己的UID(唯一ID)。[…] UID允許數據以加密方式綁定到特定設備。例如,保護文件系統的密鑰層次結構包括UID,因此如果存儲器芯片從一個設備物理地移動到另一個設備,則文件是不可訪問的。

在上次發佈時,Apple尚未更新T2協處理器的信息,但我們的研究表明,上述內容在很大程度上也適用於它的實現。

通過進一步探索IODeviceTree平面的完整輸出IORegistry(可以從運行在T2協處理器上的BridgeOS中檢索到sysdiagnose -c),我們可以看到AES加密引擎和位於其後面的ANS2設備的邏輯層次結構。

macOS設備發現

在macOS方面,有趣的是看到AppleNVMeFamily支持的存儲設備如何通過單個x4 PCIe通道暴露給x86 CPU本身。就其上運行的x86 CPU和macOS而言,iMac Pro的SSD存儲只是發現後的常規NVMe兼容存儲設備; 然而,我們已經看到在正常使用期間會發生並繼續發生許多透明過程,以便在寫入SSD的內存芯片時加密數據。

我們現在學到的存儲設備的分層視圖由T2協處理器和BridgeOS主動管理,如下所示:

Filevault和安全存儲

到目前為止,我們已經了解到,默認情況下,iMac Pro的存儲使用存儲在其T2協處理器中的唯一UUID 進行加密。
這可以防止涉及移除SSD內存芯片的物理攻擊,從而使它們在安裝在任何地方時無用。

為了防止對同一物理機器的物理攻擊,全盤加密(FDE)發揮作用。Apple已通過其FileVault功能實施了多年的FDE。FileVault是一個功能齊全的FDE系統,自從Mac OS X 10.7推出以來,經歷了多次演變。

最初,FileVault僅將用戶的主文件夾加密為磁盤映像。通過利用其CoreStorage邏輯捲管理,使用AES-XTS和具有256位密鑰的128位塊在塊級別實現FileVault 2完全加密卷。有關FileVault 2架構的更深入描述可以在 Apple的培訓網站的這個存檔文檔中找到。

隨著macOS 10.13 High Sierra的推出,Apple引入了另一種大多看不見的FileVault,但它利用了新的APFS文件系統的本機加密功能,允許即時啟動FDE和更加簡化的其他用戶註冊。

我們相信,隨著iMac Pro中永遠在線磁盤加密的引入,FileVault激活過程現在基本上與密碼保護iOS設備的方式相同。啟用後,用戶的密碼將與設備的硬件UID糾纏在一起,並用於創建用於加密和解密的其他派生密鑰。Apple iOS Security白皮書詳細介紹,但我們的研究結果證實iMac Pro的T2協處理器以相同的方式運行。從用戶密碼中派生的密碼密鑰存儲在作為T2協處理器一部分的Secure Enclave中,無法通過非特權方式訪問。


結論

這是關於iMac Pro及其新安全功能的系列研究文章中的第一篇,我們計劃在未來的文章中發布這些內容。我們決定首先仔細研究其存儲安全性改進,因為它在Apple的iMac Pro營銷中佔據突出地位。隨著其下一代安全協處理器的加入,Apple已經為Mac平台的未來設定了標準。通過在iOS平台上在安全性和隱私方面取得的成功和領先地位,Apple已經能夠快速跟踪已經實現現代硬件安全功能的競爭平台。

Windows和ChromeOS對TPM,Universal 2nd Factor(U2F)和Universal Authentication Factor(UAF)/ Webauthn的支持使其成為具有安全意識的客戶的熱門選擇。我們希望Apple也密切關注這些技術,因為它們正在迅速獲得更大社區的採用,此外還要進一步提高其自身經過驗證的平台安全性。

我們希望看到未來的Mac機型採用許多(如果不是全部)這些安全功能,同時進一步迭代它們。

Thx Chang

Author Thx Chang

More posts by Thx Chang