問題タブ [java-security]
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-security - 対応するエイリアスを持つJavaコードを使用してキーストアに公開鍵のみを保存する方法は?
私はキーストアを作成しましたが、キーストアに publickey のみを格納したいのですが、秘密鍵を格納したくありません。秘密鍵はクライアント デバイスにあり、残りの API を使用して公開鍵を共有するためです。
また、複数の公開鍵を1つのキーストアに保持する方法.異なるエイリアスを持つ
誰かがサンプル コードまたはサンプル リンクを持っている場合、それは私にとって非常に役立ちます。
java - AndroidKeyStoreRSAPrivateKey から RSAPrivateKey へのクラッシュ キャスト
私はこのチュートリアルに従っています: How to use the Android Keystore to store passwords and other sensitive information . これは (大まかに) Google サンプル アプリBasicAndroidKeyStoreと結びついています。
公開鍵を使用してデータを暗号化し、Lollipop を実行しているデバイスで復号化できます。ただし、マシュマロを実行している Nexus 6 があり、これがクラッシュしてエラーが発生します。
クラッシュするコードは次のとおりです。
Java暗号ライブラリが変更された理由が見当たらないので、これをAndroid Mの奇妙さに分類するのは気が進まない. M のリリースが近づいてきて、アプリがすぐに M でクラッシュした場合、私は大変なことになります。
私は何か間違ったことをしていますか?このエラーは、RSAPrivateKey にキャストできないことを明確に示しているため、エントリから RSAPrivateKey を取得するより良い方法を知っている人はいますか?
大変感謝します。
java - Java を使用して https サーバーに接続しようとすると、SSLHandshakeException がスローされます
Java を使用して「 https://api.softtouch.eu/#/xxxxxxxx/#/customers?take=100 」からデータを取得しようとしました。
また、次のオプションを使用してhttpsの問題を修正しようとしました:-
Java keytool を使用して証明書 (.pem 拡張子ファイル) をキーストア ($JAVA_HOME/jre/lib/security/cacerts) に追加しました
update-ca-certificates コマンドを使用して、認証局を Ubuntu (/usr/local/share/ca-certificates) に追加しました。
最後に、証明書の検証を無効にしてサーバーに接続しようとしました。(ここでは SoftTouchConnection クラスとカスタム TrustAllX509TrustManager クラス)。
/li>
しかし、これまでのところ、問題を解決できませんでした。「javax.net.ssl.SSLHandshakeException」を受け取りました。Javaを使用してサーバーに接続したい。この問題の理由は何ですか?
注:- " https://api.softtouch.eu/#/accounts/#/xxxxxxxx?take=100 " PHP との接続をテストしました。それはうまくいっています。ただし、PHP ソース ファイルでは、次の行を使用して SSL 検証を無効にしています。curl_setopt($httpRequest, CURLOPT_SSL_VERIFYPEER, FALSE);
これは SSL デバッグ テキストです。 5, 175, 99, 22, 55, 227, 185, 101, 32, 160, 186, 72, 167, 247, 166 } Session ID: {} Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 , TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV] Compression Methods: { 0 } Extension elliptic_curves, curve names: {secp256r1, sect163k1, sect163r2, secp192r1, secp224r1, sect233k1 , sect233r1, sect283k1, sect283r1, secp384r1, sect409k1, sect409r1, secp521r1, sect571k1, sect571r1, secp160k1, secp160r1, secp160r2, sect163r1, secp192k1, sect193r1, sect193r2, secp224k1, sect239k1, secp256k1} Extension ec_point_formats, formats:[非圧縮] 拡張署名アルゴリズム、署名アルゴリズム: SHA512withECDSA、SHA512withRSA、SHA384withECDSA、SHA384withRSA、SHA256withECDSA、SHA256withRSA、SHA224withECDSA、SHA224withRSA、SHA1withECDSA、SHA1withRSA、SHA1withDSA、MD5withRSA
メイン、書き込み: TLSv1.2 ハンドシェイク、長さ = 195 メイン、読み取り: TLSv1.2 アラート、長さ = 2 メイン、RECV TLSv1.2 ALERT: 致命的、handshake_failure メイン、closeSocket() と呼ばれる
java - Java7&8 のマニフェスト属性に関する Java アプレットの問題
私のアプリケーションは、Java アプレット ビューアーを使用してドキュメントを表示し、Java6 で完全に動作します。Java7 以降のバージョンでは、アプレットがドキュメントの読み込みに失敗しているため、ドキュメントを表示できません。私が使用している属性を以下に示します。必要な変更がある場合は、誰でも私に提案してもらえますか
ANT スクリプト:
Java コンソール出力:
ssl - TLSv1.2 および TLS_RSA_WITH_AES_256_CBC_SHA256 暗号スイートを有効にする
SSL を介してクライアントからサーバーに直接接続しようとすると、次のエラーが表示されます。
以下のコードは TLSv1.2 を有効にします
以下のコードは、TLS_RSA_WITH_AES_256_CBC_SHA256 暗号スイートを有効にします。
上記の両方を Java コードから実行すると、SSL 経由でサーバーに正常に接続できます。
TLSv1.2
プロパティ、パラメーター、またはデバッグ小道具を使用してJavaコードを変更せずにTLS_RSA_WITH_AES_256_CBC_SHA256
、Java 7で有効化/強制することは可能ですか?
以下のすべてのプロパティをすべての形式と組み合わせ (有効化と無効化) で試しましたが、失敗しました。
以下のようなプログラムを実行しています。
SSLPoker には以下のコードが含まれています。
Javaコードを変更せずにこれを達成する方法についての指針をいただければ幸いです。
java - Java ネットワーク スタック セキュリティ?
私は少し前に友人と別の口論になりました。彼は、Java が使用するネットワーク スタックが原因で、Java は非常に安全ではないと主張しています。彼は、ネットワークを使用するかどうかに関係なく、このネットワーク スタックはオープンで稼働していると述べています。また、Java アプリケーションを実行しているときはいつでも、誰かがネットワーク スタックを介して JVM をハイジャックし、コンピュータを制御することができます。これには真実がありますか?これが「本当の」質問ではないか、詳細が限られている場合は申し訳ありませんが、彼が私に言ったのはそれだけです.