Bitcasaの暗号化と重複排除の概要
訳注: これはOverview on encryption and deduplicationをBitcasa社から許諾を得て和訳したものである。
データはどのように暗号化されるのか
ユーザーがデスクトップアプリケーションを使ってコンテンツをBitcasa Driveにコピーしたとき、まずクライアント側でconvergent encryptionと呼ばれる手法で暗号化され、小さなブロックに分割してキャッシュにコピーされる。convergent encryptionではファイルのハッシュ値を用いて、ファイルの暗号化のための一意な鍵集合を生成する。convergent encryptionについてはWikipediaに詳しい説明がある。データがキャッシュにコピーされてから、Bitcasaに同期プロトコルでアップロードされる。ユーザーのファイルシステムは、Bitcasaアカウントを作ったときに生成されたユーザーキーで暗号化される。
この段階の暗号化によって、ユーザーのアカウントの中にあるあらゆるデータ(ファイル名を含む)を我々がまったく見られなくなる。我々の側から見えるのは、何の意味もないデータのブロックと、それがユーザーのBitcasa Driveの中でどれくらい容量を使っているかだけである。データが復号化されて再構築されるのは、ユーザーがユーザー名とパスワードを使ってアカウントにログインしたときだけだ。我々は暗号鍵や生のままのパスワードはサーバーにまったく保存しない。
重複排除はどのように行うのか
ユーザーのデータが暗号化されてキャッシュに入ったら、Bitcasaはこれからアップロードする暗号化されたデータのブロックが、サーバーに既に存在しているかを確認する。アップロード済みのブロックがあったら、Bitcasaはそれをスキップして次のブロックの検査に進む。サーバーに既に存在するファイルをアップロードしたときには、ファイルがユーザーのBitcada Driveに現れる前に、Bitcasaはすべてのブロックがアップロード済みであることを確認する。