https的SSL加密是在传输层实现的。
http和https的基本概念
http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
https: 是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
https协议的主要作用是:建立一个信息安全通道,来确保数组的传输,确保网站的真实性。
SSL加密方式
加密方式分为对称加密和非对称加密。
(1)对称加密:使用同一个密钥
在性能方面,对称密钥更胜一筹,所以可以使用对称密钥。
但是肯定不能在每次通信中都使用同一个对称密钥,因为如果使用同一个密钥,任何人只要与服务端建立通信就能获得这个密钥,也就可以轻松解密其他通信数据了。所以应该是每次通信都要随机生成。
(2)非对称加密:不同的密钥
由于不可能保证客户端和服务端同时生成一个相同的随机密钥,所以生成的随机密钥需要被传输,这样的话在传输过程中也会存在被盗取的风险。
要解决这个问题还需要通过将密钥加密来进行传输。除了前面提到的对称加密,我们只有非对称加密这个选项了,比如客户端通过公钥来加密,服务端利用私钥来解密。
(3)证书机制(ca)
具体来说就是把公钥放入一个证书中,该证书包含服务端的信息,比如颁发者、域名、有效期,为了保证证书是可信的,需要由一个可信的第三方来对证书进行签名。这个第三方一般是证书的颁发机构,也称 CA(Certification Authority,认证中心)。
证书签名:对证书信息进行MD5计算,获取唯一哈希值,然后利用证书颁发方的私钥加密。
校验过程:用证书颁发方的公钥进行解密,计算md5值,将解密后的md5跟计算所得的md5比对。
HTTPS 握手过程
1 客户端客户端发起握手请求,要求服务器建立SSL连接
2 web服务器收到客户端请求后, 可以自己制造或者购买一套数字证书(CA),会将网站的证书(包含公钥和私钥)传送一份给客户端
3 客户端收到网站证书后会检查证书的颁发机构以及过期时间, 如果没有问题就随机产生一个秘钥
4 客户端利用公钥将秘钥加密, 并传送给服务端, 服务端利用自己的私钥解密出秘钥
5 之后服务器与客户端使用秘钥加密传输
网友评论