https时序图
2017-06-08 23:47:12 0 举报
https时序图
作者其他创作
大纲/内容
发送加密后的对称密匙
客户端
2.生成随机数(对称密匙)
请求https连接
1.验证证书
通过对称密钥加密的密文通信
服务器
返回证书(公匙)
1 客户端发起一个https的请求,把自身支持的一系列Cipher Suite(密钥算法套件,简称Cipher)发送给服务端2 服务端,接收到客户端所有的Cipher后与自身支持的对比,如果不支持则连接断开,反之则会从中选出一种加密算法和HASH算法 以证书的形式返回给客户端 证书中还包含了 公钥 颁证机构 网址 失效日期等等。3 客户端收到服务端响应后会做以下几件事 3.1 验证证书的合法性 颁发证书的机构是否合法与是否过期,证书中包含的网站地址是否与正在访问的地址一致等 证书验证通过后,在浏览器的地址栏会加上一把小锁(每家浏览器验证通过后的提示不一样 不做讨论) 3.2 生成随机密码 如果证书验证通过,或者用户接受了不授信的证书,此时浏览器会生成一串随机数,然后用证书中的公钥加密。 3.3 HASH握手信息 用最开始约定好的HASH方式,把握手消息取HASH值, 然后用 随机数加密 “握手消息+握手消息HASH值(签名)” 并一起发送给服务端 在这里之所以要取握手消息的HASH值,主要是把握手消息做一个签名,用于验证握手消息在传输过程中没有被篡改过。4 服务端拿到客户端传来的密文,用自己的私钥来解密握手消息取出随机数密码,再用随机数密码 解密 握手消息与HASH值,并与传过来的HASH值做对比确认是否一致。 然后用随机密码加密一段握手消息(握手消息+握手消息的HASH值 )给客户端 5 客户端用随机数解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握 手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密 因为这串密钥只有客户端和服务端知道,所以即使中间请求被拦截也是没法解密数据的,以此保证了通信的安全非对称加密算法:RSA,DSA/DSS 对称加密算法:AES,RC4,3DES HASH算法:MD5,SHA1,SHA256 在客户端与服务端相互验证的过程中用的是对称加密 客户端与服务端相互验证通过后,以随机数作为密钥时,就是对称加密 hash算法在确认握手消息没有被篡改时
3.使用公匙对对称 密匙加密
0 条评论
下一页