2010-10-05 96 views
47

我使用HTTPS连接而没有有效的SSL证书。连接安全吗?信息是否被加密?没有有效的SSL证书,HTTPS连接是否安全?

+10

如果没有SSL证书,您不能使用https连接,可以吗?您可能是指使用*自签名*证书 – 2010-10-05 15:15:12

+0

为什么这属于超级用户? – SilentGhost 2010-10-05 15:15:38

+2

没有任何信息或连接是安全的。如果互联网是一系列管子,那些管子是半透明的,任何人都可以通过它们看到你的应用。 – Moses 2010-10-05 15:15:57

回答

53

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

+2

但就这一点而言,证书仍然是必需的(无论是否有效) – 2010-10-05 15:17:11

+3

是的,但您可以在几秒钟内生成一个自签名证书。我把这个问题当作是问你是否需要一个有效的证书。 – ceejayoz 2010-10-05 15:18:15

+1

在这种情况下,你是正确的,但是问题是证书是否是必需的 - 它是或不会被加密。 – 2010-10-05 15:21:49

2

没有。使用HTTPS时你所做的是告诉浏览器通过不同的端口连接(443),而通常你通过(80)连接。没有证书,服务器会拒绝连接。没有证书,HTTPS是不可能的。看看这里,你会看到一个certificate is needed它的工作。

+0

浏览器询问您是否信任连接,如果我接受此连接,传输的信息仍未加密? – user466981 2010-10-05 15:17:36

+4

如果您的浏览器要求您信任无效的证书,则信息将被加密。你无法验证接收它的人是否合法。 – ceejayoz 2010-10-05 15:19:20

+0

这意味着证书可能是自签名或过期的(这就是为什么它会问你是否确定)。问题是,是否需要证书 - 它是。 – 2010-10-05 15:20:05

9

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

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

+0

基本上你说的是没有证书使用SSL是毫无意义的,对付有经验的黑客 – bobobobo 2013-04-07 07:01:29

+0

@bobobobo:没有证书的SSL可以防范某些威胁,但不能防御其他威胁。这种保护是否有用取决于所需保护的类型。如果每一方都有通过外部渠道确认的证书被另一方保护,则不需要由外部证书颁发机构颁发的证书。例如,即使没有证书颁发机构,银行也可能在广告牌上张贴他们自己颁发的证书的指纹,在他们的所有广告和邮件中指定这些...... – supercat 2013-04-08 15:12:12

+0

......广告牌可能被发现的位置,以及有人看这样的广告牌,以确保他们没有被篡改。当他们的客户第一次连接到银行时,他们的客户可以确认他们收到的证书是否有正确的指纹。在实践中,这会非常麻烦,很少有客户想要打扰它;让SSL自动使用来自少数信任机构的证书,极大地简化了事情。 – supercat 2013-04-08 15:14:59

23

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

爱丽丝和鲍勃同意随机数x。 Alice计算 x a,其中a是一个只有Alice知道的大素数,并将其发送给Bob。 Bob计算x b并将其发送给Alice。爱丽丝计算(X b一个,和Bob计算(X 一个b。由于(X 一个b = (X b一个 = X AB,Alice和Bob现在都知道电话号码X AB,并且可以使用它作为加密密钥。这样做的好处是,鲍勃不知道一个,翘不知道b,任何窃听者也不知道号码(因为计算一个X 一个,在案件数量庞大,需要数年时间)。

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

顺便说一下,证书中的密钥对是而不是什么是用于加密实际流量;它们被用来为一个更快的对称密码(如DES)建立一个新的一次性密钥,然后完成剩下的工作。

+1

注意:我想你忘了提及所有的计算都是在模块N中进行的,其中N是Alice和Bob同意的另一个大数字。还要注意,X和N都不需要是随机数 - 它们甚至可以是硬连线到算法中的常量;只有a和b是变量和秘密。 – 2013-05-07 19:32:19

+0

需要注意的是,这必须首先在浏览器中实现,对吗? – Amunak 2013-05-30 07:53:54

0

可以建立一个加密的连接,是的,但它仍然是可能的,你正在与破解的cpmputer而不是真正的服务器进行通信。就像那样,破解的计算机告诉服务器他将成为客户端,解密所有数据,存储它并将加密数据发送给客户端(并告诉他他将是服务器)。因此,如果服务器和客户端之间没有易受攻击的地方,这是没有人能够保证的,这只是一个安全的连接。

5

不要再打扰无效的SSL证书。您现在可以像生成蛇蝎(自签名,浏览器无效)证书一样轻松地为您的服务器生成免费的浏览器有效证书。去看看https://letsencrypt.org/它是免费的,并可以捐款。

+0

这是一个很有前途的解决方案,特别是对于那些你不能要求人们支付“可信”证书的项目。我希望不存在因非技术原因吊销证书的意思,我担心政府和企业的审查。我在赞助商名单中看到Facebook,但并没有让我放心。 – gouessej 2016-01-22 12:55:56

+0

真的吗?除非你打算有一个安全的儿童色情网站或一些新的世界秩序的恐怖分子狗屎,你没有什么可隐瞒或恐惧的...... – 2016-01-22 14:11:13

+0

起初,我对儿童色情不感兴趣。其次,佩雷认为戴高乐是一个“恐怖分子”,而他组织对纳粹的抵抗,它显示了经常用来对付政治对手的“恐怖主义”这个词的主观意义,每个人都可以成为别人的“恐怖分子”。第三,ISRG证书政策在其“禁止证书使用”中没有提及儿童色情和恐怖主义,因此措辞不太准确。 – gouessej 2016-01-22 19:55:03