专利汇可以提供保护可信应用与普通应用的交互完整性和保密性的方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种保护可信应用与普通应用的交互完整性和 保密性 的方法,包括:用虚拟化技术在富 执行环境 的 内核 与应用之间建立内存隔离;利用 虚拟机 监控器及 硬件 虚拟化支持实现在不 修改 内核与应用代码的情况下透明地处理系统调用、中断、内存页换入换出的操作;以及建立与原有系统兼容的、脱离内核驱动支持的可信应用和普通应用交互库。与 现有技术 相比,本发明具有支持硬件多线程、不需要修改富执行环境内核、能够为普通应用提供更完整保护等优点。,下面是保护可信应用与普通应用的交互完整性和保密性的方法专利的具体信息内容。
1.一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,包括:
用虚拟化技术在富执行环境的内核与应用之间建立内存隔离;
利用虚拟机监控器及硬件虚拟化支持实现在不修改内核与应用代码的情况下透明地处理系统调用、中断、内存页换入换出的操作;
以及建立与原有系统兼容的、脱离内核驱动支持的可信应用和普通应用交互库。
2.根据权利要求1所述的一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,所述的用虚拟化技术在富执行环境的内核与应用之间建立内存隔离具体为:
将内核与应用放置在不同虚拟机中,利用虚拟化技术完全隔离两者的物理内存空间,在多数情况下,所有虚拟机的页表第二阶段翻译使用平行映射,即虚拟机物理地址等于真实物理地址,任何时刻,某一物理页只能属于某个虚拟机;
当需要时,在某一虚拟机的第二阶段翻译页表中将目标内存区域相关的页表项填充为
0,即无效值,用于阻止该虚拟机以任何方式访问该物理页,下文称“在该虚拟机中取消该页的权限”;
当需要时,在某一虚拟机的第二阶段翻译页表中将目标内存区域相关的页表项填充为平行映射,即令虚拟机物理地址等于真实物理地址,并开放读写执行权限,以允许内核利用第一阶段翻译页表管理该物理页,但是阻止其他虚拟机访问该物理页,下文称“在该虚拟机增加该页的权限”,
当新的普通应用请求被保护时,应用通过不依赖内核支持的方式直接下陷到虚拟机监控器中,由监控器创建新的应用虚拟机,并对新的应用虚拟机进行初始化。
3.根据权利要求2所述的一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,所述的监控器对新的应用虚拟机进行初始化具体为:
将下陷时的寄存器上下文复制到初始线程的寄存器上下文结构体中;
将第二阶段翻译页表初始化为空,通过核心模块的遍历功能探测所有属于应用的虚拟机物理内存页,在内核虚拟机中取消其所有权限,并在新的应用虚拟机中增加该页的所有权限;
在虚拟机列表中增加该新的应用虚拟机,并以进程的第一阶段地址翻译页表地址作为进程标识,建立进程标识到应用虚拟机的映射;
初始化成功后,设置新应用虚拟机虚拟核的某一通用寄存器为0以指示初始化成功,同时切换到新应用虚拟机中继续执行应用逻辑;
初始化失败时,设置内核虚拟机虚拟核的某一通用寄存器为1以指示初始化失败,回收所有资源,并返回内核虚拟机中继续执行应用逻辑。
4.根据权利要求2所述的一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,当新的普通应用请求被保护时,为了避免正常情况下内核及其他应用可能对应用物理页的访问,需要阻止内核在相关物理页上进行写时复制、内存合并的优化技术;
用户态库将遍历应用的所有虚拟地址空间区域、为其增加可写权限并向其写入内容以触发写时复制机制,此时内核将为该应用单独分配一物理页以防止写入的内容对其他共享者产生影响,由于写入的内容与原内容相同,该操作不影响应用的正常运行;同时,关闭内核KSM机制以阻止内核周期性扫描所有物理页内容。
5.根据权利要求2所述的一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,当应用虚拟机运行过程中发生中断或异常时,虚拟核将试图执行内核中对应的处理函数,由于应用虚拟机中存放内核代码的物理页没有可执行权限,处理器核将下陷至虚拟机监控器中;
虚拟机监控器将必要的异常信息从应用虚拟机的上下文结构体及内存中复制到内核虚拟机中,其中包括异常原因、异常目标地址;尤其是,虚拟机监控器需将内核虚拟中保存的异常返回地址设置为产生初始化请求的指令地址以隐藏应用线程的运行信息;将下陷时的应用虚拟核上下文保存到对应应用线程的上下文结构体中,供异常返回时加载;将异常信息记录在应用线程的结构体中供其他安全检查机制参考;依据内核及硬件规范调整内核虚拟核的进/线程标志寄存器以隐藏实际的线程信息,同时使得内核异常处理函数返回时虚拟机监控器可以有效识别需调度的应用线程,上述状态同步结束后,虚拟机监控器切换至内核虚拟核并恢复执行。
6.根据权利要求2所述的一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,当内核试图调度应用线程在某一处理器核上执行时,由于内核虚拟机中存放应用代码的物理页没有可执行权限,处理器核将下陷至虚拟机监控器中,虚拟机监控器读取进程标识并查询虚拟机列表以确定目标应用及目标虚拟机,虚拟机监控器检查堆栈寄存器中的应用线程标识是否在应用线程列表中以确定其是否有效,若无效则拒绝恢复该线程的执行并死循环挂起,若线程标识有效,则根据虚拟机监控器内保存的线程上下文恢复所有硬件寄存器,并调度应用虚拟机虚拟核继续执行,由于线程上下文保存在虚拟机监控器的内存中,内核无法随意读取或修改应用运行时寄存器中的值。
7.根据权利要求2所述的一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,
当应用请求系统调用时,除了执行中断或异常中的所有操作外,虚拟机监控器还将从下陷时的寄存器值中获得系统调用号,并依据不同的系统调用需求将必要的寄存器信息、应用内存区域暴露给内核虚拟机,并切换到内核虚拟机中完成系统调用,当系统调用完成后,除了触发内核调度线程的所有操作外,虚拟机监控器还将重新保护之前所有暴露的内存区域,以防止应用重新将这些区域用作他用时可能导致的数据泄露或破坏;
当内核试图对属于应用的物理页进行换出时,由于内核虚拟机中存放应用代码与数据的物理页没有可读权限,内核虚拟机下陷至虚拟机监控器,虚拟机监控器通过异常为读异常来判定内核试图读取应用的内存,并认为这是一个换出操作,虚拟机监控器随后使用一个对目标物理页进行加密,并在自身内存中保留一消息认证码以保证完整性,加密完成后,虚拟机监控器在内核虚拟机中增加该页的权限,并在应用虚拟机中取消该页的权限,随后返回内核虚拟机中继续执行,此时内核将成功读取加密后的数据并将其换出。
8.根据权利要求2所述的一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,所述的虚拟机监控器的核心模块包括:
提供虚拟机的创建功能,虚拟机监控器能够按上层模块要求动态地创建新的虚拟机并初始化其第二阶段地址翻译页表、虚拟核、虚拟核的寄存器与中断状态的信息;
提供虚拟核的切换功能,上层模块根据需要在同一或不同虚拟机的不同虚拟核间进行切换,虚拟机监控器保证所有相关的硬件寄存器上下文的原子性,所有调度由上层模块完成;
提供对虚拟核上下文的访问功能,包括:读取、修改未在运行的虚拟核的通用硬件寄存器、系统硬件寄存器;依据虚拟核内的虚拟地址或物理地址访问内存,并保证虚拟核拥有对应的访问权限;
提供基本的异常处理功能,包括:拦截虚拟机内发生的中断与同步异常;向上层模块提供异常处理函数的注册接口,并实现链式处理,其中链式处理为依次调用处理函数,直到某个处理函数报告异常已被处理、处理过程发生错误或没有下一个处理函数;向上层模块提供异常信息访问接口,包括异常类型、异常发生时的寄存器上下文、数据/指令异常的目标地址;
提供第二阶段页表维护功能,包括:以某一设定虚拟机的物理地址空间中页对齐的内存区域为目标设置读、写、执行权限,并能够设置其与真实物理地址空间中的物理页的对应关系;
提供第一、第二阶段页表的遍历功能,核心模块向上层模块暴露一个接口,从指定的第一或第二阶段页表根表开始,对于每个有效存在的页或块映射,调用某一回调函数,以供上层模块方便地查询、复制、检查某一虚拟机的第一、第二阶段页表;
提供地址无关的启动方式,核心模块保证整个虚拟机监控器可以被加载至任意物理地址启动,启动后由核心模块引导逻辑完成初始页表的配置,保证引导逻辑结束后虚拟机监控器内存区域的虚拟地址始终为编译时的预设值。
9.根据权利要求1所述的一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,脱离富执行环境内核支持的可信应用和普通应用交互机制,以及可信执行环境支撑机制,具体包括:
i.对可信执行环境及普通应用暴露的接口与原有交互机制相互兼容,具体的指:对可信执行环境而言,交互流程,交互使用的切换方式,参数传递寄存器及其顺序、语义,内存布局与数据结构的兼容性;对普通应用而言,库函数接口的代码兼容性及动态库的二进制兼容性;
ii.借助虚拟化技术的用户态与虚拟机监控器交互机制,由于在ARM平台上用户态不能直接执行hvc进入虚拟机监控器,采取应用执行系统调用的方式,由虚拟机监控器拦截所有系统调用,并根据系统调用号区分指向虚拟机监控器的系统调用和指向富执行环境内核的系统调用,前者使用了系统调用号中尚未被分配的部分;
iii.将可信执行环境依赖的等待队列操作从内核驱动移至虚拟机监控器中实现,等待队列操作包括等待与唤醒,前者要求执行流阻塞在某一队列中,等待其他执行流将其唤醒,阻塞过程中该处理器核可切换执行其他执行流,后者将指定队列中的第一个执行流唤醒,并在未来某时刻调度其至处理器核上运行,虚拟机监控器使用锁等底层操作实现这两种上层操作,当可信执行环境要求等待时,虚拟机监控器将等待对象通过映射转换为虚拟机监控器内存空间中的等待队列链表,获得该链表的锁,将等待线程加入到链表中,并释放链表锁,随后自旋判断当前线程是否被唤醒,若线程已被唤醒,虚拟机监控器返回可信执行环境中继续执行,若线程尚未被唤醒,则虚拟机监控器设置特定的寄存器指示调用调度操作并返回应用的用户态交互库中,用户态库通过判断寄存器的值识别虚拟机监控器请求调度操作,并执行sched_yield系统调用放弃CPU,借助富执行环境内核的调度器避免自旋等待导致的处理器资源浪费;
iv.将可信执行环境和富执行环境共享内存的管理移至虚拟机监控器中,由于不正确的内存分配结果可能导致应用将自身的关键数据被覆盖,所以内存管理也必须放到可信环境中进行,虚拟机监控器在启动时通过可信执行环境提供的调用接口获得共享内存的地址、大小的信息,并使用内置的内存资源管理器进行管理,修改后的用户态库将通过系统调用请求虚拟机监控器分配或释放共享内存;
v.将可信应用加载及文件读写的文件操作移至用户态库中实现,将该支持功能移至用户态库中,虚拟机监控器将可信执行环境的请求直接复制到应用内存中,由用户态库中的代码负责通过相关系统调用完成请求;
vi.由于用户态库无法得到共享内存的物理地址,与可信执行环境交互的数据结构中的指针全部填写虚拟地址,由虚拟机监控器在调用可信执行环境及从可信执行环境返回时通过查询第一、第二阶段翻译页表完成地址转换。
10.根据权利要求9所述的一种保护可信应用与普通应用的交互完整性和保密性的方法,其特征在于,由于虚拟机监控器不可直接管理应用的虚拟地址空间,采取如下步骤完成应用页表的配置:
用户态库使用mmap系统调用请求内核为其分配虚拟地址空间,其中应用虚拟地址记为地址A,内核将在相关数据结构中记录该信息,并直接返回用户态,不会为应用准备页表和物理页;
用户态库使用特殊系统调用请求虚拟机监控器为其分配共享内存,虚拟机监控器在共享内存区中为其分配内存,并记录共享内存地址与应用虚拟地址A的对应关系,其中真实物理地址记为地址B;
应用访问共享内存,此时触发第一阶段地址翻译异常,经上述其他机制处理后,内核将为应用分配物理页并配置页表,其中虚拟机物理地址记为地址C,当内核处理过程完成并返回应用时需经过虚拟机监控器,后者识别该异常的虚拟地址对应共享内存,并查询虚拟地址与共享内存的对应关系;在应用虚拟机的第二阶段翻译页表中将虚拟机物理地址C重定向至真实物理地址B;
恢复应用执行,
此时应用再次访问虚拟地址A,并经两次翻译后得到真实物理地址B,从而访问共享内存。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
存储设备的操作方法及物理服务器 | 2020-05-08 | 720 |
一种虚拟机互斥访问主机设备的方法及装置 | 2020-05-12 | 203 |
一种基于任务预调度的WebIDE云服务器资源分配方法 | 2020-05-15 | 721 |
虚拟机监控器的安全引导方法、系统及硬件安全监控卡 | 2020-05-13 | 576 |
一种虚拟化环境中服务调用监控方法和系统 | 2020-05-15 | 876 |
基于安全虚拟机的日志文件安全审计系统及方法 | 2020-05-12 | 832 |
用于SMM传输监控器的扩展存储器 | 2020-05-14 | 106 |
一种虚拟机资源分配系统、方法及计算机程序 | 2020-05-08 | 175 |
一种服务器功耗攻击的检测方法 | 2020-05-11 | 860 |
一种通信方法和逻辑处理器 | 2020-05-13 | 303 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。