https

来源:互联网 发布:vscode颜色主题 编辑:程序博客网 时间:2024/04/29 19:29
一、HTTPS介绍

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer)

HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

1,HTTPS主要作用可以分为两种:

(1)是建立一个信息安全通道,来保证数据传输的安全;

(2)就是确认网站的真实性,凡是使用了 HTTPS的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询

2,HTTPS和HTTP的区别

(1)HTTPS协议需要到ca申请证书,一般免费证书很少,需要交费。

(2)HTTP超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。

(3)HTTPHTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

(4)HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

3,为什么用HTTPS

HTTP通信存在的问题

(1)容易被监听

  • HTTP通信都是明文,数据在客户端与服务器通信过程中,任何一点都可能被劫持。比如,发送了银行卡号和密码,hacker劫取到数据,就能看到卡号和密码,这是很危险的

(2)被伪装。

  • HTTP通信时,无法保证通行双方是合法的,通信方可能是伪装的。比如你请求www.taobao.com,你怎么知道返回的数据就是来自淘宝,中间人可能返回数据伪装成淘宝。

(3)被篡改

  • hacker中间篡改数据后,接收方并不知道数据已经被更改

4,HTTPS解决的问题

HTTPS不是一种新的协议,它是HTTP+SSL(TLS)的结合体,SSL是一种独立协议,所以其它协议比如smtp等也可以跟ssl结合。HTTPS采用了共享密钥加密+公开密钥加密的方式

1,防监听

  • 数据是加密的,所以监听得到的数据是密文,hacker看不懂。 

2,防伪装

  • 伪装分为客户端伪装和服务器伪装,通信双方携带证书,证书相当于身份证,有证书就认为合法,没有证书就认为非法,证书由第三方颁布,很难伪造

3,防篡改

  • HTTPS对数据做了摘要,篡改数据会被感知到。hacker即使从中改了数据也白搭。

5,HTTPS连接过程

(1)如果服务器直接将公钥发送给客户端,有什么后果?


结果:存在中间人攻击的情况

(2)安全传输公钥

Clipboard Image.png


客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。


如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。

要保证客户端收到的证书就是服务器下发的证书,没有被中间人篡改过。

(3)证书的安全传输

服务端:用hash函数+传输的公钥A ->数字摘要H,权威机构私钥加密数字摘要H ->数字签名。服务端将数字签名,权威机构私钥加密的公钥A,hash函数等信息发送给客户端。

客户端:用权威机构的公钥解密数字签名得到数字摘要H,用权威机构的公钥解密公钥A ->公钥A,hash函数+公钥A -> H',最终对比H和H'。

如果客户端能解密数字签名,说明证书是ca机构颁发的,如果H和H'一致,说明传输中信息没有被篡改。

附:加密算法

1,对称加密算法:AES、DES、3DES等

2,非对称加密算法:RSA、DSA、ECC等

在实际的操作过程中通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

原创粉丝点击