【问题标题】:Securing Xamarin.Forms App traffic via SSL通过 SSL 保护 Xamarin.Forms 应用程序流量
【发布时间】:2016-12-01 04:22:01
【问题描述】:

对于我的Xamarin.Forms 应用程序,我创建了一个ASP.NET Web API 作为后端来处理服务器端的东西。

谈到安全性,我几乎迷路了。 我读过很多包含很多可能性的文章,例如HCMAOAuth 等。

就我而言,我认为只有SSL/Https 就可以完成这项工作。

我只是不知道从哪里开始。我读过的所有文档都没有帮助我......

有谁知道我可以在哪里获得帮助,或者谁能描述如何完成这项工作?

据我所知,我必须创建一个SelfSignedCertificate。 但我把它放在哪里? 在我的应用(资源)内部?

请给我一些帮助。 任何事情都会受到高度赞赏。


编辑 1:

到目前为止,我已经在我的 WebAPI 中创建了一个自定义属性 EnforceSSL

我的应用程序中的所有 WebRequest 现在都是 HttpsWebRequests

这是否意味着我的所有流量都是安全的?

据我所知,为了保护我的 API/网站,我需要一个 SSL-Certificate。我可以创建一个或购买一个...(正确吗)?

我想我需要将它包含在我的 IIS 中,我的 API 运行的地方。

我需要在使用我的应用的手机上安装任何客户端证书吗?

【问题讨论】:

  • 看看CloudFlare,它们可以很容易地将 https 添加到您的服务器,而且我认为它是免费的。如果您的应用程序连接到使用 https 的服务器,则您的数据是端到端加密的,并且您不需要安装任何东西,只需确保您的呼叫是 https://server/ 而不是 http
  • 非常感谢。我等了这么久:D
  • 我知道获得 Tumbleweed 徽章是什么感觉 :( 当您将应用程序放入商店时,您需要另一个证书,但那是完全不同的头痛。
  • 如果您从顶级颁发机构购买证书,则无需在应用上安装证书。例如,如果您从 godaddy 购买证书,它将自动在您的应用程序上受到信任,因为它们是受信任的颁发者。如果您自己创建一个,它是不可信的,因此您需要将它安装在需要连接的每台设备上。购买证书要容易得多。或者您可以使用我的第一个建议,即 SSL 中间人,这就是 cloudflare。
  • @TombMedia 感谢您的帮助。我想我有一个想法。如果您想添加您的研究作为答案并获得赏金,请随意这样做:D

标签: c# ssl asp.net-web-api https xamarin.forms


【解决方案1】:

我不希望这个问题得不到解答,以后一般安全问题http://security.stackexchange.com 就是这个地方。

出于我的目的,我认为 SSL/Https 就可以完成这项工作。

正确使用HTTPS (HTTP Secure)。您可以将网络服务器配置为自动将所有 http:// 重定向到 https://。按照此 TechNet 指南发送至Configuring Server Certificates in IIS 7

我还建议您使用https://www.ssllabs.com/ssltest/ 测试您的网络服务,以评估您的网站/服务的安全程度。 SSLLabs 主要捕获TLS 1.1 vulnerabilities,因此请确保您使用最新的 TLS 以获得 A 级。TLS基本上与 SSL 相同。 SSL 3.0 是 SSL 的最后一个版本。 TLS – 传输层安全性,SSL 的新名称。 TLS 1.0 通俗地称为“SSL 3.1”。由 Internet 工程任务组创建和维护。最新版本是 TLS 1.2,TLS 1.3 目前是草稿格式。

我的应用程序中的所有 WebRequest 现在都是 HttpsWebRequest。这是否意味着我的所有流量都是安全的?

没有什么是 100% 安全的,但听起来您正在遵循推荐的做法:https://developer.xamarin.com/guides/cross-platform/macios/http-stack/

我需要在使用我的应用程序的手机上安装任何客户端证书吗?

你想到的是Certificate Pinninghttps://forums.xamarin.com/discussion/8743/self-signed-cert-using-httpclient


保护移动应用程序最常见的 3 个错误是:

  1. 将密钥硬编码到源代码中:

  1. 未正确使用加密:

  1. 不使用 HTTPS

保护移动应用程序是一个如此大的主题 - 有整本关于该主题的书籍。至少阅读: OWASP 移动安全项目: https://www.owasp.org/index.php/OWASP_Mobile_Security_Project
iOS 和 Android 的安全编码指南:https://mgovlab.government.ae/uploads/SecureCodingGuidelines.pdf 并确保您已经覆盖了前 10 个漏洞:

  1. 安全地存储本地数据
  2. 保护远程数据传输
  3. 实施适当的身份验证
  4. 审核第三方代码和服务
  5. 尊重用户数据
  6. 防止逆向工程
  7. 安全的网络服务和服务器
  8. 验证输入和进程间 通讯
  9. 避免可利用的代码错误
  10. 安全地分发应用程序

当您按照官方 Xamarin 指南打包应用程序时,请注意 ProGuard。

https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/

【讨论】:

  • 非常感谢您的回答。这对我帮助很大!
猜你喜欢
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 2012-10-20
  • 2019-01-20
相关资源
最近更新 更多