问题标签 [certificate-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 回答
704 浏览

android - Android Retrofit 更新 HTTP 客户端配置

在使用带有 OKHttp 客户端和 Retrofit 的证书固定时,我们可能需要更新公钥。我的问题是在初始化改造后(例如,当收到新的公钥时)我将如何更新 http 客户端的证书 pinner?

我是否在 http 客户端中更新 CertificatePinner,然后创建一个新的改造实例?或者有没有更简单的方法?

任何建议表示赞赏。

0 投票
1 回答
1822 浏览

android - Android - 使用 Retrofit 2.3 和 OkHTTP 进行证书固定

你好亲爱的开发者,

我有以下问题:

几个月以来,我一直在使用 OkHTTP 3.6 和 Retrofit 1.9.0 成功使用证书固定。

最近我将使用的 Retrofit 版本更新为 2.3.0 并开始使用 OkHttp 3.8。由于更新,证书固定不再适用于 AN 4.1 和 AN 6.0 之间的设备。

我尝试使用不同的 OkHTTP 版本,但没有运气。此外,我尝试通过 gradle 强制使用特定的 OkHTTP 版本,但这并没有改变任何东西。

这是我们用于固定的代码:

所以我尝试了以下事情:

强制使用 TLS v1.2

并实现自定义 SSLSocketFactory 强制在 AN 4.1 下的版本中使用 TLS v1.2 根据:https://github.com/square/okhttp/issues/2372

编辑:

为了澄清。Pining 不起作用意味着我能够拦截我的应用程序和后端服务器之间的连接 =>“中间人”。

现在我完全不知道如何解决这个问题。任何帮助表示赞赏。

干杯帕斯卡

0 投票
2 回答
3863 浏览

ssl - SSL pinning(嵌入主机)和普通证书(由服务器提供)有什么区别

我不太了解 SSL 连接建立中证书固定的必要性(以避免中间人攻击)。

SSL 证书固定需要在主机中嵌入原始服务器证书以与服务器提供的证书进行验证。嵌入在主机中的服务器证书与服务器提供的要由客户端验证的证书有什么区别?

我在这里想念什么?

0 投票
0 回答
399 浏览

java - 适用于 Android 的最安全的网络库

最近我retrofit 2.3.0在我的项目中使用了网络库。我还使用了Retrotif中的类SSL pinning来保护应用程序。CertificatePinnerOkhttp

但是,在另一个团队对我们的 APK 进行了全面运行之后penetration test,他们已经成功tamper with the CertificatePinner在 Okhttp 客户端中进行了分类,从而gaining access to the plain messages将其发送到了 Web 服务。

由于我们必须exclude Retrofit and Okhttp classes from the proguard通过编写他们的特定保留规则来进行处理,因此我们得出结论,这是他们成功进行逆向工程的主要原因。

无论如何,考虑到这种情况,出现了以下问题:

1-为什么首先,改造和okhttp需要proguard规则?

2-此问题可能的安全解决方法是什么?

3- 我们是否需要用 Volley 或 AsyncHttpClient 等另一个库替换 Retrofit ?

0 投票
1 回答
1956 浏览

android - 意外的 pyssl 证书错误

我正在编写一个小型 SSL 代理服务器,并不断ssl.SSLError: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3 alert certificate unknown (_ssl.c:661)从 android 应用程序客户端而不是浏览器获取。我确实设置了ssl.CERT_NONE。这是我的测试代码:

这是因为 android 应用程序上的证书固定还是我做错了什么?

0 投票
1 回答
642 浏览

android - Android 中的默认网络安全配置行为

当没有声明网络安全配置时,应用程序的默认行为是什么?

在这种情况下系统会拒绝用户证书,还是取决于应用程序的编译 API 版本?

0 投票
1 回答
1129 浏览

ios - 在 iOS 中使用 AFNetworking 进行 SSL 固定不起作用

我正在使用 AFnetworking。我的应用程序网络服务器在 TLS 1.2 中。我想将证书固定添加到我的 iOS 应用程序。我的代码如下:

我的捆绑包中有有效的服务器证书,并且使用此代码,Web 服务工作正常。但是,当我尝试使用不正确的示例证书进行相同操作时,网络服务也在工作。我什至尝试在捆绑中没有证书,那个时候网络服务也工作正常。谁能解释一下?AppTransportSecurity 在我的应用程序中打开。

0 投票
1 回答
357 浏览

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

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

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

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

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

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

提前感谢您的帮助。

0 投票
1 回答
1293 浏览

objective-c - 在 Objective C 中使用 AFNetworking 3 进行 SSL 固定?

我正在尝试使用 AFNetworking 3 库实现 SSL 固定。

我浏览了 AFSecurityPolicy 的文档,但没有使用AFSSLPinningModePublicKey获得有关 ssl pinning 的任何信息。这是我正在使用的代码片段

输出 :

在调试模式下运行时,我可以看到从捆绑包中提取的证书,但随后

我收到错误:

错误:错误域=NSURLErrorDomain 代码=-999 “已取消”

调查 :

  1. validateCertificateChain : AFNetworking 版本 3+ 的参数不再存在。这是否意味着我必须固定我的证书链的所有证书?

我可能错误地创建了我的证书 (.cer)。你能告诉我如何从 url 中提取 .cer 吗?

我在我的 mac 终端中使用了以下命令

0 投票
1 回答
471 浏览

ios - TrustKit 和 AFNetworking 之间的集成

是否可以将 TrustKit ( https://github.com/datatheorem/TrustKit ) 与 AFNetworking 集成?对IOS有什么建议吗?谢谢!