セキュリティエージェンシーによる自動フィルターの適用を避け、誤って飛行禁止リストなどに入れないようにしたいと思います。友人と民主主義などについて政治的な議論をしているとしましょう。革命、資本主義、自由などの言葉(ああ、NSAの皆さん、こんにちは!)がたくさん出回っています。通常はプレーンテキストでメールを送信するのに暗号化されたメールを送信することは、一部のフィルターをトリガーする確実な方法だと思います。
電子メールを暗号化して、アルゴリズムが通常の(スパムとしましょう、スパムよりも通常のメールを取得するのが難しい)メールと区別しにくいようにする方法はありますか?
例えば:
区別が容易な通常のPGP暗号文:
-----BEGIN PGP MESSAGE-----
Comment: GPGTools - http://gpgtools.org
hQIMA7t6lidYOUd0AQ//Z7y+/tvQQ0TRoOT0ydUwVjJZh5sLQOEVQNDHGEUjfvL9
7UJhtEaisVwlDsqTEqpa04FWzgehBBDnxgOUFcPB3xSGD9Bi61MItK6gm1phTnEn
hOezHmGqAyrCarofkYn5vpwPZtpSmRvpS9tykhRTKMlhsN5EOLvaDa8TsqMnqwGm
pPC8j219YG2U/OmRa96GTslMaDtIx6470Ea4fcJf2jdo3RlgLEc7BGQVcrOpHj/0
-----END PGP MESSAGE-----
暗号文、区別が容易ではない:
pen3s grow for cheap russion brides are looking for parntners in
Detroid area visit our website now click to unsubscribe
実際にやりたいことは、暗号化された電子メールをスパムのように見せることですOK、それを達成する方法?
可能な方法の1つは、暗号文を取得して、たとえば、それぞれ9ビットの管理可能なチャンクに分割することです。辞書のセットを使用して、これらの9ビットの数量はターゲット言語の1つ以上の単語にマッピングされます(9ビットは512単語の辞書を必要とし、同時にバリエーションを提供できます)。 マルコフ連鎖 は、前の辞書で選択された単語に基づいて次の辞書を選択するために使用できます。これにより、出力を特定の言語で非常に不十分に書かれたテキストに似せることができます。
2つの部分の相互作用を微調整することにより、このようなスキームの出力は、(多くのスパムメールのように)意味のないものから半判読可能なテキストまでさまざまなものになる可能性があります。そしてそれはテキストであり、バイナリデータではありません。
さらに簡単な方法は、 PGPワードリスト のようなものを使用して暗号文を単純にエンコードすることです。その結果はもちろん完全でナンセンスですが、おそらく、特定のターゲット言語の最も単純な統計テストに合格します。
これらのアイデアを説明したので、もちろんそれらはまったく役に立ちません。あなた自身の何かを考え出す必要があります。 ;-)
あなたは http://spammimic.com/ を求めています。これはまさにそれを行うウェブサイトです。彼らは、スパム文を使用してビットをエンコードするためにステガノグラフィ法を使用します。
ただし、スパムミミック実装の欠点は深刻です。それらは公に知られているので、サイトを流れるものに興味があるかもしれない誰かがすでにそれを傍受していることは間違いないでしょう。そして、それらの単語とフレーズのリストは静的であるため、単一のエンコーディングは常にそのように認識できます。次に、彼らのアルゴリズムは13バイトのブロックを約1 kbのスパムメールテキストにエンコードするようで、非常に非効率的です。人々は約1段落以上のスパムを読んだり送信したりしないので、10 kbのスパムテキストブロックは非常に疑わしいものになります。
いくつかの単語を送信しようとする人々は、写真や音楽ファイルなどの大きなファイルでそれらを偽装しています。これらを見つけることもできないというわけではありませんが、友人と写真を交換することは、大量のスパムを交換する人よりも不審ではありません。
最後に、人々は「デッドドロップ」を使用しています。画像の秘密の計画を共謀者にメールで送信するのではなく、何千もの画像ホスティングサイトのいずれかに画像を投稿したり、製品レビューやeBayセールに添付したりできます。そのため、ページのどの閲覧者がページをデコードしたのかを誰かが知るのが少し難しくなります。
たとえば、セットの辞書ワードの代わりに暗号文の各文字を使用すると、非常に長いメッセージに無関係な単語の束が含まれることになります。これは、典型的な暗号文を探すアルゴリズムを作動させませんが、セキュリティサービスによって採用された非常にインテリジェントな人々が通信を暗号化する新しい方法を検出するために導入したアルゴリズムを作動させるため、注意を引く可能性がはるかに高くなります。 GPGのようなミルの実行を使用した場合よりも自分自身に。
暗号化されたメッセージを送信すると自動的に自分に注意を引くというあなたの仮定はおそらく間違っていると思います。完全に通常の理由で多くの人々が暗号化された電子メールを送信します。それが理由で突然彼らがフライリストに載ることはありません。
Leo Marks 無害に見える平文のように見えるコードで通信するためのシステムを考案しました。彼は Between Silk and Cyanide の79章で簡単に説明しています。基本的に、文字をセンテンスフラグメントにマッピングする大きなコードブックでは、短いメッセージを多数のセンテンスとしてエンコードできます。 SPAMにスローされるがらくたのテキストの簡潔な性質を考えると、眉を上げないテキストを生成するコードブックを生成することは比較的簡単でしょう。
このスキームには2つの欠点があります。
基本的に、これは別の転置暗号であり、そのため、さまざまな攻撃に対して脆弱です。最新のアルゴリズムで暗号文の出力をエンコードするためにそれを使用する場合、おそらくペアは機密性と機密性の両方の要件を満たします-ただし、アドナンが指摘するように、NSAにはあらゆる種類の落とし穴があります。
これには2つの側面があります。 1つは暗号化で、もう1つは暗号化をスパムに隠します(ステガノグラフィー)。どちらも解決済みの問題なので、はい、これは既成のコンポーネントを使用して今日で実行できます。
ステガノグラフィは暗号化ではないことに注意してください。両方のセキュリティが必要な場合は、doboth。を実行する必要があります。
まず、暗号化です。私たちはあなたがすでにそれを行うことができると仮定します。結果は一連のビットで、これをスパムに埋め込むことになります。
次のステップでは、ある程度の機密性が必要になります。メッセージを「わかりやすく」隠しているため、攻撃者がエンコードメカニズムを知っている場合、攻撃者はエンコードされたメッセージを検出できる可能性があります。しかし、ここでアルゴリズムを作成しましょう:
ステップ1:スパムコンテンツの取得
マルコフチェーンを使用してこれをアルゴリズムで生成するか、受信スパムまたは他の同様のソースをキャプチャすることができます。
ステップ2:検出が困難な方法でコンテンツを微妙に変更します
これは、スパムソースに多少依存します。しかし、1つの手法はWordの大文字化です。受信スパムを小文字に変換してから、暗号化テキストを1ビットずつ移動し、ビットが1の場合は次のワードを大文字にし、ビットがゼロの場合は小文字のままにします。
速記アルゴリズムのスペース効率が高いほど、検出が容易になります。各単語の最初の文字を大文字にすることは、個々の文字を大文字にすることほど明白ではありません。各文の文字を大文字にすることは、さらに明白ではありません。句読点の追加または省略は、別の方法かもしれません。
あなたと受信者の両方がソーススパムのコピーを持っている場合、ビット位置を示すように内容を微妙に変更できます。たとえば、それ以外の場合は不要な単語を追加したり、文を省略したり、句読点を変更したり、その他の同様の手法を使用したりできます。
ステップ3:メッセージをデコードする
これは、手順2で適用された手法を逆にするのと同じくらい簡単です。たとえば、各単語の大文字の使用をテストし、結果に基づいて1または0を記録します。
ステップ4:メッセージを復号化する
暗号文ビットストリームが返ってきたので、従来の手法を使用して暗号化を解除します。
おそらくこれを行うための最良の方法は、ステガノグラフィー、つまり何かの中に何かを隠すプロセスによるものです。これは、おそらく重要でないファイルの一部をいじる、または画像内のドキュメント全体を隠すことなどによって行うことができます。周りにフリーウェアのステガオノグラフィーツールがたくさんあります。 。
私はそれを調べることを強くお勧めします、それはそこに隠された世界です;)
これは可能ですが、暗号化の方法を変更した場合のみです。
@Adnanが述べたように、特定の平文の英語の暗号文を吐き出すキーを見つけることは事実上不可能です。
ただし、暗号化テキストを英単語にマップするエンコード方式を作成することもできます。基本的に、数値を単語に関連付ける方法を見つけます(たとえば、65536語のデータベースを取り、それぞれを2つのASCII文字の可能な組み合わせにそれぞれマッピングします)。
ただし、受信者はこの難読化を使用していること、および暗号化を解除するためにデータベースを提供する必要があることを知る必要があります。
賢くて簡単なのは、バイナリメッセージを保持するために各バイトの最後のビット(メタデータを除く)を変更したトゥルーカラービットマップイメージを送信することです。
AS Computer Scienceプロジェクトのために、私はこのようなものを自分で作りました。それはそれほど難しくなく、データを完全に隠します。エンコードとデコードが高速で(1秒未満で1つの画像に数千の文字を書き込める、非効率なPythonソリューションを使用しました)、メールに画像が含まれていてもトリガーされません任意のアルゴリズム。
単純に保存(エンコード)するASCII文字を使用すると、1つの画像で大量のプレーンテキストを非表示にできます。画像は目に見えて変化しません(定義により、トゥルーカラーは目に見える変化がないため、最下位ビット)、そして特にそれがあなた/あなたの家族だけの場合、あるいは猫が何か面白いことをしている場合は特に、完全に無害に見えます。
送信するエンコードされたテキストのビットの均等な分布を概算できる限り、それは完全に無害であるように見えます。これが個人的な画像が良い理由でもあります-それは(通常)インターネット上の他の場所で見つけられないので、隠された暗号文を見つけるために比較することはできません。ビットを均等に分散するには、辞書ファイルを使用します。
私はあなたの最善の策は暗号化テキストを電子メールメッセージ内に保存することではなく、次のいずれかを行うことだと思います:
このスレッドの他の投稿で指摘されているように、暗号化されたテキストを非表示にする方法があります。残念ながら、このスレッドでも述べたように、このような手法にはかなりの欠点があります。しかし、あなたの最初の前提はおそらく過剰に述べられていると思います。 NSAなどの機関が大量のデータを収集し、収集されたデータの非常に高度な並べ替えと分類を行っていることは事実ですが、これは、人々をノーフライリストに載せるなどのことを行うためのデータ。他のイベントが発生すると、主に発生しているデータ収集のタイプに関する本当の問題が発生します。たとえば、あなたに注意を喚起する何かをしますいくつかの犯罪で逮捕された、行政機関に立候補した、政治活動に関与したなどの当局。これらのタイプのイベントが発生すると、NSAなどの機関は、データを収集し、収集した内容に基づいてプロファイルを作成します。これまでは、収集したデータはデータリポジトリにあるだけで、人間に見られることはありません。これに関する問題は、非常に難しいことです。あなたが取るイベントやアクションが好きであることを知るely彼らの注意を喚起します。あなたが彼らの注意を喚起するとき、電子メールは彼らが使用する多くのデータソースの1つである可能性が高いことに注意すべきです-彼らはまたあなたの経済的移行に関する大量のデータを持っているだろう購入、動き、電話での会話、連絡先リストなどに基づくプロファイル。
世界中のさまざまな政府機関がこれまで何をしてきたかについて明らかになったすべての情報は非常に不安です。ただし、この知識の否定的な側面は、人々を非常に偏執的にすることです。おそらく私たちは偏執的である必要があります。しかし、あまりにも多くの人々が、電子メールに何を入れ、誰がそれにアクセスできるかについて心配しています。実際のところ、あなたがあなたがあなたの電子メールメッセージに入れたものを知っている人々について心配しているなら、電子メールを使わないでください。実際、NSAがあなたの電子メールメッセージに入力した内容が原因で、フライリストに登録される可能性が高いことを心配している場合は、その内容にさらに注意する必要があります。あなたがこのサイトでこの質問をしたためです。彼らがあなたが心配しているレベルで監視している場合、このスレッドと投稿はあなたがメールで友達に送るものよりも「ダメージ」を与えているでしょう。メッセージ。