マサリク大学の研究者が情報を明らかに 重要 の脆弱性について いろいろなECDSA / EdDSAデジタル署名生成アルゴリズムの実装、 これにより、サードパーティのチャネルを介して分析方法を適用するときに表示される個々のビットの情報漏えいの分析に基づいて、秘密鍵の値を回復できます。 脆弱性のコードネームはミネルバです。
最も有名なプロジェクト 影響する 提案された攻撃方法は OpenJDK、OracleJDK (CVE-2019-2894)およびライブラリ ライブラリクリプト (CVE-2019-13627)GnuPGで使用されます。 問題は ライブラリにも影響を受けやすい MatrixSSL、Crypto ++、wolfCrypt、楕円曲線、jsrsasign、Python-ECDSA、ruby_ecdsa、fastecdsa また、いくつかのスマートカード Athena IDProtect、TecSec装甲カード、SafeNet eToken 4300、有効なS / AIDflexV。
現時点で言及されている脆弱性に加えて、それらは影響を受けません 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データを使用してAthenaIDProtectカードでのみ脆弱性をテストしました
この問題は、個々のビット値を決定する機能が原因で発生します ECC取引中のスカラーによる乗算中。 ビット情報を抽出するために、計算実行の遅延を推定するなどの間接的な方法が使用されます。
攻撃には、ホストへの非特権アクセスが必要です デジタル署名が生成されます(リモート攻撃は除外されませんが、非常に複雑で、分析のために大量のデータを必要とするため、可能性は低いと見なすことができます)。
リークのサイズが小さいにもかかわらず、ECDSAの場合、初期化ベクトル(ノンス)に関する情報を含む数ビットの定義でさえ、攻撃を実行して完全な秘密鍵を順次復元するのに十分です。
メソッドの作者によると、 キーの回復を成功させるには、生成された数百から数千のデジタル署名の分析で十分です。 攻撃者に知られているメッセージの場合。 たとえば、Inside SecureAT90SCチップに基づくAthenaIDProtectスマートカードで使用される秘密鍵を決定するために、楕円曲線secp256r1を使用して、11のデジタル署名が分析されました。 総攻撃時間は30分でした。
私たちの攻撃コードと概念実証は、Brumley&Tuveriメソッドに触発されています。
この問題は、libgcrypt1.8.5およびwolfCrypt4.1.0ですでに修正されています。、他のプロジェクトはまだ更新を生成していません。 次のページのディストリビューションで、libgcryptパッケージの脆弱性修正を追跡することもできます。 Debianの, Ubuntu, RHEL, フェドーラ, openSUSE / SUSE, FreeBSDの, アーチ。
研究者は他のカードやライブラリもテストしましたが、次のものは脆弱ではありません。
- OpenSSL 1.1.1d
- バウンシーキャッスル 1.58
- BoringSSL 974f4dddf
- libtomcrypt 1.18.2
- ボタン2.11.0
- マイクロソフトCNG
- mbedTLS 2.16.0
- IntelIPP-暗号
カード
- DHW ACOSJ 40K
- フェイティアンA22CR
- G&D SmartCafe 6.0
- G&D SmartCafe 7.0
- インフィニオンCJTOP80K INF SLJ 52GLA080AL M8.4
- インフィニオンSLE78ユニバーサルJカード
- NXP JCOP31 v2.4.1
- NXP JCOP CJ2A081
- NXP JCOP v2.4.2 R2
- NXP JCOP v2.4.2 R3
- SIMOME TaiSYS Vault
使用された攻撃と検出された脆弱性について詳しく知りたい場合は、 次のリンク。 攻撃を再現するために使用されるツールはダウンロードできます。