web-dev-qa-db-ja.com

高レベルの悪意のあるユーザーから隠されたサーバーを介して別のクライアントにメッセージを送信する最も安全な方法は何ですか?

あなたと友人の間で送信されたメッセージを傍受しようとする知名度の高いハッカーや機関に絶えず脅かされているとします。

問題は次のとおりです。悪意のあるユーザーや機関が次のいずれかを行うことなく、彼にメッセージを送信する最も安全な方法は何ですか。

  1. あなたまたはあなたの友人のメッセージを傍受して解読してください。
  2. MiTM またはDDoSによって通信を中断します。世界のさまざまな場所でホストされているクラウドサーバーは、DDoSトラフィックの負荷を軽減し、サーバーのシャットダウンを困難にしますか?ヘッダーに転送された賢明な情報のない複数のプロキシについてはどうですか?それにより、インターネットプロバイダーは、誰かがインターネットの閲覧ログを取得できた場合に連絡しているサーバーを知りません。
  3. リプレイ攻撃Meet-in-the-Middle-Attack などの他の攻撃は、簡単に言えば、最終的にメッセージコンテンツを導出するか、なりすましにつながります。

また、あなたが学生であり、パワフルなラップトップに余裕がない場合は大きな数字なので、暗号化が遅いアルゴリズムを最初から除外することになります。

これが私たちがいる状況です:

_                              C                     B
                       ----------------     ------------------
         A             |              |     |                |
      -------          |    Server    |'''''|     Friend     |
      | You |''''''''''|              |     |                | 
      -------          ----------------     ------------------
                 |                              |
               |                D                 |
             ---------------------------------------
             |                                     |
             |                                     |
             |      Malicious user or agency       |
             |                                     |
             |                                     |
             ---------------------------------------
_

[〜#〜] a [〜#〜][〜#〜]に何でも送信できるはずですb [〜#〜]から[〜#〜] c [〜#〜]なし[〜#〜] d [〜#〜]interactを実行できます。

[〜#〜] rsa [〜#〜] を使用してキーを交換し、AES128などで暗号化/復号化として十分に使用していますか? RSAとPGPの両方を使用して、RSAキーで復号化した後、PGPでも復号化する必要がある場合はどうでしょうか。それとも不必要ですか?

ある種のMAC-then-encrypt-and-encrypt-againスキーマについて考えました:AES128(Message + RSA pub key) + (PGP pub key + nonce) <-> server <-> ((AES128(Message + RSA pub key) + (PGP pub key + nonce)) - nonce) == PGP priv key == RSA priv key | stop

理解を深めるために、もう一度図を追加してみましょう。

送信者

_             -------------     ---------------    
             |           |     |             |
             |  Message  |--+--| RSA pub key |
             |           |     |             |
             -------------     ---------------           
                      \          /    
                       \        /
                        \   D  /
                         \    /
                          \  /
                           \/
                      -------------     -----------------     -----------
                      |           |     |               |     |         |
                      |  AES128   |--+--|  PGP pub key  |--+--|  Nonce  |
                      |           |     |               |     |         |
                      -------------     -----------------     -----------
_

レシーバー

_                                                                 \    /
                      -------------     -----------------     ----\--/---
                      |           |     |               |     |    \/   |
                      |  AES128   |--+--|  PGP pub key  |--+--|  No/\ce |
                      |           |     |               |     |   /  \  |
                      -------------     -----------------     ---/----\--
                           /       \                /           /      \
                          /         \              +                    
                         /           \            /             
  ---------------     -----------     +   -----------------            
  |             |     |         |      \  |               |
  |  RSA pubkey |--+--| Message |       \ |  PGP priv key | <----- Symmetric
  |             |     |         |        \|               |
  ---------------     -----------         -----------------   
          \
           +
            \
         ----------------
         |              |
         | RSA priv key | <---- Asymmetric. Only the receiver knows this key.
         |              |
         ----------------
                    \
                     \
                 -------------
                 |           |
                 |  Message  |
                 |           |
                 -------------
_

これと(完璧) Forward secrecywouldを組み合わせると、さらに安全になりますか?

悪意のあるユーザーによるunbreakabilityまたはvery-slow breakability(スーパーコンピューターでも100年かかる)の結果は1つだけです。

可能な場合は、事実、参照、特定の専門知識など、回答の意見に基づいていないものを追加します。

11
Alper Turan

単純なデータを直接コンピューターで盗聴できる方法でコンピューターが操作されたか、または盗聴を容易にする方法で暗号化ソフトウェアが変更されたかどうかを本当に検出できると本当に信じますか?お父さんもこれができると本当に信じていますか?暗号化ソフトウェアをダウンロードした場合:それが主張することを実行していることをどのようにして知ることができますか?暗号化ソフトウェアを自分で作成した場合:関連するすべてのアルゴリズムを完全に理解し、実装が正しいだけでなく、適切で安全なRNGなどを使用していること、タイミング攻撃などで情報が漏洩しないことを確認しましたか?暗号化自体はすでに困難ですが、問題全体ではなく一部のみを解決します。忘れないでください https://xkcd.com/538/

21
Steffen Ullrich

最初の問題は、NSAで何ができるかを判断することです。たとえば、ラップトップにキーロガーがインストールされていますか?BIOSが危険にさらされていますか?ハードディスクのファームウェアが危険にさらされていますか?

また、仲介サーバーを使用したいので、そのサーバーのオペレーターが国家安全保障レターなどで脅迫されていないこと、またはあなたを保護するメカニズムを見つける必要があることをどういうわけか知っている必要があります。信頼できない仲介者の。

これらすべての状況で、ゲームオーバーになります。

次に、ハードウェアが危険にさらされていないことを合理的に確信している場合は、以下を検討します。

  • マスマーケットの小売店(通信販売ではない)から新しいUSBスティックを入手し、現金で支払います。
  • テールをダウンロードします。
  • インターネットから切断します。
  • USBスティックにテールをインストールします。
  • ハードディスクを取り外します(コンピューター自体の不良BIOSからではなく、不良HDファームウェアから保護します)。

もちろん、あなたの父親も同じ予防策をとる必要があります。

次に、非表示にするものを定義します。

  • メッセージのcontentを非表示にしますか?
  • メッセージのrecipientを非表示にしますか?
  • 伝えたことを隠したいですか?

メッセージの内容を隠したいだけなら、PGPがそれです。ただし、件名と受信者はプレーンテキストになります。あなたの質問から、それはそれです。

メッセージの受信者を隠したい場合は、SSHを使用して(侵害されていないことがわかっている)サードパーティのコンピューターにログインし、そこにメッセージをテキストファイルとして残します。父親も同じコンピューターにSSHを使用してメッセージを取得します。

通信の事実をまったく隠したい場合は、TORネットワークを介して接続する必要があります。

最後の問題は、暗号化に使用するアルゴリズムです。まず、SHA256を使用しないでください。これは暗号化アルゴリズムではなく、ハッシュアルゴリズムです。それを使用した場合、ギガバイトサイズのファイルであっても、ダイヤルアップ回線を介してさえ、数秒でどれほどの速さで転送できるかに驚かれることでしょう。また、送信したファイルを父親が取得できなかった理由に驚くことでしょう。 SHA256は基本的に数十バイトのチェックサムを生成し、元のメッセージはそのまま残します。

公開鍵暗号化による個別の鍵交換とそれに続く対称暗号化によるデータ転送フェーズのアイデアは、直接通信に非常に適しています。

暗号の選択については、TLS 1.2が提供するものを検討します。公開鍵のRSAは適切です。対称暗号化用のAES128も良い選択です。

もちろん、中間(サーバーC)を使用しているので、そのサーバーが提供するものに制約されます。

6
Kevin Keane

使い捨てパッド

使い捨てパッドを超えて数学を使用すると、「NSA」がアルゴリズムを破る機会となります。名前付きアルゴリズムを使用する瞬間、NSAがその特定のアルゴリズムを壊した可能性を受け入れる必要があります。どのアルゴリズムが壊したかに関する情報が欠けている場合、唯一の「NSA証明」アルゴリズムは使い捨てパッド。

そして、あなたはあなたの乱数発生器とあなたの鍵交換をよりよく信頼します! (編集:つまり、つまりreal乱数ジェネレーター。これらの新しい「コンピューター」のようなもので実行される弱虫疑似乱数ジェネレーターはありません!)

6
Cort Ammon

飛行機に乗ってお父さんを訪ねてください。二人きりの場所にいったら、秘密をお父さんの耳にささやいてください。「サーバーを介して"部分、それからあなたのメッセージを一枚の紙に書いて、それをサーバーのケースに入れて、それからパパエドウィンにそれをすぐに引き出してもらいます。

あなたも私もNSAが何ができるかを知りません。彼らはソフトウェアのダウンロードだけでなく、すべての人に危害を加える可能性があります。マザーボードのBIOS、キーボード、ルーター、ハードドライブにハードウェアのバグがあるかもしれません。彼らは、盗聴していないアイテムを悪用している可能性があります。カメラ、マイク、その他の検出器が家、車、人(スマートフォン)にある可能性があります。

ああ、彼らはほぼ無制限の予算とあなたの過去の記録へのアクセス権を持っています。彼らはあなたをプロファイリングする心理学者と行動科学者を持っています。彼らは世論や価値観に影響を与えるマスメディアやエンターテイメントに影響を与えています。

勝つ唯一の手はプレーしないことです。

3
dotancohen

このようにしましょう。あなたの本当の問題は物理的なアクセスS Mailです。この架空の状況では、NSAがあなたを監視しています。これが効果的でない範囲まで暗号化を十分に使用することでこれを回避できますが、最初に、ワンタイムパッド暗号化またはほとんどのソリューションのキーと通信する必要があります。 NSAがメールを検索するのを妨げるものは何もありません。ルーターを傍受して盗聴器をインストールしたり、入手したラップトップにソフトウェアをインストールしたりする可能性があります。 NSAにあなたを無視させる最良の方法は、あなたを見て意味がないほど退屈であることです。 2038年には、NSAはおそらく、私たちのほとんどが今日使用しているあらゆるものを解読するのに十分な計算能力を備えているでしょう。たとえば、鍵に4096ビットのRSAを使用し、256ビットの蛇を使用して暗号化します。アルゴリズムに対してNSAによって考案された統計的攻撃がある場合、それはAESになります。第二に、退屈であること。例メッセージ、キーはRSA 4096ビット、3層の256ビットサーペントで暗号化(man-in-the-middle攻撃を防止)暗号化「こんにちは、お父さん。新しいガールフレンドができた。おばさんルースはアンクルジェイクと離婚した。おばあちゃんスノーデンは、彼女の化学療法で上手く行っています。近いうちに米国に戻ってくることを願っています。私のGFがあなたに会いたいと思っています。-(エドワードスノーデンの架空の息子)保護されていないコアサーバーを経由して移動します。NSA Received by Edward Snowden NSAは、このような数か月のメッセージを解読し、膨大な量のコンピューター能力を使用した後、おそらくあなたを無視して他のことをします。

セキュリティにおける心理学の力を過小評価しないでください。 NSAは、疑わしいと思われるものを見ることだけを気にします。

1
Kevin Donaldson

答えはたくさんありますが、平均的なジョーにはあまり実現可能ではありません。別名Snowden Jr.この答えは、現在のシナリオから書かれています。数年で多くのことが発生または変化する可能性があるため、20年以上後の状況について熟考することは、特に情報技術に関してはあまり価値がありません。

適切なソリューション

ワイヤレス通信システムのないコンピューターを構築/使用します。つまり、ワイヤレスでデータを送受信できるH/Wがありません。 Bluetooth、Wi-Fi、その他のワイヤレス通信機能はありません。また、イーサネットまたはインターネット接続機能も無効にします。 OSをインストールしている間も、このコンピュータをインターネットに接続しないでください。新しくインストールされたOSはもちろんオープンソースであり、念のため広範囲にテストされている必要があります。 VeraCryptDeniable Encryption のようなオープンソースソフトウェアを使用して、ハードドライブ全体を暗号化します。 「非表示」のOSパーティション内に、PGPキーを作成します。 AES-256対称暗号化規格を使用して秘密鍵を暗号化します。ランダムに購入した新しいフラッシュドライブを使用して、同様にセットアップされたセカンダリデバイス/ PCにマウントし、安全に消去、再パーティション化、フォーマットします。 PGPキーが実際にあるプライマリPCに接続する前に、必ずこの手順を実行してください。

プライマリPCでメッセージを入力して暗号化したら、「フォーマット済みの」フラッシュドライブを接続してメッセージをコピーします。

この暗号化されたメッセージは、安全なPC(通常のインターネット接続PCと同じくらい安全)を介して送信でき、 ProtonMail などの安全なメールサービスを使用してインターネットに接続できます。

1
Joseph