コンテンツへスキップ

暗号資産セキュリティレポート:2022年5月

MetaMask のモジュール互換性のための Endo の import.meta と __dirname 実装、MetaMask Flask 向けマルチパーティ計算を使用した分散鍵生成プロトタイプ Snap、および MetaMask の HackerOne バグバウンティプログラムの開始。

4分
暗号資産セキュリティレポート:2022年5月

Each month, MetaMask Security Director Lukerが最新の暗号資産攻撃と新たなリスクについてレポートします。

2022年5月版では、MetaMaskのHackerOneバグバウンティプログラムの開始、MetaMaskの依存関係の互換性を向上させるためのEndoによるimport.metaおよび__dirnameの実装、そしてMetaMask Flaskにおけるマルチパーティ計算署名を実証する分散鍵生成プロトタイプSnapについて取り上げました。詳細は以下をご覧ください。その前に…

注目のSTEMパイオニア:RSAの共同発明者であり秘密分散の考案者、Adi Shamir

Adi Shamirは、1977年にRon RivestおよびLeonard AdlemanとともにRSAアルゴリズムを共同発明したイスラエルの暗号学者です。これは初めて実用化された公開鍵暗号システムであり、3人は2002年のチューリング賞を受賞しました。1979年には「How to Share a Secret」を発表し、Shamirの秘密分散を提唱しました。これは秘密をシェアに分割し、一定の閾値数のシェアがあれば元の秘密を復元できる方式です。この特性は、本レポートで取り上げる分散鍵生成の研究の基盤となっています。

MetaMask、HackerOneバグバウンティプログラムを開始

MetaMaskは2022年6月、HackerOne上でバグバウンティプログラムを開始し、セキュリティ研究者がMetaMask製品の脆弱性を報告するための正式なチャネルを設けました。

Endoがimport.metaと__dirnameを実装し、MetaMaskの依存関係の互換性が向上

2022年4月のEndoのCommonJSサポートの進捗を受け、エンドツーエンドのテスト結果から、一般的なモジュールを実行する上での最大の障壁がimport.meta.urlと__dirnameのサポートであることが明らかになりました。

2022年5月3日に行われたAgoric、MetaMask、Moddableの会議では、モジュールのインポートプロセスにおいてimport.metaをどの段階で処理すべきかについて合意が得られました。importMetaHookのコンセプトがCompartment仕様に導入されました。このフックは、静的解析によってモジュールがimport.metaにアクセスすることが確認された場合にのみ呼び出されます。Node.jsはそこにresolve関数をアタッチしており、その生成にはコストがかかるため、結果が使用される可能性がある場合にのみフックを呼び出すことが最善とされています。

import.metaの実装は完了しています(spec issue、implementation PR)。残る作業は、Endoにおいてimport.meta.urlをデフォルトでモジュールに渡す実装です。__dirnameの実装も完了しており(PR)、正確性とWindowsパスのサポートを確保するために複数回の反復を経ています。

また、.jsファイルのデフォルトモジュールタイプの前提を変更するネストされたpackage.jsonファイルのサポートも追加されました。これにより、compartment-mapperがCommonJSとESモジュール仕様の両方をサポートするために複雑な構造を持つパッケージを処理できるようになります(source)。

__esModuleの動作サポートは保留中です。2回の実装試行はいずれもエンドツーエンドテストのスコアを悪化させる結果となりました。3番目のアプローチ——SES内のThirdPartyModuleInstanceにサポートロジックを配置する方法——は議論を呼ぶものとして検討されています。この機能はissue #927で追跡されています。

分散鍵生成プロトタイプSnapがMetaMask FlaskでのMPC署名を実証

マルチパーティ計算(MPC)機能において進展がありました。チームは以前のプルーフオブコンセプトであるWebAssembly(WASM)バインディングをもとにプロトタイプSnapを作成しました。このSnapはMetaMask Flaskで使用可能であり、分散鍵生成(DKG)とメッセージ署名を実証します。このSnapは、鍵生成とメッセージ署名のための証明の保存に加え、鍵シェアのエクスポートとインポートをサポートしています。

内部的には、このパッケージはGG2020(Gennaro and Goldfeder 2020、論文)の実装を活用しています。GG2020は、参加者が同時にオンラインである必要なく非同期で参加できる非インタラクティブなオンラインフェーズをサポートするプロトコルであり、中断する参加者の効率的な検出を可能にします。

次のステップとして、snap_manageStateへの暗号化サポートの追加によりSnapコード内での鍵シェアの手動暗号化を不要にすること、続いてトランザクション署名のサポート追加が予定されています。このプロトタイプはtss-snapリポジトリ(元々はecdsa-wasmとして公開)で追跡されています。


MetaMaskの2022年5月暗号資産セキュリティレポートでは、MetaMaskのモジュール互換性チェーンのためのEndoによるimport.metaおよび__dirnameの実装と、MetaMask FlaskでのマルチパーティコンピューティングによるMPC署名を実証する分散鍵生成プロトタイプSnapを取り上げました。エコシステム全体での安全性を保つための脅威、トレンド、ヒントについては、MetaMask暗号資産セキュリティレポートのバックナンバーもご覧ください。

AIによる翻訳です。エラーが含まれている可能性があります。常に情報を確認してください。

翻訳を評価する

この記事の執筆者:

  • Luker

      Jen Luker(多くの場合、単にLukerとして知られる)は、ConsensysのProduct Security部門のディレクターを務めており、分散型テクノロジー全体にわたって数百万人のユーザーを脆弱性、新たな脅威、悪意ある攻撃者から守る最前線の防衛チームを率いています。2017年からEthereumエコシステムに積極的に参加しており、ETHNewsのエディターやMyCryptoのプロジェクトマネージャーなど、重要な役割を担ってきました。Lukerは業界カンファレンスで定期的に登壇するスピーカーであり、MetaMaskの月次「Crypto Security Report」の著者でもあります。また、The DAOによって指定された公式のETH Security Badgeホルダーでもあります。さらに、Ethereumおよびブロックチェーン技術の未来に不可欠な柱として、継続的な教育とセキュリティ意識の向上を情熱的に推進しています。

      すべての記事を読む