Lui*_*cia 0 security ssl ssl-certificate asp.net-web-api xamarin
我有一个公开公开的.net WEB API,还有一个使用该API的Xamarin Forms应用程序,该应用程序由于要管理的数据而需要非常安全。
我将为WEB API创建一个HTTP证书。Xamarin Forms应用程序将具有登录名/密码,以针对本地Active Directory进行验证。通过一个/ token端点,并在所有端点上使用Authorize属性来确保每个HTTP调用中都包含不记名令牌,我使用以下方法实现了这一点:
我基于此实现:http : //bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
另外,客户要求我们提供客户证书认证,我不知道这是如何工作的。1.我需要向Xamarin项目添加证书,对吗?如何添加?我如何产生它?2.在Web API中,我需要验证每个http调用是否都附加了证书。我发现了这一点,但不确定是否会起作用:http : //www.razibinrais.com/secure-web-api-with-client-certificate/
但是,在调查此问题时,我还发现了有关证书固定的问题,这本质上是安全性,但反过来说,这意味着Xamarin APP将验证服务器证书是否与正确的服务器(或类似的服务器)相关联,因此没有人可以在中间进攻。我在这里找到了实施方法:https: //thomasbandt.com/certificate-and-public-key-pinning-with-xamarin
问题是:1.我两个都需要吗?
在此过程中,我还需要研究什么?
证书固定和客户端证书身份验证是两件截然不同的事情。证书固定可确保您的应用与期望与之对话的服务器进行对话。它还可以防止窃听,这被称为“中间人”攻击。我最近在我的博客上写了一篇有关此的文章。
客户端证书认证以另一种方式起作用。它增加了一层额外的安全性,因此您的服务器可以确保只有拥有证书的客户端才能与它成功通信。但是,由于可以轻松地对应用进行反编译,因此恶意用户可以“轻松”获得此客户端证书。所以这不是灵丹妙药。
根据我的经验,当存在适当的企业移动性管理解决方案(例如Mobile Iron或Microsoft Intune或其他)时,客户端证书身份验证经常用于企业应用中,其中EMM解决方案可以将证书推到用户设备中带。
你应该同时使用吗?这确实取决于客户的需求,因为他们可以缓解2个非常不同的问题。
您包括的Web API链接看起来乍一看应该可以正确完成服务器工作。本文还包括如何使用Powershell命令生成客户端证书。
生成客户端证书:
安装:
用法:
X-ARR-ClientCert每个请求中将证书内容添加为标头。| 归档时间: |
|
| 查看次数: |
837 次 |
| 最近记录: |