HTTPS原理

HTTPS原理

HTTPS协议即超文本传输协议 + SSL通信协议(Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为为目的的HTTP通道, 其在HTTP协议的基础上增加了传输加密和身份认证。HTTPS存在一个不同于HTTP的默认端口及一个加密/身份验证层SSL(在HTTP与TCP之间),该层提供了身份验证和通讯加密方法。

TTPS协议产生的原因

既然有了HTTP协议,为什么还需要HTTPS协议呢?
首先HTTP协议在数据传输的过程中除了在报文头部存在传输数据的长度外可进行验证的数据外无其他安全验证措施,故而在使用HTTP协议进行数据传输的过程中很容易受到网络嗅探攻击和中间人攻击。因而在进行隐私数据或者安全性要求较高的数据传输时,HTTP协议显然不符合要求,因而诞生了HTTPS协议。

HTTPS协议与HTTP协议的基本区别

相较于HTTP协议,HTTPS协议在HTTP协议加上了TLS/SSL协议,该网络协议对传输的数据进行了加密和身份认证。TLS/SSL协议主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,同时上述几类技术当前也被用区块链及加密货币中。
HTTPS协议设计的目的是:
1. 数据保密性:数据传输的过程中数据不会被第三方查看
2. 数据完整性:及时发掘被第三方修改的内容
3. 身份校验安全性:保证数据到达用户期望的目的地
故而HTTPS提供双向的身份验证,加密传输的数据以及防止重放攻击等功能。

HTTPS协议的实现

加密方式
HTTPS协议所采用的加密方式为共享密钥加密和公开密钥加密混合的方式。在交换密钥的环节采用公开密钥加密的方式加密共享的密钥,这样可以有效的防止密钥被窃取.。在随后的通信过程中使用共享密钥的方式使用共享的密钥进行加解密。
共享密钥加密:共享密钥加密方式使用相同的密钥进行加密解密,通信双方都需要接收对方的加密密钥进行数据解密,这种方式在通信过程中必须交互共享的密钥,同样无法避免被网络监听泄漏密钥的问题;同时对于众多客户端的服务器来说还需要分配和管理密钥,对于客户端来说也需要管理密钥,增加设计和实现的复杂度,同时也降低了通信的效率。
公开密钥加密:公开密钥加密方式使用一对非对称的密钥对(私钥和公钥),不公开的作为私钥,随意分发的作为公钥;公钥和私钥都能进行数据加密和解密,公钥能解密私钥加密的数据,私钥也能解密公钥加密的数据;这样只需要一套密钥就能处理服务端和众多客户端直接的通信被网络监听泄漏密钥的问题,同时没有额外的管理成本。
认证方式
数字证书:数字证书由私钥的持有者签名产生,故而若传输的报文被篡改,则传输的数据报文将无法匹配。因而数字证书可以确保传输过程中报文的完整性。
证书信任方式包括:操作系统和浏览器内置、证书颁发机构颁发或者手动指定证书信任方式。
SSL底层是TCP协议,所以SSL连接是点到点的连接。SSL记录协议为SSL链接提供两种服务,机密性:握手协议定义了一个共享密钥,用于SSL载荷的对称加密。 消息完整性:握手协议还定义了一个共享密钥,它用来产生一个消息认证码(Message Authentication Code,MAC)。
SSL记录协议操作
1. 分段,将每个上层消息分解成不大于2^14(16384)位,然后有选择的进行压缩
2. 添加MAC,在压缩数据的基础上计算MAC
3. 加密,消息加上MAC用对称加密方法加密
4. 添加SSL记录头,内容类型(8位),主版本(8位),副版本(8位),压缩长度(16位)	
SSL握手过程
1. 第一阶段 建立安全能力 包括协议版本 会话Id 密码构件 压缩方法和初始随机数
2. 第二阶段 服务器发送证书 密钥交换数据和证书请求,最后发送请求-相应阶段的结束信号
3. 第三阶段 如果有证书请求客户端发送此证书 之后客户端发送密钥交换数据 也可以发送证书验证消息
4. 第四阶段 变更密码构件和结束握手协议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值