web-dev-qa-db-ja.com

SpiderOakは本当に「ゼロ知識」ですか?

最近、コンピューターAのSpiderOakパスワードを変更しました。コンピューターBにもSpiderOakがインストールされているため、アプリケーションがサーバーに接続できるように、パスワードを更新する必要があると考えました。

自動的に更新されるパスワードを見つけたとき、私はかなり驚きました。

そこで、SpiderOakに質問を送信しました。これが彼らが答えたものです:

パスワードを変更すると、SpiderOakがパスワードを暗号化し、暗号化されたパスワードがサーバーに送信されて各デバイスに配信されるため、これらの更新はすべてのマシンで検出されることを指摘しておきます。各デバイスはパスワードを復号化し、新しい変更に更新できます。

パスワードを変更することで、新しい暗号化キーのセットが作成されました。すべてのキーは、256ビットAESで暗号化されます。キー導出/強化アルゴリズムPBKDF2(sha256を使用)によってパスワードから作成されたキーを使用し、最低16384ラウンド、32バイトのランダムデータ(「塩」)を使用します。このアプローチは、キーに対するブルートフォース、事前計算、またはデータベース攻撃を防ぎます。

よくわかりません。デバイスは、新しく作成されたパスワードをどのように復号化できますか?

8
Viridis

免責事項:私はスパイダーオークを使ったことがなかったので、彼らが主張していること、彼らがあなたに言ったこと、そして最終結果がどのように見えるかを調べただけです。

彼らがあなたのデータを暗号化して保存し、それにアクセスすることはできないと主張していることを考えると、彼らがアクセスできる唯一のものは本当にあなたのデータの暗号化されたバージョンだと思います。これは、クライアント上のアプリケーションがすべての暗号化/復号化操作を実行し、結果のデータ(および場合によってはサーバー上の追加の暗号化されたメタデータ)のみを格納することを意味します。

このデータは何かで暗号化する必要があります。さて、あなたへの彼らの反応を見ると、彼らにはいくつかのキーの階層があると思います。私の推測では少なくとも2つのレベルになりますが、簡単にするために1つだけとしましょう。

これは、ランダムに生成されたキーKによってデータが暗号化されることを意味します1 (あなたのマシン上で)。次に、この鍵は鍵Kで暗号化されます。2= PBKDF(32バイトのソルト、パスワード、16384ラウンド)。前述の醜い説明では、PBKDF2(Password Based Key Derivation Function v2。)アルゴリズム(SHA-2を使用)を使用して、パスワードから暗号化キーを生成します。このキーK2 どこにも保存されません(クライアントメモリを除く)。データにアクセスする場合は、常にオンザフライで生成されます。

スパイダーオークのサーバーに送信されて保存されるパッケージは、Eになります。K1(データ)、EK2(K1)。その後、データを取得する場合は、送信されたデータを暗号化し、送信された鍵も暗号化します。パスワードを入力すると、PBKDF2を使用してKが生成されます2 Kを復号化するために使用されます1は、データの復号化に使用されます。

では、パスワードを変更するとどうなりますか?サーバーはすべてのパッケージをクライアントに送信しますEK2(K1)$ for any K1それはあなたのデータのために持っています。ローカルでは、これらは古いパスワードから生成されたキーによって復号化され、新しいパスワードから生成されたキーによって再暗号化されます。これにより、新しいK '2

次に別のデバイスにアクセスし、クライアントを起動してデータを取得しようとすると、暗号化されたデータには、新しいパスワードを使用して暗号化されたキーが付属しています。あなたがパスワードを入力すると、PBKDF2が魔法をかけます。1 データを復号化します。

編集:GAH投稿でTeXを機能させるにはどうすればよいですか?

Edit2 .:担当者から入手した情報を再読すると、実際にはすべて新しいKのように見えます。1も生成されます。これは、サーバー上で暗号化/復号化を実行する(したがって、完全にゼロ知識ではない)か、パスワードを変更してクライアントがそれを再暗号化するときにすべてのデータを送信するという意味で、少し怪しいようです。そうでなければ、クライアントのオーバーヘッドが非常に大きくなるため、これらのうちの最初のものは正直である可能性が高くなります。もちろん、担当者が彼の言っていることを本当に知らない可能性もあります。私はそれが何度も起こったことがあります。

5
DRF

DRFはおそらく、パスワードがローカルで秘密鍵で暗号化されており、SpiderOak自体にアクセスできないという点で正しいでしょう。

しかし、タイトルのより一般的な質問には答えないと思います。

重複排除は情報のニラです。 https://spideroak.com/faq/what-is-deduplication

これがどのように機能するかを考えてください。暗号化されていないデータのハッシュを保存するか、2つのファイルに同じAES暗号化キーとソルトを使用します。どちらも理想的ではありません。

それらは米国に本拠を置いているため、地域のデータ保護法の適用を受けるか、適用されません。

共有ファイルは、サーバー上に復号化されて保存されます。 https://spideroak.com/faq/do-sharerooms-violate-zero-knowledge ファイルを共有するには、ダウンロードしてローカルで復号化し、サーバーで復号化せずに平文で再アップロードする必要があります。

彼らはあなたのコンピュータを常にログインさせておくデバイス登録機能を持っています。デバイスを紛失した場合は、そのデバイスを別のコンピューターから手動で登録解除する必要があります。これにより、ユーザーは常にログアウトする必要があります。 https://spideroak.com/manual/security--access

あなたがあなたのアカウントを閉じると、彼らはあなたのファイルを最終的に削除します。つまり、彼らはあなたにどのファイルがあなたのものであるかを知っています。

これはSpiderOakの障害ではなく、同様の「機能」を提供するすべてのプロバイダーに共通している可能性があります。私にとって、機能は、特に、事後に暗号化の上に裏付けられている場合に、追加のリスクを意味します。

0
dave.zap

まあ、彼らは古いパスワードまたはパスワード変更前にマシン間で交換されたいくつかのキーによって新しいパスワードを暗号化できます。これは彼らがそうすることができる方法です。

しかし、私はソースコードを持っていないし、確かにそれを知りません。

0
v6ak