New Branch Prediction Vulnerabilities in OpenSSL and Necessary Software Countermeasures

New Branch Prediction Vulnerabilities in OpenSSL and Necessary Software Countermeasures
复制标题

OpenSSL中新的分支预测漏洞及必要的软件对策

DOI:
--
复制
发表时间:
2007
期刊:
IMA Conference on Cryptography and Coding
影响因子:
--
通讯作者:
Jean
Jean
中科院分区:
--
文献类型:
--
作者:
O. Aciiçmez;S. Gueron;Jean

文献摘要

被引文献

相似文献

基于软件的侧信道攻击允许无特权的间谍进程通过利用“侧信道”信息的某些间接泄漏从受害者(密码系统)进程中提取秘密信息。人们已经认识到,现代计算机微架构的一些组件会泄漏某些侧信道信息,并可能产生不可预见的安全风险。这种微架构侧信道分析的一个例子是缓存攻击——一组利用缓存延迟信息泄漏的攻击[4,7,13,15,18]。公众对缓存攻击漏洞的认识促使OpenSSL(0.9.8a版及后续版本)的软件编写者采取了防止这些攻击的措施。在本文中,我们提出了一种新的且不可预见的侧信道攻击,它是由最近发表的简单分支预测分析(SBPA)所引发的,SBPA是另一种微架构分析类型,参见[2,3]。我们表明,模逆运算——公钥密码学中的一个关键原语——是SBPA攻击的一个自然目标,因为它通常使用二进制扩展欧几里得算法,其本质是一个以输入为中心的条件分支序列。我们的结果表明,SBPA可用于在二进制扩展欧几里得算法执行过程中提取秘密参数。这对诸如OpenSSL等已经采用缓存攻击防范措施的密码应用程序构成了一种新的潜在风险。因此,有必要为BPA开发新的软件缓解技术,并将其与安全应用中的缓存分析防范措施相结合。为了全面缓解这种新风险,我们应用一种具有安全意识的算法设计方法,并对CRT - RSA算法流程提出一些修改建议。这些修改要么避免一些需要模逆运算的步骤,要么从该过程中消除关键信息泄漏。此外,我们还通过示例表明,无论算法中需要进行何种修改,都还需要仔细的软件分析,以确保软件实现不会无意中引入可能使应用程序遭受SBPA攻击的分支。这些为修改OpenSSL以缓解分支预测攻击提供了几种简单的方法。
Software based side-channel attacks allow an unprivileged spy process to extract secret information from a victim (cryptosystem) process by exploiting some indirect leakage of "side-channel" information. It has been realized that some components of modern computer microarchitectures leak certain side-channel information and can create unforeseen security risks. An example of such MicroArchitectural Side-Channel Analysis is the Cache Attack -- a group of attacks that exploit information leaks from cache latencies [4,7,13,15,18]. Public awareness of Cache Attack vulnerabilities lead software writers of OpenSSL (version 0.9.8a and subsequent versions) to incorporate countermeasures for preventing these attacks. In this paper, we present a new and yet unforeseen side channel attack that is enabled by the recently published Simple Branch Prediction Analysis (SBPA) which is another type of MicroArchitectural Analysis, cf. [2,3]. We show that modular inversion -- a critical primitive in public key cryptography -- is a natural target of SBPA attacks because it typically uses the Binary Extended Euclidean algorithm whose nature is an input-centric sequence of conditional branches. Our results show that SBPA can be used to extract secret parameters during the execution of the Binary Extended Euclidean algorithm. This poses a new potential risk to crypto-applications such as OpenSSL, which already employs Cache Attack countermeasures. Thus, it is necessary to develop new software mitigation techniques for BPA and incorporate them with cache analysis countermeasures in security applications. To mitigate this new risk in full generality, we apply a security-aware algorithm design methodology and propose some changes to the CRT-RSA algorithm flow. These changes either avoid some of the steps that require modular inversion, or remove the critical information leak from this procedure. In addition, we also show by example that, independently of the required changes in the algorithms, careful software analysis is also required in order to assure that the software implementation does not inadvertently introduce branches that may expose the application to SBPA attacks. These offer several simple ways for modifying OpenSSL in order to mitigate Branch Prediction Attacks.