问题标签 [public-key-pinning]

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

azure - Azure 中通配符 SSL 证书续订的最佳实践,已固定移动应用程序

我们有以下情况,需要建议,因为没有人以前使用过固定移动应用程序。

  1. 我们有一个域的通配符 SSL 证书,在 Azure 中维护 - *.example.com
  2. 证书已应用于多个端点,包括移动应用程序使用的端点。
  3. 移动应用程序已固定此证书。
  4. 证书将在大约 45 天后到期。

什么是更新证书的最佳行动方案,理想情况下没有停机时间,或者移动和其他应用程序的停机时间最短?

如果我们更新证书,我们需要将移动应用程序的更新推送到商店。获得商店的批准需要一些时间,在此期间应用程序将无法与后端通信,如果我们直接前进的话。

所以,我们需要有这种经验的人的建议。

提前感谢您的帮助。

0 投票
1 回答
286 浏览

php - 使用 PHP 的证书固定不起作用

我正在尝试连接到需要 SSL 证书固定的 Web 服务。以前的实现是用 Java 完成的,现在我必须将它转换为 PHP。

我将 JKS 转换为 pem 文件并使用它,如下所示。

但我得到了错误。

有没有人遇到过这个问题。是我做错了什么还是 Web 服务有问题。

0 投票
1 回答
1728 浏览

curl - 如果不使用系统中的证书,curl 中的公钥固定不起作用

我正在尝试将 libcurl 与公钥固定一起使用,以便在下载文件时验证服务器的真实性。

Curl 被编译,因此它不使用系统上的任何证书,而仅依赖于它从用户那里收到的证书:

首先,我获取服务器证书公钥的 sha256 和,如下所述

然后我在 libcurl 中设置公钥的哈希和其他相关选项:

下载失败并出现错误:

好吧,似乎 curl 正在寻找一些证书,所以我重新编译它以使其包含默认证书:

现在,下载将起作用:

在 CURLOPT_PINNEDPUBLICKEY 文档中,解释为:

所以我的印象是 curl 只需要用户的公钥,以便将其与从服务器证书中提取的公钥进行比较。

我在这里想念什么?

0 投票
0 回答
250 浏览

ios - 使用 URLProtocol 对 SSL 固定进行单元测试

目标:单元测试应用程序的 ssl pinning

大致实施旨在:

  1. 子类 URLProtocol
  2. 将自定义 URLProtocol 插入到 Session 的配置中
  3. 生成请求时使用带有自定义配置的会话
  4. 捕获请求并使用本地证书生成响应
  5. 期望当应用程序收到响应时,它将检测到相同的证书

遇到的问题:

URLProtocol 中的子类似乎没有身份验证质询方法。

问题:

如何使用 URLProtocol 拦截身份验证挑战?

0 投票
6 回答
6195 浏览

swift - 在 alamofire manger 类 swift 中添加公钥固定

这是我的 alamofire 经理,我如何在上面添加公钥固定?请帮助我,我不知道在我的代码中执行此操作的方法,如果可能的话,我需要逐步解释如何使用具有所有请求的 AFManager

我看到了这个示例,但不知道该怎么做,我应该把代码放在哪里,请参阅下面的链接: https ://infinum.co/the-capsized-eight/ssl-pinning-revisited

0 投票
1 回答
31 浏览

android - 即使颁发它的 CA 不是,网络安全配置文件中的固定公钥是否受信任?

假设我有一个应用程序将一些敏感信息传输到我的服务器。我想降低对我的用户进行中间人攻击的风险,因此我将我的服务器使用的密钥固定在网络安全配置文件中。

但是,假设我的应用程序的用户不信任颁发我们证书的 CA,并将其从受信任的 CA 列表中删除,或者操作系统更新可能会删除 CA,因为它被发现表现不佳。

理想情况下,在这种情况下,我希望我的应用程序拒绝连接到服务器。我只希望它在服务器提供的证书使用 pinset 中的密钥签名并且来自操作系统/用户信任的 CA 的情况下建立连接。在网络安全配置文件中固定密钥是否可以实现这一点?或者,无论如何,固定的密钥都值得信任吗?

0 投票
1 回答
4152 浏览

android - 如何更新固定的ssl证书android

我正在我们的 android 应用程序中实现 SSL 固定。我通过将 2 个证书(当前和备份)嵌入到应用程序中,将它们固定在客户端。

现在,我希望有一种机制来更新这些证书,而无需在证书过期或私钥被泄露的情况下推出应用程序升级。我该如何实施?

我看到的一种可能的解决方案是通过应用通知。我可以广播带有新证书的通知并将它们存储在客户端中。这种方法有什么问题还是有更好的方法?

0 投票
0 回答
1333 浏览

java - 在 Android 中使用 network-security-config 进行 SSL 固定

我的应用程序中有此代码

res>xml>network_security_config.xml

我发现在这里MY_PIN插入MY_DOMAIN.comhttps ://report-uri.com/home/pkp_hash

manifest>AndoridManifest.xml

MY_DOMAIN我在 WebView 中加载

但这就像 ifres>xml>network_security_config.xml从未打开和检查过:如果我改变MY_PIN它仍然工作并加载页面MY_DOMAIN

0 投票
1 回答
65 浏览

ssl-certificate - 用于 HTTPs 的主题发布密钥固定

我正在对我的移动应用程序实施 SPKI 固定,我想知道当我与另一个 CA 续订时主题发布密钥是否会改变?我仍然使用相同的 CSR 来生成证书。人们说如果我们使用相同的证书签名请求文件 (CRS),公钥将是相同的,但我不确定 CA 是否也是一个因素。

0 投票
1 回答
607 浏览

ios - 从 iOS 10.3 之前的 SecCertificate 获取 SecKey

我需要从证书中获取公钥

我已经找到了在 iOS 12+ 和 iOS 10.3+ 上执行此操作的方法,但是如何在 iOS 10.0+ 上执行此操作?