问题标签 [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.

0 投票
1 回答
5283 浏览

java-security - 如何使用具有相应别名的 java 代码仅将公钥存储在密钥库中?

我已经创建了密钥库,我只想在密钥库中存储公钥,并且不想存储私钥。因为私钥将在客户端设备中,他将使用 rest API 共享公钥。

另外我应该如何在一个密钥库中保留多个公钥。具有不同的别名

如果有人有示例代码或示例链接,它将对我很有帮助。

0 投票
1 回答
1175 浏览

java-8 - 如何防止在 Wildfly 中加载 bouncycastle?


使用 Wildfly 8 时,即使没有加载应用程序,Bouncycastle 提供程序似乎也会自动加载 - 通过在standalone.bat 中设置-Djava.security.provider选项发现这一点(在 server.log 文件中找到行Set BC provider property)。移除 BC 模块本身会阻止 Wildfly 启动(我记得 Weld 出错)。我也没有 BC 作为java.security.policy中列出的提供者。

Wildfly 9 似乎不会自动加载 BC,但如果我点击使用 Resteasy 的 REST 应用程序的任何 URL,则会设置 BC 提供程序属性(设置 BC 提供程序属性行)。我无法弄清楚是什么添加了 BC 提供程序,因为即使使用返回文本的简单端点也会发生这种情况。Resteasy确实使用BC,但这可能是原因吗?我已经排除了几乎所有对加载 BC 提供程序的应用程序中的代码的引用。如何排除 BouncyCastle(BC) 在 Wildfly 中的加载?

谢谢,

稻田

0 投票
4 回答
13390 浏览

java - 将 AndroidKeyStoreRSAPrivateKey 转换为 RSAPrivateKey 时崩溃

我正在关注本教程:如何使用 Android Keystore 存储密码和其他敏感信息。它(松散地)与 Google 示例应用程序相关联:BasicAndroidKeyStore

我可以使用公钥加密我的数据,也可以在运行 Lollipop 的设备上解密。但是我有一个运行棉花糖的 Nexus 6,这会崩溃并给出错误:

这是它崩溃的代码:

我不愿意将其归结为 Android M 的怪异之处,因为我认为 java 加密库没有改变的原因。如果 M 版本发布并且我们的应用程序立即在 M 上崩溃,我将遇到大麻烦。

我做错了什么?该错误非常明确地表明您无法转换为 RSAPrivateKey,那么有没有人知道从条目中获取 RSAPrivateKey 的更好方法?

非常感谢。

0 投票
1 回答
18948 浏览

internet-explorer - IE TLS 阻止如何在 tomcat 6 和 java 6 中从 TLS 1.0 移动到 TLS 1.2

我遇到资源管理器不显示网站的问题:“无法显示此页面。在高级设置中打开 TLS 1.0、TLS 1.1 和 TLS 1.2”。

我在 chrome 中调试了证书并说“连接是使用 aes_128_cbc 加密的”,我认为这是问题所在,应该是 aes_256_cbnc

我正在与其他正在运行并使用 IE 支持的 aes_256_cbc 的服务器进行比较。但是不知道如何强制通信使用 TLS 1.2 而不是 TLS 1.0(与在 IE 中工作的服务器的连接一样)。

两台服务器都有相同版本的java。它可能是负载均衡器中的设置,但我无法查看。

将 tomcat 连接更改为使用 TLS 1.2 而不是 TLS 1.0 的最佳和/或最快方法是什么?

IE 设置看起来不错,根本不接受使用 aes_128_cbc 的 https 连接。尝试重新生成证书(使用 keytool)以使用 2048 的密钥大小,但没有效果。

0 投票
1 回答
815 浏览

java - 尝试使用 Java 连接 https 服务器时抛出 SSLHandshakeException

我尝试使用 Java从“ https://api.softtouch.eu/#/xxxxxxxx/#/customers?take=100 ”中检索数据。

我还尝试使用以下选项解决 https 的问题:-

  1. 使用 Java keytool 将证书(.pem 扩展文件)添加到密钥库 ($JAVA_HOME/jre/lib/security/cacerts)

  2. 使用 update-ca-certificates 命令向 Ubuntu (/usr/local/share/ca-certificates) 添加了证书颁发机构。

  3. 最后尝试禁用证书验证并连接到服务器。(此处为 SoftTouchConnection 类和自定义 TrustAllX509TrustManager 类。)

    /li>

但到目前为止,我无法解决问题。我收到了“javax.net.ssl.SSLHandshakeException”。我想使用 Java 连接到服务器。这个问题的原因是什么?

注意:- 我用 PHP 测试了“ https://api.softtouch.eu/#/accounts/#/xxxxxxxx?take=100 ”连接。它运作良好。但是 PHP 源文件使用以下行来禁用 SSL 验证。curl_setopt($httpRequest, CURLOPT_SSL_VERIFYPEER, FALSE);

这是 SSL 调试文本:- *** ClientHello, TLSv1.2 RandomCookie: GMT: 1425473345 bytes = { 113, 222, 27, 25, 227, 136, 38, 249, 128, 230, 125, 228, 156, 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 警报:致命,握手失败主要,称为 closeSocket()

0 投票
1 回答
312 浏览

java - Java 7 和 8 的清单属性的 Java 小程序问题

我的应用程序将使用 java 小程序查看器显示文档,它与 Java6 完美配合。从 Java7 及更高版本开始,我无法查看文档,因为小程序无法加载文档。下面提到了我正在使用的属性。任何人都可以建议我进行所需的更改(如果有的话)

蚂蚁脚本:

Java 控制台输出:

0 投票
0 回答
213 浏览

java - Java1.8 安全证书:TLS1.2:支持的签名算法无效

我正在使用 jdk1.8 并使用 Mutual Auth 连接到其他系统。
我正在使用 JVM 参数来设置客户端证书/服务器证书。
发送请求时,我得到:

javax.net.ssl.SSLProtocolException:支持的签名算法无效

注意:当我使用 JDK1.7 时,它工作正常。我用谷歌搜索了这个错误,但找不到答案。

0 投票
3 回答
92819 浏览

ssl - 启用 TLSv1.2 和 TLS_RSA_WITH_AES_256_CBC_SHA256 密码套件

当我尝试通过 SSL 直接从客户端连接到服务器时,我收到以下错误:

以下代码启用 TLSv1.2

以下代码启用 TLS_RSA_WITH_AES_256_CBC_SHA256 密码套件:

从 Java 代码完成上述两项操作后,我能够通过 SSL 成功连接到服务器。

是否可以在不通过属性、参数或调试道具更改任何 Java 代码的情况下启用/强制TLSv1.2和在 Java 7 中?TLS_RSA_WITH_AES_256_CBC_SHA256

我以所有形式和组合(启用和禁用)尝试了以下所有属性,但失败了。

我正在执行类似于以下的程序:

SSLPoker 包含以下代码:

任何指针如何在不更改 Java 代码的情况下实现这一点将不胜感激。

0 投票
2 回答
158 浏览

java - 在 Java 程序上保护密码

我有一个程序,其中用户名和密码是硬编码的。所以我想将该可执行 JAR 文件传递​​给在同一网络中工作的同事。我想保护密码并且不想将其透露给任何人。有没有一种方法可以让我传递 JAR 文件并确保我的密码安全,而无需任何人知道密码。

也许如果有一种方法可以将一些密码存储在文件中并将其保存在服务器上,并且每次 JAR 文件尝试运行时,它都会从远程文件中获取通行证?

0 投票
1 回答
59 浏览

java - Java网络栈安全?

不久前,我和我的朋友又发生了争执。他声称,由于 Java 使用的网络堆栈,Java 极其不安全。他说天气与否你使用网络,这个网络堆栈是开放和运行的。并且在任何时候你有一个 Java 应用程序正在运行,有人可以通过网络堆栈劫持 JVM 并控制你的计算机。这些有道理吗?对不起,如果这不是一个“真正的”问题或细节有限,但这就是他告诉我的全部内容。