Dropbox のしくみ:アーキテクチャの概要

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 分散ファイル インフラストラクチャ

Dropbox Paper インフラストラクチャのコンポーネント

Paper アプリケーション サーバー

Paper アプリケーション サーバーはユーザーのリクエストを処理し、編集した Paper ドキュメントの処理結果をユーザーに返し、通知サービスを実行します。Paper アプリケーション サーバーはユーザーの編集内容を Paper データベースに書き込み、編集内容は永続的なストレージに保管されます。Paper アプリケーション サーバーと Paper データベースとの通信セッションは強力な暗号で暗号化されます。

Paper データベース

ユーザーの Paper ドキュメント自体に含まれるコンテンツに加え、その Paper ドキュメントについての特定のメタデータは Paper データベース上の永続的なストレージで暗号化されます。暗号化される情報には Paper ドキュメントについての情報(タイトル、共有中のメンバーシップと権限、プロジェクトとフォルダの関連など)に加え、Paper ドキュメント内のコンテンツ(コメントやタスクなど)が含まれます。Paper データベースは、パフォーマンスと高可用性に関する要件に対応するため、必要に応じてシャード化および複製されます。

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 は、HTTP 公開鍵ピニング仕様に対応した最新ブラウザと、想定されるほとんどの状況や実装環境におけるデスクトップ クライアントとモバイル クライアントで証明書ピニングを実施します。証明書ピニングは、接続先のサービスがなりすましによるものではないことを確認するためのチェック機能です。巧妙なハッカーがユーザー アクティビティの監視に使用するさまざまな方法からユーザーを守るために使用されます。

PFS(Perfect Forward Secrecy)

Dropbox が管理するエンドポイント(デスクトップ/モバイル)と最新バージョンのウェブ ブラウザでは強力な暗号化技術を使用し、PFS(Perfect Forward Secrecy)をサポートしています。PFS を実装することにより、Dropbox の SSL プライベート キーを使って過去のインターネット トラフィックを解読することが不可能になります。セッション間の接続を解除することで、暗号化された Dropbox との通信がさらに保護されます。さらに、ウェブ上ではすべての認証クッキーに「安全」とフラグを付け、HSTS(HTTP Strict Transport Security )を有効にしています。

キー マネジメント

Dropbox キー マネジメントのインフラストラクチャは操作性、技術性、セキュリティ管理の手順を備え、キーへの直接アクセスを最低限に抑えるようにデザインされています。暗号化キーの生成、交換、ストレージは、分散的に処理されるように配分されます。

Dropbox はユーザーに代わってファイルの暗号化を管理するので、煩雑さがなく、サービスの高度な機能をサポートし、強力な暗号化制御を可能にします。ファイルの暗号化キーはプロダクション システム インフラストラクチャのセキュリティ管理とセキュリティ ポリシーによって生成、保管、保護されています。プロダクション システムへのアクセスは独自の SSH キーペアで制限されており、セキュリティ ポリシーと手続きには SSH キーによる保護が必要です。内部システムはパブリック キー交換処理の安全を確保し、プライベート キーは安全に保管されます。

管理機能や可視性設定機能に関する詳細については、Dropbox Business のセキュリティ ホワイトペーパーをご覧ください。