問題タブ [man-in-the-middle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1158 参照

security - 「中間者」は、中間者攻撃で送信される値データを変更できます

AからBに情報を送信した場合、「中間者」は送信された値データを変更できますか、それともスニッフィングしかできませんか?

0 投票する
2 に答える
8514 参照

security - チャレンジレスポンスプロトコルは、man-in-the-middle攻撃に対してどのように役立ちますか?

チャレンジレスポンス認証は、man-in-the-middle攻撃をどのように防止しますか?wikiの記事を読みましたが、それでも理解できません。

0 投票する
1 に答える
598 参照

security - SSH がインターロック プロトコルを使用しないのはなぜですか?

SSH設計者は、中間者攻撃に非常に気を配っていたようです。

彼らのアプローチは、サーバーに初めて接続したときにサーバーの公開鍵の指紋を保存することでした(たとえば、ユーザーがウイルスに感染している場合など、初めて汚染されたネットワークからユーザーが接続しないことを願っています)。コンピューター)。ユーザーは次にこのサーバーに接続するときに、フィンガープリントを使用してサーバーの公開鍵を検証します。

実際には、多くのユーザーが指紋の不一致に関する警告を単に無視し、サーバーの再インストールが原因であると想定していることがわかりました。MITM 攻撃は実行が非常に難しく、まれであるため、心配する必要はありません。さらに、多くの場合、ユーザーは多くの異なるコンピューターを ssh で使用したいと考えており、使用SSHしたいコンピューターにすべてのフィンガープリントをインポートすることを気にしません (ねえ、私のサイトがダウンしている理由がわかりますか? 私はパニックに陥っています!オフィスにいないので、最寄りのインターネット カフェに行って見てみます)。

公平を期すために、サーバーを として使用DNSSECおよび使用できます。しかし、実際に使用されているのを見たことはありません。とにかく、それはプロトコルの必須部分ではありません。DNSCA

何年もの間、事前共有秘密がなければ MITM を回避できないと思っていましたが、最近 Bruce Schneir の優れた "Practical Cryptography" を読んでいて、彼はインターロック プロトコルについて言及しています。

  1. Alice は Bob に自分の公開鍵を送信します。
  2. Bob は Alice に自分の公開鍵を送信します。
  3. Alice は、Bob の公開鍵を使用してメッセージを暗号化します。彼女は、暗号化されたメッセージの半分をボブに送信します。
  4. ボブは、アリスの公開鍵を使用してメッセージを暗号化します。彼は暗号化されたメッセージの半分を Alice に送信します。
  5. Alice は、暗号化されたメッセージの残りの半分を Bob に送信します。
  6. ボブは、アリスのメッセージの 2 つの半分をまとめて、自分の秘密鍵で復号化します。ボブは、暗号化されたメッセージの残りの半分をアリスに送信します。
  7. Alice は、Bob のメッセージの 2 つの半分をまとめて、彼女の秘密鍵で復号化します。

ここで、マロリーはプロトコルのステップ (3) でアリスのメッセージの半分を受信した後、ボブに何かを送信する必要があります。彼はボブへのメッセージを捏造しなければなりません。ボブは自分が捏造していることに気付くでしょうls

SSHなぜそのようなスキームを使用しなかったのですか?それは本当にその目標に合っているようです。他のエンティティを必要とせず、MITM 攻撃を大幅に困難にします。

それは固有のものですか?問題の理解に欠陥がありますか? それとも設計者が、追加のセキュリティはプロトコルを複雑にする価値がないと考えただけですか?

PS: オーバーヘッドが大きすぎると思われる場合は、プロトコルのユーザーに10K、接続内の最初のデータにのみインターロックを使用するように強制することができます。したがって、実際にはそれほど問題にはなりませんが、MITM はより多くなります。とてつもなく難しい。

更新:ここで 説明されているインターロック プロトコルに対する攻撃は、MITM 攻撃が可能であることを意味するものではありません。通信中に単一のパスワードが送信された場合、MITM がそれを傍受でき、ユーザーにはタイムアウト エラーのみが表示されることを意味します。

更新 2: ポイント Eugene、レイズは有効です。インターロック プロトコルは認証を許可しません。つまり、 に接続している場合example.com、それが実際example.comに であり、 にmalicious.comなりすましていないことをまだ確認できませんexample.com。たとえば、 がなければ、それを確実に知ることはできませんDNSSEC。したがって、たとえば、SSHミサイル サイロにアクセスして書き込みを行った場合launch_missile -time now(たとえば、サーバーが実際にミサイル サイロのサーバーであることを確認するために使用せずにls)、実際には悪意のあるサーバーでそれを書いた可能性があります。敵は、あなたが敵に対してミサイルを発射しようとしていることを知っています。このタイプの攻撃は、実際にはインターロック プロトコルでは防げません。

しかし、プロトコルを正しく理解していれば、はるかに危険な攻撃、非常に実際的な攻撃を防げる可能性があります。インターロック プロトコルを使用すると、 について何も知らなくても、サーバーにアクセスexample.comすることは不可能でSSHあり、誰かがSSHセッション全体を盗聴する可能性があります。このタイプの攻撃の可能性ははるかに高いと思います。

たぶんSSH、MITM 攻撃を気にしませんか? 私はそうは思いません。たとえば、Putty FAQを参照してください。

これらの煩わしいホスト キー プロンプトは、SSH の要点です。それらがなければ、セッションを保護するために SSH が使用するすべての暗号化技術は、攻撃者の仕事を少し難しくするだけです。攻撃者は、ユーザーとサーバーの間にパケット スニファーを配置するのではなく、実際にルーターを破壊し、やり取りするパケットの変更を開始する必要があります。しかし、それは単にスニッフィングするよりも難しいことではありません。ホストキーのチェックがなければ、クライアントまたはサーバーによって完全に検出されなくなります。

彼は明らかに MITM 攻撃について話しているのであって、サーバー認証についてではありません。インターロック プロトコルを使用すると、Putty FAQ に記載されている攻撃を明確に防ぐことができると思いますが、なぜ使用しなかったのかはまだわかりません。

0 投票する
1 に答える
4014 参照

c - エンディアンからのエラーのため、tcp.h で単純なプログラムをコンパイルできませんか?

tcp.h を使用してこの単純な C プログラムをコンパイルするのを手伝ってくれませんか? バイトオーダーが「# ifdef __FAVOR_BSD」で設定されていないため、「mitmc.c:82: error: struct tcphdr has no member named th_off」を取得する

これは、一部の人にとってはおそらく単純な問題です。私はこのプログラムをコンパイルしようとしています。これは、本の中間ユーティリティの単純な男です。Linux で gcc を使用してコンパイルします (Windows には posix ライブラリがなかったため)。

最初にこのエラーが発生しました:

これは、「/usr/include/netinet/tcp.h」で th_off が次の場合にのみ定義されているためです # ifdef __FAVOR_BSD

しかし、 #define _BSD_SOURCE を追加して定義すると (features.h http://www.linuxquestions.org/questions/programming-9/tcp-hdr-variables-388003/に設定されているため)、全体が得られますその他のエラーのセット:

助けてくれてありがとう。

さらに、ところで、コンパイラ エラーに引用符ではなく â が含まれることがあるのはなぜですか? ありがとう、bashでLANG = Cを使用すると引用符が修正されました。

ここで回答して、フォーマットを使用できるようにします。優秀な!libnet-config が、設定のためにコマンドラインで使用できるバイナリであることを知りませんでした。ですから、他の初心者にとっては、

それをエスケープするので、コマンドとして実行されます

助けてくれてありがとう、それが正しい答えです。現在、コードは openbsd 用に書かれているようです (wikipedia Strlcpy を参照)。strlcat を strncpy に置き換えて、最善を尽くすだけだと思います。SUCCESS、コンパイルしました!FFSさん、

ああ、それは私の使い方です。

ありがとうヴラド、ありがとうエレミヤ!

0 投票する
4 に答える
4291 参照

django - この中間者攻撃はどのように機能しますか?

CSRF保護に関するDjangoのドキュメントには、次のように記載されています。

さらに、HTTPS リクエストの場合、CsrfViewMiddleware によって厳密なリファラー チェックが行われます。これは、HTTP 'Set-Cookie' ヘッダーが (残念ながら) 通信しているクライアントによって受け入れられるため、セッションに依存しないナンスを使用するときに HTTPS で発生する可能性のある中間者攻撃に対処するために必要です。 HTTPS の下のサイト。(Referer ヘッダーの存在は HTTP では十分に信頼できないため、HTTP 要求に対しては Referer チェックは行われません。)

この攻撃がどのように機能するかを視覚化するのに苦労しています。誰か説明してくれませんか?

更新:
Django doc の文言は、特定のタイプの中間者攻撃 (私が想定する成功した CSRF につながる) が存在することを暗示しているようです。 nonce など) であり、'Set-Cookie' ヘッダーの使用が含まれます。
そのため、その特定のタイプの攻撃がどのように機能するかを知りたかったのです。

0 投票する
3 に答える
4564 参照

c# - ASP.NET と中間者

ASP.NET は、クライアントとサーバー間のデータ操作を禁止するメカニズムを使用していますか?

そうでない場合、SSL を使用する必要があるということですか? SSL はどのような種類の攻撃を防ぐことができますか?

はいの場合、このメカニズムは何ですか?

0 投票する
1 に答える
1199 参照

wcf - WCFセキュリティ-中間者攻撃からの保護

トランスポートとメッセージセキュリティを使用するWCFサービスがあります。たとえば、フィドラーを使用してフィドラーがHTTPSトラフィックを復号化できるようにするユーザーからの、悪意のある中間者攻撃からデータを保護するにはどうすればよいですか?

0 投票する
2 に答える
1261 参照

php - FlashとPHPの間でデータを傍受するためのツール

私はいくつかのPHPサービスとActionScript3の間の通信のためにいくつかのAPIを開発してきました。

FlashからPHPスクリプトに送信されているデータを傍受し、それを操作してから、操作されたデータで送信を続行する方法はいくつかあることを私は知っています。これはおそらく、ハイスコアテーブルをごまかす最も簡単な方法です。

明らかにこれは避けられませんが、私はほとんどの人が解読するのを難しくし、価値がないようにすることができます。

私が知りたいのは:

上記を実行するためにどのツールを使用できますか(PHPに送信するデータを傍受して表示します)?正直に言うと、これがどのように行われるのかさえわかりません。使用できるGUIまたはブラウザプラグインはありますか?

目標は、ActionScriptと私のPHPサービスの間で送信されるデータの「暗号化」を監視および強化することです。

0 投票する
6 に答える
6926 参照

ruby - HTTPS をサポートする中間者 (MITM) プロキシ

現時点では、少しぐるぐる回っているようです。以下のことを可能にするシンプルで軽量な、できれば Ruby ベースのプロキシを探しています。

  • ブラウザーと Web アプリ間の HTTPS 要求をプロキシします。例: GMail
  • リクエスト/レスポンスの傍受と変更 - 中間者の変更
  • プロキシとブラウザ間で使用するために、オンザフライで SSL 証明書を生成します (または事前に構成されている可能性があります)。

Ruby を使用して、 em-proxyGoliathを試しましたが、これらが適切に適合するとは思いません。

どんな提案でも大歓迎です。

よろしくお願いします、

カールスキー。

0 投票する
1 に答える
348 参照

filter - mitmproxyのようなWindowsコマンドラインWebコンテンツフィルター

FacebookやTwitterなどのWebサイトをブロックしたいと思います。次のような簡単な小さなコマンドラインツール(Windows XP 7)を探しています。

filter.exe -list.txt

/// ------------ list.txt ------------
*.facebook。**
.twitter。*

提案?