侵害されたハードウェアウォレットは、強力なランダム性で生成された秘密鍵であっても、署名プロセスを通じてユーザーの秘密鍵を徐々に漏洩させる可能性があります。Blockstream Jade は、この種の攻撃を軽減するために Anti-Exfil(アンチエクスフィル)機能を実装しています。
この攻撃とその軽減策がどのように機能するかを完全に理解するには、ビットコインにおける署名の仕組みについて簡単に概説する必要があります。
ビットコインで使用されているデジタル署名アルゴリズムである ECDSA では、ランダムな秘密鍵とノンス(署名にランダム性を持たせるための一度限りの値)が組み合わされます。このノンスは、最終的に他のユーザーのビットコインフルノードによって検証可能なトランザクション署名を生成します。このランダムなノンスがなければ、誰でも署名に基づいて秘密鍵を推測できてしまいます。これは、その名の通り、非常に危険な事態です。
**侵害されたハードウェアウォレットは、ランダムに見えるものの実際にはランダムではないノンスを生成する可能性があります。**攻撃者はこれらのノンスを事前に知ることができるかもしれません。さらに悪いことに、ハードウェアウォレットがユーザーのマスター秘密鍵の一部を個々のノンスに漏洩させ、十分な数の署名があれば攻撃者がすべての秘密鍵を推測できるようになる可能性もあります。
Anti-Exfil は「sign-to-contract(サイン・トゥ・コントラクト)」という手法を用いて、Jade に署名ノンスを使用するよう要求すると同時に、**(侵害されていないと想定される)ホストコンピュータから提示されたランダムデータを暗号的にコミットします。**そして、そのランダムデータのハッシュ値と署名ノンスを組み合わせることで署名が生成されます。
このプロトコルを使用することで、ノンスは再度ランダム化され、攻撃を防ぐことができるのです。