计算机网络查漏补缺--下-https协议

https

HTTPS = HTTP + 加密 + 认证 + 完整性保护。HTTP加上加密处理和认证以及完整性保护后即是HTTPS。

HTTP 主要有这些不足:

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

通信的加密 :

(1)将通信加密。HTTP 协议中没有加密机制,但可以通过和 SSLSecure Socket Layer安全套接层)或 TLSTransport Layer Security,安全层传输协议)的组合使用, 加密 HTTP 的通信内容。 用 SSL建立安全通信线路之后,就可以在这条线路上进行 HTTP 通信了。与 SSL组合使用的 HTTP 被称为 HTTPS(HTTP Secure,超文本传输安全协议)或 HTTP over SSL。

(2)内容的加密。客户端需要对 HTTP 报文进行加密处理后再发送请求。要求客户端和服务端具有具备加密和解密机制。

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

如果不验证通信方的身份,任何人都可发起请求。

虽然使用 HTTP 协议无法确定通信方,但如果使用 SSL则可以。 SSL不仅提供加密处理,而且还使用了一种被称为证书的手段, 可用于确定方。 证书由值得信任的第三方机构颁发,用以证明服务器和客户端是 实际存在的。另外,伪造证书从技术角度来说是异常困难的一件 事。所以只要能够确认通信方(服务器或客户端)持有的证书, 即可判断通信方的真实意图。

3.3  无法证明报文的完整性,所以有可能已遭篡改。

所谓完整性是指信息的准确度。若无法证明其完整性,通常也就意味 着无法判断信息是否准确。

由于 HTTP 协议无法证明通信的报文完整性,因此,在请求或响 应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉。SSL提供认证和加 密处理及摘要功能。仅靠 HTTP 确保完整性是非常困难的,因此 通过和其他协议组合使用来实现这个目标。

3.4 加密技术

加密技术可以分为两类:对称加密和非对称加密。

(1)对称加密:密钥只有一个,加密解密为同⼀个密码,且加解密速度快,典型的对称加密算法有DES、AES等;

利用这种加密方式加密时必须要把密钥也发送给对方,密钥在传输过程中如果被截获,那么也就失去了加密的意义。

(2)非对称加密::密钥成对出现(且根据公钥⽆法推知私钥,根据私钥也⽆法推知公钥),加密解密使⽤不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度慢,典型的⾮对称加密算法有RSA、DSA等。

非对称加密很好的解决了对称加密的不足之处。非对称加密使用一对非对称的密钥。一把叫做私有密钥(private key),另一把叫做公开密钥(public key)。顾名思义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。

使用非对称加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。

另外,要想根据密文和公开密钥,恢复到信息原文是异常困难的,因为解密过程就是在对离散对数进行求值,这并非轻而易举就能办到。退一步讲,如果能对一个非常大的整数做到快速地因式分解,那么密码破解还是存在希望的。但就目前的技术来看是不太现实的。

3.5 HTTPS的加密方式

HTTPS采用混合加密的方式,即同时采用了对称加密非对称加密

非对称加密虽然比对称加密更安全,但其不足之处就是加解密需要耗费更长的时间。所以HTTPS综合了两者的优势,在交换密钥环节使用了非对称加密方式,之后建立通信交换报文阶段则使用了对称加密方式

在上述过程,客户端和服务器先使用非对称加密,服务器将公钥返回给客户端,客户端在拿到服务端的公钥后,通过公钥对key进行加密后发送给服务器,服务器再使用它的私钥进行解密后得到key。这个key只有服务器才能拿到。随后客户端和服务端建立连接进行通信,为了提高通信效率,使用对称加密进行,密钥就是之前拿到的key。

HTTPS 正好综合了这两种加密算法的优点,不仅保证了通信安全,还保证了数据传输效率。

3.6 CA证书

遗憾的是,非对称加密方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器建立非对称加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被攻击者替换掉了。

为了解决上述问题,可以使用由数字证书认证机构(CA,Certificate Authority)和其相关机关颁发的公开密钥证书。

首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。

服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称为证书。 接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事: 一,认证服务器的公开密钥的是真实有效的数字证书认证机构。

3.7  HTTPS的通信过程

大致分为三个过程:证书验证、建立连接、数据传输

(1)客户端发送请求给服务器。

(2)服务器保存有CA证书,该证书中包含有非对称加密的公钥以及其他公司信息等。

(3)服务器响应请求,并且携带数字证书发送给客户端

(4)客户端接收到数字证书后,会进行解析,如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A。然后客户端还会生成一个随机码 KEY,并使用公钥A将其加密。

(5)客户端把加密后的key发送给服务器。

(6)服务器会使用它独有的私钥B对加密后的key进行解密得到key。此时客户端和服务器建立连接,保证了key只有双方才知道,为后面通信时数据传输做准备。

(7)服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。

(8)双方使用对称加密愉快地传输所有数据。

总结:HTTP和HTTPS的区别

  • 最重要的区别就是安全性,HTTP 明文传输,不对数据进行加密安全性较差。HTTPS (HTTP + SSL / TLS)的数据传输过程是加密的,安全性较好。

  • 使用 HTTPS 协议需要申请 CA 证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、DigiCert 和 GlobalSign 等。

  • HTTP 页面响应速度比 HTTPS 快,这个很好理解,由于加了一层安全层,建立连接的过程更复杂,也要交换更多的数据,难免影响速度。

  • 由于 HTTPS 是建构在 SSL / TLS 之上的 HTTP 协议,所以,要比 HTTP 更耗费服务器资源。

  • HTTPS 和 HTTP 使用的是完全不同的连接方式,用的端口也不一样,前者是 443,后者是 80。

HTTPS 缺点

  • 在相同网络环境中,HTTPS 相比 HTTP 无论是响应时间还是耗电量都有大幅度上升。

  • HTTPS 的安全是有范围的,在黑客攻击、服务器劫持等情况下几乎起不到作用。

  • 在现有的证书机制下,中间人攻击依然有可能发生。

  • HTTPS 需要更多的服务器资源,也会导致成本的升高。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值