Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
本篇是 建構安全軟體開發 系列文的 EP05。
延續前一篇的 EP04 從資訊/開發人員可以理解的領域來繼續舉例討論。
隨著作業系統的升級或發展過程,更在當前安全威脅日益高張的時刻,當然作業系統的相關安全性與設計也會隨之強化。
外部裝置硬體會透過其驅動程式跟作業系統 (OS) 進行作動後,再讓應用程式可以使用該外部硬體裝置。
所以從安全性的角度來看,隨著時間的推進而造成一些外部硬體裝置的驅動程式過於老舊,卻沒有跟著作業系統的新式安全性設計而改版的話,那發生與新版作業系統發生不相容問題,也只是剛好而已。
當要使用 "網路 ATM"、"自然人憑證"、"工商憑證"、"健保 IC 卡"…等身份驗證的時候,就會需要使用到 "讀卡機" 這東西。結果在 Windows 11 的時候,此 EZ-100PU 讀卡機永遠出現下面的畫面:
WTF
詳細的這問題該是如何,又該怎麼解,可參考先前發表在個人部落格的文章: "在 Windows 11 上遇到的怪事: EZ100 PU 讀卡機無法使用..." ,在此就不贅述。
但實際來了解一下微軟提及 Windows 10/11 的 核心隔離 功能:
是 Microsoft Windows 的一項安全性功能,透過在受到保護隔離的記憶體區域中來執行 Windows 的重要核心程式,進而與惡意軟體危害隔絕。也就是說這將透過在一個隔絕的虛擬環境中去執行這些 Windows 的重要核心程式。
其中兩個作法來共同達成 核心隔離 的功能:
- 記憶體完整性
- 記憶體存取保護 (又稱 "核心 DMA 保護")
詳情請參閱 "微軟 "Windows 核心隔離" 官方介紹文件"。
在官方文件對於 "記憶體完整性" 的介紹中有提到一個例子,有興趣的人可以從原文來讀一下這個例子(因為官方文件在繁體中文翻譯這敘述的並不太好)。
所以,當外部硬體裝置的驅動程式若配合 Windows 10/11 所設計的 核心隔離 運作時,就能確保應用程式在操作外部硬體裝置的過程,在透過隔離區域進行其控制的過程,並驗證其操控過程的記憶體完整性。
上圖取自 Virtualization-based security (VBS) memory enclaves: Data protection through isolation 文章的 Figure 1。
那說到這邊,各位是否能想想看,在 Windows 10/11 的核心隔離設計功能,當中有達成 "C.I.A Triad" 或 "3A. 原則" 當中的那些概念?
對了,所以本 EP05 的最後也想問一下大家,這 EZ100 PU 的晶片讀卡機驅動程式不相容問題是 Microsoft 的錯?
裝置廠商 CASTLES TECHNOLOGY (虹堡科技) 的錯?
亦或是消費者的錯?
就看各位要從哪個角度切入去討論了。
如果就 "晶片讀卡機" 本身被拿來在電腦上使用時,帶有其特殊意義 (Authentication) 的存在,那 "安全" 應該就是要放在較高位階的存在;如果就 "晶片讀卡機" 本身能被消費者接受,並購買來使用的價格來看,那 "安全" 就是被放在較低位階的存在。