使用 ServicePointManager 固定 Xamarin SSL/TLS

2024-04-12

我们正在使用 Xamarin 开发一款移动应用程序,最初将在 Android 和 iOS 上运行,并计划将来移植到 Windows Phone(如果使用它的 3 个人尖叫得足够大声的话)。

正在传输的数据的性质以及该应用程序将允许的操作(SSO 到另一个读/写系统)我们希望采取一切措施尽可能地保护数据传输层。

当然,这让我们走上 SSL/TLS 证书固定的道路(除了 API 调用本身的其他缓解措施之外),以保护客户端免于连接到 MITM 代理等。

我们操作 API 端点并完全控制证书,因此我们很乐意在应用程序中存储公钥以进行固定,因为我们将能够在足够的时间内更新我们的证书并使用新的 pin 进行部署。所有证书都是有效的第三方签名证书(非自签名)。

不幸的是,使用 Xamarin 进行 SSL Pinning 似乎并不经常执行,因为我们发现很难找到实现的示例。

OWASP https://www.owasp.org/提供一些.NET 示例 SSL 固定代码 https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning#.Net它使用 ServicePointManager.ServerCertificateValidationCallback 提供回调来检查 SSL pin;但没有具体提及它在 Xamarin 下工作。

对该代码的其他 Google 搜索通常会返回人们使用它来执行与我们想要的完全相反的操作 - 他们使用它减少 SSL 证书检查,而不是增加它!

我可以看到一个答案 https://stackoverflow.com/a/27115310/1723275这表明这种方法适用于 Android 和 iOS - 但我最感兴趣的是在 Xamarin(特别是 Xamarin.Forms)中使用此方法来固定 SSL/TLS 证书的具体体验。


我已经使用 ServicePointManager.ServerCertificateValidationCallback 验证了 SSL/TLS 密钥固定在 Android 上有效(尽管目前仅在模拟器中)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ServicePointManager 固定 Xamarin SSL/TLS 的相关文章

  • 为什么将 MySQL 凭据放在 www 目录之外? [复制]

    这个问题在这里已经有答案了 可能的重复 将核心类放在 Web 根目录之上 好还是坏主意 https stackoverflow com questions 3648739 putting core classes above the web
  • NSTable行点击事件

    我正在开发 Xamarin Mac 应用程序 目前正在创建新闻源列表 我想要的是 当用户单击其中一行时 我会执行一些操作 打开浏览器并显示完整的故事 这是我的自定义单元格 行 的样子 public class CustomLatestNew
  • OpenSSL DH 密钥太小错误

    我正在尝试使用简单的 PERL 脚本连接到封闭的服务器 空调 usr bin perl use 5 10 1 use warnings use strict use IO Socket SSL use IO Socket SSL qw de
  • 在 Xamarin 中获取 OutOfMemoryException

    java lang OutOfMemoryError 考虑增加 JavaMaximumHeapSize Java 执行时内存不足 java exe 我的 Visualstudio Xamarin 项目出现内存不足异常 请帮助我如何解决此问题
  • 是否可以在 PHP 中使用 file_get_contents 来破坏 CSRF 令牌验证

    在每个会话的表单上使用令牌的 CSRF 预防方法是一种流行的方法 但是 我不明白这种令牌方式如何保护file get contentsPHP 可以获取跨域文件表单的内容 gt 它可以获取表单上的令牌并使用它 那么这种token方式是如何运作
  • .Net 2.0 ServiceController.GetServices()

    我有一个启用了 Windows 身份验证的网站 从网站的页面中 用户可以启动一项对数据库执行某些操作的服务 启动该服务对我来说效果很好 因为我是服务器上的本地管理员 但我刚刚让一个用户测试了它 但他们无法启动该服务 我的问题是 有谁知道一种
  • 是否可以使用流上下文在 PHP 下使用 FTPS?

    我了解到使用ftpsPHP for Windows 下的 ftp ssl connect 很困难 您被要求进入构建自己的二进制文件以包括 Open SSL 的漫长旅程 我找到了以下建议phpseclib http phpseclib sou
  • 使用 Xamarin.Forms 和 Zxing 生成 QR 码

    我在网上看到了很多关于这个的内容 旧帖子 但似乎没有什么对我有用 我正在尝试从字符串中生成二维码并将其显示在应用程序中 这就是我一开始的情况 qrCode new ZXingBarcodeImageView BarcodeFormat Ba
  • Apache 2.4.9 在启用 ssl 模块并设置 ssl 证书后失败

    Apache 在尝试设置 ssl 证书后抛出以下错误 ssl emerg pid 30907 AH02572 Failed to configure at least one certificate and key for localhos
  • php 中的简单授权/登录功能

    我希望第一次实现用户登录到我的网站 我很高兴构建自己的解决方案 或者实现一些开源的东西 但是到目前为止 在我的搜索中没有任何包是明显的选择 同样 我完全意识到 作为一名中级 php 程序员 如果我推出自己的解决方案 并真正敞开大门 我很可能
  • Node.js 上的 starttls > 0.4.0

    我遇到了这个线程Node js HTTPS 安全错误 https stackoverflow com questions 5136353 node js https secure error其中提到 tls 模块是现在在节点上执行 TLS
  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb
  • Google Chrome 中的 ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED

    我有一个使用 SSL 客户端证书授权的网站 所有客户端证书都是使用 OpenSSL 生成的并且是自签名的 一切都适用于所有网络浏览器 但推荐的是 Google Chrome 因为它使用与 IE 相同的 SSL 仓库 因此证书安装非常简单 点
  • 如何在Xamarin Forms中实现Google Auth登录?

    我是 Xamarin 新手 我希望使用 Xamarin Forms 在我的新应用程序中进行 Google 登录 正确的方法是什么 有更新的教程或视频来指导吗 从哪儿开始 thanks 除了link https developer xamar
  • ASP.Net 中的不同身份验证方式

    我正在为我的公司开发一个网站 该网站可以在我们的内部网络和互联网上访问 有人问我一些对我来说似乎不可能的问题 但我想在真正说之前问这个问题 我们公司有两种类型的用户 一种是实际在 Active Directory 中注册的用户 等等 拥有
  • 检查字符串是否是哈希值

    我正在使用 SHA 512 来散列我的密码 当然还有盐 我认为我想要的不可能 但无论如何我们还是要问一下 有没有办法检查字符串是否已经是 SHA 512 或其他算法 哈希值 当用户登录时 我想检查他的密码 如果它仍然是纯文本 则应将其转换为
  • Windows DPAPI - 如何处理熵?

    我正在使用 Windows DPAPI 来加密一些敏感数据 密码存储在注册表中 这一切都运行良好 但我想知道是否有人可以澄清我对 NET 中 可选 提供给 ProtectedData Protect 的 熵 字节的理解 熵 字节数组似乎类似
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • Perl LWP GET 或 POST 到 SNI SSL URL

    我有一个使用 perl LWP 向客户发送数据的系统 他们可以选择 URL 以及是 POST 还是 GET 一位新客户最近抱怨该服务不起作用 他们怀疑这是因为他们的端点使用了 SNI SSL 查看日志 我看到的只是错误消息 证书验证失败 5
  • 从 HTTPS 重定向到 HTTP 的安全问题?

    我在一些博客上读过 抱歉没有提及参考资料 但我找不到了 如果您将用户从 https 页面重定向到 http 页面 您将失去保护网站安全的所有工作 那么 有人可以向我解释一下在以下情况下我是对还是错 在登录页面上使用 https 然后使用 h

随机推荐