8

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

次のシナリオを想像してください。

  1. ユーザー Alice がファイルをサーバーにアップロードします。ファイルは暗号化されています。
  2. Alice はそのファイルを Bob と Dave と共有したいと考えています。Bob と Dave はどのようにしてファイルにアクセスし、元のコンテンツ (復号化) を表示できますか?
4

2 に答える 2

8

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

答えは対称鍵アルゴリズムです。Mega は、HTML5 によって提供されるブラウザ内の対称キー暗号化を利用します。質問「MEGA が内部で使用する暗号化アルゴリズムは何ですか?」を参照してください。下。

onemouth が言ったように、データ グロブはマスター キーで暗号化されます。

すべてのユーザーは、公開鍵と秘密鍵のペアも持っています。また、すべてのファイルは異なるセッション キーで暗号化されます。セッション キーは、ユーザーのマスター キーで暗号化されます。

すべてがどのように機能するかを理解するには、すべてのコンポーネントを見て、それらがどのように相互運用されるかを確認する必要があります。Mega は、Web サイトで対称/共有キーを暗号化するプロセスについて説明しています。

(私が追加した引用テキスト内の埋め込みリンクと強調テキスト)

MEGA が内部で使用している暗号化アルゴリズムは何ですか?

バルク転送の場合、AES-128 (少なくとも量子コンピューターが登場するまでは、AES-192 と AES-256 の高い CPU 使用率が理論上のセキュリティ上の利点を上回ると考えています)。ダウンロード後の整合性チェックは、CCM のチャンク バリエーションによって行われます。これは、OCB よりも効率的ではありませんが、特許によって妨げられることはありません。

ユーザー間で共有シークレットを確立し、受信トレイにファイルをドロップするために、RSA -2048 (キーの長さは「安全でない」と「遅すぎる」の中間の理由として選択されました)。すべての暗号化、復号化、およびキー生成はJavaScriptで実装されているため、スループットが数 MB/秒に制限され、CPU 負荷が大幅に増加します。提案されたHTML5 WebCrypto APIがすべての主要なブラウザーに実装されることを楽しみにしています。これにより、このボトルネックが解消されます。JavaScript の組み込みの乱数ジェネレーターは、マウス/キーボードのタイミング駆動型 RC4 エントロピー プールと crypto.* 乱数 (利用可能な場合) によって強化されています。(現時点では Chrome と Firefox のみ - Internet Explorer と Safari で生成されたキーは安全性が低くなります)。

フォルダ共有はどのように機能しますか?

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

共有を確立、変更、または削除するには、ファイル マネージャーでフォルダーを右クリックし、[共有] を選択します。アクセス レベルには、読み取り専用、読み取り/書き込み (ファイルを追加できますが、削除はできません)、および完全 (ファイルを追加および削除できます) の 3 つがあります。まだアカウントを持っていない電子メール アドレスを追加した場合、受信者がサインアップ プロセスを完了した後、少なくとも 1 回はオンラインになる必要があります。これにより、受信者の新しく作成された公開キーに共有シークレットを暗号化できます。

共有フォルダに保存したデータは、他のデータを保護しますか? 共有フォルダーは、本質的に、最も安全性の低いメンバーと同じくらい安全です。

たった 1 つのマスター キーの代わりに、もう 1 つのキーを X 人の人に預けることができます。あなたのセキュリティは、X 人に対するあなたの信頼と同じくらい優れています。

Mega の各ファイルには一意の ID があります。したがって、資格情報が次の場合:

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

ダウンロードしようとしています

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

暗号化されたファイルがダウンロードされます。ユーザーが共有の復号化キーを持っていない限り、ファイルを復号化することはできません。「shareKey」を誰かに渡す方法はあなた次第です。しかし、その shareKey にアクセスできる人なら誰でもダウンロードしたファイルを復号化できるため、完全な URL を電子メールまたはその他の暗号化されていない媒体で送信することはお勧めできません。shareKey が生成されると (webapi の「Get Link」によって)、変更することはできません。

さらに、

ただし、コア サーバー インフラストラクチャが侵害されると、追加のリスクが生じます。公開鍵が操作され、鍵の要求が偽造される可能性があります。

彼らが言っているのは、個々の秘密鍵が危険にさらされるという個々の脅威により、共有を有効にしないと発生するセキュリティの問題が増加するということです。

保存されたデータは完全に安全ですか? すべてのセキュリティは相対的です。次の攻撃ベクトルが存在します - これらは MEGA に固有のものではありませんが、リスクについて知っておいてください: 個々のアカウントは以下によって危険にさらされます:

  • コンピューター上のスパイウェア。単純なキーロガーで十分ですが、セッション資格情報とキーをメモリまたはファイル システムから抽出することもできます。
  • ショルダーサーフィン。キーストロークを誰かに見られている間は、パスワードを入力しないでください。
  • パスワードブルートフォース。強力なパスワードを使用してください。
  • フィッシング。パスワードを入力する前に、必ず接続のセキュリティ ステータス (https://) と正しいドメイン名 (mega.co.nz) を確認してください。大規模な攻撃は、次の方法で仕掛けられる可能性があります。
  • 「中間者」攻撃。DNS 偽造および/または BGP ルートへの攻撃 (DigiNotar スタイルのシナリオ) と組み合わせて、有効な複製 SSL 証明書を発行する必要があります。
  • https://mega.co.nz/index.htmlをホストしている Web サーバーへのアクセスを取得し、そのファイルを偽造バージョンに置き換えます (これは、インストールされたアプリ ベースを介したアクセスには影響しません)。index.html からロードされたすべてのアクティブなコンテンツは暗号化ハッシュによる検証の対象となるため、分散型静的コンテンツ CDN のコンテンツを操作してもセキュリティ リスクは発生しません (ウェブサイトのある種の「セキュア ブート」と考えてください)。このタイプの攻撃では、悪意のあるコードをクライアントに送信する必要があるため、検出可能です。
  • コア サーバー インフラストラクチャへのアクセスを取得し、既存の共有で偽造キー リクエストを作成します。このタイプの攻撃は、共有フォルダーを持つアカウントのデータにのみ影響し、クライアント側でも検出可能です。

さらに、すべてのデータが非公開というわけではなく、ほとんどのユーザーを特定できる情報は暗号化されずに保存されます。

私の個人情報はすべて暗号化されていますか? いいえ。ファイル データとファイル/フォルダー名のみが暗号化されます。電子メール アドレス、IP アドレス、フォルダー構造、ファイルの所有権、支払い資格情報など、運用上のアクセスが必要な情報は。詳しくはプライバシーポリシーをご覧ください。

詳細については、https://mega.co.nz/#docの API ドキュメントを参照してください。

12.2 暗号化

すべての対称暗号操作は、AES-128 に基づいています。これは、ファイルおよびフォルダー属性ブロックに対しては暗号ブロック連鎖モードで動作し、実際のファイル データに対してはカウンター モードで動作します。各ファイルおよび各フォルダー ノードは、ランダムに生成された独自の 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 内の暗号化されていない秘密鍵を傍受できないように、オペレーティング システムを信頼しています ( https://nzkoz.github.io/MegaPWN/を参照)。

途中で取るべき予防策は確かにありますが、これは現在利用可能な最良のオプションの1つです. GPG を使用して Mega にアップロードする前に、いつでもファイルを暗号化して、上記の問題の一部を軽減できます。

于 2015-01-30T10:56:25.220 に答える
2

Mega では、すべてのユーザーがmaster key. すべてのユーザーは、公開鍵と秘密鍵のペアも持っています。また、すべてのファイルは異なるセッション キーで暗号化されます。セッション キーは、ユーザーのマスター キーで暗号化されます。

Alice が自分のファイルを Bob と共有したい場合、まず自分のマスター キーを使用してファイルのセッション キーを復号化し、次に Bob の公開キーでセッション キーを暗号化します。

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

上記は直感的な説明です。Mega の API (およびそのソース コード) から詳細情報を見つけることができます。

于 2013-09-01T18:02:55.660 に答える