前言:
一、浅谈HTTPS
我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的。目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度、谷歌等。HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。网上有诸多资料,有些写得过于晦涩难懂,尤其是需要密码学的一些知识。我做了一下简单的整理,刨除复杂的底层实现,单从理解SSL协议的角度宏观上认识一下HTTPS。一言以弊之,HTTPS是通过一次非对称加密算法(如RSA算法)进行了协商密钥的生成与交换,然后在后续通信过程中就使用协商密钥进行对称加密通信
【文章末尾给大家留下了大量的福利】
一、HTTPS握手公钥私钥非对称加密解密原理以及数字证书由来。
(1) HTTPS协议=HTTP协议+SSL协议,默认端口:443
(2) HTTP协议(HyperText Transfer Protocol):超文本传输协议。默认端口:80,其中包含请求和响应两部分,其中请求包含:请求行、请求头、请求正文,响应包含:响应行、响应头、响应正文。
(3) SSL协议(Secure Socket Layer) 安全套接层:为NetScape所研发,用以保障在Internet上数据传输的安全,利用数据加密技术,封装各种高层协议(如:http协议),具体实施压缩解压缩、加密解密、计算和校验MAC等与安全有关的操作。可确保数据在网络上的传输过程中不会被截取及窃听。
(4) 加密和认证:加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容。而身份认证是用来判断某个身份的真实性,其重点在于确认用户的真实性。两者的侧重点是不同的。加密和认证是通过RSA加密算法来实现的。
(5)RSA加密算法:RSA加密算法是1977年由(美国麻省理工学院)研发的。此算法中加密和认证都是通过一对密钥(公钥和私钥)来实现的,它是目前最有影响力的秘钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为秘钥数据加密标准。
(6) 公钥和私钥:(公钥私钥加密解密方式为非对称加密方式)在现代密码体制中,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个