本发明系指一种用于乱序执行处理器电路的检测方法及相关检测装置,尤指一种应用正规方法全面性检测乱序执行处理器电路的检测方法及其相关检测装置。
背景技术:
1、熔毁(meltdown)漏洞是利用现有处理器的乱序执行(out-of-order execution)和系统权限检查(permission check)所存在的硬件漏洞进行攻击,再利用旁道(sidechannel)将加密数据泄漏出去。
2、如图1所示,图1为现有的熔毁攻击方式的示意图。图1中的阵列[idx]代表了属于内核空间(kernel space)不能被使用者空间(user space)读取的存储器位址,即阵列[idx]的内容是不该被读取的加密数据。在用户进程(user process)读取阵列[idx]位址时会进行读取数据以及权限检查。由于用户空间无法读取内核空间的数据,上述的权限检查会失败进而触发中断。
3、然而,现有的处理器在进行乱序执行时,权限检查完触发中断(exception)的时间点可能比读取数据晚,在此情形下,熔毁攻击可以通过探针阵列(probe array)先读取加密数据(即阵列[idx]),通过探针阵列的读取时间差异得到加密数据的位址信息。现有的解决方式可以使用一软体内核页表隔离,但此法会影响系统效能,因此现有技术有改进的必要。
技术实现思路
1、因此,本发明提供一种用于乱序执行处理器电路的检测方法及相关检测装置,以确认支持乱序执行处理器的电路能有效防范熔毁漏洞攻击。
2、本发明实施例公开一种用于一乱序执行处理器电路的检测方法,包含有确认在该乱序执行处理器电路的一权限检查失败所触发的一中断提交之前,该乱序执行处理器电路的一数据缓冲单元未发送数据请求以再填充缓冲;以及确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的一存储器存取单元没有被读取一加密数据,并且该加密数据未被该乱序执行处理器电路的一计算单元使用。
3、本发明实施例另公开一种乱序执行处理器电路的检测装置,包含有一有限状态转换模组,用来将一待验电路转换为至少一有限状态图;一逻辑表述式转换模组,用来将至少一验证特征转换为至少一逻辑表述式;以及一模型验证电路,用来对该至少一有限状态图以及该至少一逻辑表述式执行一模型验证程序,以决定该待验电路是否符合该至少一验证特征;其中该验证特征包含对应于该乱序执行处理器电路的检测方法,其中该乱序执行处理器电路的检测方法包含有确认在该乱序执行处理器电路的一权限检查失败所触发的一中断提交之前,该乱序执行处理器电路的一数据缓冲单元未发送数据请求以再填充缓冲;以及确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的一存储器存取单元没有被读取一加密数据,并且该加密数据未被该乱序执行处理器电路的一计算单元使用。
1.一种用于乱序执行处理器电路的检测方法,包含有:
2.根据权利要求1所述的检测方法,其中,确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的该存储器存取单元未被读取该加密数据,并且该加密数据未被该乱序执行处理器电路的该计算单元使用的步骤包含:
3.根据权利要求1所述的检测方法,其中,确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的该存储器存取单元未被读取该加密数据,并且该加密数据未被该乱序执行处理器电路的该计算单元使用的步骤包含:
4.根据权利要求1所述的检测方法,其中,确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的该存储器存取单元未被读取该加密数据,并且该加密数据未被该乱序执行处理器电路的该计算单元使用的步骤包含:
5.根据权利要求1所述的检测方法,其中,确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的该数据缓冲单元未发送数据请求以再填充缓冲的步骤包含:
6.根据权利要求1所述的检测方法,其中,确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的该数据缓冲单元未发送数据请求以再填充缓冲的步骤包含:
7.根据权利要求1所述的检测方法,其中,确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的该数据缓冲单元未发送数据请求以再填充缓冲的步骤包含:
8.一种用于乱序执行处理器电路的检测装置,包含有:
9.根据权利要求8所述的检测装置,其中,确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的该存储器存取单元未被读取该加密数据,并且该加密数据未被该乱序执行处理器电路的该计算单元使用的步骤包含:
10.根据权利要求8所述的检测装置,其中,确认在该乱序执行处理器电路的该权限检查失败所触发的该中断提交之前,该乱序执行处理器电路的该存储器存取单元未被读取该加密数据,并且该加密数据未被该乱序执行处理器电路的该计算单元使用的步骤包含:
