通信安全:Fiddler拦截我的谈话.我如何保护我的应用程序?

Nim*_*oud 1 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
Run Code Online (Sandbox Code Playgroud)

附加: 我们了解Google Docs的公共SSL证书.我们可以检查它是在客户端的PC上使用还是有假的?有帮助吗?

在此输入图像描述

更新和结论:

Fiddler充当中间人并在Windows的受信任的根证书中注入假根证书.商店.然后为目标站点生成假证书.浏览器使用伪造的认证 - 公共密钥 - 并加密和发送数据给Fiddler本身.Fiddler使用伪根证书-private密钥解密数据.然后使用远程站点的原始认证并加密数据并发送到目标站点.对响应浏览器反向重复相同的操作.

我只是问如何在另一个问题上检测这些假证明.如果我使用.NET构建一个简单的应用程序,应用程序将依赖并使用Windows的"默认/存储"认证用于目标站点.如果没有,Fiddler将动态生成一个.

所以...

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

  2. 我必须修改Google Data API的源代码,以便在我的https通信中使用我附带的-authentic one-SSL证书 - 一个简单的.crt文件.因此,数据将在我的应用程序中加密,并仅在目标站点解密.

  3. 保护记忆 - 使事情变得更难 - 是下一步.

我已经把这些东西写成了未来的参考,以便谁来研究相同的主题并得到你的认可.

谢谢.

有人已经提到假证书:

  1. 用DNS探测中间人攻击作者:Jason Coombs,2003年12月18日

Pet*_*esh 6

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

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

你安装了fiddler root CA吗?如果您这样做,那么您的系统将信任fiddler软件颁发的证书,其方式与信任Verisign或其他受信任机构颁发的证书相同.

在大多数编程环境中,您必须努力接受不受信任的证书,因此在将流量发送到服务器之前,它应该在该点检查失败.

编辑: 如果您正在尝试保护对GData存储的访问,那么您应该阅读认证和授权文档 WRT.是的,这是一个痛苦的屁股,但这是一种保护数据的方法,而不会在客户端 - 应用程序级别显示您的用户帐户信息.

  • 即使您确保了HTTPS通信安全,恶意用户也可以窥探项目的内存并从那里取出密码.您应该考虑另一种保护通信的方法,而不是存储密码 (2认同)