HTTPS原理分析

HTTPS原理分析

HTTPS概述

HTTPS协议:超文本传输安全协议,是一种计算机网络进行安全通信的协议。由于HTTP协议的明文传输特点,因此容易被篡改,所有诞生了HTTPS协议。

HTTPS基于HTTP但利用SSL进行加密数据包。

HTTPS = HTTP + SSL。

数据加密

因为HTTP的明文传输特点,因此第一点想到的就是数据加密。加密分为两种方式:对称加密和非对称加密。

对称加密

使用同一个密钥,加密解密。报文通过加密后,只能使用唯一的密钥解密。

漏洞:密钥发过去的过程中存在被拦截问题。因为不发送密钥的话,消息的接收者也无法获知报文内容。
加比如,将消息放入一个加锁的盒子中发给对面,虽然中间人不能打开,但消息接收者也不能打开,必须将钥匙也发送过去,这个钥匙发送过去的时候就存在被截取的问题。

非对称加密

一把私钥对应一把公钥,私钥加密的内容只有公钥可以打开,公钥加密的内容也仅有私钥可以打开

假设A给B要发送一些重要数据。
  • B生成一对公私钥,将任意一个发送给A。
  • A收到后,用该密钥对数据进行加密后,再将数据发送
  • B收到数据,用另一个密钥解开,数据传输完毕。

解决对称加密中的密钥发送不安全问题。

漏洞:

假设B在发送密钥的过程中被C拦截,C生成一对新的密钥,并将自己生成的新的密钥发给A,此时A不知道,这样数据就发送到来坏人C的手中。B完全不知道。

产生这样的问题的关键是:A如何确定收到的密钥就是B发送过来的?

解决方案

第三方机构CA机构。提供一个数字证书,包装公钥,此时这个公钥就是一个得到证明的安全的公钥。第三方的拦截者不能伪造这个数字证书。

新的漏洞

假设C拦截到这个数字证书 ,自己编写了一段数据,并用B发过来的密钥进行加密,然后将数据发送给B。这样B就会收到错误的数据。

本质问题:B如何证明收到的数据就是A发送的?

解决方案

引入数字签名:A也产生一对公钥私钥,并用其中一个对数据摘要加密,然后将数据和另一个密钥(数字证书证明过的)一起发送回去。B收到后如果可以解开数据摘要(MD5算法)就能证明数据是A发过来的。

效率问题

非对称加密发送一个消息,需要波折三次,存在效率低下的问题。因此很多时候都采用非对称加密和对称加密两种方式。
使用非对称加密将对称加密的密钥发送过去,这样两者就能使用对称加密进行通信了。

整个过程如下:

证书验证阶段
  • 浏览器发起HTTPS请求
  • 服务器回应HTTPS证书
  • 客户端验证证书是否合法,如果不合法提出告警。
数据传输阶段
  • 证书验证合法后,浏览器本地生成随机数
  • 通过公钥加密随机数,并将随机数发送到服务端
  • 服务端通过私钥进行解密
  • 服务端和浏览器通过随机数生成对称加密算法,对数据进行加密传输
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值