2013-08-20 89 views
5

複数の受信者と共有できる任意のデータの暗号化を実現する方法を見つけるためにいくつか問題があります。メガはまさにそれをするようです。私が読んだ限り、ウェブサーバにアップロードする前にデータを暗号化しています。それでも、そのファイルを他の人と共有することは可能です。暗号化はどのように行われますか?メガの暗号化はどのようにして共有できますか?

次のシナリオを想像:

  1. ユーザーアリスは、サーバーにファイルをアップロードし、それが暗号化されている
  2. アリスはボブとデイブとそのファイルを共有したいと考えています。 BobとDaveはどのようにしてファイルにアクセスし、オリジナルのコンテンツ(復号化されたコンテンツ)を見ることができますか?
+0

[公開鍵暗号](http://en.wikipedia.org/wiki/Public_key) –

答えて

2

メガでは、すべてのユーザーはmaster keyです。すべてのユーザーには、公開鍵/秘密鍵のペアもあります。また、すべてのファイルは異なるセッションキーで暗号化されています。セッションキーはユーザーのマスターキーで暗号化されています。

アリスが自分のファイルをボブと共有しようとすると、まず自分のマスターキーを使用してファイルのセッションキーを復号化し、ボブの公開キーでセッションキーを暗号化します。

ボブは、自分の秘密鍵を使用してアリスのファイルを復号化できます。

上記は単なる直感的な説明です。 Megaのapi(とそのソースコード)からさらに詳しい情報が得られます。

8

暗号化はどのように行われますか?

答えはsymmetric-key algorithmです。 MegaはHTML5で提供されるブラウザ内の対称キー暗号化を利用しています。 「MEGAは内部でどのような暗号化アルゴリズムを使用していますか?以下。

あなたのデータグロブはマスターキーで暗号化されています。

すべてのユーザには、公開鍵/秘密鍵のペアもあります。そして、すべてのファイルは異なるセッションキーで暗号化された です。セッションキーは、ユーザーのマスターキーで暗号化されています( )。

すべてのコンポーネントがどのように動作し、どのように相互運用されているかを理解することです。 (埋め込まれたリンクと、私が追加した引用文内のテキストを強調)

バルク転送のために

What encryption algorithms does MEGA use internally?

、AES-:メガは彼らのウェブサイト上の共有/対称鍵を暗号化する過程を説明します128(我々は、AES-192とAES-256のCPU使用率が高いほど の方が、少なくとも量子コンピュータの出現までは理論上のセキュリティよりも優れていると信じている)。 ダウンロード後の完全性チェックは、CCMのチャンクされたバリエーション によって行われます。これは、OCBよりも効率的ではありませんが、 の特許では妨げられません。ユーザーと受信トレイに ファイルをドロップする、RSA-2048間の共有秘密を確立するために

(キーの長さは、「あまりにも安全ではない」と「遅すぎる」との中間の 根拠として選ばれました)。すべての暗号化、 の復号化と鍵生成はJavaScriptに実装されており、 はスループットを数MB/sに制限し、CPU負荷が大きくなります。私たち は、提案の実装を楽しみにしており、これはすべての主要なブラウザでこの ボトルネックを解消します。内蔵の乱数ジェネレータのJavaScriptのマウス/キーボードtiming-driven RC4 entropy poolなど 暗号を通じて を強化している* availableのみ 現時点では(ChromeとFirefoxのランダム - 。Internet ExplorerやSafariのによって生成されたキーは、彼らが可能性よりも安全な 少ないです)。

How does folder sharing work?

あなたは、友人や家族、同僚と クラウドドライブの任意のサブツリーを共有することができます。招待状は電子メールアドレスです。 アカウントをまだ持っていない招待者には、サインアップリンク付きの電子メール通知が届きます。 また、任意のフォルダへの公開リンクを作成し、 フォルダ固有の暗号キーをエクスポートして、 MEGAアカウントなしでアクセスできるようにすることができます。 フォルダキーを確実に受信者に送信するのはあなたの責任です。

共有を確立、変更、または削除するには、ファイルマネージャの フォルダを右クリックし、[共有]を選択します。読み取り専用、読み取り/書き込み(ファイルの追加は可能ですが削除はできません)、 とフル(ファイルの追加と削除が可能)の3種類のアクセスがあります。まだアカウントを持っていない電子メールの アドレスを追加した場合は、 でオンラインになる必要があります。 を新しく作成した公開鍵に暗号化することができます。

Is data that I put in shared folders as secure my other data? 共有フォルダ、性質上、唯一の彼らの最も安全 メンバーと同じくらい安全です。

ただ1つのマスターキーの代わりに、X個の人物に委託した別のキーがあります。あなたのセキュリティは、それらのX人の信頼と同じくらい素晴らしいものです。

メガの各ファイルには固有のIDがあります。だから、資格情報がある場合:

fileId=Abc123Ab 
shareKey=abcdefghijklmnopqrstuvwxyzZYXWVUT 
https://mega.co.nz/#!fileId!shareKey 

https://mega.co.nz/#!fileId 

は暗号化されたファイルのダウンロードになりますダウンロードしようとしています。ユーザーが共有の解読キーを持っていない限り、ファイルを解読することはできません。どのように "shareKey"を誰かに与えるかはあなた次第です。しかし、shareKeyにアクセスできる人はダウンロードしたファイルを解読できるので、電子メールや暗号化されていない他のメディアを使って完全なURLを送るのは悪い考えです。 shareKeyが生成されると(webapiの "Get Link"によって)、変更することはできません。

そしてさらに、

はしかし、私たちのコアサーバインフラストラクチャの妥協は 追加的なリスクポーズ:公開キーを操作することができ、偽造することができ キーの要求を。

個々の秘密鍵の妥協の個々の脅威のために、共有なしで発生するセキュリティ問題があります。

すべてのセキュリティは相対的です。お使いのコンピュータに

  • スパイウェア:個々のアカウントがで を危険にさらされています。彼らはMEGAに固有のものではありませんが、我々 は、あなたがリスクについて知りたい - 次の攻撃ベクトルが存在します。シンプルなキーロガーで十分ですが、セッション資格と鍵はメモリまたは ファイルシステムから抽出することもできます。
  • ショルダーサーフィン。誰かがあなたのキーストロークを見ることができる間にパスワードを入力しないでください。
  • パスワードブルートフォース。強力なパスワードを使用してください。
  • フィッシング。パスワード( )を入力する前に、常に接続(https://)と正しいドメイン名(mega.co.nz)のセキュリティステータスを確認してください。大規模な攻撃は、次のような方法で行われます。
  • "man in the middle"攻撃。 BGP ルート(DigiNotarスタイルのシナリオ)に対するDNS偽造および/または攻撃と組み合わせて、有効な重複SSL証明書を発行する必要があります。
  • https://mega.co.nz/index.htmlをホストしているWebサーバーにアクセスし、そのファイルを偽造 バージョンに置き換えます(これは、インストールされたアプリケーションベースによるアクセスには影響しません)。 index.htmlからロードされたすべてのアクティブコンテンツが暗号化ハッシュで検証されるため、分散型静的コンテンツCDN のコンテンツを操作することはセキュリティ上のリスクを伴わないことに注意してください( を「安全なブートウェブサイト用)。この種類の攻撃である は、クライアントに悪質なコードを送信する必要があり、したがって が検出可能です。
  • コアサーバーのインフラストラクチャにアクセスし、既存の共有に対して偽のキー要求を作成します。このタイプの攻撃は、共有フォルダのアカウントにあるデータ にのみ影響し、クライアント側で検出可能です。

さらに、必ずしもすべてのデータがプライベートであり、ほとんどの利用者を特定できる情報が暗号化されずに格納されています。

Is all of my personal information subject to encryption?号のみ データおよびファイル/フォルダ名、ファイル暗号化されています。 電子メールアドレス、IPアドレス、フォルダ 構造、ファイル所有権、支払い資格など、 操作アクセスが必要な情報が格納され、 が暗号化されて処理されたなどの処理アクセスが必要です。詳細はプライバシーポリシーをご覧ください。

より詳細には、すべての対称暗号化操作は、AES-128に基づいています

https://mega.co.nz/#doc

12.2暗号化で彼らのAPIドキュメントであったことができます。ファイルの暗号ブロック連鎖モードと、 フォルダ属性ブロックで動作し、実際のファイルデータのカウンタモードで動作します。 各ファイルと各フォルダノードは、ランダムに生成された128ビットの キーを使用します。ファイルノードは、属性ブロックとファイル データに64ビットランダムカウンタ開始値と64ビットメタMAC のデータを加えて、ファイルの整合性を確認するために同じキーを使用します。各ユーザアカウントは、それ自身の ツリー内に保持されているノードのすべての鍵をECB暗号化するために、対称の マスターキーを使用します。このマスターキーは、MEGAのサーバーに保存され、ユーザーのログインパスワードから導出された ハッシュで暗号化されています。チャンクされたCBC-MACを使用してファイルの完全性が確認されました( )。チャンクサイズは128 KBから開始し、 は1 MBに増加します。これは、チャンクMACを格納するために必要な領域と、 部分チェックの平均オーバーヘッドの間の妥当なバランスです。対称キーに加えて、 各ユーザーアカウントには、共有キーやファイル/フォルダキーなどのデータ を安全に受信するための2048ビットのRSAキーペアがあります。その専用コンポーネントは、ユーザーの対称マスターキーで暗号化されて保存された です。

12.3共有フォルダ

フォルダの所有者は、アクセスを管理する責任です。 共有は非譲渡です(受信共有のフォルダの共有は には作成できません)。 普通株式固有のキー、 が シェアに参加する誰からも、理論的には(所有者から渡されたが、これは イベントで重大なセキュリティ上のリスクを作成して共有フォルダ ゲイン暗号アクセスのすべての参加者コアインフラストラクチャの妥協案)をRSA経由で新しい参加者 に送信します。 ルートノードを含む共有フォルダ内のノードのすべてのキーは、この共有キーに暗号化されています。新しい ノードを共有フォルダに追加する当事者は、適切な ノード/共有固有キーを提供する責任があります。ノード/シェア固有のキーが見つからない場合は、共有所有者が提供する しか使用できません。

12.4非認証配信

MEGAは、セキュアな認証されていないデータ配信をサポートしています。 の登録ユーザーは、 のRSA公開鍵を通じて、受信ボックス内のファイルまたはフォルダを受信できます。

究極的には、HTTPSで認証されたJavaScriptコードを信頼しています。その後、あなたのJavaScriptエンジン(Webブラウザ)がトランザクションを正しく処理することを信頼しています。最後に、実行中の他のプロセスがRAMの暗号化されていない秘密鍵を盗聴できないように、オペレーティングシステムを信頼しています(参照)。

確かに注意が払われていますが、現在利用可能な最良のオプションの1つです。上記で概説した問題のいくつかを緩和するために、GPGを使用してメガにアップロードする前に、ファイルを暗号化することができます。

+0

はい、ただし、ユーザーの秘密鍵はどこに保存されていますか? MEGAサーバーで暗号化されていない?なぜ、私はブラウザを介してファイルをダウンロードするたびに入力する必要はありませんか?マスターキーは何ですか?ユーザーの秘密鍵またはそれ以外の秘密鍵 –

+0

クッキーに似ていますが、サーバーに自動的に送信されないようにするブラウザのlocalStorageの中に、サーバーはJSコードを使用してコンテンツを取得することしかできません。 – Annarfych

関連する問題