问题标签 [jceks]

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 回答
833 浏览

java - 无法使用 pyjks 打开 JCEKS 密钥库

我正在尝试使用pyjks模块从密钥库中获取密钥,但是加载密钥库失败并出现以下错误:

如果我尝试使用keytool加载密钥库,我没有问题。我想知道是否有人曾经pyjks这样做并成功地做到了这一点。这是我的python代码片段:

0 投票
2 回答
3290 浏览

https - 在保护 https 密钥库时,Wildfly 保险库 (JCEKS) 有什么意义?

我觉得我完全错过了 Wildfly 中新的 JCEKS 密钥库格式的意义。也许你可以让我直截了当。

我们配置 Wildfly 的方式(例如,大部分互联网都指示我们这样):

  • 我们将标准密钥库条目放在标准 Java 密钥库(“keystore.jks”)文件中,并带有密码(“jks_pw”)
  • 然后,我们创建一个带有密码、salt 和循环计数(“jceks_s_n”)的 JCEKS 密钥库(“keystore.jceks”)。
  • 然后我们将“pks_pw”放入“keystore.jceks”
  • 然后我们将 JCEKS 密码/etc ("jceks_s_n") 作为纯文本添加到我们的 jboss 配置 (standalone.xml) 中,定义一个条目
  • 然后,我们向我们的 jboss https 连接器 (standalone.xml) 添加对保管库存储的 JKS 密码的引用,如“password="${VAULT::jks::jks::1}"。

这一切到底是为了什么???

如果我们只使用 JKS 文件和嵌入在 Standalone.xml 中的密码,系统很容易受到以下影响:

  • 攻击者获取standalone.xml 和JKS 文件的副本,在这种情况下,所有秘密都是已知的。
  • 攻击者获取 JKS 文件的副本,在这种情况下,攻击者可以使用暴力破解或查找表攻击。

如果我们以所述方式使用 JCEKS 容器,系统容易受到以下影响:

  • (相同)攻击者获取了standalone.xml 的副本,即 JKS/JCEKS 文件,在这种情况下,所有秘密都是已知的。
  • (相同)攻击者获取 JKS 文件的副本,在这种情况下,攻击者可以使用暴力破解或查找表攻击。

如果我们将实际证书放在 JCEKS 文件中,这将是有道理的,在这种情况下,在第二种攻击情况下,蛮力和查找表攻击会更难,但到目前为止我还没有找到使用的方法直接使用 https 连接器的 JCEKS 格式的密钥库。

真的,我太在意这个的唯一原因是我们显然有使用“保险库”的安全要求,但这似乎毫无意义。

更新:值得注意的是,通过使用 vault,您在 jboss 配置文件中使用 vault 的“屏蔽”密码,但我不知道这意味着什么。显然,您的掩码密码 + 盐 + 回合可以解锁 JCEKS 密钥库(source),所以我不确定掩码究竟能完成什么。这似乎是第三级重定向。我一定是错过了什么...

0 投票
1 回答
607 浏览

javascript - 使用 JCEKS 密钥库解密 NodeJS 中的令牌

在这种情况下,我将使用 JCEKS 密钥库中的一个密钥在源头加密令牌。令牌进入 NodeJS 服务器,它应该是未加密的以使用那里的数据。据我了解,无法从该格式中提取用于解密令牌的私钥,因此仅使用加密模块对其进行解密是行不通的。我已经玩过node-keytool,并根据此处的示例列出了密钥:https ://github.com/FrankGrimm/node-keytool/blob/master/examples/listcontent.js 。

但是,我完全不知道如何使用该模块来解密令牌。任何有关如何这样做的建议,无论是使用该模块还是其他模块,都将不胜感激。

0 投票
1 回答
1325 浏览

python - 在 python 脚本中访问 HDFS jceks

我想在 python 脚本中访问 HDFS jceks(创建密码别名)以进行安全登录。任何人都可以帮助使用python代码/步骤来做到这一点。

谢谢

0 投票
2 回答
3113 浏览

java - “java.security.UnrecoverableKeyException:被 jceks.key.serialFilter 或 jdk.serialFilter 属性拒绝”的原因是什么?

当我调用 java.security.KeyStore 下的函数时:

public final Key getKey(String alias, char[] password)

我收到以下错误:

此错误在任何 Java 文档中都不存在,只是间歇性发生。此错误的原因是什么以及如何解决?

更新:现在@zeal 透露它与http://www.oracle.com/technetwork/java/javase/8u171-relnotes-4308888.html#JDK-8189997有关。因此,无需额外配置,就可以使用 Key 实现的几个选项。但是在发行说明中我发现了一个声明:

存储不序列化为上述类型的 SecretKey 的客户必须修改过滤器以使密钥可提取。

这似乎是新事物,因为它表明密钥的序列化可以被程序覆盖,这是使其他密钥类型与 JCEKS 密钥库兼容的唯一方法吗?

0 投票
3 回答
8755 浏览

java - 使用 Oracle Java 8 JRE 172 打开 JCEKS 密钥库时出现“java.io.IOException:无效的密钥格式”

当我尝试在 Windows 上使用 Oracle Java 8 JRE 172 打开 JCEKS 类型密钥库时出现以下异常。这适用于早期版本的 JRE:

这看起来很像JDK-8202506,但我使用的是 Java 8,并且我收到null了初始的 INFO 消息。

这是同一个问题吗?

在我看来,JDK-8202506问题目前在任何公共 JRE 版本中都没有得到修复。我对吗?

更新 1

这看起来很相似,他们也没有解决方案:ATLAS-2642

更新 2

出于某种原因,Equinoxcom.sun.crypto.provider.SealedObjectForKeyProtector在升级后看不到该类,即使它显然在新 JDK 附带的 JRE 中:

更新 3

这个类SealedObjectForKeyProtector.class在某种程度上不同于sunjce_provider.jar. 当我们尝试使用 JD-GUI 对其进行反编译时,它会因内部错误而失败,这与其他类不同:

JD-GUI 反编译 SealedObjectForKeyProtector.class 失败

0 投票
1 回答
2097 浏览

java - 将包含 3DES 密钥的 Java JCEKS 密钥库转换为 PKCS12

我正在尝试将 Java JCEKS 密钥库转换为包含两个对称密钥、一个 AES 和一个 3DES 的 PKCS12。

AES 密钥可以很好地导入 PKCS12 文件,但不能导入 3DES 密钥。

我正在使用的命令是:

"c:\Program Files\Java\jdk-10.0.1\bin\keytool.exe" -importkeystore -srckeystore D:\temp\ssc.jceks -srcstoretype jceks -destkeystore D:\temp\ssc.p12 -deststoretype pkcs12

我收到以下错误消息:

这是 Java 10.0.1,我也尝试过 Java 8u171 和 Java 11 EA 17。

Keytool 可以很好地列出 JCEKS 密钥库:

"c:\Program Files\Java\jdk-10.0.1\bin\keytool.exe" -list -keystore D:\temp\ssc.jceks -storepass xxxxx -storetype jceks -v

关于如何将 3DES 密钥导入 PKCS12 密钥库的任何想法?

谢谢。

0 投票
0 回答
2093 浏览

java - 从 JCEKS 密钥库中读取 Secretkey | 爪哇

我正在尝试使用 Java 代码从 JCEKS 密钥库中读取密钥(密码),代码适用于 JKS 密钥库,但不适用于 JCEKS 密钥库。我使用 ibm_sdk71 作为运行时(由于项目要求)。

感谢任何指导。问候

0 投票
1 回答
1886 浏览

encryption - 如何为 JWE 实现生成内容加密密钥

我正在尝试在 Java 中学习和实现 JWE 以获取问题陈述。我试图了解如何使用某种算法(比如说 RSA-PKCS1_1.5)生成内容加密密钥。

我知道如何使用密钥生成器生成一对密钥,然后使用公钥进行加密,使用私钥进行解密。另外,我知道如何通过提供声明来创建简单的 JWT 令牌以及如何对其进行签名。我正在尝试按照以下步骤操作:

消息加密过程如下:

生成随机内容加密密钥 (CEK)。CEK 的长度必须至少等于所需加密密钥的长度,并且必须随机生成。

为收件人加密 CEK

生成随机 IV(如果算法需要)。

如果包含 zip 参数,则压缩明文。

将(压缩的)明文序列化为位串 M。

使用 CEK 和 IV 加密 M 以形成位串 C。

将 Encoded JWE Ciphertext 设置为等于 C 的 base64url 编码表示。

创建一个包含使用的加密参数的 JWE 标头。

Base64url 对 JWE 标头的 UTF-8 表示的字节进行编码,以创建编码的 JWE 标头。

三个编码部分合在一起就是加密的结果。

0 投票
1 回答
1051 浏览

python - 如何在python中解密密码

我的代码正在使用 pyspark 连接到 sql server。对于该连接,我在 jceks 中获得了加密密码。我如何解密该密码并用于从 sql server 加载表。请建议。