問題タブ [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.
security - 中間者攻撃 - 対称鍵が使用されている場合、このような攻撃は可能ですか?
中間者攻撃を考えると。対称鍵が使用されている場合、このような攻撃が発生する可能性はありますか?
ssl - HTTPS トラフィックを平文でキャプチャしますか?
リモート Web サービスと通信するローカル アプリケーション (私が作成したものではなく、変更できません) があります。HTTPS を使用しており、トラフィックの内容を確認したいと考えています。
これを行う方法はありますか?私は Windows システムを好みますが、Linux でプロキシをセットアップすることで作業が簡単になる場合は喜んでセットアップします。
私が考えていること:
- ホスト ファイルをハッキングする (または代替 DNS を設定する) ことにより、Web サイトをリダイレクトします。
- そのサイトに HTTPS サーバーをインストールし、自己署名 (ただし信頼できる) 証明書を使用します。
- どうやら、秘密鍵をフィードすると、WireShark は HTTPS の内容を確認できるようです。私はこれを試したことがない。
- どういうわけか、このトラフィックを実際のサーバーにプロキシします (つまり、本格的な中間者攻撃です)。
これは理にかなっていますか?WireShark は本当に HTTPS トラフィックの内容を認識できますか? 誰でも適切なプロキシ (および同じ構成) を教えてもらえますか?
silverlight - Silverlightでホストサーバーの証明書を確認するにはどうすればよいですか?
私が書いているSilverlightアプリケーションでのMITM攻撃に関心があります。サイトはSSL経由で実行されます。私のサイトがMITM攻撃の被害者である場合、私が知る限り、現時点での唯一の防御策は、サイトの証明書が信頼できない場合にブラウザに表示される警告ページです。これはブラウザにすぎないため、ユーザーに警告してから、とにかくユーザーに許可するのが最善の方法です。ユーザーはクリックして幸せになることができ、物事を読まない傾向があります。したがって、彼らはこの警告を読み、頭をかいて、サイトに進む可能性があります。私は堅牢なSilverlightアプリケーションを作成しているので、ブラウザーで証明書エラーが発生しているかどうかを検出するか、ブラウザーが実行するのと同じ検証を実行できるはずだと考えました。次に、問題があると判断した場合は、ユーザーがMITMに重要な情報を公開しないように、アプリ全体をロックダウンするだけです。私が抱えている問題は、Silverlightの限られたサブセットの.NETで、必要なことを実行するための適切なクラスが見つからないように見えることです。誰かが私がこの目標を達成する方法、またはこの問題を回避する別の方法を知っていますか?
java - クライアントとサーバー間の安全な接続
組み込みクライアントのリクエストを処理するサーバー コンポーネントを開発していますが、これも私の管理下にあります。
現在、すべてがベータ版であり、セキュリティは次のように機能します。
クライアントは https 経由でユーザー名とパスワードを送信します。
サーバーはアクセス トークンを返します。
クライアントは、カスタム ヘッダーのアクセス トークンを使用して、http 経由でさらに要求を行います。
これはデモには問題ありませんが、リリースする前に修正する必要があるいくつかの問題があります。
誰でも一部のユーザーが回答したように、https を経由するため、これは問題ではありません。私の間違い。login
リクエストをコピーして再送信し、アクセス トークンを取得できます。リクエスト ヘッダーを検査するだけで、誰でもリッスンしてアクセス キーを取得できます。
タイムスタンプを使用して重複したリクエストを拒否できる対称鍵暗号化を考えることができますが、このシナリオにはよく知られている良い方法があるかどうか疑問に思っていました (これはかなり一般的なようです)。
洞察に感謝します。
PS: 念のため、サーバーに Java を使用しており、クライアントは C++ でコーディングされています。
https - https 使用時の中間者攻撃の防止
私は omegle に似た小さなアプリを書いています。Java で記述された http サーバーと、html ドキュメントであるクライアントがあります。通信の主な方法は、http リクエスト (ロング ポーリング) によるものです。
https プロトコルを使用してある種のセキュリティを実装し、サーバーに接続するすべてのクライアントにセキュリティ ID を設定しています。クライアントが接続すると、サーバーはクライアントに securityid を与えます。これは、クライアントが要求を必要とするときに常に送り返す必要があります。
ここでの中間者攻撃が怖いのですが、そのような攻撃からアプリを保護する方法について何か提案はありますか?
このアプリは理論的な目的で構築されていることに注意してください。実用的な理由で使用されることはないため、ソリューションが必ずしも実用的である必要はありません。
asp.net - 渡された追加のコンテキスト情報を使用した安全なログイン(これも安全である必要があります)
私のWebアプリケーションは、既存のシッククライアントアプリケーションを介して起動されます。起動すると、userIDや追加のコンテキスト情報(基本的にはターゲットユーザーの名前、誕生日など)などの情報を含むHTTPPOSTリクエストが生成されます。
私の認証の計画は、データベースにルックアップテーブルがあることです。ユーザー名がすでに存在する場合は、ユーザーに自動的にログインしますが、データベースにエントリがない場合は、そのデータベースエントリの作成に使用される最初のログインページにユーザーをリダイレクトします。
私の質問は、MITMやその他のセキュリティホールからこれを保護する方法です。シッククライアントを介して生成された要求をSSL接続で行うにはどうすればよいですか?最初にSSL接続をユーザー名(およびパスワード)で認証する必要はありませんか?その場合、ユーザーがログインするまで、追加のコンテキスト情報は公開されますか?
これが基本的なセキュリティ101の質問である場合は申し訳ありません。セキュリティの基本についてどこで読むかについての参考資料も大歓迎です。
https - 証明書はどのようにして中間者攻撃を回避しますか?
Webのセキュリティについてもう1つ質問があります。私が正しく理解していれば、証明書はあなたが本当に誰であるかを識別するためのものです。したがって、中間者攻撃は不可能です。しかし、私がこの画像を見ると:
中間者攻撃は可能だと思います。データから証明書である署名を分割できます。偽のデータを使用して独自の署名を作成し、偽の署名(ただし正しい証明書)を使用して偽のデータをサーバー/クライアントに送信します。
この写真でも私が理解していないのは、検証側で証明書がチェックされる場所です。
ありがとう。
SCBoy
security - 中間者攻撃は、キーを使用したSSH認証中にセキュリティの脅威になりますか?
私はネットワークセキュリティの専門家ではないので、この質問があまり賢くない場合はご容赦ください:)。sshを使用して一部のマシンへのログインを自動化しています。現在、を使用してホストキーの警告を回避していますStrictHostKeyChecking no
。
私は誰かがサーバーになりすますことができることを素朴に理解しており、その場合は彼のパスワードを失うリスクがあります。ただし、公開鍵/秘密鍵ベースの認証(を使用PasswordAuthentication no
)のみを使用している場合でも、侵入者は害を及ぼす可能性がありますか?
つまり、基本的にssh -o "StrictHostKeyChecking no" -o "PasswordAuthentication no"
:
1)侵入者は私の秘密鍵を解読できますか?
2)他にセキュリティ上の脅威はありますか?
よろしく、
JP
c++ - アプリケーションでキーを非表示にする方法は?
クライアントとサーバーが実行可能ファイルであるC++クライアント/サーバーアプリケーションがあります。クライアントとサーバーの間で接続が確立されるたびに、そのセッションの新しい暗号化キーを生成します。このセッションキーを送信し、クライアントとサーバーの両方に組み込まれている静的キーを使用してこのセッションキーを暗号化します。
ただし、実行可能ファイルで文字列を実行すると、静的キーが明らかになります。
クライアントおよびサーバーアプリケーションに埋め込まれた静的キーを非表示にして、それらが簡単に抽出されないようにし、誰かが私のセッションキーをデコードできるようにするにはどうすればよいですか。