banner
ニュース センター
当社のオンライン サービスは 24 時間ご利用いただけます。

Lindell17 アボートの脆弱性 [CVE]

Nov 08, 2023

この脆弱性により、攻撃者は、署名試行ごとに 1 ビット (合計 256) を抽出することで、Lindell17 2PC プロトコルを実装したウォレットから完全な秘密キーを抽出することができます。 Coinbase WaaS、Zengo、その他のライブラリにはパッチが適用されています。

Fireblocks の研究チームは、Lindell17 閾値 ECDSA プロトコルの実際の展開に脆弱性を発見しました。 この脆弱性はプロトコルと広範なセキュリティ インフラストラクチャの間のインターフェイスで発見され、Lindell17 に基づくすべてのセキュリティ製品が影響を受ける可能性があります。 さまざまな程度の悪用可能性において、この攻撃に対して脆弱な複数のサービスとしてのウォレットプロバイダー、小売ウォレット、およびオープンソースライブラリを発見しました。

このエクスプロイトは、学術論文の仕様から逸脱し、署名が失敗した場合の中止を無視または誤って処理する Lindell17 実装に由来します。 攻撃者側に特権アクセスがあると仮定すると、この脆弱性が悪用され、約 200 回の署名要求後にキーが流出する可能性があります。 この脆弱性は実用的であることが証明されており、一般的なオープンソース ライブラリや一部の実世界のシステムで検証されています。

ウォレットのプロトコルを実際に実装すると、多くの場合、難しいジレンマに遭遇します。つまり、署名に失敗した後に操作を停止するか(資金がロックされる可能性がある)、または署名プロセスを続行することで、署名ごとに追加の鍵ビットが暴露される危険性があります。

この脆弱性は最初に ZenGo ウォレットで発見され、その後 Coinbase Wallet as a Service (WaaS) ライブラリで検証され、他のウォレット プロバイダーとライブラリも影響を受けました。 また、プロトコルの一般的なオープンソース実装で動作する POC を使用して検証されました (以下のリンク)。 CoinbaseとZenGoの両方は、当社の責任ある開示プロセスの一環として問題を速やかに緩和し、チェックを行った結果、ウォレットが悪用されていないことを保証しました。

この脆弱性により完全な秘密キーの抽出が可能になり、攻撃者が暗号通貨ウォレットからすべての資金を盗むことが可能になります。 ただし、これは非対称の脆弱性であり、攻撃者が攻撃を開始するには特定の当事者を破壊する必要があることを意味します (つまり、攻撃に関して当事者は区別できません)。

詳しく説明すると、Lindell17 プロトコルは通常、ウォレット プロバイダーとエンド ユーザーが関与するウォレットに使用され、基礎となる秘密鍵が 2 者間で配布されます。 さらに、ウォレットには 2 つの構成が可能です。ウォレットプロバイダー (サービス) が署名を完成させるか、エンドユーザー (クライアント) がプロトコルの最後に署名を完成させるかのいずれかです。 署名を完成させる任務を負った当事者が危険にさらされており、攻撃者は相手方を危険にさらすことでこの脆弱性を悪用する可能性があります。

ケース1。サーバーが署名を完成させる

この場合、攻撃者はクライアントを侵害し、クライアントに代わって悪意のあるメッセージを送信することでキーを盗み出す可能性があります。 具体的には、攻撃者は、各署名セッションで、サーバーの秘密共有のターゲット ビットがゼロに等しい場合にのみ有効な署名となる異なる悪意のあるメッセージを作成するように、200 のトランザクションを開始する可能性があります。

したがって、サーバーが署名を完成させるかどうか(署名がブロックチェーン上に現れるか現れないか、またはサーバー自体が攻撃者に通知するため、攻撃者はこの情報を取得します)に応じて、攻撃者はサーバーのシェアの一部を取得します。 。 最終的には 256 回の署名後に鍵を完全に回復できます。

署名リクエストを「電撃的に」(次々と迅速に開始する)ことができれば、上記の攻撃が迅速化される可能性があることに注意してください。これは通常、サーバーが自動化されており、署名の数を大幅に制限しないため、通常は可能です。

ケース2。クライアントが署名を完成させる

2 番目のケースでは、サーバーを侵害し、上記の攻撃を逆に実行することで、攻撃者は同様の方法でキーを抽出する可能性があります。