Masaryk 대학 연구원들이 정보를 공개했습니다 중대한 취약점에 대해 다양한 나ECDSA / EdDSA 디지털 서명 생성 알고리즘의 구현, 타사 채널을 통해 분석 방법을 적용 할 때 나타나는 개별 비트에 대한 정보 유출 분석을 기반으로 개인 키의 가치를 복구 할 수 있습니다. 취약점의 코드 명은 Minerva입니다.
가장 유명한 프로젝트 영향을 미치는 제안 된 공격 방법은 다음과 같습니다. 오픈JDK, 오라클JDK (CVE-2019-2894) 및 라이브러리 libgcrypt (CVE-2019-13627) GnuPG에서 사용되었습니다. 문제는 도서관에도 취약 MatrixSSL, Crypto ++, wolfCrypt, elliptical, jsrsasign, Python-ECDSA, ruby_ecdsa, fastecdsa 또한 일부 스마트 카드 Athena IDProtect, TecSec Armored Card, SafeNet eToken 4300, 유효한 S / A IDflex V.
현재 언급 된 취약점 외에도 영향을받지 않습니다. OpenSSL, Botan, mbedTLS 및 BoringSSL. Mozilla NSS, LibreSSL, Nettle, BearSSL, cryptlib, FIPS 모드의 OpenSSL. Microsoft .NET 암호화, Linux 커널 libkcapi, Sodium 및 GnuTLS는 아직 테스트되지 않았습니다.
ECC에서 스칼라 곱셈 중에 스칼라의 비트 길이를 잃는 구현을 발견했습니다. 이 누출은 비트 길이가 스칼라에 존재하는 정보의 양이 매우 적기 때문에 사소하게 보일 수 있습니다. 그러나 ECDSA / EdDSA 서명 생성의 경우, 임의의 임시 값의 비트 길이를 필터링하면 알려진 메시지에서 수백에서 수천 개의 서명을 관찰 한 후 사용 된 개인 키의 전체 복구에 충분합니다. 몇 가지 기술.
기존의 모든 카드는 Inside Secure AT214SC A2 (펌웨어)에서 Athena OS755 ECDSA90 구성 요소로 설명되는 공통 ECDSA 구성 요소 (FIPS 1.0 모듈)를 공유하기 때문에 영향을받는다고 생각합니다. CPLC 및 ATR 데이터가있는 Athena IDProtect 카드에서만 취약점을 테스트했습니다.
문제는 개별 비트 값을 결정하는 기능으로 인해 발생합니다. ECC 거래 중 스칼라로 곱하는 동안. 계산 수행의 지연을 추정하는 것과 같은 간접 방법은 비트에서 정보를 추출하는 데 사용됩니다.
공격에는 호스트에 대한 권한없는 액세스가 필요합니다. 디지털 서명이 생성되는 경우 (원격 공격은 제외되지 않지만 매우 복잡하고 분석을 위해 많은 양의 데이터가 필요하므로 가능성이 없다고 간주 될 수 있습니다).
작은 크기의 누출에도 불구하고 ECDSA의 경우 초기화 벡터 (nonce)에 대한 정보가 포함 된 몇 비트의 정의만으로도 완전한 개인 키를 순차적으로 복원하기위한 공격을 수행하기에 충분합니다.
이 방법의 저자에 따르면 성공적인 키 복구를 위해 생성 된 수백에서 수천 개의 디지털 서명을 분석하는 것으로 충분합니다. 공격자에게 알려진 메시지 예를 들어, secp90r256 타원 곡선을 사용하여 Inside Secure AT1SC 칩을 기반으로 Athena IDProtect 스마트 카드에 사용 된 개인 키를 확인하기 위해 11 개의 디지털 서명이 분석되었습니다. 총 공격 시간은 30 분이었습니다.
우리의 공격 코드와 개념 증명은 Brumley & Tuveri 방법에서 영감을 받았습니다.
문제는 libgcrypt 1.8.5 및 wolfCrypt 4.1.0에서 이미 수정되었습니다., 다른 프로젝트는 아직 업데이트를 생성하지 않았습니다. 다음 페이지의 배포판에서 libgcrypt 패키지의 취약성 수정을 추적 할 수도 있습니다. 데비안, Ubuntu, RHEL, 페도라, 오픈 수세 / 수세, FreeBSD의, 아치.
연구원들은 또한 다른 카드와 라이브러리를 테스트했는데, 그중 다음은 취약하지 않습니다.
- 오픈SSL 1.1.1d
- 바운시캐슬 1.58
- BoringSSL 974f4dddf
- libtomcrypt 1.18.2
- 보탄 2.11.0
- 마이크로소프트 CNG
- 엠베드TLS 2.16.0
- 인텔 IPP-Crypto
카드
- DHW ACOSJ 40K
- 페이티안 A22CR
- G & D SmartCafe 6.0
- G & D SmartCafe 7.0
- 인피니언 CJTOP 80K INF SLJ 52GLA080AL M8.4
- Infineon SLE78 범용 JCard
- NXP JCOP31 v2.4.1
- NXP JCOP CJ2A081
- NXP JCOP v2.4.2 R2
- NXP JCOP v2.4.2 R3
- SIMOME TaiSYS Vault
사용 된 공격과 탐지 된 취약성에 대해 자세히 알고 싶다면 다음 링크. 공격을 복제하는 데 사용되는 도구는 다운로드 할 수 있습니다.