HTTP与HTTPS

1 HTTP说起

HTTP是一个应用层通信协议用于从WWW服务器传输超文本到本地浏览器传输的数据都是未加密的内容可能会被窃听。

一种解决方案是对通信报文的内容进行加密,对通信报文内容加密仅仅是达到让攻击者难以破解的目的,但是加密后的报文本身还是能够被截获;另一种加密方式是将通信加密,HTTP配合SSL(安全套接层)或TLS(安全传输层协议)来对通信进行加密

                               

2 HTTPS概述

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)以安全为目标的HTTP通道SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。协议的主要作用分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。


3 加密方式

3.1 对称加密(共享密钥加密)

客户端和服务器都用同一把钥匙对报文加密或解密,密钥需要在通信的过程中发给对方。一旦在通信过程中密钥被攻击者获取,报文加密便失去了意义。


3.2 非对称加密(公开密钥加密)

对称加密带来了一个问题如何安全地把密钥发送给对方,非对称加密则较好地解决了这个问题,非对称加密同时使用一把公有密钥一把私有密钥。

公有密钥是对通信双方公开的,任何人都可以获取,而私有的则不公开。发送方使用这把公有密钥对报文进行加密,接收方则使用私有的密钥进行解密,并且仅仅通过密文和公有密钥是很难破解密文。

使用共有密钥也隐藏着一些问题,就是如何保证公有密钥的真实性?解决办法是通过证书来保证公有密钥的真实性。


3.3 HTTPS的加密方式

HTTPS采用混合加密机制。对称加密面临的问题是如何安全地把共享密钥发送给对方,HTTPS首先通过公有密钥来对共享密钥进行加密传输当共享密钥安全地传输给对方后,双方则使用共享密钥的方式来加密报文,以此来提高传输的效率。

4 HTTPS的握手机制


HTTPS是在已有TCP连接的基础上进行握手,具体步骤如下。

1) 客户端发起HTTPS请求

2) 服务端的配置采用HTTPS协议的服务器必须要有一套数字证书,这套证书其实就是一对公钥和私钥公钥给别人加密使用,私钥给自己解密使用

3) 传送证书到客户端。这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等

4) 客户端解析证书。如果证书有效客户端则生成一个随机数串作为以后的共享密钥用证书中的公钥对该随机数串进行加密

5) 服务端传送加密后的共享密钥到客户端;

6) 服务器得到加密报文,用私有密钥解密报文,得到共享密钥

7) 传输加密后的信息服务共享密钥加密信息,发送给客户端;

8) 客户端解密信息客户端用共享密钥解密服务传过来的信息

二者区别


1) HTTPS协议需要到ca申请证书或自制证书;

2) 连接方式不同。HTTP直接与TCP层进行数据传输,HTTPS则通过SSL层与TCP进行数据传输;

3) 通信端口不同。HTTP使用80端口,HTTPS使用443端口;

HTTPS加密是在传输层HTTPS报文在被包装成TCP报文之前已经完成加密。

6 HTTPS优缺点

1) 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

2) 连接建立效率低。HTTPS除了TCP连接请求响应之外,还需要进行SSL通信握手阶段比较费时;

3) 通信阶段开销增加。每个报文都需要进行加密和解密比起HTTP会消耗更多的资源

4) 加密范围有限HTTPS协议在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值