YubiKey 5にサイドチャネル攻撃でセキュリティが破られる脆弱性が見つかる、バージョン5.7より前のYubiKeyは永久に危険との勧告
FIDO認証のセキュリティキーとして人気のYubiKeyに脆弱(ぜいじゃく)性があることが判明したと、セキュリティ企業のNinjaLabが発表しました。脆弱性を突いた攻撃には高度な知識と高価な設備が必要ですが、YubiKeyはファームウェアの更新ができないため、バージョン5.7より前の製品はすべて永久に脆弱なままとなります。
Security Advisory YSA-2024-03 | Yubico
EUCLEAK - NinjaLab
https://ninjalab.io/eucleak/
YubiKeys are vulnerable to cloning attacks thanks to newly discovered side channel | Ars Technica
https://arstechnica.com/security/2024/09/yubikeys-are-vulnerable-to-cloning-attacks-thanks-to-newly-discovered-side-channel/
YubiKeyのメーカーであるYubicoは、NinjaLabのレポートを受けて公開したセキュリティアドバイザリで、「YubiKey 5シリーズの、ファームウェア 5.7.0より前のセキュリティキーシリーズ、およびファームウェア2.4.0より前のYubiHSM 2に使用されているInfineon製暗号化ライブラリに脆弱性が発見されました。Yubicoデバイスにおける問題の重大性は中程度です。攻撃者は、高度な標的型攻撃の一環としてこの問題を悪用し、影響を受ける秘密鍵を復元できる可能性があります」と発表しました。
NinjaLabが報告したYubiKeyの脆弱性「EUCLEAK」は、サイドチャネル攻撃に対するものです。サイドチャネル攻撃とは、デバイスから放出される電磁波やタスクが完了するまでの時間など、アルゴリズム以外のさまざまな外部的兆候を利用した攻撃ですが、今回のケースでは主に暗号技術に使われるモジュラ逆数の計算にかかる時間が問題となりました。
報告によると、Infineon製の暗号ライブラリには定数時間処理という、一般的なサイドチャネル対策が施されていなかったとのこと。定数時間処理とは、暗号化処理にかかる時間を一定にすることで処理時間の違いから情報が漏れるのを防ぐ手法です。
この脆弱性を悪用する攻撃者は、オシロスコープで認証中のトークンの電磁放射を測定し、わずかな処理時間の違いから一時的に使用されるECDSAキーを特定することができるとのこと。そして、最終的にトークンのセキュリティ全体に関わる秘密のECDSAキーが抽出され、トークンを複製するクローン攻撃が行われるおそれがあります。
NinjaLabによると、この脆弱性を突いたクローン攻撃には以下のようなシナリオが考えられるとのこと。
1.攻撃者がフィッシング攻撃などを使って、FIDOで保護された被害者のアカウントのログインIDとパスワードを盗む。
2.被害者に気づかれないように、被害者のFIDOデバイスを入手する。
3.被害者のログインIDとパスワードを使ってサイドチャネル攻撃のための測定をしながら、必要な回数だけデバイスに認証要求を送信する。
4.攻撃者が被害者にFIDOデバイスを返却する。
5.測定値に基づいてサイドチャネル攻撃を行い、被害者のアカウントに紐付いた秘密のECDSAキーを抽出する。
6.FIDOデバイスなしでアカウントにログインできるようになる。
この攻撃には1万1000ドル(約160万円)する設備と、電気工学や暗号工学に関する高度な知識が必要です。また、サイドチャネル攻撃のためにセキュリティキーを分解し、必要な測定が終わったら新しい本体ケースに収めて被害者に返す工程も必要になると考えられます。そのため、国家的な規模で行われる標的型攻撃での悪用が想定されています。
NinjaLabのレポートを取り上げたIT系ニュースサイト・Ars Technicaは「セキュリティキーが高度な技能と設備を有する攻撃者の手に渡らない限り、FIDO認証は最も強固な認証形式のひとつであることに変わりはありません」と述べて、脆弱性が明らかになったとはいえ依然として物理キーの安全性は高いと指摘しました。
なお、使用中のYubiKeyのファームウェアのバージョンが知りたい場合は、Yubicoが提供しているYubico Authenticatorというアプリを使うと確認ができます。また、脆弱性の原因となった暗号ライブラリを手がけたInfineonはまだセキュリティ勧告を発しておらず、勧告を促す問い合わせにも応じていないとのことです。