HTTP安全与HTTPS协议
创始人
2024-05-31 21:21:22
0

目录

Http协议的安全问题

常见的加密方式

防止窃听

单向散列函数

单向散列值的特点

加密与解密

对称加密与非对称加密

对称加密的密钥配送问题

密钥配送问题的解决 

非对称加密

前言:

公钥与私钥

非对称加密过程

混合密码系统

前言:

混合密码——加密

加密步骤

混合密码——解密

解密步骤

数字签名

前言

在数字签名技术中,有以下两种行为

数字签名过程

过程改进

 数字签名的作用

非对称加密与签名公钥私钥的角色

公钥的合法性

证书

前言

证书的使用

证书的注册和下载

HTTPS

前言

SSL/TLS

SSL/TLS工作在那一层

SSL协议功能

HTTPS的通信过程

TLS 1.2的连接

1.client Hello(方向:客户端到服务器)

2.server Hello(方向:服务器到客户端)

3.certificate(方向:服务器到客户端)

4.server key exchange(方向:服务器到客户端)

5.server Hello Done(方向:服务器到客户端)

6.client key exchange(方向:客户端到服务器)

7.change cipher spec(方向:客户端到服务器)

8.finished(方向:客户端到服务器)

9.change cipher spec(方向:服务器到客户端)

10.finished(方向:服务器到客户端)

Http协议的安全问题

前言:HTTP协议默认是采取明文传输的,因此会有很大的安全隐患

常见的提高安全性的方法:对通信内容进行加密后再进行传输

常见的加密方式

  • 不可逆:单向散列函数(MD5、SHA)
  • 可逆:对称加密(DES、3DES、AES等)、非对称加密(RSA)
  • 其他:混合密码系统、数字签名、证书

防止窃听

理解:发送方和接收方提前约定好加密解密方式,发送方将明文进行加密后变为密文在网上传输,接收方接收到密文后进行解密得到明文

单向散列函数

前言:单向散列函数,可以根据消息内容计算出散列值,其也被称为消息摘要函数或哈希函数,输出的散列值也被称为消息摘要或指纹

注意:散列值的长度和消息的长度无关,无论消息是1bit、10M、100G,单向散列函数都会计算出固定长度的散列值,但是拿到散列值推不回去以前是什么数据内容(单向性)

单向散列值的特点

  • 根据任意长度的消息,计算出固定长度的散列值
  • 计算速度快,能快速计算出散列值
  • 消息不同,散列值也不同(哪怕只有1bit的区别,也会产生完全不同的散列值)
  • 具备单向性

加密与解密

过程:

  1. 加密:使用密钥通过某种算法将明文加密成密文
  2. 解密:使用密钥通过某种算法将密文转化为明文 

对称加密与非对称加密

  • 对称加密:加密中的密钥和解密中的密钥是同一把密钥
  • 非对称加密:加密中用到的密钥和解密中用到的密钥是不同的

对称加密的密钥配送问题

总结:在对称加密的消息传输的过程中,加密的信息和密钥容易被黑客窃听,最终导致消息的泄露

密钥配送问题的解决 

  • 实现共享密钥(私下共享)
  • 密钥分配中心(KDC)
  • Diffie-Hellman密钥交换
  • 非对称加密

非对称加密

前言:

  • 在非对称加密中,密钥分为加密密钥、解密密钥两种,他们并不是同一个密钥
  • 非对称加密的加密与解密速度相对于对称加密来说很慢

公钥与私钥

  • 公钥:一般是公开的用于加密,因此该密钥也称为公钥,因此非对称加密称为公钥密码
  • 私钥:由消息接受者自己保管的用于解密,不能公开,因此也被称为私钥

非对称加密过程

  1. 由消息的接收者生成一对公钥、私钥
  2. 将公钥发送给消息的发送者
  3. 消息的发送者使用公钥加密信息
  4. 消息接收者使用私钥解密信息

注意:

  • 公钥和私钥是一一对应的,不能单独生成
  • 一对公钥和私钥统称为密钥对
  • 由公钥加密的密文,必须使用与公钥对应的私钥才能解密,由私钥加密的密文,必须使用与该私钥对应的公钥才能解密

混合密码系统

前言:

  • 对称加密不能很好的解决密钥配送问题
  • 非对称加密解密速度比较慢

含义:混合密码系统是将对称加密和非对称加密的优势相结合的方法

注意:网络上的密码通信所用的SSL/TLS都运用了混合密码系统

混合密码——加密

会话密钥:通信时随机产生的临时密钥作为对称加密的密钥,用于加密信息提高速度

加密步骤

  1. 首先,消息发送者要拥有消息接收者的公钥
  2. 生成会话密钥,作为对称加密的密钥加密信息
  3. 用消息接受者的公钥,加密会话密钥
  4. 将前两步生成的加密结果一并发给消息接收者 

混合密码——解密

解密步骤

  1. 消息接收者用自己的私钥解密出会话密钥
  2. 再用第一步解密出来的会话密钥解密消息

数字签名

前言

以下场景alice给bob发消息(我喜欢你)但是出现了以下情况

这里alice发的内容可能是被篡改的,或者有人伪装的,或者本来就是alice发的,但是它可以否认,那么bob如何确定这段消息的真实性呢?

注意:数字签名并不是用来数据加密的,而是要保证数据的可靠性的

在数字签名技术中,有以下两种行为

  • 生成签名:由消息的发送者完成,通过“签名密钥”生成
  • 验证签名:由消息的接收者完成,通过“验证密钥”来验证

数字签名过程

整个过程:

  1. 发送者生成一对密钥对,同时使公钥让接收者知道
  2. 发送者将要发送的消息用自己的私钥进行加密,进而变成签名
  3. 发送者将消息及签名一并发送给消息接收者
  4. 接收者收到消息及签名后,用发送者的公钥进行解密签名得到数据
  5. 将解密的数据与消息比较,若一致则签名验证成功

注意:一般数字签名不会对整个消息进行加密解密,这样的话效率太慢 

过程改进

整个过程:

  1.  发送者生成一对密钥对,同时使公钥让接收者知道
  2. 发送者将消息通过单向散列函数计算出散列值
  3. 发送者用自己的私钥将这个散列值进行加密得到签名
  4. 发送者将消息及签名一并发送给接收者
  5. 接收者用公钥解密签名得到散列值1
  6. 接收者对消息进行散列计算得到散列值2
  7. 接收者对比两个散列值,若散列值一致则签名验证成功

 数字签名的作用

  • 确认消息的完整性
  • 识别消息是否被篡改
  • 防止消息发送人否认

非对称加密与签名公钥私钥的角色

  • 既然是加密,那肯定是不希望别人知道我的信息,所以只有我才能解密(公钥负责加密。私钥负责解密)
  • 既然是签名,那肯定不希望有人冒充我发信息,所以只有我才能签名(私钥负责签名,公钥负责验签)

公钥的合法性

前言:若遭遇了中间人攻击,那么公钥将是可以伪造的,如何验证公钥的合法性(证书)

简单理解:中间人Mallory对接收人的公钥以及发送者的密文进行了劫持,将自己的公钥发送给发送人, 接收发送人发送过来的密文并将密文篡改发送给接收人(这里公钥被篡改了)

证书

前言

说到证书首先会联想到驾驶证、毕业证、英语四六级证等等,都是由权威机构认证的,而密码学中的证书全程叫做公钥证书,跟驾驶证类似,里面有姓名、邮箱等个人信息,以及此人的公钥并由认证机构(certificate authority)施加数字签名

注意:

  • CA就是能够认定"公钥确实属于此人"并能够生成数字签名的个人或组织
  • 一些认证机构的公钥已经被集成到浏览器当中了

证书的使用

证书的注册和下载

HTTPS

前言

含义:HTTPS(hyperText transfer protocol secure),译为超文本传输安全协议,常称为HTTP over TLS、HTTP over SSL、HTTP Secure;其是由网景公司于1994年提出的,其是以安全为目标的HTTP通道,简单讲就是HTTP的安全版本。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

注意:

  • HTTPS的默认端口号为443
  • HTTPS协议需要ca申请整数,一般免费证书很少,需要交费。
  • HTTPS是在HTTP的基础上使用SSL/TLS来加密报文,对窃听和中间人攻击提供了合理的防护
  • SSL/TLS也可以用在其他协议上(FTP——FTPS、SMTP——SMTPS)

SSL/TLS

  • SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证,使用数字签名确保完整性,使用加密确保私密性,以实现客户端和服务器之间的安全通信。该协议由两层组成:SSL记录协议和SSL握手协议
  • TLS:(Transport Layer Security)传输层安全协议,前身是SSL

SSL/TLS工作在那一层

SSL协议功能

  • 保证传输数据的保密性
  • 保证传输数据的完整性
  • 实现通信双方的互相身份认证

HTTPS的通信过程

  • TCP的三次握手
  • TLS的连接
  • HTTP请求和响应

TLS 1.2的连接

注意:图片中省略了中间产生的一些ACK确认

1.client Hello(方向:客户端到服务器)

  • 所用TLS版本号
  • 支持的加密组件列表(加密组件是指所使用的加密算法及密钥长度等)
  • 一个client随机数

2.server Hello(方向:服务器到客户端)

  • TLS版本号
  • 从客户端加密组件里面中选择好的加密组件
  • 一个server随机数

3.certificate(方向:服务器到客户端)

  • 服务器的公钥证书(被CA签名过的)

4.server key exchange(方向:服务器到客户端)

  • 用以实现ECDHE算法(一种密钥交换算法)中的一个参数(Server Params——为了防止伪造,该参数经过了服务器私钥签名)

5.server Hello Done(方向:服务器到客户端)

  • 告知客户端,协商部分结束

到目前为止,客户端和服务器通过明文共享了 client random、server random、server params(客户端使用服务器的公钥进行验证),而且客户端也拿到了服务器的公钥证书,之后客户端就开始通过浏览器内置的CA公钥来验证证书的有效性,若证书没问题就可以拿到证书里面的服务器公钥

6.client key exchange(方向:客户端到服务器)

  • 用以实现ECDHE算法的另一个参数(client params)

到目前为止,客户端和服务器都含有ECDHE算法需要的两个参数:server params、client params;此时客户端和服务器都可以使用ECDHE算法;这时根据这两个参数计算出一个随机密钥串:Pre-master secret,然后结合client random、server random、Pre-master secret生成一个主密钥,最后利用主密钥衍生出其他密钥:客户端发送用的会话密钥、服务器发送用的会话密钥等(采用对称加密的方式——客户端发送的数据用客户端会话密钥加密,服务器收到该密文也用客户端会话密钥进行解密,反之亦然)

7.change cipher spec(方向:客户端到服务器)

  • 告知服务器:之后的通信会采用计算出来的客户端会话密钥进行加密

8.finished(方向:客户端到服务器)

  • 告知服务器,该TLS连接差不多了
  • 包含连接至今全部报文的整体校验值(摘要),(用客户端会话密钥)加密后发送给服务器

注意:这次握手协商是否成功要以服务器是否能够正确解密该报文作为判断标准

9.change cipher spec(方向:服务器到客户端)

  • 告知客户端:之后的通信会采用计算出来的服务器会话密钥进行加密

10.finished(方向:服务器到客户端)

  • 告知客户端,该TLS连接差不多了
  • 服务器将数据用服务端会话密钥加密发送给客户端

到此为止,客户端服务器都验证加密解密没问题,握手正式结束;后面开始传输(session密钥)加密的HTTP请求和响应

相关内容

热门资讯

安卓系统的移动加密软件,安全守... 你知道吗?在这个信息爆炸的时代,保护个人隐私变得尤为重要。而手机,作为我们日常生活中不可或缺的伙伴,...
最低安卓系统淘汰时间,揭秘最低... 你知道吗?在科技飞速发展的今天,手机更新换代的速度简直就像坐上了火箭!这不,最近有个话题在数码圈里炒...
安卓系统什么框架好用,探索最佳... 你有没有想过,你的安卓手机里那些应用,是怎么运行得那么顺畅的呢?其实,这背后可是有“大功臣”的——那...
平板安卓系统和ios,安卓与i... 你有没有发现,现在身边的朋友几乎人手一台平板电脑呢?无论是追剧、办公还是游戏,平板电脑都成了我们生活...
安卓的定位系统叫什么,GPS导... 你有没有想过,你的手机是怎么知道你在哪儿的呢?是不是觉得这事儿很神奇?其实,这背后有一个强大的技术支...
老式电视安卓系统升级,解锁智能... 你有没有发现,家里的老式电视突然变得聪明起来啦?没错,就是那个陪伴我们多年的老伙伴,它竟然悄悄地升级...
长安车载系统升级安卓 你有没有发现,最近你的长安车好像变得聪明多了?没错,就是那个车载系统,它悄悄地进行了安卓升级,简直就...
安卓系统损坏标志图,故障原因与... 手机突然间闹起了脾气,屏幕上那个安卓系统损坏的标志图,简直就像是个不速之客,突然闯进了你的生活。别急...
安卓系统自带投屏,轻松实现多屏... 你是不是也和我一样,有时候想把自己的手机屏幕上的内容分享给朋友或者家人看,但又觉得用数据线连接太麻烦...
mac可以下安卓系统么 亲爱的果粉们,你是否曾有过这样的疑问:Mac可以下安卓系统吗?这个问题,不仅让你我好奇,也让不少科技...
diy主机安卓系统推荐 亲爱的DIY爱好者们,你是否曾梦想过拥有一台完全由自己组装的安卓主机?想象一台运行流畅、功能强大的安...
安卓13系统可以安装吗 你有没有听说安卓13系统已经发布了?是不是迫不及待想要升级你的手机,体验一下新系统的魅力呢?不过,在...
手机壳平价推荐安卓系统,时尚与... 手机壳可是咱们手机的最佳守护者呢!想象你的宝贝手机在日常生活中难免会遭遇各种“小意外”,有了手机壳,...
麦芒是安卓系统吗,深度解析安卓... 你有没有想过,手机里的那个麦芒,它是不是安卓系统呢?这个问题,估计不少手机控都好奇过吧!今天,就让我...
苹果x系统感觉像安卓,安卓风潮... 你有没有发现,最近苹果的X系统好像有点儿像安卓呢?是不是觉得苹果的“高贵”形象突然变得有点儿接地气了...
小米的安卓系统设置在哪,轻松生... 你有没有发现,小米手机的操作界面简洁又美观,功能强大到让人爱不释手?但是,有时候你可能会觉得,这个设...
安卓系统荣耀排第一,引领智能手... 你知道吗?在智能手机的世界里,有一个系统可是风头无两,那就是安卓系统!而在这众多安卓手机品牌中,有一...
充电宝带安卓系统,便携式智能电... 你有没有想过,你的充电宝也能拥有自己的操作系统呢?没错,就是安卓系统!听起来是不是很酷?想象你的充电...
安卓类原生系统手机推荐,精选原... 你有没有想过,拥有一部安卓类原生系统手机,就像是拥有了掌控自己世界的魔法棒?没错,原生系统带来的流畅...
努比亚安卓13系统下载,下载与... 你有没有听说?努比亚手机最近可是大动作连连呢!他们推出了全新的安卓13系统,而且现在就可以下载啦!是...