TCP/IP协议||HTTP与HTTPS的区别

一、HTTP

Http(超文本传输协议),Http协议工作于应用层,其端口是40,是不安全的协议,URL以http://开头

都说Http协议不安全,Htttps协议安全,完全都可以用Https,也就不用Http了啊,问题所在是:Https协议中的SSL技术得向数字证书认证机构(CACertificate Authority)和其相关机关颁发的公开密钥证书。免费的很少,大都得花钱!!!而且都使用Https在具体项目中会导致成本增加。

不过Http协议存在以下问题:

1、通信使用明文(不加密),内容可能会被窃听和

由于 HTTP 本身不具备加密的功能,所以也无法做到对通信整体(使用 HTTP 协议通信的请求和响应的内容)进行加密。即,HTTP 报文使用明文(指未经过加密的报文)方式发送

2、不验证通信方的身份,因此有可能遭遇伪装

HTTP 协议中的请求和响应不会对通信方进行确认。也就是说存在“服务器是否就是发送请求中 URI 真正指定的主机,返回的响应是否真的返回到实际提出请求的客户端”等类似问题。

3、无法证明报文的完整性,所以可能已遭篡改

所谓完整性是指信息的准确度。若无法证明其完整性,通常也就意味 着无法判断信息是否准确由于 HTTP 协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉。换句话说,没有任何办法确认,发出的请求 / 响应和接收到的请求 / 响应是前后相同的。

二、HTTPS

Https工作在传输层,其端口是443,是安全的协议,URL以https://开头,出现在浏览器地址栏时URL前面会有一把绿锁

相反,Https就克服了以上的缺点

HTTPS 是身披 SSL 外壳的 HTTP,SSL是当今世界上应用最为广泛的网络安全技术。什么意思?就是SSL是一种技术,只不过在这里用到了Http协议上,当然这个SSL技术也可以用到SMTP和Telnet协议中去

Http如何解决Http中存在为问题呢?

Https使用混合加密机制保障了通信的安全性,这种混合加密是共享秘钥加密方式和公开秘钥加密方式

1、共享秘钥加密方式:

加密和解密同用一个密钥的方式称为共享密钥加密(Common key crypto system),也被叫做对称密钥加密。以共享密钥方式加密时必须将密钥也发给对方。可究竟怎样才能安全地转交?在互联网上转发密钥时,如果通信被监听那么密钥就可会落入攻击者之手,同时也就失去了加密的意义。另外还得设法安全地保管接收到的密钥。这个时候你可能会想,如果秘钥都能安全送过去,数据当然也就能安全送过去了,对的。不过这种方式处理起来速度快

TCP/IP协议||HTTP与HTTPS的区别_第1张图片

2、公开秘钥加密方式:

公开密钥加密方式很好地解决了共享密钥加密的困难。 公开密钥加密使用一对非对称的密钥。一把叫做私有密钥 (private key),另一把叫做公开密钥(public key)。顾名思 义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发 布,任何人都可以获得。 使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥 进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。 另外,要想根据密文和公开密钥,恢复到信息原文是异常困难的,因为解密过程就是在对离散对数进行求值,这并非轻而易举 就能办到。退一步讲,如果能对一个非常大的整数做到快速地因 式分解,那么密码破解还是存在希望的。但就目前的技术来看是不太现实的。

TCP/IP协议||HTTP与HTTPS的区别_第2张图片

而Https使用的就是共享秘钥加密和公开密钥加密两种方式进行加密,因为公开密钥加密方式太慢,先使用共享秘钥保证交换秘钥是安全的前提下,使用公开秘钥加密,如下图:

TCP/IP协议||HTTP与HTTPS的区别_第3张图片

公开密钥加密方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器 建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原 本预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被攻击者替换掉了。为了解决上述问题,可以使用由数字证书认证机构(CACertificate Authority)和其相关机关颁发的公开密钥证书。数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的 立场上。

你可能感兴趣的:(网络协议)