1

I have recently been looking into HTTPS, and just how secure it is.

I went to an https site which had a valid certificate and entered my username and password. Using Fiddler, I decrypted the requests which appeared after clicking the submit button, and there was my username and password in plain text in a string containing key-value pairs (this wasn't the querystring, it was the post values).

Can anyone enlighten me as to why HTTPS is said to be secure when it is this easy for me to get the username and password using an external application? I mean it was pretty much instant decryption, and surely a hacker could use an application to find out what requests you're making and decrypt them, can't they?

4

3 回答 3

11

HTTPS 是一种相当安全的点对点通信方式,中间的任何人都无法监听。

Fiddler 可以解密流量的原因是它可以控制您的浏览器信任哪些证书。证书基本上是“保证”,您正在与之交谈的网站就是它声称的身份,并且由于 Fiddler 可以将自己的证书放入浏览器,它可以让浏览器相信它是任何网站。

通常,浏览器只有来自证书颁发机构(如 Verisign、Thawte、Geotrust)的证书,他们的工作是验证每个站点实际上是他们所说的那个人。只要您信任证书颁发机构(他们犯了错误)并且没有人向您的浏览器添加假证书,您几乎可以相信没有人在监听。

如果您正在寻找“数学上安全”的东西,HTTPS 不是。为了易于建立通信,您仍然必须信任其他人,而不是连接另一端的人。

于 2012-09-13T16:28:16.487 回答
3

我完全同意 Joachim Isaksonn 的观点。只想添加几件事:

1) SSL 安全性取决于所使用的 RSA 密钥的长度。更长的密钥更安全。一般来说 1024 位在大多数情况下仍然足够好,2048 位是世界上所有资源的已知因式分解方法都无法破解的

http://en.wikipedia.org/wiki/RSA_Factoring_Challenge

2) SSL 安全性也取决于用户。如果您访问某个网站并显示“证书不匹配”并且您单击忽略,那么您就有麻烦了(与 Fiddler 可以解密流量的原因相同)

于 2012-09-13T21:23:41.770 回答
3

由于您使用 Fiddler 取得的成就,您似乎对 HTTPS 持怀疑态度。我会尽量简明扼要地回答你问题的那一部分。

您之所以能够做到这一点,是因为您在 Fiddler 是MiTM的地方对自己发动了中间人攻击。您一定已经注意到浏览器会发出关于证书不安全的警告。该证书实际上是 Fiddler 自己的证书。因此,您的浏览器连接到 fiddler,fiddler 连接到预期的服务器,Fiddler 中继流量(就像代理一样)。这正是您能够看到流量的原因。您的浏览器使用 Fiddler 的公钥加密数据,而 fiddler 使用其私钥解密数据以显示给您。这与“HTTPS”不安全无关。只要用户足够小心地接受浏览器发出的警告,HTTPS 就可以被认为是安全的。一如既往,这里最薄弱的环节是用户。

于 2012-09-14T14:54:54.530 回答