SSL四次握手

证书加密为了解决:

  1. 完整性 2. 保密性 3.身份

 

保密性: 通过校验算法: MD5, SHA1(128Bits), SHA2(256Bits)等

身份: 通过授信任的根证书机构CA颁发的证书, 再拿自己操作系统内预埋的受信任的根证书机构本身的

 

证书: 一般包含 公钥, 公钥的数字签名(用公钥的拥有者所拥有的私钥进行签名), 公钥拥有者信息.

证书签名: 就是上面提到的公钥的数字签名, 用OS内预埋的根证书附带的公钥进行解密, 即可得到公钥, 拿证书附带的公钥进行比对, 如果一致, 那么这个证书签名就是真的, 也同时证明了 该证书拥有者的身份.

 

证书机构: 根证书机构, 中间根机构, CA申请者

 

2

 

常见加密方式:

非对称:RSA\DSA

对称:DES\3DES\AES

 

不懂得点: 经过1\2次交互,客户端验证服务器的身份仅仅是通过用服务器发来的PubKey解密密文吧, 怎么跟传过来的证书搭配使用. 数字签名\指纹的概念不太懂, 以及第四步, 通过Client random、Server random和Premaster secret,这三样东西,经过什么算法原理, 这个Key-session是什么.

 

(1)如何保证公钥不被篡改?

 

解决方法:将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。

 

(2) 如果服务器想对授权的客户端开放验证, 就要在第一步客户端请求时加上自己的客户端证书

 

除了上面这些信息,如果服务器需要确认客户端的身份,就会再包含一项请求,要求客户端提供"客户端证书"。比如,金融机构往往只允许认证客户连入自己的网络,就会向正式客户提供USB密钥,里面就包含了一张客户端证书。

 

 

 

 

1、客户端请求建立SSL链接,并向服务端发送一个随机数–Client random和客户端支持的加密方法(例如RSA\DSA),比如RSA公钥加密,此时是明文传输。

 

2、服务端回复一种客户端支持的加密方法、一个随机数–Server random、授信的服务器证书和非对称加密的公钥。

 

3、客户端收到服务端的回复后利用服务端的公钥,加上新的随机数–Premaster secret 通过服务端下发的公钥及加密方法进行加密,发送给服务器。

 

4、服务端收到客户端的回复,利用已知的加解密方式进行解密,同时利用Client random、Server random和Premaster secret通过一定的算法生成HTTP链接数据传输的对称加密key – session key。

 

此后的HTTP链接数据传输即通过对称加密方式进行加密传输。

 

再来看看非对称加密,非对称加密有两个密钥,公钥和私钥,公钥公开,私钥私有。

非对称加密的例子

加密:

A想要传输信息给B,那么B首先生成公钥和私钥,公钥发送给A,私钥保留,A收到B的公钥之后,将信息利用公钥加密,然后传输给B,B通过私钥解密。

防止篡改:

B想要给A发送一个证明,那么B首先生成公钥和私钥,利用私钥加密证明生成加密文件,然后将证明和加密文件以及公钥一同发送给A,A收到之后,利用公钥将加密文件解密,然后对比证明,如果相同,则可以认为证明没有被篡改过。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值