セキュリティ
Personal Device Bridgeは、言葉ではなく、ご自身で確かめられる方法で信頼を得たいと考えています。このページでは、データがどのように守られているか、何がレビュー済みで何が未実施か、ダウンロードしたソフトウェアの検証方法、そして프로젝트팀포유 (Project Team For You)へのセキュリティ上の問題の報告方法についてご説明します。
データ保護の仕組みをわかりやすく
ペアリングはPCに表示されるQRコードから始まります。QRコードには2分で失効する使い捨ての秘密値が含まれているため、実際に画面を見た端末だけがペアリングできます。続いて両方の画面に同じ6桁のコードが表示され、一致しているかをご自身で確認します。
- すべての接続はNoiseプロトコル(X25519、ChaCha20-Poly1305、BLAKE2s)でエンドツーエンド暗号化されます。端末ごとに外部へ出ない固有の鍵があり、端末同士はIPアドレスや名前、アカウントではなく、この鍵で相手を識別します。
- 接続ごと、データストリームごとに新しい鍵を使います(前方秘匿性)。後から鍵が盗まれても、過去に記録された通信は復号できません。
- 暗号化はネットワーク層の上で行われるため、Wi-Fiでも、インターネット経由(QUIC、TCP、WebRTC)でも、当社のランデブーサービスを経由する場合でも、同じように保護されます。ランデブーサービスは中身を読めない封印済みメッセージを中継するだけです。
- ペアリング済みでも何でもできるわけではありません。各端末には許可した権限だけが与えられ、リモート入力とカメラはセッションごとに同意を求めます。
- 受信したファイル、リンク、クリップボードのデータは使用前に検査されます。ダウンロードフォルダの外には出られず、危険な種類のリンクは拒否され、サイズにも上限があります。
詳しい技術仕様と脅威モデルはセキュリティ文書にまとめており、研究者や監査人に提供しています。
監査の状況
見栄えよりも正確さを優先してお伝えします。
- 社内セキュリティレビュー:実施済みです。設計、ペアリング、セッション暗号化、権限、入力検証を文書化された脅威モデルに照らしてレビューし、セキュリティ規則は変更のたびに実行される自動テストで確認しています。
- 自動チェック:変更のたびに依存関係の脆弱性情報とライセンスを確認し、信頼できない入力を読み込む部分は毎週ファジングしています。
- 外部監査:バージョン1.0の前に実施する予定で、まだ受けていません。完了したら、監査機関、範囲、指摘事項の概要をこのページで公開します。
それまでPersonal Device Bridgeはプレビュー版です。非常に機密性の高いデータに使う前に、この点をご考慮ください。
ダウンロードしたファイルを検証する
ダウンロードしたファイルが本物かどうか、当社の言葉を信じるだけで済ませる必要はありません。
- チェックサム:各リリースには全ファイルを対象としたSHA256SUMSファイルが含まれ、お手元のファイルが当社の公開したものとまったく同じかを確認できます。
- 再現可能なビルド:Linux版コマンドラインツールは決定的にビルドされます。リリースタグ時点のソースコードがあれば誰でも再ビルドしてビット単位で同一のファイルを得られます。自動チェックが異なる環境で2回ビルドし、1バイトでも違えば失敗とします。
- ビルドの来歴証明:リリースワークフローは、すべてのファイルに署名付きのSLSA来歴証明(Sigstore)を付けるよう構成されており、どのワークフローとコミットから作られたかを記録します。「gh attestation verify」コマンドで確認できます。GitHubはソースリポジトリが公開されるとこの機能を提供します。有効になったらこのページでお知らせします。
- コード署名:リリースパイプラインでWindows用プログラムとインストーラーにAuthenticode署名(Azure Artifact Signing)を行います。実行前に、ファイルのプロパティ →「デジタル署名」で発行元を確認できます。
WindowsとAndroidのビルドはまだ再現可能ではなく、今後対応する予定です。bashとPowerShellによる手順付きの検証方法は再現可能ビルドのガイドにまとめており、ご要望に応じて提供します。
継続的なテスト
他の端末やネットワークから届くデータを読むすべてのデコーダー(メッセージのエンベロープ、ペアリングリンク、端末検出のビーコン、ファイル名、機能ごとのメッセージ)は、毎週libFuzzerでファジングしています。不正な入力を何百万通りも与え、クラッシュや安全チェックの不備を見つけ出します。
さらに変更のたびに、WindowsとLinuxで単体・結合・エンドツーエンドのテストを実行しています。実際の2つのプロセスがネットワーク越しにペアリングし、ファイルを転送するテストも含まれます。
報告方法
件名を「[SECURITY] 簡単なタイトル」として、projectteamforyou@gmail.com 宛てに韓国語または英語でお送りください。次の内容を含めてください。
- 影響を受けるアプリまたはコンポーネントとそのバージョン
- 問題の内容と、攻撃者がそれを使って何ができるか(CVSSベクトルがあれば歓迎します)
- 手順を追った再現方法または概念実証と、テストしたプラットフォーム
公開のIssueやSNSで脆弱性を報告しないでください。
暗号化:PGP鍵はまだ公開していません。公開する際は、このウェブサイトの /.well-known/ フォルダに置き、security.txt(personaldevicebridge.com/.well-known/security.txt)に記載します。それまでの間、報告に機微な攻撃の詳細が含まれる場合は、まずそれを除いた短いメールをお送りください。安全な連絡手段を一緒に決めます。
ソースコードはプロプライエタリ(非公開)です。調査や報告内容の確認のためにソースコードの閲覧が必要な場合はお知らせください。個別に検討します。
報告後の流れ
- 報告を受領したことを72時間以内にお知らせします。
- 7日以内に有効性、深刻度、影響を受けるバージョンを判定し、解決するまで少なくとも14日ごとに状況をお知らせします。
- 判定からの修正目標:緊急(Critical)は30日以内(可能であれば7日以内に緩和策)、重要(High)は60日以内、警告(Medium)は90日以内、注意(Low)は以降の定期リリースで対応します。
当社は小さなチームです。目標期限を守れない場合は、その理由と修正の見込み時期をお伝えします。
ツール向けの連絡先
連絡先は標準の機械可読形式(RFC 9116)のsecurity.txt(personaldevicebridge.com/.well-known/security.txt)でも公開しており、このページを参照しています。韓国語と英語で対応します。