问题标签 [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.
ios - Alamofire ServerTrustPolicy 证书固定不阻止 Charles Proxy Swift 3
我进行了广泛的搜索,但无法找到我的问题的答案。为了使我们的应用程序更安全,我们被告知要使用“证书固定”。ServerTrustPolicyManager
我们已经在所有 API 调用中使用了 Alamofire 库,因此使用包含作为实现证书固定的手段似乎很自然。我在我的应用程序包中包含了正确的证书,这是我SessionManager
用来为 Alamofire 配置的代码:
现在,当我想发出 API 请求时,我有这个方法:
现在我遇到的问题是,当我使用诸如 Charles Proxy 之类的东西时,这仍然有效……所有请求仍在进行中。证书固定不应该因为证书不匹配而阻止像 Charles Proxy 这样的东西工作吗?
我已经测试了其他正确使用证书固定的应用程序,它们会阻止任何类型的代理(Charles 或其他)建立连接。如果我在启用 Charles 的情况下尝试运行 Uber 或 Wells Fargo 银行应用程序等应用程序,则每个请求都会被拒绝,并且我会看到一个错误,上面写着“无法完成请求,ssl 证书无效”(这是不是逐字逐句)。
我觉得在配置我的SessionManager
. 我阅读过的大多数文档和我遇到的帮助似乎都暗示在将管理器配置为启用证书固定后,它应该拒绝任何带有无效证书的请求。谁能帮我?我错过了什么?
我感谢任何和所有的帮助。提前致谢!
c++ - 使用 cpprestsdk 和 boost 固定证书
我正在尝试在 [cpprestsdk][1] 上实施证书固定,但到目前为止没有成功。
我在http_client_config对象内部看到我们可以调用方法set_ssl_context_callback并在该方法内部,将其链接到自定义证书验证方法 - set_verify_callback。
当我调试我的代码时,方法 * set_verify_callback* 在请求发送后被调用,但我的自定义验证方法从未被调用。
我在下面添加了一个示例代码,演示了上述行为。
android - SSL pinning 即使在不同的证书上也能成功
我正在尝试进行证书固定。我公司使用的网络库不支持固定。所以我必须手动完成。
这是我使用的代码
但由于某种原因,它不起作用。当我正常连接时它会成功,当我通过代理(mitmproxy)连接以测试模拟中间人攻击的不同证书时,我也获得成功。这就像它完全绕过代理并直接进入普通证书一样。我不知道这是为什么。
android - Android 如何在不更新应用商店的情况下更新 ssl 证书
我在原始文件夹中的 Android Studio 移动应用程序中使用了两种类型的授权证书(商业证书)。第一个:.crt(用于请求加密)第二个:.bks(使用 SSL Pinning 向服务器请求)
我的 .crt 文件有效期仅为 2 年。我想在不将我的应用更新到 Playstore 的情况下更新我的证书。我参考了很多链接。他们说,生成新证书并在更新的应用程序中使用它,并仅在 Playstore 选项中更新应用程序。
注意:请建议,如果有任何其他方式,在不更新 Play 商店中的应用程序的情况下,我想在移动应用程序运行时更新我的 ca。
谢谢提前
我参考了以下有关我的 ssl 证书续订的链接
android - Okhttp - 证书固定和公钥固定
我想提高我的 Android 应用程序的安全性。我正在使用 OkHttp 版本 3。
如何:
1) 将证书固定与 OkHttp 一起使用。
2) 将公钥固定与 OkHttp 一起使用。
当我这样做时:
证书固定工作。但是公钥固定呢?如何启用它?
ios - 使用已安装的配置文件使用 Alamofire 固定证书
我正在使用 Alamofire 发出网络请求。需要使用证书固定以提高安全性。到目前为止,我可以使用以下代码固定捆绑包中已包含的证书。
但还有另一个要求是使用安装在“General -> Profiles & Device Management”下的 Keychain 中的证书。我尝试了不同的方法来访问已安装的配置文件。但没有运气。感谢任何帮助。提前致谢
android - 使用 cordova 插件的 SSL 固定不起作用。SSL 握手失败,错误代码 500
我正在尝试使用适用于 Android 的 Cordova 插件实现 SSL 固定,但出现错误 500:SSL 握手失败错误。我在 Android N 上运行该应用程序。
我尝试过以下插件: https ://github.com/yyfearth/cordova-plugin-http
https://github.com/wymsee/cordova-HTTP
对于我的示例代码,我正在固定 facebook 的证书。我试过固定 CA 证书(Avast)和叶子证书(facebook)。
下面是我的代码:
关于如何解决它的任何想法?
android - 即使使用 CA 签名的证书,证书固定也会失败
我正在尝试通过 Retrofit 在 Android 上使用证书固定。我正在尝试评估有效的 Verisign 签名证书。
我收到以下错误:
HTTP 失败:javax.net.ssl.SSLPeerUnverifiedException:未能找到签署证书的可信证书。
为什么证书 pinner 不能针对设备的 CA 根证书进行评估?它是否无权访问设备信任?或者设备信任可能不包含整个证书链。但是为什么我的 SSL 通信没有失败呢?
ios - 使用 Microsoft Azure SDK 在 iOS 中固定 SSL 证书
一般来说,这不是关于证书固定的问题。
我正在编写一个利用适用于 iOS 的 Microsoft Azure SDK 的 iOS 应用程序。他们没有实现证书固定,所以我已经下载了完整的 SDK,我正在修改它以添加我自己的固定。
我正在遵循 OWASP 给出的示例代码。它要求我在终端中执行以下代码:
我已经运行了它,换成了我{url}.azurewebsites.net
的 for www.random.org
。我得到了一个很好的输出,列出了几个证书。
根据 OWASP 代码,看来我应该使用这个:
我对此感到担心的是,CN
is 用于通配符*.azurewebsites.net
。这是否意味着如果我使用此证书并且有人尝试使用另一个 Azure Web 应用程序进行中间人攻击,那么该证书固定对他们来说会成功,从而无法保护我的应用程序?
例如,如果我的应用程序是 atabc.azurewebsites.net
并且中间人攻击是从 运行的xyz.azurewebsites.net
,我的应用程序会知道阻止请求吗?
android - 使用 Google Volley 进行 SSL 固定
我通过提及我迄今为止尝试过的内容来开始我的问题:
我的应用程序中没有证书,我只使用 SHA256 密钥,互联网上的大多数答案都需要应用程序中的物理证书才能将其加载到密钥库中,我没有。
我收到以下错误:
1) TrustKit它需要编译 SDK 24 及更高版本,但我有 23 个并且很多支持库与 SDK 23 同步,所以我无法更改所有这些,它可能会在某个时候使我的应用程序崩溃。
2) CWAC-NetSecurity我已经在我的代码中实现了这一点,而没有使用 Android N 安全设置,我也遵循了 git 页面上给出的指令,但无法从中将 sslSocketfactory 传递给 Volley,它有 OkHTTP 的示例。所以它也给出了上述错误。
我已经用 OKHttp 的 CertificatePinner 试过了,它也不适合我。同样的错误。我也尝试将 hostNameVerifier 和 sslSocketFactory 传递给 HttpsUrlConnection 但同样的错误。
通过使用我们的 iOS 开发人员实现的 trustKit,它正在为他工作。
提前致谢。
请在这里分享您的宝贵意见,以便我理解这个 SSL 固定概念。