c# - 通信安全 : Fiddler intercepts my talks. 如何保护我的应用程序?

标签 c# security https fiddler

我构建了一个 GData 应用程序并发送我的 Google 凭据以使用我的帐户。 Fiddler可以轻松拦截我的通信并泄露用户名和密码。

有什么办法可以防止窥视吗?如果不是,有人可以轻易泄露我的密码...

POST https://www.google.com/accounts/ClientLogin HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.google.com
Content-Length: 109
Expect: 100-continue
Connection: Keep-Alive

Email=xxxxxxxxxx%40gmail.com&Passwd=veryhigh-secure-ultra-strenght-passord-is-this-HHDGdgddhdyhghdeeehdeg^3h37373dE^^^+--XXXxxx123123h37ddg3g36dhjfhfg6373udbgd634t&source=database&service=writely&accountType=HOSTED_OR_GOOGLE

添加: 我们知道 Google Docs 的公共(public) SSL 证书。我们可以检查它是否在客户的电脑上使用,或者是否有假冒的?有帮助吗?

enter image description here

更新和结论:

Fiddler 充当中间人并在 Windows 的受信任根证书中注入(inject)伪造的根证书。店铺。然后为目标站点生成伪造的证书。浏览器使用该伪造的证书 - 公钥 - 并加密并将数据发送到 Fiddler 本身。 Fiddler用假的根证书-私钥-解密数据。然后使用远程站点的原始认证和加密数据发送到目标站点。向响应浏览器反向重复相同的事情。

我只是在另一个问题上询问了如何检测这些假证书。如果我使用 .NET 构建一个简单的应用程序,该应用程序将依赖并使用 Windows 对目标站点的“默认/存储”认证。如果没有,Fiddler 会即时生成一个。

所以...

  1. 我不依赖 Windows 上的证书并直接从目标站点获取真实证书/或者我必须在我的应用中包含目标站点的有效证书。

  2. 我必须修改 Google 数据 API 的源代码才能在我的 https 通信中使用我包含的 - 真实的 - SSL 证书 - 一个简单的 .crt 文件。因此数据将在我的应用程序中加密并仅在目标站点解密。

  3. 下一步是确保内存安全 - 让事情变得更难。

我写了这些东西作为将来研究相同主题的人的引用并得到你的批准。

谢谢。

有人已经提到过假证书:

  1. Detecting Man in the Middle Attacks with DNS By Jason Coombs, December 18, 2003

最佳答案

Fiddler 之所以可以泄露您的密码,是因为它充当 HTTPS 代理。它充当中间人;在客户端解密您的安全流量并在将其发送到目标服务器之前重新加密。这一切都发生在您的安全流量离开您的系统之前。一旦它离开您的计算机,数据就会被加密。

只要您确信您的计算机不会受到恶意软件和其他类似软件的侵害,那么您就应该考虑 HTTPS 流量的安全和加密,并且不会受到窥探。

您是否安装了 fiddler root CA?如果您这样做了,那么您的系统就会像信任 Verisign 或其他可信机构颁发的证书一样信任 fiddler 软件颁发的证书。

你必须努力accept an untrusted certificate在大多数编程环境中,因此在将流量发送到服务器之前,它应该在那个时候没有通过检查。

编辑: 如果您正在尝试保护对 GData 存储的访问,那么您应该阅读 Authentication and Authorization documentation WRT 这个。是的,这很麻烦,但这是一种保护数据的方法,而不会在客户端应用程序级别泄露您的用户帐户信息。

关于c# - 通信安全 : Fiddler intercepts my talks. 如何保护我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9563768/

相关文章:

c# - 单声道的响应式(Reactive)扩展?

security - jenkins 访问被拒绝 - asdf@gmail.com 缺少读取权限

google-maps - 使用 Google map 的混合内容

Java HttpsURLConnection 在没有 setSSLSocketFactory 设置的情况下成功执行

c# - 修复消息标签多次出现

c# - 获取网站 SSL 证书的公钥

c# - RabbitMQ Consumer 总是直接关闭(C#)

security - 如何在 Silverlight 中加密用户密码?

macos - 警告 : Your version of git is 1. 9.3。存在严重的安全漏洞

wcf - 是否有替代 HTTPS 的方法来保护网站?