Dropbox の仕組み:アーキテクチャの概要
Dropbox は複数の保護レイヤーで設計されています。これには、セキュリティ保護されたデータ転送、暗号化、ネットワーク構成、そして拡張可能で安全なインフラストラクチャ全体に分配されるアプリケーション レベルの管理機能が含まれます。
ファイル インフラストラクチャ
Dropbox ユーザーはデスクトップ、ウェブ、モバイル クライアントなど複数のインターフェースや、Dropbox にリンクしているサードパーティ製アプリなどから、ファイルやフォルダにいつでもアクセスできます。それぞれに設けられているセキュリティ設定や機能により、ユーザーのデータが処理、保護され、アクセスのしやすさも確保されます。すべてのクライアントはセキュアなサーバーに接続して、ファイルへのアクセスを提供し、他のユーザーとのファイル共有を可能にし、ファイルが追加、変更、削除されたときは Dropbox にリンクしているデバイスを更新します。
Dropbox ファイル インフラストラクチャのコンポーネント
メタデータ サーバー
ユーザー データに関する特定の基本情報はメタデータと呼ばれ、独立したストレージ サービスに保管されています。メタデータは、ユーザー アカウントのデータに対するインデックスとして機能します。メタデータには、メール アドレス、ユーザー名、デバイス名などの基本的なアカウント情報とユーザー情報が含まれます。また、ファイル名やファイル形式などファイルに関する基本情報も含まれ、バージョン履歴やファイルの復元、同期などの機能をサポートします。
メタデータ データベース
ファイルのメタデータは MySQL ベースのデータベース サービスに保管され、パフォーマンスと高可用性に関する要件に対応するため、必要に応じてシャード化および複製されます。
ブロック サーバー
Dropbox は、従来の暗号化を超えて設計された独自のセキュリティの仕組みを利用して、ユーザーのデータを保護しています。ブロック サーバーは Dropbox アプリケーションからのファイルを 1 つずつブロック状に分割し、強力な暗号で各ファイル ブロックを暗号化し、変更されたブロックのみ同期することでファイルを処理します。ファイルの新規作成や既存のファイルの編集を検知した Dropbox アプリケーションは、その変更をブロック サーバーに通知し、新規作成または編集されたファイル ブロックを処理しブロック ストレージ サーバーに転送します。さらに、ブロック サーバーはファイルやプレビューをユーザーに提供するためにも使用されます。
ブロック ストレージ サーバー
ユーザーのファイルに含まれる実際のコンテンツは、暗号化されたブロックの状態でブロック ストレージ サーバーを使用して保管されます。ユーザーのファイルに含まれる実際のコンテンツは、暗号化されたブロックの状態でブロック ストレージ サーバーを使用して保管されます。Dropbox クライアントはデータを転送する前に、ストレージに合わせてファイルをファイル ブロックに分割します。ブロック ストレージ サーバーは Content-Addressable Storage(コンテント アドレス ストレージ:CAS)システムとして機能し、暗号化された各ファイル ブロックはそのハッシュ値に基づいて取得されます。
プレビュー サーバー
プレビュー サーバーは、ファイルのプレビューを作成します。プレビューとは、エンド ユーザーが自分のデバイスですぐに確認できるよう、ユーザーのファイルを別のファイル形式でレンダリングしたものです。プレビュー サーバーは、ブロック ストレージ サーバーからファイル ブロックを取得してプレビューを生成します。ファイルのプレビューが要求されると、まずプレビュー サーバーがプレビュー ストレージ サーバーからキャッシュされたプレビューを取得してブロック サーバーに転送します。最終的にユーザーにプレビューを提供するのはブロック サーバーです。
プレビュー ストレージ サーバー
キャッシュ化されたプレビューは、暗号化された形式でプレビュー ストレージ サーバーに保管されます。
通知サービス
Dropbox アカウントに対して変更があったかどうかを監視するための専用サービスです。ファイル データやメタデータがこのサービスに保管または転送されることはありません。各クライアントは、通知サービスに対してロング ポーリング接続を確立して待機します。Dropbox のファイルが変更されると、通知サービスはロング ポーリング接続を終了することによって、関連するクライアントに変更を通知します。接続の終了を契機に、クライアントはメタデータ サーバーへの安全な接続を確立し、ファイルの変更を同期します。
Dropbox Paper インフラストラクチャ
Dropbox ユーザーは、ウェブ、モバイル クライアントまたは Dropbox Paper にリンクしているサードパーティ製アプリなどからいつでも Paper ドキュメントにアクセスできます。すべてのクライアントはセキュアなサーバーに接続して、Paper ドキュメントへのアクセスを提供し、他のユーザーとのドキュメント共有を可能にし、ドキュメントが追加、変更、削除されたときは Dropbox にリンクしているデバイスを更新します。
Dropbox Paper インフラストラクチャのコンポーネント
Paper アプリケーション サーバー
Paper アプリケーション サーバーはユーザーのリクエストを処理し、編集した Paper ドキュメントの処理結果をユーザーに返し、通知サービスを実行します。Paper アプリケーション サーバーはユーザーの編集内容を Paper データベースに書き込み、編集内容は永続的なストレージに保管されます。Paper アプリケーション サーバーと Paper データベース間の通信セッションは、強力な暗号化が行われます。
Paper データベース
ユーザーの Paper ドキュメント自体に含まれるコンテンツに加え、その Paper ドキュメントについての特定のメタデータは Paper データベース上の永続的なストレージで暗号化されます。暗号化される情報には Paper ドキュメントについての情報(タイトル、共有中のメンバーシップと権限、プロジェクトとフォルダの関連など)に加え、Paper ドキュメント内のコンテンツ(コメントやタスクなど)が含まれます。Paper データベースは、パフォーマンスと高可用性に関する要件に対応するため、必要に応じてシャード化および複製されます。
メタデータ サーバー
Paper は、Dropbox インフラストラクチャ図で解説されているのと同じメタデータ サーバーを使用して、Paper ドキュメントに関する情報を処理します。こうした情報にはファイルの変更履歴、共有フォルダのメンバーシップなどがあります。Dropbox は、サードパーティのコロケーション データ センターに置かれているメタデータ サーバーを直接管理します。
メタデータ データベース
Paper は、Dropbox インフラストラクチャ図で解説されているのと同じメタデータ データベースを使用して、Paper ドキュメントに関する情報を保存しています。こうした情報には、共有、権限、フォルダの関連付けなどがあります。Paper ドキュメントのメタデータは MySQL ベースのデータベース サービスに保管され、パフォーマンスと高可用性に関する要件を満たすために、必要に応じてシャード化/複製されます。
Paper 画像ストレージ サーバー
Paper ドキュメントにアップロードされた画像は、Paper 画像ストレージ サーバー上に保管され、暗号化されます。Paper アプリケーションと Paper 画像ストレージ サーバー間の画像データの通信は暗号化されたセッションで実行されます。
プレビュー サーバー
プレビュー サーバーは、Paper ドキュメントにアップロードされた画像、および Paper ドキュメントに埋め込まれたハイパーリンクのプレビューを生成します。Paper ドキュメントにアップロードされた画像の場合は、暗号化チャネル経由で Paper 画像ストレージ サーバーに保存されている画像データを取り出します。Paper ドキュメントに埋め込まれたハイパーリンクの場合は、画像データを取り出し、ソースのリンクで指定された暗号化方式を使用して画像のプレビューを表示します。最終的にユーザーにプレビューを提供するのはブロック サーバーです。
プレビュー ストレージ サーバー
Paper は、Dropbox のインフラストラクチャ図にあるものと同じプレビュー ストレージ サーバーを使用して、画像プレビューのキャッシュを保存します。キャッシュ化されたプレビューのチャンクは、暗号化された形式でプレビュー ストレージ サーバーに保管されます。
Dropbox のセキュリティ チームおよびサードパーティのセキュリティ専門家が協力してリスクや脆弱性を識別、緩和し、上記のサービスを保護しています。セキュリティ グループはアプリケーション、ネットワーク、その他のセキュリティ テストや監査を定期的に行い、バックエンド ネットワークのセキュリティを保証しています。さらに Dropbox の責任ある開示ポリシーでは、セキュリティ脆弱性の発見と報告を推進しています。
データ センター
Dropbox の企業システムとプロダクション システムは、米国内に所在するサードパーティ サブサービス組織のデータ センターおよび管理サービス プロバイダに格納されています。サードパーティのサービス プロバイダは、Dropbox のインフラストラクチャにおける物理セキュリティ、環境セキュリティ、運用セキュリティの管理を担当しています。Dropbox はサードパーティのデータ センターに格納されている当社のインフラストラクチャにおける論理セキュリティ、ネットワーク セキュリティ、アプリケーション セキュリティの管理を担当しています。
暗号化
Dropbox ファイルと Dropbox Paper ドキュメントの保管には 256 ビットの Advanced Encryption Standard(AES)暗号化を使用しています。Dropbox アプリ(デスクトップ、モバイル、API、ウェブ)と Dropbox サーバー間で行われる転送中のデータを保護するために、Dropbox は 128 ビット以上の AES 暗号化で保護された安全な SSL/TLS トンネルでデータを転送します。同様に、Paper クライアント(モバイル、API、ウェブ)とホストされているサービス間で転送中のデータは常に SSL/TLS で暗号化されています。
証明書ピンニング
Dropbox ではファイル同期、共有デスクトップ、およびモバイル クライアントで証明書ピンニングを使用しています。証明書ピンニングは、認証局の許可されたリストからデジタル証明書を持つサーバーにのみクライアントが接続できるようにするための追加チェック機能です。Dropbox は、不正な認証局を管理する国家支援の攻撃者をブロックし、不正にアクセスするローカル マルウェアからユーザーを保護する目的で証明書ピンニングを使用しています。
PFS(Perfect Forward Secrecy)
Dropbox が管理するエンドポイント(デスクトップ/モバイル)と最新バージョンのウェブ ブラウザでは、強力な暗号化技術を使用し、PFS(Perfect Forward Secrecy)をサポートしています。PFS を実装することにより、Dropbox の証明書のプライベート キーを使って過去のインターネット トラフィックを解読することが不可能になります。セッション間の接続を解除することで、暗号化された Dropbox との通信がさらに保護されます。さらに、ウェブ上ではすべての認証クッキーに「安全」とフラグを付け、HSTS(HTTP Strict Transport Security)を有効にしています。
キー マネジメント
Dropbox キー マネジメントのインフラストラクチャは操作性、技術性、セキュリティ管理の手順を備え、キーへの直接アクセスを最低限に抑えるようにデザインされています。暗号化キーの生成、交換、ストレージは、分散的に処理されるように配分されます。
Dropbox はユーザーに代わってファイルの暗号化を管理するので、煩雑さがなく、サービスの高度な機能をサポートし、強力な暗号化制御を可能にします。ファイルの暗号化キーはプロダクション システム インフラストラクチャのセキュリティ管理とセキュリティ ポリシーによって生成、保管、保護されています。プロダクション システムへのアクセスは独自の SSH キーペアで制限されており、セキュリティ ポリシーと手続きには SSH キーによる保護が必要です。内部システムはパブリック キー交換処理の安全を確保し、プライベート キーは安全に保管されます。
管理機能や可視性設定機能に関する詳細については、Dropbox のセキュリティに関するホワイトペーパーをご覧ください。