問題タブ [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.
web-services - 中間者 (プロキシなど) サーバーがそうではないふりをするのを防ぎます
私は Web サービスを開発していますが、どのエンドユーザーが現在リクエストを実行しているかを知ることができることは非常に重要です。したがって、本質的には、暗黙的なユーザー (または、ユーザーのデバイス) の識別が必要です。
私の Web サービスは認証を必要としません。ユーザーがモバイル デバイスと私の Web サービスの間にプロキシ サーバーを配置し、そのプロキシ サーバーを介してすべてのトラフィックをルーティングすることが可能です。多くの理由がある可能性があるため、ユーザーがそれを行うことを禁止したくありませんが、現在接続しているデバイスを知りたい.
おそらくいくつかの暗号化が必要ですか?
security - NServiceBusでの中間者攻撃の処理
NServiceBusを使用してバックエンドアプリケーションサーバーからDMZWebサーバーと通信することを検討しており、MITM攻撃から保護するためのガイダンスを探していました。
NServiceBusまたはその他の方法を使用して、メッセージを暗号化(盗聴を防止)およびハッシュ(改ざんを防止)するにはどうすればよいですか?
これに関するどんな助けも素晴らしいでしょう、ありがとう
security - 非HTTPSに対する中間者攻撃の防止
プレーンHTTPを介したman-in-the-middle攻撃を防止または検出する方法はありますか?
コードが変更されていないことを確信して、クライアントマシンでjavascriptアプレットを実行したいと思います。HTTPSと証明書の通常のルートを使用せずに、コードに署名したり、コードを安全に配信したりするための巧妙なトリックはありますか?
php - 安全な API 通信で要求署名を使用するときにリプレイ攻撃から保護しますか?
私は API 通信のセキュリティについて調べ、安全な API を構築する最善の方法を見つけようとしています。OAuth などが存在することは知っていますが、その過程で自分自身を教育し、ライブラリに依存しないようにしています。
基本的に私はWebサービスを持っており、そのWebサービスでユーザーはAPIに登録できます。プロファイル ID と秘密鍵が提供され、別の Web システムから API 要求を作成するために使用する必要があります。
API リクエストは、銀行と同様に構築されます。API に送信されるすべての入力データは、次のように並べ替えられ、ハッシュが計算されてからサーバーに送信される必要があります。
これは本当に良くてうまくいきます。しかし!私の問題は、潜在的なリプレイ攻撃です。誰かがこのリクエスト URL を盗んだ場合、データ自体を変更することはできませんが、再度サーバーに送信できます。
時間を確認するか、1回限りのトークンをリクエストに追加する必要があるということをいくつか読みましたが、どのように正確に行うべきかわかりませんか? リクエストでタイムスタンプを送信することは本当に安全ですか? (受信サーバーは、クロックが多少同期している場合、リクエストが行われた時間内に数秒以内にリクエストが発信されたことを確認します)。
ミックスに IP 検証を追加することもできますが、これらは変更される可能性があり、多少なりすましの可能性があり、ユーザーにとっては面倒です。
私はこのワンタイム トークン タイプのシステムを気に入っていますが、トークン生成をまったく同じリプレイ アタックの問題にさらすことなくこれを行う方法がわかりません。(私が必要とする最後のことは、仲介者に安全なトークンを配布できるようにすることです)。
意見や記事は大歓迎です。私の特定の懸念に答える資料を見つけることができませんでした。私のAPIは安全であると言いたいのですが、それは単なるマーケティングの話ではありません.
ありがとうございました!
diffie-hellman - Diffie-hellmanを悪用して中間者攻撃を実行する方法
アリスとボブがDiffie-Hellman鍵交換を使用して互いにメッセージを送信するプロジェクトを行っています。私にループを投げかけているのは、彼らが使用している証明書をこれに組み込んで、彼らの秘密のメッセージを取得できるようにする方法です。
MIM attakcsについて私が理解していることから、この図に示すように、MIMは詐欺師として機能します。
以下は私のプロジェクトの詳細です。通信する前にgとpの両方で合意していることは理解していますが、署名を検証するための証明書を持っている場合、どうすればこれを実装できますか?
アリスは⟨signA(NA、Bob)、pkA、certA⟩を準備します。ここで、signAはアリスが使用するデジタル署名アルゴリズム、「Bob」はボブの名前、pkAはXに従ってエンコードされたgxmodpに等しいアリスの公開鍵です。 Diffie-Hellman鍵交換で指定されている固定g、pの場合は509であり、certAは、署名を検証するアリスの公開鍵を含むアリスの証明書です。最後に、NAは8バイトの長さのナンス(ランダムな文字列)です。
ボブはアリスの署名をチェックし、⟨signB{NA、NB、Alice}、pkB、certB⟩で応答します。アリスは、ナンスNAをチェックし、Diffie-Hellman鍵交換に従って、pkA、pkBに基づいてジョイントキーを計算するというメッセージを受け取ります。次に、アリスはメッセージ⟨signA{NA、NB、Bob}、EK(MA)、certA⟩をボブに送信し、Bobrespondswith⟨SignB{NA、NB、Alice}、EK(MB)、certB⟩。
ここで、MAとMBは対応するシークレットメッセージです。
ssl - ハンドシェイクを完全に記録することでTLSセキュリティを破る
私は最近TLSを調べていますが、なぜこれほど安全なのかわかりませんが、おそらくTLSがどのように機能するかについての誤解のおかげです。ただし、中間者攻撃またはターゲットコンピュータのパケットスニファを使用してハンドシェイク全体が記録されている場合は、クライアントとサーバーが生成に使用したすべての情報が得られるため、残りの通信を復号化できます。暗号化キー。
tlsにそのような穴があるのではないかと思いますが、tlsがこれに対してどのように防御するかを誰かに教えてもらえますか?
php - PHP の fopen() は、https リソースにアクセスする際の典型的な攻撃から保護しますか?
PHP のfopen()
関数を使用して HTTPS Web サイトからデータを取得する場合、それは安全な HTTPS 接続と呼ばれるものです。つまり、中間者攻撃や盗聴攻撃に対する保護を提供しますか?
authentication - クライアントが初めてサーバーに接続するときに、VPN で「中間者」が発生する可能性はありますか?
http://en.wikipedia.org/wiki/Secure_Shell#Key_managementによると、ssh は、サーバーとの最初の接続を確立するときに「中間者」攻撃に対して脆弱です。
SSH は、自動生成された鍵によって暗号化されるパスワードベースの認証もサポートしています。この場合、攻撃者は正当な側を模倣し、パスワードを要求して取得する可能性があります (man-in-the-middle 攻撃)。ただし、SSH はリモート側が一度使用したキーを記憶しているため、これは両側が以前に認証されたことがない場合にのみ可能です。
VPN にも同じ「弱点」がありますか?
django - DjangoサイトでのPOST偽造の回避
ログインしていなくても、自分のサイトのユーザーの特定のTwitter IDを知る方法を試しています。また、なりすましの可能性を減らす方法をコミュニティの助けを借りて求めています。
主なアイデアは、ユーザーがメインページにアクセスしてフォームに入力し、フォームを送信する方法として[これをツイート]ボタンをクリックすることです。これにより、ユーザーに「このフォームを送信しました」という事前に入力されたメッセージが表示され、ツイートするポップアップが開きます。このポップアップはtwitter.comにあります。ここではoauthは関係していません。ツイートが完了すると、Twitterは作成されたばかりのツイートのIDをWebページのjavascriptコールバック関数に送り返します。このjavascript関数ajaxは、フォームフィールドとツイートIDをサーバー上のハンドラーにPOSTします。
次に、サーバーはユーザー情報を含むそのツイートのTwitter情報を取得し、外部キーを使用してフォーム情報をユーザーに保存します。
私が避けたいのは、なりすましがページにアクセスし、フォームにジャンクを入力し、ツイートIDを含むフォームを別のユーザーからの無関係なツイートに手動でPOSTすることです。
私が使用しているDjangoには、CSRFトークンと呼ばれるものがあり、偽装者がページを読み込まずにPOST呼び出しを実行するのを防ぎます。しかし、これによってページをロードする(そしてcsrfトークンを見る)ユーザーがPOSTを偽造するのを防ぐことができるかどうかはわかりません。
私が避けたい主なことは、人々が自分のものではないTwitterIDを投稿するforに関連付けることです。
これを解決するため、または私の考えに穴を開けるためのいくつかの創造的な方法の提案を楽しみにしています。
debugging - ロギング プロキシ / MitM を使用した NPAPI のデバッグ
NPAPI ブラウザー プラグインをデバッグ/ハッキングしています。プラグインが何をしているかを正確に知るために、ブラウザーとプラグイン間の通信をログに記録/盗聴したいと考えています。そのための既存のツールがあるかどうか知っていますか? 何も見つかりませんでした。
私の動機は、a) プラグインを分析し、b) そのセキュリティを評価することです。
中間者として、つまり a) ブラウザへのプラグインとして、b) プラグインへのブラウザとして機能し、すべてのコマンド (メソッド呼び出し)。したがって、非常に簡単で簡単なソリューションです。
ありがとう