基于HTTPS的安全机制的研究(二)

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: 基于HTTPS的安全机制的研究(二)

基于HTTPS的安全机制的研究(一) 接上文。

2.3 混合加密方式

接下来我们探讨采用对称加密+非对称加密混合加密方式。


通过2.1 对称加密方式 一节的分析,我们知道,此种方式最大的问题在于密钥的安全性,一旦密钥被攻击者获取,那么本次传输将变为明文传输。通过2.2 非对称加密方式 我们了解非对称加密只是单向安全的数据传输,即只有客户端到服务器的传输才是安全的。


结合二者的特点,我们提出,通信双方所有的数据传输采用对称加密方式,密钥的传输采用非对称加密方式。


一种典型的场景是:


服务器生成公钥和私钥,并将公钥发给客户端;

客户端生成对称加密的密钥,用公钥对该密钥进行加密,并发给服务器,之后所有的数据传输都使用该密钥进行加密;

服务器收到该客户端发过来的经公钥加密的数据,使用私钥对其解密,从而得到客户端的密钥,之后所有来自该客户端的数据,都使用该密钥解密。

这种混合加密的方式在一定程度上确实能提高数据传输的安全性,但是它就一定安全吗? 我们日常上网经常会使用代理服务器,如果代理服务器伪造来自真实服务器的公钥并发给客户端,那么之后所有的传输也将变为明文传输。


因此,对于混合加密方式核心的问题在于无法确认该公钥是否来自真实服务器,而不是代理服务器的公钥。


2.4 证书

在混合加密方式中,客户端是直接向服务器请求公钥,该公钥有可能被伪造。我们改进一下这种方式,引入证书的概念。


证书包含三部分信息:


服务器公钥等明文信息;

摘要;

数字签名;

摘要 = hash(明文信息);


数字签名 = 该证书的颁发机构私钥加密(摘要);


一种典型的场景是:


客户端向服务器请求证书;

找到证书颁发机构的证书,获取公钥,然后解密数字签名,得到摘要A;

hash(明文信息) = 摘要B;

比较A和B是否相等,验证证书合法性。

此举能够验证该证书确实是由某证书机构颁发的,但是该机构就一定是合法的吗?所以需要再次验证它的合法性。


采取上述同样的方法来验证该机构的合法性,一层层的向上验证,最终在客户端浏览器中会预先安装全球受信任的证书颁发机构的证书,我们称之为根证书。


所以对于每一个服务器的证书,采取向上一层层的验证证书颁发颁发机构的合法性,只要最终经过了根证书的验证,则表示该证书是合法的。


后面的博客将探讨https实现的细节,如果您有兴趣可关注后续博文。


参考文献

[1] 腾讯Bugly.全站 HTTPS 来了.[EB/OL].[2016-12-09].https://segmentfault.com/a/1190000004199917


附录

常见的hash算法: MD5 SHA1 SHA256


常见的对称加密算法: DES 3DES TDEA Blowfish RC5 IDEA


常见的非对称加密算法: RSA ECC Elgamal


如果您对算法或编程感兴趣,欢迎扫描下方二维码并关注公众号“算法与编程之美”,和您一起探索算法和编程的神秘之处,给您不一样的解题分析思路。


相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
7月前
|
应用服务中间件 网络安全 nginx
Nginx学习研究-Nginx 安装 SSL 配置 HTTPS
Nginx学习研究-Nginx 安装 SSL 配置 HTTPS
274 0
|
11月前
|
安全 算法 数据安全/隐私保护
基于HTTPS的安全机制的研究
基于HTTPS的安全机制的研究
53 0
|
11月前
|
安全 数据安全/隐私保护
基于HTTPS的安全机制的研究(一)
基于HTTPS的安全机制的研究(一)
47 0
|
应用服务中间件 网络安全 数据安全/隐私保护
HTTPS双向认证研究
作者:楚骧 研究HTTPS的双向认证实现与原理,踩了不少坑,终于整个流程都跑通了,现在总结出一篇文档来,把一些心得,特别是容易踩坑的地方记录下来。 # 1.原理 双向认证,顾名思义,客户端和服务器端都需要验证对方的身份,在建立Https连接的过程中,握手的流程比单向认证多了几步。单向认证的过程,客户端从服务器端下载服务器端公钥证书进行验证,然后建立安全通信通道。双向通信流程,客户
9084 0
【.Net MF网络开发板研究-02】Http Server功能演示
文章介绍的是真正的Http Server,支持GET和POST功能。同样我们还是在官方示例Http Server上进行修改,为了使示例更清晰,我们尽可能把代码做的更简单一些。
610 0
|
Web App开发 前端开发 网络协议
“.NET研究”构建高性能ASP.NET站点之优化HTTP请求
  本篇就开始细化页面的请求过程并且提出优化的方案.同时,在上篇文章中,不少朋友也提出了一些问题,在本篇中也对这些问题给出了回答!   本篇的议题如下:   HTTP请求的优化   HTTP请求的优化   在一个网页的请求过程中,其实整个页面的html结构(就是页面的那些html骨架)请求的时间是很短的,一般是占整个页面的请求时间的10%-20%.
917 0
|
Web App开发 缓存 JavaScript
HTTP 协议中 Vary 的一些研究
经常抓包看 HTTP 请求的同学应该对 Vary 这个响应头字段并不陌生,它有什么用?用 PageSpeed 工具检查页面时,经常看到「Specify a Vary: Accept-Encoding header(请指定一个 Vary: Accept-Encoding 标头)」这样的建议,为什么要这样做?本文记录我对 Vary 的一些研究,其中就包含这些问题的答案。
1711 0
|
2月前
|
前端开发
webpack如何设置devServer启动项目为https协议
webpack如何设置devServer启动项目为https协议
149 0