問題タブ [jsse]
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.
java - Javaアプリケーションから、リモートHTTPSサーバーでサポートされている暗号のリストを取得するには?
Java JSSE 環境を介してリモート サーバーでサポートされている暗号のリストを取得するにはどうすればよいですか。
リモートサーバーでサポートされている脆弱な暗号のリストを取得して、それらを修正できるようにしたいと考えています。
SSLSocketというメソッドを持つを使用していgetSupportedCipherSuitesますが、このメソッドは、リモート サーバーではなく、クライアントでサポートされている暗号を返します。
java - java.lang.SecurityException:管轄ポリシーファイルは信頼できる署名者によって署名されていません
別の問題(RMIに関連する)に取り組んでいるときに、システムの「セキュリティフォルダー」を「無制限の強度」ポリシーファイルでアップグレードしましたが、アプリケーションが別の方法で失敗します。長いスタックダンプが表示されますが、次のビットが適切であるように見えます。
ええと、WTF?唯一の変更点は、元のjarファイルを脇に移動し、無制限のファイルを$ JAVA_HOME / lib/securityに追加したことです。そのディレクトリは次のようになります。
もちろん、.strongバージョンと.unlimitedバージョンがあるので、すぐに元に戻すことができます。
指示は短くわかりやすく、これら2つのファイル(local_policy.jarとUS_exportpolicy.jar)の置き換えのみを想定しているように見えます。
他に何をする必要がありますか?
javaとポリシーファイルのバージョンは、これまでで最も新しいものであることに注意してください。それぞれ1.7.0_03とjce_policy-6です。
PSここにある同様のタイトルの記事は、まったく役に立ちませんでした。
java - JSSE を使用して SSL 証明書の Extended Validation (EV) を検証する
URL のリストを取得し、JAVA を使用して拡張検証 (EV) 属性を検証したい 要求を行って証明書を取得することはできますが、特定のサイトの「拡張検証」を検証する方法がわかりません。
証明書に特別な価値はありますか? それとも何かの属性?
java - LDAP の SocketFactory にパラメーターを送信する方法
次のコード例の意味は重要ではありません。私が聞きたいのは、「certFileName」をパラメーターとして socketFactory に送信する方法です。別のエンドポイントに別の certFile を使用する必要があるためです。
このようになるかもしれません:「外部」コードで何をすべきですか
ありがとう!
ssl - Oracle JSSEを使用したFTP over SSL/TLS
Oracle の JSSE に関する私の理解が正しいかどうかはわかりませんが、JSSE を使用して SSL/TLS を介した単純な FTP を実行することは可能ですか。目的は、Windows マシンで実行されている FileZilla サーバーを使用して FTP サーバーからファイルを取得することです。Filezilla は SSL/TLS 接続のみをサポートします。クライアント マシンは AIX 5.3 です。私はApache Commonsネットライブラリを使用してJavaコードを作成しましたが、それはかなりうまく機能しますが、私の会社は現在オープンソースを使用することに少し消極的です.それのライセンス)。AIX 5.3 マシンから Filezilla FTP サーバーへの FTP over SSL/TLS 接続を確立し、特定のディレクトリから単一または多数のファイルを「取得」する Java クライアント スタブのみが必要であり、これらすべてを実行する必要があります。 Oracle JSSE ライブラリを使用します。可能であれば、誰かがその実装の可能なコード例を共有できますか? とても役に立ちます。
注-Filezillaサーバーからの自己署名証明書もあり、それを使用して(orapkiツールを使用して)Oracleウォレットを作成しましたが、JSSEで必要かどうかはわかりません。
java - SunX509 は何に使用され、IbmX509 を使用しているパーティと連携できますか?
を手動で作成するときKeyManagerの手順の 1 つは次のとおりです。
これは、「IbmX509」を指定する必要がある IBM jre では機能しません。
私の質問:
- これは「証明書エンコーディングアルゴリズム」と呼ばれることを読みました。どういう意味ですか?いつ使用されますか?
- クライアントが IBM アルゴリズムを使用し、サーバーが Sun アルゴリズムを使用している場合はどうなりますか?
ありがとう、
ドロン
java - SSLEngine(JSSE)を使用した古いクライアントとのSSLハンドシェイク
これは、「自己署名証明書とSSLEngine(JSSE)を使用したSSLハンドシェイク」のフォローアップ質問です。
同じポートでSSLメッセージと非SSLメッセージを処理できるNIOWebサーバーを実装しました。SSLメッセージと非SSLメッセージを区別するために、インバウンド要求の最初のバイトをチェックして、SSL/TLSメッセージであるかどうかを確認します。例:
parseTLS()メソッドでは、SSLEngineをインスタンス化し、ハンドシェイクを開始し、メッセージをラップ/アンラップします。ほとんどの最新のWebブラウザー(Firefox 10、IE 9、Safari 5など)ではすべてが正常に機能しているようです。
問題は、IE6のような古いWebブラウザとJavaのURLConnectionクラスのようなライブラリがSSL/TLSハンドシェイクを異なる方法で開始するように見えることです。たとえば、IE 6の最初の数バイトは次のようになります(16進値)。
メッセージをSSLEngineに渡すと、メッセージを認識していないようで、例外がスローされます。
では、IE 6とJavaのURLConnectionクラスは正確には何を送信しているのでしょうか?これは、JSSESSLEngineがサポートできる有効なSSL/ TLSメッセージですか?別のメッセージを送信するには、前処理を行う必要がありますか、それともクライアントと交渉する必要がありますか?
前もって感謝します!
アップデート
ブルーノとEJP、そしてさらにいくつかのデバッグのおかげで、私は何が起こっているのかをはるかによく理解できました。ブルーノが正しく指摘したように、IE6およびJava6クライアントはSSLv2ClientHelloを介して送信しています。以前のコメントの1つとは異なり、Java 1.6のSSLEngineは、実際にはSSLv2メッセージをアンラップし、クライアントに送り返すための有効な応答を生成できます。以前に報告したSSLExceptionは私の側のエラーであり、SSLEngineとは関係ありません(クライアントがデータの送信を完了したと誤って想定し、SSLEngineがより多くのデータのラップ解除を期待していたときに空のByteBufferになってしまいました)。
java - javaはjsseで使用する最強の暗号をどのように選択しますか?
Java が で使用する最も優先される暗号をどのように選択するのかわかりませんServer Hello。
Tomcat 5 構成があり、SSL コネクタにciphers=TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, etc
サーバー、つまり Java は、サポートされているクライアントの中で優先されるものとして選択TLS_RSA_WITH_AES_128_CBC_SHAされます。Server Helloしかし、これは最も安全というわけではなく、http: //docs.huihoo.com/java/javase/7/technotes/guides/security/SunProviders.html#SunJSSEProvider に推奨されるリストではありませんTLS_RSA_WITH_AES_256_CBC_SHA。
次に、違いを生んだのは server.xml 属性の順序だと思い、別の暗号を最初に配置しました ( TLS_DHE_RSA_WITH_AES_256_CBC_SHA) で、Client Helloそれがサポートされていることがわかります。しかし、これも選ばれず、TLS_RSA_WITH_AES_128_CBC_SHAまた選ばれました。
では、JSSE はどのようにして好みの暗号を選択するのでしょうか? これはどこかに文書化されていますか?ここで何が起こっているのかわかりません。
java - SSLSocketハンドシェイク完了のイベント通知を受信するための登録
SSLSocketのドキュメントによると:
ハンドシェイク完了のイベント通知を受信するために登録できます。
なぜあなたはこれに登録しないのですか?SSLExceptionが発生せずにSSLSocket.startHandshake()が成功するという事実は、証明書が信頼できることを保証しますか?または、ハンドシェイクが完了するのを待つことで、ある程度の保証が得られますか?
java - JavaJSSESSLEngineはSSLセッションを再開できません
NIOでSSLEngineを使用するアプリケーションを作成しています。クライアントとサーバーの両方を作成しています。クライアントはサーバーに接続できます。接続後、セッションの再開/再ネゴシエーションを実行できるようにしたいと思いますが、現在は運がありません。
SSLEngineを使用するコードはかなり大きいので(SSLEngineの使用法は非常に複雑です!)、状況を示す簡単な擬似コードを記述します。
**私はそれから助けになるコードの任意の部分を投稿することをいとわない(私が言ったようにそれは巨大ですが完全なコードでさえ..)
プログラムを実行すると、最初の接続は成功しますが、2番目の接続で例外が発生します。
SSLセッションの再開に必要ないくつかの成分を見逃しましたか?