HTTPS协议简介

HTTP协议的缺点

HTTP协议是一个非常简单的协议,效率高同时方便快捷,但它在安全性方面却几乎没有做什么处理。这也是HTTP协议主要的缺点:
1、HTTP协议通信过程使用的是明文,可能会被窃听。
2、在传输的过程中没有验证对方的身份,可能出现伪装。
3、无法验证报文的完整性,可能遭到篡改。

HTTP+加密+认证+完整性保护=HTTPS

HTTPS就是为了解决HTTP协议的缺点而出现。一般情况下,HTTP直接与TCP进行通信,当使用了SSL后,就会编程先和SSL通信再和TCP通信了,当采用了SSL协议后,HTTP协议就具有了加密、认证和完整性保护等功能,这样子HTTPS就是披着SSL外壳的HTTP协议。
在这里插入图片描述

加密

加密技术主要分为两种:对称加密和非对称加密。
对称加密
SSL协议采用的就是对称加密技术。对称算法的加密算法都是公开的,但加密密钥是非公开的。所谓对称,就是加密密钥和解密密钥是一样的。传输过程是这样的:客户端堆传输的信息用密钥进行加密,然后将密文发送给服务端,服务端接收后拥相同的密钥解密获取信息,注意加密并没有防止窃听只是窃听获取到的信息为密文没有办法解密为明文。
在这里插入图片描述常见的对称加密算法有:流密码、DES、AES等。
对称加密的安全性完全依赖密钥,所以密钥的设计和保护尤为重要。这其中就会涉及一个问题,加密方对密钥加密后,必须将密钥发送给解密方,如果在发送的过程中通信被监听的话,密钥就会落入攻击者之手,加密也就失去了意义。
非对称加密
非对称加密的加密和解密使用不同的密钥,加密使用的是公开密钥,解密使用的是私有密钥(非公开)。公开密钥和私有密钥是配套的一对密钥。发送方使用对方发送过来的公开密钥进行加密,然后接收方通过自己的私有密钥解密,这样子就很好的克服了对称密钥的缺点。非对称加密算法往往是基于某个数学难题,如RSA就是基于大整数因式分解难题。就算攻击者知道了公开密钥也很难推导出私有密钥。
在这里插入图片描述常见的非对称加密算法有:RSA、Elgamal、ECC等。
非对称加密算法虽然安全性更强,但非对称加密算法复杂,加密解密花费时间长。
HTTPS采用混合加密机制
HTTPS协议采用混合加密机制。对称加密和非对称加密各有优劣,HTTPS协议充分利用二者的优势,在交换密钥环节使用非对称加密方式,之后的建立通信交换报文阶段则使用对称加密方式。
考虑的非对称加密处理速度较慢,在通信过程中使用会降低通信速度,所以我们选择在通信交换信息阶段使用对称加密,而对称加密的密钥交换的问题由非对称加密来解决,即用非对称加密算法将对称加密的密钥加密,发送给接收方。

认证

事实上,非对称加密还有一个缺陷,接收方没有办法证实收到的公开密钥是货真价实的公开密钥,或许公开密钥在传输的过程中被攻击者替换掉了。此时就引出了公开密钥证书机制。数字证书认证机构(CA,Certificate Authority)是客户端与服务器都可信赖的第三方机构。具体过程如下:
1、首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在认清申请者的身份,审核通过以后,会对开发者申请的公开密钥做数字签名(签名用的是私钥),然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。
2、服务器将该证书发送给客户端,客户端可使用认证机构的公开密钥对签名进行认证,将签名认证后的结果和服务器发送过来的公钥进行比对,如果一致,客户端便可以确认两件事情:一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的。
此处一定会有朋友提出来一个问题,如何将认证机构的公钥安全的交给客户端。在通信时,安全转交是一件非常困难的事情,因此大多浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。

完整性保护

一般的完整性保护采用的是对传输数据使用Hash函数产生一个哈希码,还有形象的说法就是数字指纹,因为Hash函数是多对一函数,所以一定将某些不同的输入变化成相同的输出,这就要求给定一个Hash值,求其逆是比较难,但通过给定的输入计算Hash值必须是很容易的,因此也称Hash函数为单向Hash函数。
Hash函数一般满足以下几个基本需求:
1、输入x可以任意长度
2、输出数据长度固定
3、容易计算,给定任何x,容易计算出x的Hash值
4、单向函数,即给出一个Hash值,很难反向计算出原始输入的x
5、唯一性,即难以找出两个不同的输入会得到相同的Hash输出值
如SHA_1,对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。由以上过程可以看出,完整性保护也是一种认证。

HTTPS协议的缺点

1、使用SSL时,处理速度会变慢。一种指通信慢,另一种是由于大量消耗 CPU 及内存等资源,导致处理速度变慢。因此,如果是非敏感信息则使用 HTTP 通信,只有在包含个人信息等敏感数据时,才利用 HTTPS 加密通信。
2、证书的开销问题。要进行 HTTPS 通信,证书是必不可少的。而使用的证书必须向认证机构(CA)购买。证书价格可能会根据不同的认证机构略有不同。通常,一年的授权需要数万日元(现在一万日元大约折合 600 人民币)。那些购买证书并不合算的服务以及一些个人网站,可能只会选择采用HTTP 的通信方式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值