【发布时间】:2017-01-17 17:50:53
【问题描述】:
我希望创建一个简单的安全解决方案,通过使用 Fiddler 或其他东西拦截请求,不会简单地将 Web API 正文内容显示给所有希望看到的人。我受到限制,因为我不能使用 SSL。我已经实现了 HMAC 类型的身份验证,我想通过在客户端上创建正文内容的加密并将该请求发送到服务器来更进一步,然后服务器将解密正文并按预期转发操作但是解密。我对服务器端 HMAC 使用了一个过滤器,在客户端使用了一个 delegatingHandler。
我对处理 http 请求不是很熟悉,也不完全了解如何拦截所有正文内容,然后对其进行加密并将其放回 httpcontent。
任何想法或帮助将不胜感激。
【问题讨论】:
-
为什么不能使用https?这似乎是要走的路
-
https为您处理加密。重新发明轮子是没有意义的,即使你这样做了,它也永远不会像 https 那样安全。 这不是对您作为开发人员的技能的抨击,而是对大多数标准的深思熟虑和安全性的声明。 -
这个问题比这里更适合信息安全
-
客户端运行在非常特殊的配置上,只有端口 80 可用。无法使用 443,因此我们无法使用 ssl。
-
如果你真的不能使用 TLS(我会反击这个要求,如果需要,你可以在技术上运行TLS on port 80),你必须 确保使用提供完整性和机密性的密码和块模式(AES/GCM、EAX 或 CCM)安全地加密数据。实现您自己的 HMAC 标记是不必要的,但实际上,请使用 TLS。这些东西很难做对,互联网已经提供了多年的 TLS 攻击来证明它的价值和修复。
标签: c# encryption asp.net-web-api