You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
图中的黄色部分是与客户端证书相关的流程,可以省略。只有当 Bob 有特殊要求时,比如 Bob 为银行机构,或者 Alice 作为 Bob 的内部员工时,可能会有这样的要求。
握手一共分为 4 步:
Alice 生成第一个随机数 Rand1,并携带 Rand1 和支持的加密算法列表向 Bob 发送 Hello。
Bob 检查加密算法列表,选择一个自己支持的加密算法,然后生成第二个随机数 Rand2,携带这两项信息和服务器证书向 Alice 发送 Hello。如果需要 Alice 的客户端证书,则也需要在 Hello 中指明。
Alice 验证 Bob 的服务器证书,并从证书中取出 Bob 的公钥 pBob,然后生成第三个随机数 Rand3,根据 Bob 指定的加密算法和三元组 [Rand1,Rand2,Rand3] 生成对称加密密钥 s。然后用公钥变换 P(Rand3,pBob) 加密 Rand3。Alice 携带 P(Rand3,pBob) 向 Bob 发送加密后的第三个随机数,表明 Alice 接下来将用对称加密方式加密会话信息。如果 Bob 需要客户端证书,则也必须携带。
Bob 用私钥变换 S(P(Rand3,pBob),sBob) 解密第三个随机数 Rand3,根据商定的加密算法和三元组 [Rand1,Rand2,Rand3] 生成对称加密密钥 s。如果需要验证客户端证书,则验证之。最后,Bob 向 Alice 回送一个通知,表明接下来 Bob 将用对称加密方式加密会话信息。
握手完成后,Alice 和 Bob 接下来的所有会话信息都将通过各自计算出的共享密钥 s 进行加密。
1 SSL 用到的加密原理
首先关于一些加密的通用概念,在 算法导论/RSA加密原理 中已有详细总结。
SSL采用了非对称加密与对称加密相混合的方式来通信,用非对称加密完成握手,用对称加密进行握手后的会话。概括来说:
2 SSL 握手过程
SSL 握手的关键流程如下,通信过程中携带的诸如 SSL 版本信息等非关键信息已经用其它代替:
要点如下:
假设
Alice
为客户端,Bob
为服务器。事先,
Bob
向CA
申请了一个服务器证书,而Bob
向Alice
颁发了一个客户端证书。图中的黄色部分是与客户端证书相关的流程,可以省略。只有当
Bob
有特殊要求时,比如Bob
为银行机构,或者Alice
作为Bob
的内部员工时,可能会有这样的要求。握手一共分为 4 步:
Alice
生成第一个随机数Rand1
,并携带Rand1
和支持的加密算法列表向Bob
发送 Hello。Bob
检查加密算法列表,选择一个自己支持的加密算法,然后生成第二个随机数Rand2
,携带这两项信息和服务器证书向Alice
发送 Hello。如果需要Alice
的客户端证书,则也需要在 Hello 中指明。Alice
验证Bob
的服务器证书,并从证书中取出Bob
的公钥pBob
,然后生成第三个随机数Rand3
,根据Bob
指定的加密算法和三元组[Rand1,Rand2,Rand3]
生成对称加密密钥s
。然后用公钥变换P(Rand3,pBob)
加密Rand3
。Alice
携带P(Rand3,pBob)
向Bob
发送加密后的第三个随机数,表明Alice
接下来将用对称加密方式加密会话信息。如果Bob
需要客户端证书,则也必须携带。Bob
用私钥变换S(P(Rand3,pBob),sBob)
解密第三个随机数Rand3
,根据商定的加密算法和三元组[Rand1,Rand2,Rand3]
生成对称加密密钥s
。如果需要验证客户端证书,则验证之。最后,Bob
向Alice
回送一个通知,表明接下来Bob
将用对称加密方式加密会话信息。握手完成后,
Alice
和Bob
接下来的所有会话信息都将通过各自计算出的共享密钥 s 进行加密。3 用混合加密的原因
The text was updated successfully, but these errors were encountered: