目录
HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。
HTTP传输的数据是经过加密的
#########################################################################################
1.传输信息安全性不同
http协议是超文本传输协议,传输信息时是明文传输的,如果攻击者截取了浏览器与服务器之间的传输报文,就可以直接读懂其中的信息
https 协议相当于http + ssl加密传输协议,为浏览器与服务器之间的通信加密,确保通信安全
2、连接方式不同
http连接是简单地,无状态的
https是有ssl + http协议构建的,可进行加密传输,身份认证的网络协议
3、端口不同
http协议使用的端口是80端口
https协议使用的端口是443端口
4、证书方式
https协议需要申请证书,证书是需要收费的。
http协议免费
对称加密:
对称加密(单秘钥加密),通信双方使用同一个秘钥进行数据的加密和解密,对称加密算法的过程如下:
第一步,发送方将数据根据某种加密算法进行加密,然后发送给接收方
第二步,接收方收到加密后的数据,再根据加密算法对数据进行解密得到原始的数据
对称加密算法速度快但是安全性不足,如果某一方秘钥泄露,那么所有采用此秘钥进行加密的数据都会被破解,接收方和加密方的信息安全将面临威胁
#########################################################################################
非对称加密
非对称加密有公开秘钥(public key)和私有秘钥(private key),两个秘钥不一样,通信双方加密的时候使用一个秘钥,在解密的时候使用另外一个秘钥,体现出非对称性特点,公钥是对外公开的,但是私钥是自己保管,常见非对称加密算法有RSA,ECC等
哈希算法
哈希(Hash)算法即散列算法,是指设计一个散列函数把一个任意长度的输入转变为固定长度的输出,该输出就是散列值
#########################################################################################
可以看到,客户端发出的请求很容易被黑客接货截获,如果此时黑客冒充服务器,则其可以返回任意信息给客户端,因为没有任何认证的方式证明黑客发送的信息到底是不是服务器发送的
所以使用HTTP传输有被黑客监听或者篡改的风险
#########################################################################################
公钥和私钥是一对加密使用的秘钥(字符串),可以自己产生也可以向CA申请
#########################################################################################
HTTPS握手过程:
第一次:客户端向服务器发送请求第二次:服务器将数字证书(经过认证的公钥)发送给客户端
客户端收到证书后会验证证书的有效性,如果证书无效,则会停止HTTPS请求
如果证书有效,客户端会随机一个秘钥(client key)用来给后面的数据传输加密
第三次:客户端使用公钥对 客户端生成的数据加密秘钥client key进行非对称加密,传输client key 给服务器
服务器收到以后会使用私钥进行解密获取到client key
第四次:服务器将请求的数据用client key进程对称加密发送给客户端
客户端收到以后就使用client key对请求的数据进行解密,完成数据传输
注意:HTTPS握手是在TCP握手之后的,所以HTTPS握手比HTTP握手要多四次