通过SSL保护Xamarin.Forms App流量

时间:2016-07-27 08:51:46

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

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

说到安全性,我几乎迷失了方向。 我已经阅读了很多包含很多可能性的文章,例如HCMAOAuth等。

出于我的目的,我认为只有SSL/Https才能胜任。

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

有谁知道我可以获得帮助的地方,或者有人可以描述如何完成这项工作?

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

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

编辑1:

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

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

这是否意味着我的所有流量都受到保护?

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

我想我需要在我的IIS API中将其包括在内。

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

1 个答案:

答案 0 :(得分:3)

我不希望这个问题无法回答,以后对于一般安全问题http://security.stackexchange.com来说就是这个地方。

  

出于我的目的,我认为只有SSL / Https才能完成这项工作。

这是正确的使用HTTPS (HTTP Secure)。您可以将Web服务器配置为自动将所有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”。由互联网工程任务组创建和维护。最新版本是TLS 1.2,TLS 1.3目前处于草稿格式。

  

我的应用程序中的所有WebRequests现在都是HttpsWebRequests。这是否意味着我的所有流量都受到保护?

没有什么是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. 将密钥硬编码到源代码中:
  2. enter image description here

    1. 未正确使用加密:
    2. enter image description here

      1. 未使用HTTP S
      2. 保护移动应用程序是一个非常大的主题 - 有关于该主题的完整书籍。至少阅读: OWASP移动安全项目: https://www.owasp.org/index.php/OWASP_Mobile_Security_Project
        适用于iOS和Android的安全编码指南:https://mgovlab.government.ae/uploads/SecureCodingGuidelines.pdf并确保您已排除前十大漏洞:

        1. 安全存储本地数据
        2. 保护远程数据传输
        3. 实施适当的身份验证
        4. 审核第三方代码和服务
        5. 尊重用户数据
        6. 防止逆向工程
        7. 安全的网络服务和服务器
        8. 验证输入和进程间 通信
        9. 避免可利用的代码错误
        10. 安全分发应用程序
        11. 当您打包应用程序时,请遵循官方Xamarin指南,注意ProGuard。

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