问题标签 [pki]

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 投票
2 回答
35357 浏览

java - 来自 CA 的 PKCS12 Java 密钥库和 Java 中的用户证书

我最近负责用 Java 模拟 Apple 产品(iPhone 配置实用程序)。我有点卡住的部分之一是关于 Exchange ActiveSync 的部分。在那里,它允许您从钥匙串中选择一个证书以用作您的 EAS 帐户的凭据。经过一番研究,我发现它实际上是在创建一个 PKCS12 密钥库,插入我选择的证书的私钥,并将其编码为 XML。到目前为止没什么大不了的。如果我使用 Keychain Access 创建一个 .p12 文件,它会毫无问题地上传。但是当我尝试将它带到 Java 时遇到了一个问题。

假设我将之前与 .p12 文件一起使用的那些证书之一导出为 .cer 文件(这是我们期望在环境中获得的)。现在,当我将它上传到 Java 中时,我得到一个 Certificate 对象,如下所示......

但是当我尝试...

我得到了例外...

所以从证书我转向钥匙。但是有了这些证书(我也得到了 CA 证书),我只能访问公钥,而不能访问私钥。如果我尝试像这样添加公钥......

我得到...

所以现在我在这里。有谁知道如何从 .cer 文件中获取私钥到 Java 中的 PKCS12 密钥库中?我什至走在正确的轨道上吗?

提前致谢!

0 投票
2 回答
2182 浏览

java - Authenticode、SPC 和 Java CodeSign 之间的区别?

大多数 CA 在不同的“产品”中销售代码签名证书,例如 Verisign 或 Certum:

  • Microsoft Authenticode - “允许您签署 EXE、OCX、DLL、bla...”

  • Java CodeSign - “允许您签署 Java 代码”

  • 软件发行商证书 - “允许您签署软件”

好吧,我对此感到非常困惑。所有这些产品之间有什么区别 - 除了价格?因为好奇,我问了 Verisign 和其他 CA 几次,但没有得到答复。

我从 Certum CA 获得了 Authenticode 证书。我在 Internet Explorer 中注册了它,将其导出为 PKCS#12 PFX,并且可以按照承诺对 EXE、DLL 等进行签名。

现在...我尝试使用 keytool 将此 PFX 导入 Java,然后尝试签署 JAR。它奏效了!

然后是神秘的“软件发行商证书”作为产品。我不知道我可以/应该用那个签名什么... Mac?Linux?“Microsoft Authenticode”不是软件发布者证书吗?不是EXE“软件”吗?这真的让我很困惑。

所以,我现在的问题是:当我订购了 Microsoft Authenticode 证书时,使用它来签署例如 JAR 文件或任何其他内容是否是非法的?这些证书之间似乎没有技术差异。所有这些产品都应该具有相同的代码设计 EKU-OID“1.3.6.1.5.5.7.3.3”,这在 EXE、JAR、Adobe Air 和那里还存在的东西之间没有任何区别。所以,如果所有“代码签名”证书在技术上都是平等的,为什么我必须决定我是想成为“Java 开发人员”还是“Windows 开发人员”还是“软件开发人员”?

也许证书仍然存在差异?当我使用 Authenticode-certs 进行签名时,也许我在 JAR 中没有足够的权限?

(PS:我不会将我的软件用于商业用途!)

0 投票
1 回答
631 浏览

java - 来自 SCEP 请求的 Java PKIHeader

最近我开始研究开发一个简单的 CA/SCEP 服务器。虽然 CA 不是什么大问题(CA 也不是什么大问题),但 SCEP 服务器让我在一个特定的地方陷入了一个循环。

到目前为止,我正确响应了“GetCACert”和“GetCACaps”请求。现在我正在尝试响应“PKIOperation”请求。我实际上能够根据请求创建证书,签署它以及所有好东西。问题是我必须在响应中添加一些“属性”......

特别是收件人Nonce。

问题是我正在努力从初始请求中获取属性。由于 reciepientNonce 应该是 senderNonce 的副本,因此我一直在尝试从 PKIOperation 消息中提取该特定属性。到目前为止,这是我的代码...

该序列是有效的,但所有被注释掉的行都失败了。有什么想法吗?

谢谢!

0 投票
3 回答
1463 浏览

django - Django 和通用访问卡 (CAC)

计划用 Python 编写一个 Web 应用程序,Django 是框架的主要竞争者。

一项要求是 CAC 访问,无需手动输入用户名和密码。据我所知,CAC 访问不是 Django 包含的“电池”的一部分。

作为一个整体框架(不一定是一个坏属性),一旦你修改了核心,Django 就有一个高维护的代表。我可以轻松地将 CAC 访问权限添加到 Django 站点吗?以后可以轻松维护吗?

或者也许我们应该考虑一个不同的 Python 框架?

仅供参考..关于 CAC 访问链接的有趣演示

0 投票
1 回答
167 浏览

java - PKI 问题。密钥有效性

我有文件:一个 .der- 和一个 .p12 文件,带有一个密钥对,我们应该使用它来在我们的 java 代码中创建和验证数字签名。

我必须将两个密钥都保存在 MySql-Database-Table -> Keys(id, publicKey, privateKey,有效性)

现在读取这两个密钥不是一个大问题,但我不知道如何在 Java 中读取有关它们有效性的信息。是否可以?

有人可以举个例子吗?

坦克,

穆尔

0 投票
5 回答
2500 浏览

cryptography - 公开我的受密码保护的 PGP 密钥是否安全?

我的 PGP 密钥始终受密码保护,这意味着您需要使用对称密钥对其进行解密才能访问我的私钥。

我有兴趣公开我的受密码保护的 PGP 密钥,但我不完全确定我是否遗漏了什么。将我的密钥存储在我的计算机上似乎只会让事情变得更加困难(通过混淆来确保安全),但实际上并没有任何好处。

考虑到我可以使用 256 位 AES http://en.wikipedia.org/wiki/Key_size#Symmetric_algorithm_key_lengths对我的私钥进行密码保护

并且使用暴力破解 2^n 密码所需的能量存在理论上的限制 http://en.wikipedia.org/wiki/Brute_force_attack#Theoretical_limits

我错过了什么?

0 投票
2 回答
37326 浏览

c# - 是否可以仅使用 C# 以编程方式生成 X509 证书?

我们正在尝试使用 C# 和BouncyCastle库以编程方式生成 X509 证书(包括私钥) 。我们已经尝试使用Felix Kollmann 这个示例中的一些代码,但是证书的私钥部分返回 null。代码和单元测试如下:

单元测试:

0 投票
3 回答
19947 浏览

openssl - 哪些书可以帮助我了解有关 SSL/PKI 的所有知识?

由于 SSL 是安全互联网的支柱(现在在技术上称为 TLS),我应该阅读哪些好书来了解它的各个方面?

我想我还需要学习一些数学知识、一些 PKI 书籍、加密和系统管理书籍。由于这不是一个完整的列表,所以我很想听听您认为学习什么是明智的。

0 投票
1 回答
502 浏览

pki - PKI-认证机构

在编程语言、数据库、openssl 等方面实现 CA 的最佳技术是什么

0 投票
2 回答
6621 浏览

python - 有没有一种(简单的)方法可以在 Python 中解析 CRL?

我正在尝试做一些愚蠢的事情:加载 CRL 并输出已撤销证书序列的列表。

使用 M2Crypto 加载 CRL 是通过以下方式完成的:

但我真的很惊讶返回的对象只有一个有用的,即

使用一些正则表达式,我可以解析输出以检索我撤销的连续剧。但是还有另一种方法可以做到这一点吗?

有关信息,这是一个经典的 CRL as_text 输出。