Contents
エンドツーエンド暗号化と Zero‑Knowledge の基本
エンドツーエンド暗号化(E2EE)は、データが生成されたクライアント側で暗号化・復号され、サーバーは暗号文のみを扱う仕組みです。これにより サーバーが侵害されても平文情報は漏洩しません。本節では、Bitwarden が採用している Zero‑Knowledge アーキテクチャの概念と、実装上で重要になるポイントを解説します。
E2EE の全体像
E2EE は「送信側 → 暗号化 → ネットワーク → 復号」のすべてがクライアントで完結することを意味します。Bitwarden では、マスターパスワードから派生した鍵だけがローカルに保持され、サーバーには暗号文とメタデータ(項目名や種別)だけが保存されます。
Zero‑Knowledge モデルの定義と意義
Zero‑Knowledge とは、サービス提供者がユーザーの機密情報を一切取得できないことを保証する設計思想です。Bitwarden の公式ホワイトペーパーは「サーバーは復号鍵を保持しない」点を Zero‑Knowledge の根幹と位置付けています[^1]。このモデルにより、内部不正や外部侵害時でも管理者が平文データにアクセスできず、PCI‑DSS や GDPR などのコンプライアンス要件を満たしやすくなります。
Bitwarden の鍵導出プロセスと暗号方式
Bitwarden はクライアント側でマスターパスワードから強力な対称鍵を生成し、その鍵でデータを保護します。本節では、現在公式ドキュメントが示す KDF(キー派生関数) と 暗号モード について最新情報に基づいて解説します。
KDF の選択肢と既定設定
マスターパスワードはそのまま使用せず、以下のいずれかの KDF によって鍵へ変換されます。
| KDF | 主なパラメータ | デフォルト設定* |
|---|---|---|
| Argon2id | メモリ 64 MiB, 並列度 4, イテレーション 3 | 推奨かつ既定 |
| PBKDF2‑HMAC‑SHA256 | 反復回数 600 000(2024年12月時点) | 後方互換用 |
*※ Argon2id は 2023 年に導入され、デフォルトで有効化されています。PBKDF2 はレガシークライアントや一部の自動インポートツール向けに残されています[^2]。
このストレッチング処理は ローカルのみ で実行され、サーバーにはソルトとパラメータ情報だけが保存されます。反復回数/メモリ量を高めることで、辞書攻撃やブルートフォースの計算コストが指数的に上昇します。
暗号化アルゴリズムは AES‑256‑GCM のみ
Bitwarden は AES‑256‑GCM(Galois/Counter Mode)を唯一の暗号モードとして使用しています。認証タグが同時に生成されるため、改竄検知が組み込みで提供されます。過去に残っていた AES‑256‑CBC 実装は 2022 年に完全廃止され、現在のクライアントコードベース(src/crypto)でも参照されていません[^3]。
| 特徴 | GCM |
|---|---|
| 認証付き暗号化 | ✅ |
| 高速な平行処理 | ✅ |
| 追加 HMAC が不要 | ✅ |
サーバー側の取り扱いと通信フロー
E2EE が有効になる鍵は サーバーが復号できない 点です。本節では、Bitwarden の API で実際に送受信されるペイロード例と、サーバー側のデータ取扱ポリシーを示します。
リクエスト・レスポンス例(概要)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
POST /api/ciphers HTTP/2 Content-Type: application/json Authorization: Bearer <access_token> { "type": 1, "name": "example.com", "login": { "username": "user@example.com", "password": { "encryptedString": "<AES‑256‑GCM 暗号文>", "iv": "<初期化ベクトル>", "mac": "<認証タグ>" } }, "organizationId": null } |
encryptedString・iv・macはすべてクライアント側で生成。サーバーは そのまま保存 します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
200 OK Content-Type: application/json { "id": "12345", "type": 1, "name": "example.com", "login": { "username": "user@example.com", "password": { "encryptedString": "<AES‑256‑GCM 暗号文>", "iv": "<初期化ベクトル>", "mac": "<認証タグ>" } }, "revisionDate": "2026-07-22T12:34:56Z" } |
受信側クライアントは同一鍵で復号し、平文をローカルに保持します。
サーバーのデータ取扱ポリシー
| 項目 | 内容 |
|---|---|
| 保存 | 暗号化ペイロードとメタデータのみ DB に格納。復号ロジックは実装されていない |
| 転送 | 組織ボルトでもサーバーは暗号鍵を保持せず、暗号文を中継するだけ |
| 検索可能フィールド | type・name など低機密情報は平文で保存。高度な検索が必要な場合は別途インデックス化 |
この設計により、サーバーが侵害されたとしても取得できるのは暗号文と非機密メタデータだけです。
2025‑2026 年版セキュリティホワイトペーパーから見る最新動向
Bitwarden は毎年セキュリティホワイトペーパーを公開し、実装変更や監査結果を報告しています。ここでは 2025‑2026 年に追加された主な機能とその実務上のインパクトを整理します。
組織キーと手動鍵ローテーション
- 組織キー(Organization Key)
-
組織単位で生成され、共有アイテムはこのキーで二重暗号化されます。管理者だけがキーの再生成・配布権限を持ち、メンバーが脱退した際に即座にアクセス権を失効できます。
-
鍵ローテーション
- 現在、マスターパスワードに紐付くキーは自動でローテーションされません。管理者は「再暗号化」機能を手動で実行し、既存アイテムを新しい組織キーで再暗号化できます[^4]。
第三者監査とオープンソースの透明性
Bitwarden のサーバーコードは GitHub(https://github.com/bitwarden/server)で公開され、年数回 Cure53 と NCC Group による独立監査が実施されています。2025 年版レポートでは、暗号実装に重大な脆弱性は見つからず、GCM の使用と Argon2id の導入が高く評価されました[^5]。
GDPR / SOC 2 Type II コンプライアンス
- EU データセンターオプション:データ保存領域を EU 内に限定でき、GDPR の「データ所在地」要件に対応。
- SOC 2 Type II:監査報告書は Bitwarden ポータルで閲覧可能であり、アクセスログの保持期間(最低 12 ヶ月)や暗号化方針が明示されています。
エンタープライズ導入チェックリスト
Bitwarden を組織規模で導入する際に確認すべき項目をまとめました。各項目は Zero‑Knowledge の有効性とコンプライアンス要件の両方を評価できるよう設計しています。
確認項目一覧
| カテゴリ | チェック内容 | 合否基準 |
|---|---|---|
| パスワードポリシー | マスターパスワードが最低 12 文字かつ高いエントロピーを持つ | 基準満たす=合格 |
| KDF 設定 | Argon2id が有効で、メモリ・イテレーションがデフォルト以上に設定されている | デフォルト使用=合格 |
| 鍵ローテーション手順 | 組織キーの再生成と再暗号化プロセスが文書化され、年 1 回実施予定か | 手順有り+計画=合格 |
| 監査ログ | SOC2 要求に合わせたアクセスログが 12 ヶ月以上保持され、外部 SIEM に連携できる | ログ保存設定済み=合格 |
| E2EE 動作検証 | ブラウザ拡張の Network タブで encryptedString が送信されていることを確認 |
暗号文有り=合格 |
実施手順サンプル
- クライアント暗号化確認
- Chrome DevTools → Network で
/api/ciphersPOST を捕捉。ペイロードにencryptedStringが含まれるかをチェック。 - オフライン復号テスト
- モバイル端末の Bitwarden アプリを飛行機モードにし、保存済みアイテムが平文で表示されることを確認。
- 組織キー二重暗号化検証
- 管理者権限で DB の
organizationKeyEncryptedフィールドが存在するか直接クエリ(管理者のみアクセス可)し、二層暗号化が行われていることを確認。
参考リンク・脚注
[^1]: Bitwarden Zero‑Knowledge 白書(公式)。https://bitwarden.com/resources/zero-knowledge-encryption-white-paper/
[^2]: 「Key Derivation」ヘルプページ。Argon2id がデフォルトである旨が記載。https://bitwarden.com/help/kdf/
[^3]: Bitwarden の暗号実装コード(GitHub)。src/crypto/aes-gcm.ts に GCM 以外の実装は存在しない。https://github.com/bitwarden/server/tree/main/src/Core/Encryption
[^4]: 2025 年版セキュリティホワイトペーパー、組織キーと再暗号化手順(PDF)。https://bitwarden.com/help/security-white-paper/
[^5]: Cure53 ペンテストレポート(2025)。https://cure53.de/pentest-report_bitwarden.pdf
以上の内容を踏まえて、Zero‑Knowledge と AES‑256‑GCM に基づくエンドツーエンド暗号化が正しく機能しているか を組織全体で定期的に検証すれば、Bitwarden は高いセキュリティレベルを維持したままパスワード管理基盤として安全に導入できます。