cipherleaks.com
Open in
urlscan Pro
185.199.110.153
Public Scan
Submitted URL: http://cipherleaks.com/
Effective URL: https://cipherleaks.com/
Submission: On July 07 via manual from US — Scanned from DE
Effective URL: https://cipherleaks.com/
Submission: On July 07 via manual from US — Scanned from DE
Form analysis
1 forms found in the DOM<form class="bd-search" onsubmit="return lunr_search(document.getElementById('lunrsearch').value);">
<input type="text" class="form-control text-small launch-modal-search" id="lunrsearch" name="q" maxlength="255" value="" placeholder="Type and enter...">
</form>
Text Content
* CIPHERLEAKs * About * Contact CIPHERLEAKS Cipherleaks is the first demonstrated attack against AMD SEV-SNP. It exploits a vulnerable design feature of SEV's memory encryption and uses the ciphertext of the encrypted VM Save Area (VMSA) as side channels to breach constant-time RSA and ECDSA implementation of the latest OpenSSL library. WHAT IS CIPHERLEAKS? CIPHERLEAKs ROOT CAUSES OF THE VULNERABILITY Two features in the design of SEV (and SEV-SNP) caused this vulnerability * SEV hardware encrypts the VM's memory using 128-bit AES symmetric encryption. The AES engine integrated into the AMD System-on-Chip (SOC) automatically encrypts the data when it is written to the memory and automatically decrypts the data when it is read from memory. Latest SEV processors adopt the XOR-Encrypt-XOR (XEX) encryption mode in the memory encryption where the ciphertext is calculated by c=ENC(m⊕T(Pm))⊕T(Pm)c=ENC(m\oplus T(P_m))\oplus T(P_m)c=ENC(m⊕T(Pm ))⊕T(Pm ). The 128-bit entropy tweak function T()T()T() fixed all existing vulnerabilities in SEV AES encryption. However, the same plaintext always has the same ciphertext in system physical address PmP_mPm during the lifetime of a guest VM. * For performance optimization, SEV (including SEV-ES and SEV-SNP) does not prevent the hypervisor from read accessing the ciphertext of the encrypted memory. CIPHERTEXT SIDE CHANNELS By monitoring the changes in the ciphertext of the victim VM, the adversary is able to infer the changes of the corresponding plaintext. This ciphertext side channel may seem innocuous at first glance, but when applied to certain encrypted memory regions, it may be exploited to infer the execution of the victim VM. Specifically, we target at monitoring the ciphertext of the VMSA. We particularly construct two attack primitives: execution state inference and plaintext recovery. Execution state inference can help locate the physical address of targeted functions and infer the executing function of a process. The ciphertext side channel can also be exploited to recover the plaintext from some of the ciphertext blocks. To recover plaintext from the ciphertext, the adversary first needs to build a dictionary of plaintext-ciphertext pairs for the targeted registers, and then make use of the dictionary to recover the plaintext value of the registers of interest during the execution of a sensitive application. CASE STUDIES We present two case studies to illustrate the CIPHERLEAKs attack. In the first attack, we show that the constant-time RSA implementation in OpenSSL can be broken with known ciphertext for the plaintext values of 0 to 31 (which can be easily collected during VM's lifecycle). In the second attack, we show that the constant-time ECDSA signature can be compromised with known ciphertext of the plaintext values of 0 and 1. In both of the two cases we presented, the adversary can recover the private key d of RSA encryption and the secret nonce k in ECDSA signature with 100% accuracy. DISCLOSURE We disclosed the vulnerability of the ciphertext side channel and the CIPHERLEAKs attack to AMD team. AMD engineers have acknowledged the vulnerability on SEV, SEV-ES, and SEV-SNP, and filed an embargo that is effective until August 10, 2021. As of the time of writing, CVE number, CVE-2020-12966, has been reserved for the vulnerability. AMD also announces a security bulletin together with a hardware patch for SEV-SNP in August 2021 (https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1013). RESEARCH PAPER Docs READ OUR PAPER Read more details about CIPHERLEAKs. Cite CITE OUR PAPER Explore AMD SEV. PEOPLE Mengyuan Li (The Ohio State University) Yinqian Zhang (Southern University of Science and Technology) Huibo Wang (Baidu Security) Kang Li (Baidu Security) Yueqiang Cheng (NIO Security Research) Q&A * Who is affected by CIPHERLEAKs? All SEV, SEV-ES and SEV-SNP are affected by CIPHERLEAKs, which are supported by AMD EPYC server processors. * What is SEV? AMD’s Secure Encrypted Virtualization (SEV) is an extension of the AMD Virtualization (AMD-V) technology. It provides security features, such as memory encryption and isolation to virtual machines (VM), in order to support scenarios like confidential cloud computing where hypervisors are not trusted to respect the security of the VMs. When SEV is enabled, the memory pages used by a guest VM are transparently encrypted by a secure co-processor using an ephemeral key that is unique to each VM, thus allowing the guest VMs to compute on encrypted memory. SEV is AMD's ambitious movement towards confidential cloud computing, which is gaining traction in the cloud industry. For instance, Google Cloud recently provides SEV feature in its cloud computing service. Customers now can setup SEV-enabled VMs, called Confidential VMs, as its first product of Confidential Computin * What is SEV-SNP? To address the attacks against SEV that exploit memory integrity flaws, AMD recently announced SEV Secure Nested Paging (SEV-SNP) and released a whitepaper describing its high-level functionality in January 2020. SEV-SNP protects guest VM's memory integrity by introducing a new structure called Reverse Map Table (RMP). The source code for SEV-SNP software support can be found here. * Which SEV generations are affected? CIPHERLEAKs can affect SEV (the original generation), SEV-ES (the second generation) and SEV-SNP (the third and the latest generation). * What is CVE-2020-12966? CVE stands for Common Vulnerabilities and Exposures and CVE-2020-12966 is the official record of CIPHERLEAKs attack. * Are there some software patches available? Unfortunately, CIPHERLEAKs attack can collect the function's internal state by Advanced Programmable Interrupt Controller (APIC). Thus, no software solutions may work properly. Some hardware-level patches are expected. * What hardware migrations are available for CIPHERLEAKs? AMD has developed mitigation in the VMSA Register Protection feature to help protect against a malicious hypervisor. The mitigation is available for enablement in 3rd Gen AMD EPYC™ processors and requires the use of SEV-SNP, which is supported on 3rd Gen AMD EPYC™. The update has been released as part of MilanPI-SP3_1.0.0.5. There is no hardware migration for prior generations of AMD EPYC™. For more information, please refer to https://www.amd.com/en/corporate-product-security-bulletin-amd-sb-1013. * What is Constant-time Cryptography? Constant-time cryptography implementations are widely used in mainstream cryptography libraries to mitigate timing attacks, the design of constant-time functions is used to reduce or eliminate data-dependent timing information. Specifically, Constant-time implementations are making the execution time independent of the secret variables, therefore, do not leak any secret information to timing analysis. To achieve constant execution time, there are three rules to follow. First, the control-flow paths cannot depend on the secret information. Second, the accessed memory addresses can not depend on the secret information. Third, the inputs to variable-time instructions such as division and modulus cannot depend on the secret information. * The LOGO? The crocodile and the character "L" in the LOGO stand for CIPHERLEAKs respectively. You are welcomed to use our LOGO. ESSENTIAL LINKS DOCUMENTS * [SEV] AMD Memory Encryption * SEV API * [SEV-ES] Protecting VM Register State With SEV-ES * SEV-ES API * Guest Hypervisor Communication Block (GHCB) Standardization * [SEV-SNP] AMD SEV-SNP * SEV Secure Nested Paging Firmware ABI Specification * [Manual] AMD64 Architecture Programmer’s Manual Volume 2 SEV SOFTWARE SUPPORT * [Software Support] How to setup AMD SEV * SEV-ES Branch * SEV-SNP Branch * [SEV-Tool] AMD SEV Tool for managing SEV platform certificates * [Container] SEV runtime for Kata Containers EXPLORE → Copyright © 2021 CIPHERLEAKs Mediumish Jekyll Theme by WowThemes.net