美文网首页
关于http与https的简单理解

关于http与https的简单理解

作者: 3dc2075a325d | 来源:发表于2018-10-19 14:12 被阅读23次


    一,http和https简介

    HTTP全称是HyperText Transfer Protocal,即:超文本传输协议,HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”

    HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,HTTPS是HTTP over SSL/TLS,HTTP是应用层协议,TCP是传输层协议,在应用层和传输层之间,增加了一个安全套接层SSL/TLS。

    总监:https=http+ssl安全传输协议+ca身份认证;https是http的安全版,它不仅涵盖http协议,而且加入了ssl安全加密传输协议保证数据传输的安全性,ca身份认证则验证服务器域名是否是真实可靠的。

    二,https加密原理

    1,服务器将携带的公钥向数字证书机构(CA)申请证书。

    2,数字证书机构用自己的私钥对公钥签名颁发证书,并返回给服务器。

    3,服务器将申请携带公钥的证书分发给客服端。

    4,客户端验证证书,证书机构通过验证,或者用户接受不受信任的证书(非权威机构颁发的证书)。获取到公钥(用数字证书机构的公钥解密得到服务器的公钥)。到这一步,在证书保证下服务器拥有私钥,客户端拥有公钥,可进行非对称性加密。

    5,使用公钥加密报文发送给服务器,其中携带随机串。其中的随机串用户传输数据时进行对称加密。

    6,服务器使用私钥解密。获取报文信息及随机串。

    7,解密后服务器发送握手消息给客户端。

    8,客户端接受握手消息,握手结束,双方确定加密算法(使用随机串确定的对称性加密),开始传输。

    https传输在建立连接时使用的是非对称加密算法,一旦连接建立完成,有后续的通讯则使用了对称加密算法,这样做的好处是有利于数据传输效率。

    三,客户端怎么验证服务端发送过来的证书呢

    证书上写着如何根据证书的内容生成证书编号。客户端拿到证书后根据证书上的方法自己生成一个证书编号,如果生成的证书编号与证书上的证书编号相同,那么说明这个证书是真实的。同时,为避免证书编号本身又被调包,所以使用第三方机构的私钥进行加密。然后如果客户端验证证书编号通过就会通过第三方机构的公钥对证书解密获取到服务端的公钥!

    但是第三方机构的公钥怎么跑到了客户端的机器中呢?现实中,浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。

    四,CA如何颁发数字证书给服务器端的?

    1,签署合同确认支付方式

    2,准备CSR并选择确认方式

    3,在线提交申请

    4,确认申请办法证书

    五,加密

    1,对称加密 :有流式、分组两种,加密和解密都是使用的同一个密钥。例如:DES、AES-GCM、ChaCha20-Poly1305等

    2,非对称加密:加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥,公钥和算法都是公开的,私钥是保密的。非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。例如:RSA、DSA、ECDSA、 DH、ECDHE

    3,hash算法:将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。例如:MD5、SHA-1、SHA-2、SHA-256 等

    4,数字签名:签名就是在信息的后面再加上一段内容(信息经过hash后的值),可以证明信息没有被修改过。hash值一般都会加密后(也就是签名)再和信息一起发送,以保证这个hash值不被修改。

    相关文章

      网友评论

          本文标题:关于http与https的简单理解

          本文链接:https://www.haomeiwen.com/subject/wzkyzftx.html