Worldcoin Orb プライバシーとセキュリティ監査報告書

2024年3月14日 1分で読めます
A person holding an Orb, showcasing its design and functionality.

Worldcoin プロジェクトは、プライバシーとセキュリティへの取り組みに基づいて設立されています。 この取り組みの一環として、プロジェクトの貢献者であるTools for Humanity(TFH)は、Worldcoin Foundationと共同で、Trail of Bitsの尊敬されるセキュリティ専門家を起用し、オーブのソフトウェアの専門監査を実施しました。 通常のセキュリティ評価に加えて、Trail of Bits はオーブに関連する一連のプライバシーおよび機能の主張を評価することに重点を置きました。 

最終報告書はこちらでご覧いただけます

評価の範囲

Trail of Bitsは、2023年8月14日にソフトウェアバージョンを凍結して2023年7月8日SemVer 3.0.10の評価を開始しました。 現在、2024年3月14日時点でorbsにデプロイされたソフトウェアのバージョンは 4.0.34 であり、初めてリリースされた日付は2024年1月17日です。 

TFHは、その実装を検証するための試みとして、エンゲージメントの範囲を定義する一連の非網羅的な技術的主張を提供しました。 これらの主張は、2023年7月8日に凍結されたバージョンのソフトウェアリリースを対象としていました。

1. デフォルトのオプトアウトサインアップフローでは、オーブによって収集される個人を特定できる情報(PII)は虹彩コードのみです。

  • オーブには一切のPIIが永続的に保存されません
  • 虹彩コードを除くPIIはオーブを離れることはありません(例:アップロード)

2. デフォルトでないオプトインサインアップフローの場合、PIIはオーブによって安全に扱われます

  • デバイスに永続的に保存される唯一のPIIはオーブのSSDにあり、非対称暗号化されています*
  • オーブのSSDに保存されている非対称暗号化されたPIIはオーブによって復号化されることはありません

3. オーブはユーザーのデバイスから機密データを抽出しません

  • オーブがユーザーの電話から収集する唯一の情報はQRコードにあります**。

4. ユーザーの虹彩コードは安全に扱われます

  • ユーザーの虹彩コードはオーブ内の永続ストレージに書き込まれません
  • ユーザーの虹彩コードは、オーブのバックエンドへの単一のリクエストにのみ含まれます ***
  • 虹彩コードは承認されたサーバーにのみ送信でき、ネットワーク通信はエンドツーエンドで暗号化されます。

* バージョン4.0.XXのリリース以降、オーブはデータ保管オプションに関係なくSSDにデータを保存しません。

** オーブソフトウェアバージョン 3.0.10 では、QRコードに128ビットのUUID user_iddata_policy が含まれており、これはユーザーのデータ保管選択を表す真偽値であり、内部使用のためのオプションのDataCollectionConfig 構造体です。バージョン 4.0.0 のソフトウェアでは、QRコードがユーザーの公開鍵を含む暗号化ハッシュ user_data_hash を含むように変更されました。 このハッシュは、データをユーザーのデバイスに暗号化する際に正しい公開鍵が使用されていることを確認するために使用されます。 

*** バージョン 4.0.0のソフトウェアでは、新しい「個人保管」機能が追加され、虹彩コードとバイオメトリクスの追加コピーがユーザーの公開鍵を使用して直接ユーザーのデバイスに暗号化されます。

これらの主張は、Trail of Bitsとの協力の下で最終報告書で利用可能な具体的な目標にさらに精緻化されました。 オーブのRustで記述された顧客ユーザースペースアプリケーションおよびDebianベースのオペレーティングシステムは、この評価の範囲内と定義され、以下のコンポーネントは元の主張に該当しないものとして除外されました:

  1. ブートローダーの構成
  2. ドライバーの改修改变
  3. TrustZoneアプリケーション
  4. セキュアイレメントインターフェース

対象の完全なリストは、最終報告書に列挙されています。

評価の結果

3人のコンサルタントが合計6週間のエンジニアリングレビューを行いました。 監査担当者には、評価用オーブ2個の実行時アクセスと共に、完全なソースコードアクセスが提供されました。 レポートでは潜在的な攻撃面を説明しています (TOB-ORB-4TOB-ORB-5TOB-ORB-10、および TOB-ORB-11) が、“我々の分析では、プロジェクトの目標に関連して直接的に悪用できるオーブのコードの脆弱性は発見されませんでした” と結論付けています。 さらに、Trail of Bitsのレビューでは、理論上プロジェクトの目標に影響を与える可能性のある未確認の懸念事項がいくつか特定され、その影響を受けたコードはすでに更新されていますが、監査では既知の脆弱性や通常の実行中にプロジェクトの目標が直接損なわれる事例は特定されませんでした。

Trail of Bitsの監査者は、カーネル構成の追加強化のための専門的な推奨事項、および最終報告書に詳述されているランタイムソフトウェアのためのツールと技術を提供しました。

主張 1: デフォルトのオプトアウトサインアップフロー

評価は、オーディットされたバージョンのソフトウェアの構成が、オーブからの「虹彩コード」以外のPIIを保持または送信しないことを確認しています。 Trail of Bitsは、構成またはコードの将来的な変更が偶発的な漏洩を引き起こさないように、オーブの「多層防御」を強化するための追加の構成強化変更を推奨しました( TOB-ORB-1発見)。 

主張 2: デフォルトではないオプトインサインアップフロー

ユーザーがデータ保存を選択した場合、オーブはPIIを一方向エンベロープ*構造「sealed box」と呼ばれる方法で非対称に暗号化します。この暗号化にはlibsodiumライブラリを使用します。 最終報告書では、監査人は「[w]e did not identify any places where PII is persisted outside of the Orb’s SSD and/or unencrypted」と述べ、「once PII is encrypted, the described mechanism does not permit the Orb to decrypt it。」

*最新のコードでは、データ管理オプションにかかわらずデータを一切保存せず、代わりにユーザーの公開鍵を用いてパーソナルカストディパッケージの暗号化コードを再利用します。

主張3: オーブはユーザーのデバイスから追加のデータを抽出しません

ユーザーが初めてオーブと対話してサインアップを行うと、ユーザーのデバイスにQRコードが表示され、それがオーブによって処理されます。 関連するコードにおいて、監査人はオーブがユーザーのデバイスから収集する追加のデータや情報を特定しませんでした。 しかし、評価ではQRコードをスキャンするために使用されるライブラリ(ZBar)に関する潜在的なメモリーセーフティ問題(最終報告書に TOB-ORB-4 として見つかった)を強調しました。 その対応として、脆弱なライブラリは純粋なRust製のバーコードスキャンライブラリrxingに置き換えられました。

主張4: ユーザーの虹彩コードは安全に処理されます

監査人は「虹彩コード」がどのように処理されバックエンドに伝達されるかに関連する主張の検証を試みました。 彼らは報告しています 「虹彩コードがOrbの永続的なストレージに書き込まれていないと信じており、それがOrbのバックエンドへの単一のリクエストにのみ含まれていると信じている。」 そして 「この構成はより安全にするために改善することができますが(TOB-ORB-10)、典型的な攻撃者がOrbのネットワークトラフィックから虹彩コードを抽出することは不可能であるはずです。攻撃者は信頼できる証明書の1つを制御する必要があります。

結論

Trail of Bitsの徹底的な分析の完全なレポートには、すべての個別の発見とその修正方法、そして主張の追加分析が含まれています。 

これは最初の第三者によるOrbのセキュリティ評価ではなく、最後のものでもありません。利用可能になり次第、追加のレポートがコミュニティと共有される予定です。 

Worldcoin バグ報奨金プログラムに参加することで、Worldcoin プロジェクトのセキュリティを維持する手助けができます。 プロジェクトに関する追加の重要な情報は、Worldcoinプロトコルホワイトペーパーをご覧ください。

免責条項

上記の内容は、記載された日時点の情報に基づいています。 本内容には、リスクや不確実性、前提条件が含まれており、常に正確であることが保証されるものではありません。また、予告なく変更される場合があります。 免責条項の全文は、利用規約に記載されています。重要なユーザー情報は「リスク」ページをご参照ください。

この記事の情報は12ヶ月以上前のものであり、古くなっている可能性があります。 プロジェクトに関する最新情報は、 world.org/blog を訪問してください