本文主要是介绍Intel 处理器 VT-d 架构 Kernel DMA 保护机制研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这篇文章是对Intel VT-d入门研究的总结,主要是关于DMA重映射编程以及Windows上使用的内容,希望本文可以帮助你对它有一个基本的了解,并在感兴趣的基础上开始研究更多细节。
英特尔VT-d
英特尔VT-d(正式名称是定向I / O的英特尔VT)具有以下三个功能:
· DMA Remapping
· Interrupt Remapping
· Interrupt Posting
DMA重映射是其中最常讨论的功能,也是本文的重点。
DMA重映射
DMA重映射是一项重要功能,因为它允许软件通过为每个物理内存页面配置访问权限来实现针对恶意设备的直接内存访问(DMA)的安全检测。虽然可以通过分页结构配置普通的内存页面保护,并且当使用Intel VT-x时,可以通过扩展页面表(EPT)进行配置,但是在进行DMA访问的情况下,这些配置将被完全忽略。奇热因此,需要其他保护机制来完成对存储器的保护,DMA重映射可实现此目的。
规范中的以下图片显示了DMA是通过DMA重映射而不是CPU内存虚拟化(即EPT)进行映射的。
不需要VT-x
一个典型的技术误解是,VT-d(DMA重映射)与VT-x,虚拟机等相关联。事实是,没有VT-x,DMA重映射也是可用且有用的。例如,Windows可以启用基于DMA重映射的安全功能(称为 内核DMA保护),而无需启用基于VT-x的安全保护措施(VBS:基于虚拟化的安全保护措施)。
https://docs.microsoft.com/en-us/windows/security/information-protection/kernel-dma-protection-for-thunderbolt
下面示例项目也可以独立地进
这篇关于Intel 处理器 VT-d 架构 Kernel DMA 保护机制研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!