他们在DigiCert的页面上发布了2048位SSL和256位加密的广告:http://www.digicert.com/256-bit-ssl-certificates.htm为什么要引用两个加密位?

这是广告的屏幕截图:



在Geotrust的Premium SSL广告中,他们将其广告:

Security: domain control validation, strong 256-bit encryption, 2048-bit root

那么256位加密和2048位root有什么区别?

希望可以阐明问题。 br />

评论

可能重复“ x位长度的密钥”是什么意思?

@吉尔斯:感谢您的链接,但是答案太微观了。我正在寻找有什么区别的概述。

嗯,我不明白为什么证书供应商谈论256位加密。 SSL使用的对称加密完全独立于证书。

@CodesInChaos:我同意,但是也许有用吗?给定以下可接受的答案,我的问题是客户将如何知道生成随机的256位密钥? (为什么不是128?)。如果服务器在客户的决定中起作用,那么我可以理解为什么供应商会显示此信息。

@Gilles我认为这个问题正在询问更多有关键的位编码的问题,而我认为这是关于键类型之间的区别的。

#1 楼

2048位是关于RSA密钥对的:RSA密钥是包含大整数的数学对象,而“ 2048位密钥”是这样的密钥,即大整数大于22047但小于22048。 >
256位是关于SSL的。在SSL中,服务器密钥仅用于传输随机的256位密钥(该密钥没有数学结构,只是一堆比特)。粗略地说,客户端会生成一个随机的256位密钥,并使用服务器的RSA公钥(位于服务器证书中的“ 2048位密钥”)对其进行加密,然后将结果发送给服务器。服务器使用其专用RSA密钥来逆转操作,从而获得客户端选择的256位密钥。之后,客户端和服务器使用256位进行对称加密和完整性检查,并且不再将RSA用于该连接。

更多详细信息,请参见此答案。此设置通常称为“混合加密”。之所以这样做是因为RSA不适合用于批量加密,但是对称加密无法完成启动工作所需的初始公共/私有业务。 RSA,因此我在上面的文本中做了一些简化,但这就是这个主旨。)

评论


谢谢!您能否澄清这一部分:“客户端生成一个随机的256位密钥”?在这种情况下,客户端是浏览器吗?如果是这样,广告是否表示根加密用于握手部分,而256位用于数据加密?希望我明白了。

– JohnJ
2012年8月30日15:56

忽略这个问题-我现在明白了。我将您的答案与本文中的答案结合在一起:security.stackexchange.com/questions/13688/…谢谢!

– JohnJ
2012年8月30日在16:22



#2 楼

更为详细的说,2048位RSA密钥称为非对称加密。它用于验证身份(签名)并确保只有预定的收件人才能访问发送的信息(加密)。它由两部分组成,公用密钥和专用密钥。密钥实际上是相互关联的,但是由于它们由两个非常大的伪素数(彼此相关的素数)关联,因此很难从公共场所找出私钥。

就是说,因为该算法基于确实很难发现(但可以解决)的事物,所以它比基于共享机密的对称算法的安全性要低,后者在数学上不是可解决的,并且不依赖于数学问题的复杂性来确保安全性(稍后会详细介绍)。这就是为什么密钥比对称密钥(仅256位)大得多的原因。为了使方程式难以求解,需要使用更大的密钥,而且,使用非对称密钥传输的信息越多,破解的可能性就越大(此外,加密/解密的处理器强度也更大)。 >
出于这个原因,SSL仅将RSA用于验证和密钥交换阶段。而是生成对称密钥(在这种情况下,如果客户机上的浏览器支持,则为256位),并通过RSA加密传输回服务器,然后通过共享密钥和对称算法交换其余数据。

发生这种情况的原因是客户端首先解码对服务器用其私钥加密的质询的响应,然后客户端可以查看服务器的公钥(由CA已知的根密钥签名(在本例中为DigiCert )已包含在大多数浏览器中)。当解码的响应与质询匹配时,客户端知道服务器已响应请求(尽管可能有中间人在中继该请求)。然后,客户端将生成256位对称密钥,并使用服务器的公共密钥对其进行加密,然后将其发送到服务器。因为密钥是使用服务器的公共密钥加密的,所以只有服务器(知道私有密钥)才能解密它。这意味着上一步中的任何中间人都不知道新的共享密钥。客户端现在可以相信通过共享密钥发送的任何信息仅来自目标服务器。

评论


好信息!但是,更严格的算法是否意味着更高的安全性?我指的是您的答案中的这一部分,“也就是说,由于该算法基于的确很难确定(但可以解决),因此它不如基于共享机密的对称算法安全(稍后)。”

– JohnJ
2012年8月30日17:42

@JohnJ-问题是它可以解决。对称算法(基于共享密钥)不会公开提供解决它的必要信息。有一些技巧可以用来进行更有根据的猜测,但是它并不依赖于难以解决的问题。但是,如果有人想出一种方法来快速分解非常大的素数(例如,通过量子计算),则RSA将立即被破坏且无用,因为信息共享在数学上足以确定明文。

– AJ亨德森
2012年8月30日18:09



为了进一步阐明,RSA是非对称2048位算法,而对称是256位部分。大多数针对对称加密的攻击都涉及寻找已知的纯文本(正在加密的事物)或由于密钥选择不当或底层算法存在问题而导致的模式,但这全都是基于对密文的分析,而不是基于密钥本身的分析(因为密钥不可用)。非对称密码学的固有弱点在于,公钥必须与私钥相关,因此可以导出私钥。

– AJ亨德森
2012年8月30日在18:18

因此,非对称算法的安全性完全取决于在给定公共密钥的情况下解决私钥的难度。

– AJ亨德森
2012年8月30日18:20

没有“用私钥加密”的“挑战”(无论如何,这不是对签名的准确描述;对此有很多问题)。对于Bruno所描述的DHE和ECDHE密钥交换,但您和Thomas所描述的不是纯RSA,服务器会在ServerKeyExchange消息中添加一个签名,该签名既不被客户端选择也不回显,并且在服务器证书之后(真实链)发送并(大概)验证。对于纯RSA,唯一的服务器证明是正确的MACed Finished消息。

–dave_thompson_085
15年3月14日在6:15



#3 楼

只是向现有答案中添加一些细节...


我的问题是客户如何知道生成随机的256位密钥? (为什么不是128?)。


这取决于所协商的密码套件。在RFC 4346附录A.5中,将这些列表定义为TLS 1.1。例如,TLS_RSA_WITH_AES_128_CBC_SHA将使用128位密钥,而TLS_DHE_RSA_WITH_AES_256_CBC_SHA将使用256位密钥。

协商的密码套件将取决于客户端和服务器配置,而不取决于服务器上安装的证书。服务器。当客户端通过Client Hello消息启动连接时,它将发送其支持的密码套件列表。然后,服务器选择所需的密钥,并在其Server Hello消息中说。

然后,此密码套件确定最终如何共享这些对称密钥。 SSL / TLS握手的直接目的是在客户端和服务器之间建立共享主密码。这更广泛地称为密钥交换(请参阅RFC 4346附录F.1.1)。

分为两类(不包括匿名密钥交换):

< RSA密钥交换(例如TLS_RSA_WITH_AES_128_CBC_SHA):客户端使用服务器的公钥(在证书中找到)对主密码进行加密。
DH(E)密钥交换(例如TLS_DHE_RSA_WITH_AES_256_CBC_SHA):Diffie-Hellman进行密钥交换。服务器签署其DH参数,客户端根据服务器证书中的公钥验证签名。 (拥有基于RSA的证书并不意味着RSA密钥交换。)

在握手结束时,无论使用了这两个步骤中的哪一个,客户端和服务器都拥有一个通用的预主密钥,从中可以得出主密钥(请参阅RFC 4346第8.1节)。

双方都可以从该主密钥中得出加密密钥(和MAC密钥),如RFC 4346第6.3节。

除了密钥类型(RSA或DSS)之外,没有什么可以使加密密钥的大小取决于证书。此外,两种类型都有使用256位密钥的密码套件:例如TLS_DHE_DSS_WITH_AES_256_CBC_SHATLS_DHE_RSA_WITH_AES_256_CBC_SHA。 (DSS是仅签名的算法,因此不会获得类似RSA的密钥交换来加密主密码之前的密钥。)

证书中密钥的大小仅能防止伪造密钥交换(或能够解密回记录的流量):如果某人能够从证书中的公钥中找到私钥,则他们可以充当模仿真实服务器的MITM或在使用RSA密钥交换时解密已加密的预先掌握的机密信息(以及由此记录的流量)(DHE密码套件经过精心设计,即使在攻击者掌握了私钥和记录的流量,请参见此问题)。这就是为什么足够大的非对称密钥很重要的原因。
认证机构倾向于在其网站上放置“ 256位”,因为从营销的角度来看它看起来不错。没错,但是对于那些不了解这是服务器的设置方式以及客户支持的内容的人来说,这可能会产生误导。

评论


除了整数DH外,还有使用椭圆曲线DH(ECDHE_ *)的套件。它们具有与DHE(特别是PFS)基本相同的安全性,但是使用的密钥要小得多,通常为对称加密的两倍,以实现可比的安全性。请参见rfc4492。TLSv1.1的rfc 4346也将被TLSv1.2的5246取代(或至少补充),这将更改6.3和8.1中使用的PRF的详细信息,但不会更改基本概念。最后,CA和cert现在与对称强度无关,但并非总是如此,请参阅stackoverflow.com/a/29045932/2868801。

–dave_thompson_085
15年3月14日在6:08

#4 楼

来自Digicert:https://www.digicert.com/ssl-cryptography.htm
“公钥基础结构(PKI)使用混合密码系统,并且受益于同时使用两种类型的((非对称和对称)加密”。
“非对称加密(或公共密钥加密)使用单独的密钥进行加密和解密。”
“对称加密(或预共享密钥加密)使用单个密钥对数据进行加密和解密。 “
”公钥密码术(非对称)使用诸如RSA之类的加密算法来创建公钥和私钥。 “ RSA基于分解大整数的假定难度。” “小于2048位的密钥不再被认为可以安全使用”; “平均一台计算机需要花费超过140亿年才能破解。”
“对称密钥大小通常为128或256位。” “ 128位密钥具有340,282,366,920,938,463,463,374,607,431,768,211,456加密代码的可能性”; “破解一个128位密钥将花费大量时间。”
摘要:
2048位是指Digicert提供的非对称加密,用于传输256位对称密钥以方便客户端和服务器之间(通过SSL / TLS)进行数据交换(安全通信)。

评论


现有答案中已经提供了相同的信息。您能解释一下您的答案所提供的其他人所没有的吗?

–MechMK1
20 Sep 16'9:57

@ MechMK1:我只是用一句话总结了问题来源(Digicert)提供的答案。此处给出的答案讨论了算法的详细技术性,而不是问题中所要求的密钥大小差异的相关性。最后一个答案并没有解释为什么“ 256位”看起来比2048位更好,甚至“从营销的角度来看”也是如此。也没有讨论不同位大小的ECC或DSA效应。

–金巴
20-09-17在17:17