没有有效的SSL证书,HTTPS连接是否安全?

use*_*981 52 https ssl-certificate

我使用没有有效SSL证书的HTTPS连接.连接安全吗?信息是加密的吗?

cee*_*yoz 59

即使SSL证书无效(过期,蛇油,不受信任的CA等),连接也会被加密.SSL证书验证只是确保您连接到您认为要连接的人.如果解密您的数据的人是破解者而不是PayPal,加密对您没有任何好处.

  • 但重点是,仍然需要证书(无论是否有效) (3认同)
  • 是的,但你可以在几秒钟内生成一个自签名的.我问这个问题是否需要有效的证书. (3认同)
  • 问题是他正在使用HTTPS连接.如果从字面上理解这个问题100%是不可能的. (2认同)

bob*_*ato 24

实际上,可以使用Diffie-Hellman或类似的密钥交换算法在没有证书的完全陌生人之间建立加密连接.

爱丽丝和鲍勃同意一个随机数x.Alice计算 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并且可以将其用作加密密钥.这样做的好处是,鲍勃不知道一个,翘不知道b,任何窃听者也不知道号码(因为计算一个X 一个,在大量的情况下,将采取年).

正如supercat指出的那样,这本身仍然容易受到中间人攻击,这就是为什么至少有一端交易需要使用证书进行身份验证.但是,准确的说,不是服务器检查这个,它是浏览器,如果证书无效(或者甚至可能是垃圾),大多数浏览器都会让用户继续.在那种情况下,连接仍然比常规连接安全得多.要收听,您需要能够操作IP路由或DNS查找,并且必须在首次建立连接之前进行设置,这并不容易.

BTW证书中的密钥对不是用于加密实际流量的密钥对; 它们用于为更快的对称密码(例如DES)建立新的一次性密钥,然后完成其余的工作.

  • 注意:我认为您忘记提及所有计算都是在模块 N 中执行的,其中 N 是 Alice 和 Bob 商定的另一个大数。还要注意,X 和 N 都不需要是随机数——它们甚至可以是硬连线到算法中的常量;只有 a 和 b 是变量和秘密。 (2认同)

sup*_*cat 9

如果没有SSL证书的验证,那么截获通信渠道的人可以捕获连接到https://www.acmebank.com的请求,将自己的请求发送到www.acmebank.com,并与acmebank.com和用户协商密钥.之后,它可以从用户接收每个数据,使用用户密钥解密,并使用acmebank的密钥加密,并使用来自acmebank.com的数据进行加密.净效应是用户和acmebank都不会看到任何错误,但拦截器将能够解密用户和acmebank之间的所有数据.用户和银行将使用不同的密钥来处理他们的通信,但两个实体都不会知道这一点.向协议添加任何标准方面以查询正在使用的密钥将无济于事,因为拦截器可以检测到此类查询并适当地更改响应.

SSL通过要求主机向收件人发送主机正在使用的密钥副本来防止中间人攻击,并以入侵者无法伪造的形式加密(除非入侵者可以假冒CA凭证,至少).如果一个人不使用CA颁发的证书,对中间人攻击几乎没有保护,尽管加密层会阻止会话内容的被动或回顾性解密(顺便说一下,我希望有某些东西的标准)在未加密通信和SSL之间,对于被动或回顾性解密是主要威胁的情况,但我不知道任何情况).


Nic*_*ini 6

使用无效的ssl证书不再打扰自己.您现在可以像生成snakeoil(自签名,浏览器无效)证书一样轻松地为您的服务器生成免费的浏览器有效证书.去看看https://letsencrypt.org/它是免费的,并且对贡献开放态度.