私はsslまたはplain httpのいずれかにバインドされるWebサービスを持っています。 Javaクライアントは、サーバーのホストとポートを認識するように構成されています。クライアントが接続すると、私はhttp://host:port/serviceのようなサーバのエンドポイントを構築します。クライアントは、サーバがssl-serverを使用しているかどうかを知っていないので、常に1つのポートにバインドされているので、安全であるかどうかはわかりません。さて、問題は、別のパラメータを導入せずにクライアントにこれを発見させる方法です。プレーンなhttp要求に挑戦して、ある例外でssl(またはその逆)にフォールバックすることはできますか?あるいは、私は明示的に新しい接続パラメータをクライアントに導入する必要がありますか?SSLを正常に検出する方法
4
A
答えて
3
サーバー側では、Grizzly's port unificationのような実装を使用できます。これは、同じポート上でHTTPとHTTPSを処理するために使用できます。これは、どちらの場合も、クライアントが最初に話し、HTTP要求またはSSL/TLSクライアントのHelloメッセージを送信するという事実に依存しています。これはサーバー側では非常に便利です(ただし、私は一般的に同じポートで2つのプロトコルを実行することをお勧めします)。 (あなたが尋ねているものである)クライアントの観点からは
、の結果は次のとおりです。
- クライアントの話が最初にそれは常に最初に試してみなければならないことを意味しているという事実。 SSL/TLSとプレーンなHTTPサービスを話そうとする場合、あるいはその逆の場合には、ある種の例外を予期してください。
- サーバがポート統合を使用する場合、信頼性の高い方法を見つける方法はありません。
ポート統一を除いて(これはまれなケースです)、過去の試行の結果をキャッシュすることができます。もっと根本的
、セキュリティの観点から、使用すべきプロトコル知ることは、脆弱性を紹介しません:お使いのシステムは、(blindly relying on automatic redirectsと同じように、同様の方法で)攻撃をダウングレードして公開されます。あなたのユーザエージェントがHSTSをサポートしているなら、それを調べる価値があります(ただし、HTTPSで使用するサイトをユーザエージェントが記憶する必要があります)。
いずれにしても、セキュリティが懸念される場合、はで、クライアントはhttps://
をいつ使用するかを設定する必要があります。
関連する問題
- 1. プレディクスの異常検出にアナリティックを実行する方法
- 2. フォーム提出が正常に動作したかどうかを検出する方法
- 3. SSL SNIサポートを検出する
- 4. H2O-Rで異常検出のモデルを作成する方法
- 5. winsock2の異常切断を検出する方法は?
- 6. データベースの異常値データポイントを検出する方法
- 7. R異常検出ベクトル(パラメータ「期間」を決定する方法)
- 8. PythonでSSLハッシュアルゴリズムを検出
- 9. アプリでSSLピンニングを検出する方法はありますか?
- 10. Java SSL:ホスト名の検証を無効にする方法
- 11. SSL検証を無効にする方法nodejsループバックリクエストプラグイン
- 12. pygit2でssl検証を無効にする方法
- 13. PHAssetのファイルタイプ(GIF)を正しく検出する方法
- 14. JavaでディスプレイのDPIを「正しく」検出する方法は?
- 15. DLIBオブジェクト検出チップを正しく保存する方法は?
- 16. dlib正面検出器のカスケードレベルを分割する方法は?
- 17. 正しく隣接セルを検出する方法
- 18. 画像の不正なコンテンツを検出する方法は?
- 19. 正規表現で星印 "*"を検出する方法は?
- 20. AspectFitスケールモードでUIImageViewのタップを正しく検出する方法
- 21. Actionscript 3.0。衝突の検出を較正する方法は?
- 22. LDAP + SSL接続のサーバーSSL証明書を検証する方法
- 23. QApplication出口を正常またはクラッシュとして検出する
- 24. SSL暗号リストの検証方法は?
- 25. CordovaをSSL経由でPDFをダウンロードするには? SSL以外のダウンロードが正常に動作します。
- 26. View Modelで正常に検証されたフォームについて知る方法
- 27. 衝突検出の実装が正常に動作しない
- 28. 非常に正確なライン検出、openCV Java
- 29. ユーザーが正常にログインした後にメソッドを呼び出す方法は?
- 30. ネイティブListViewの検出が正常にスクロールしてプログラム的にスクロールする
これは私が後になっているようです。セキュリティは懸念事項です。そうでなければ、まずはSSLがありません。しかし、この特定のケースでは、トラフィックを暗号化するだけで済み、認証は問題ではないので大したことではありません。実際、この場合のクライアントは、実際には同じ種類の別のノードを呼び出すサーバーノードです(クラスター内で何らかの話があります)。新しいパラメータを導入するのを避けるためにちょうどよいショートカットが必要でした。これを行う方法は信頼できるものではないように思えますが、私はポートの統一物で遊んでいきます。興味深いことに、ありがとう! – Dima
サーバの認証(暗号化前)は、トラフィックをまったく変更できない受動的な攻撃者(盗聴者)を最大限に抱えていることが分かっていない限り、常に問題になります。 – Bruno
そうだね、盗聴者は私の場合は脅威ではない – Dima