HTTPS的实现原理,对称加密和非对称加密的区别

HTTPS通过:1)数字证书 2)加密算法 3)对称加密  4)非对称加密实现。

对称加密:用指定的密钥对数据进行加密和解密,客户端用密钥进行加密,服务端也需要用相同的密钥进行解密,服务端和客户端使用的是同一个密钥,这种算法叫做对称加密算法。(DES、AES)

非对称加密:使用不同的密钥进行加密解密,它是有一对密钥,分别成称为:私有密钥和公开密钥;如果用私钥对数据进行加密,只有用对应的公钥才能解开;如果用公钥对数据进行加密,只有用对应的私钥才能解开,公钥加密的数据公钥解不开;私钥加密的数据,私钥也解不开;这种加密和解密使用的是两个不同的密钥的就叫非对称加密算法。(RSA、DSA)

HTTPS申请证书签名过程:HTTPS在进行非对称加密传输数据的时候需要携带证书证明自己的身份,但是这个证书需要我们自己去申请,流程如下:

用工具(OpenSSL)来生成一个私钥,然后用刚生成的私钥,在提供你自己的域名、公司名称、部门、省份、城市等信息来生成一个待签名证书(即CSR文件,也叫公钥),然后我们拿着这个代签名证书,去CA机构申请证书,CA会根据你提交的信息进行审核,审核通过(就相当于让别人签个名,防伪造)后会下发证书给你(CRT文件,里面包含了公钥,CA的签名,过期时间,申请人提交的信息),当你拿到签名好的证书以后,把它和刚开始的私钥一起部署在服务器里面,这样网站就是HTTPS的了。

HTTPS四次握手
客户端和浏览器建立连接的过程中需要进行先四次握手,然后在进行数据的传输,我们上面讲过了,服务器申请证书以后,服务器端需要配置一个证书和私钥

 1. (第一次握手)客户端请求浏览器的时候,会携带客户端支持的加密算法,给服务器端。

 2. (第二次握手)服务器端收到客户端的请求以后,会把当前服务端的证书(证书里面包含服务端公钥,CA的签名,过期时间,申请人提交的信息)下发给客户端;

    假如有以下几个场景:

        1. 如果服务器的证书在下发客户端的过程中被第三方拦截到了,因为公钥是公开的,所以被第三方获取到证书中的公钥有没有安全隐患?

        因为公钥是公开的,所以被别人获取到也没关系,私钥传递的数据公钥能解,公钥传递的数据,公钥解不开,所以说当客户端用公钥加密的时候,第三方的公钥是解不开的。

        2. 如果第三方服务器拦截到了你的证书,能不能自己伪造一个证书,然后自己去跟客户端通信?

        证书伪造不了,正规机构颁发的证书都是内嵌在操作系统中的,服务端下发证书以后,在客户端的机器上会根据它内嵌的证书根据一些算法来判断你证书的真伪和有没有被篡改,如果篡改了,浏览器是不认的,一搬浏览器都会提示你当前证书不安全。

        3. (第三次握手)客户端收到服务端下发的证书,并验证这个证书是合法的证书,那就会根据前面约定的加密算法,生成一个随机的密钥,然后把这个密钥,在用服务端发过来的公钥进行加密,在把加密好的密文,发送给服务端。(公钥加密,公钥解不开,第三方拿到公钥,也解不开公钥加密的数据)

        4. (第四次握手)服务端拿到客户端发过来的密文,因为服务端它有私钥,所以说它能解开密文,并拿到里面的密钥。(服务端的私钥是一定不能丢的)

HTTPS经过4次握手以后,客户端和服务端双方都约定好了一个密钥,然后就可以用这个密钥进行对称加密算法来传输数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值