四、SSL
1、 需要性:并不是每个用户都有自己的秘钥,但是服务器拥有不成问题。
SSL也提供身份认证,数据完整性和数据私有性服务 |
2、 SSL主要依赖数字签名和证书。
3、 SSL使用公钥加密算法技术来交换必要的信息以便构造会话密钥,然后使用这个秘钥和某个单秘钥加密算法来提供数据私有性和完整性。
4、 SSL有时也称为安全通道(Secure Channel)。
5、 Inter网是SSL最常使用的场合,它支持TLS,SSLv2,SSLv3,PCT。
6、 只有服务器拥有证书的单向认证SSL
Client Side Server Side
Send to Server:ClientHello
(包含一个随机数,会话标识(第一次时
为空),可使用的加密算法)
Send to Client:ServerHello
(包含另一个随机数,使用的
加密算法,会话标识符号)
Send to Client:Certificate(包含
了服务器的证书)
Send to Client:ServerHelloDone
Send to Server:ClientKeyExchange
{premaster secret}Kspub
premaster secret中包含另一个随机数并用
Server传来的证书中的公钥和Server选用
的算法加密。Premaster secret的作用是从
这个数里产生一个散列值master secret 并
与第一个ClientHello中的随机数一起构成
数据完整和私有性所需要的密钥。
Send to Server:ChangeCipherSpec
表示Client准备好,可以开始通讯了。
Send to Server:Finished
用刚才的算法和密钥对一些标准信息的散列
值进行加密发送。
Send to Client: ChangeCipherSpec
Send to Client: Finished
Send to Server: 经过加密的信息
Send to Client: 经过加密的信息
………….
………
Send to Client:CloseNotifyAlert
Send to Server:CloseNotifyAlert
7、 同时具有客户证书和服务器证书的双向认证SSL
Client Side Server Side
Send to Server:ClientHello
(包含一个随机数,会话标识(第一次
时为空),可使用的加密算法)
Send to Client:ServerHello
(包含另一个随机数,使用的
加密算法,会话标识符号)
Send to Client:Certificate(包含
了服务器的证书)
Send to Client:CertificateRequest
(包含服务器可接收的证书类
型,一组信任服务器的CA)
Send to Client:ServerHelloDone
Send to Server:ClientCertificate
发送自己的证书
Send to Server:ClientKeyExchange
{premaster secret}Kspub
premaster secret中包含另一个随机数并用
Server传来的证书中的公钥和Server选用
的算法加密。
Send to Server:ChangeVerity
用一个复杂的散列值对刚才的随机数进行
散列计算并用客户的数字签名进行签名。
服务器方也计算这个散列值,然后从客户
的证书中取出客户的公钥,用它来验证
数字签名。
Send to Server:ChangeCipherSpec
表示Client准备好,可以开始通讯了。
Send to Server:Finished
用刚才的算法和密钥对一些标准信息的散列
值进行加密发送。
Send to Client: ChangeCipherSpec
Send to Client: Finished
Send to Server: 经过加密的信息
Send to Client: 经过加密的信息
………….
………
Send to Client:CloseNotifyAlert
Send to Server:CloseNotifyAlert