我使用没有有效SSL证书的HTTPS连接。连接安全吗?信息是加密的吗?
答案 0 :(得分:55)
即使SSL证书无效(过期,蛇油,不受信任的CA等),连接也会被加密。 SSL证书验证只是确保您连接到您认为要连接的人。如果解密您的数据的人是破解者而不是PayPal,加密对您没有任何好处。
答案 1 :(得分:23)
实际上,可以使用Diffie-Hellman或类似的密钥交换算法在没有证书的完全陌生人之间建立加密连接。
Alice和Bob同意随机数 x 。爱丽丝计算 x a ,其中 a 是一个只有Alice知道的大素数,并将其发送给Bob。 Bob计算 x b 并将其发送给Alice。 Alice计算(x b ) a ,Bob计算(x a ) b功能 的。由于(x a ) b = (x b ) a = x ab ,Alice和Bob现在都知道数字 x ab 并且可以使用它作为加密密钥。这样做的好处是Bob不知道 a ,Alice不知道 b ,并且任何窃听者都不知道任何一个号码(因为计算 a x a 的,如果是大数字,则需要数年时间。
正如supercat指出的那样,这本身仍然容易受到中间人攻击,这就是为什么至少有一端交易需要使用证书进行身份验证。但是,准确的说,不是服务器检查这个,它是浏览器,如果证书无效(或者甚至可能是垃圾),大多数浏览器都会让用户继续。在那种情况下,连接仍然比常规连接安全得多。要收听,您需要能够操作IP路由或DNS查找,并且必须在首次建立连接之前进行设置,这是不容易的。
BTW证书中的密钥对不用于加密实际流量的内容;它们用于为更快的对称密码(例如DES)建立一个新的一次性密钥,然后完成其余的工作。
答案 2 :(得分:9)
如果没有SSL证书的验证,那么截获通信渠道的人可以捕获连接到https://www.acmebank.com的请求,将自己的请求发送到www.acmebank.com,并与两个acmebank协商密钥。 com和用户。之后,它可以从用户接收每个数据,使用用户密钥解密,并使用acmebank的密钥加密,并使用acmebank.com的数据进行加密。净效应是用户和acmebank都不会看到任何错误,但拦截器将能够解密用户和acmebank之间的所有数据。用户和银行将使用不同的密钥来处理他们的通信,但两个实体都不会知道这一点。在协议中添加任何标准方面以查询正在使用的密钥都无济于事,因为拦截器可以检测到此类查询并适当地更改响应。
SSL通过要求主机向收件人发送主机正在使用的密钥副本来防止中间人攻击,并以入侵者无法伪造的形式加密(除非是入侵者)至少可以伪造CA凭据)。如果一个人不使用CA颁发的证书,对中间人攻击几乎没有保护,尽管加密层会阻止会话内容的被动或回顾性解密(顺便说一下,我希望有某些东西的标准)在未加密的通信和SSL之间,对于被动或回顾性解密是主要威胁的情况,但我不知道任何情况。)
答案 3 :(得分:5)
不要用无效的ssl证书打扰自己。您现在可以像生成snakeoil(自签名,浏览器无效)证书一样轻松地为您的服务器生成免费的浏览器有效证书。请参阅https://letsencrypt.org/免费并向会员开放。
答案 4 :(得分:2)
不。使用HTTPS时你正在做的是告诉浏览器通过不同的端口连接(443),而通常你通过(80)连接。没有证书,服务器将拒绝连接。没有证书就无法使用HTTPS。看看这里,你会看到一个certificate is needed让它起作用。
答案 5 :(得分:0)
可以建立加密连接,是的,但仍然可能与破解的cpmputer而不是真实服务器进行通信。像这样,破解的计算机告诉服务器他将是客户端,解密所有数据,存储它并将加密数据发送到客户端(并告诉他他将是服务器)。因此,如果服务器和客户端之间没有易受攻击的点,那么它只是一个安全的连接,没有人可以保证。