文档章节

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

算法与编程之美
 算法与编程之美
发布于 2016/12/12 13:29
字数 992
阅读 510
收藏 26

基于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

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

© 著作权归作者所有

共有 人打赏支持
算法与编程之美
粉丝 290
博文 91
码字总数 100037
作品 0
成都
程序员
加载中

评论(1)

别业胜
别业胜
期待
小米和西工大联手,三篇论文被Interspeech接收

翻译 | 林椿眄 编辑 | 阿司匹林 出品 | 人工智能头条(公众号ID:AI_Thinker) 小米和西北工业大学的“交情”不浅。 去年 7 月,小米和西工大计算机学院的谢磊教授合作,在 arXiv 上提交了一...

AI科技大本营
06/19
0
0
java程序猿技术栈

一、java 基础知识 1.1 java基础集合类 1.2 jdk1.5、1.6、1.7、1.8 特效比较 1.3 java异常处理 1.4 jvm原理及常见问题 1.5 log4j等日志收集 1.6 jdbc驱动 1.7 jdk反射机制使用和原理 1.8 ja...

南寒之星
2016/11/30
17
0
量子计算云平台“中国版”启动 量子信息革命正在加速到来

11日,量子计算云平台“中国版”正式启动,量子计算的商业化落地近在咫尺。第二次量子信息革命正在加速到来,微观世界的中国“探梦者”,将如何解锁量子的“新密码”,开启未来科技的“新引...

雪花又一年
05/02
0
0
【政策】北京市科委发布最新征集新一代人工智能、脑认知与类脑技术等六大领域储备课题

去年,在国家层面频频出台一系列人工智能发展规划政策后,2018年地方进入政策落地实施阶段。 11日,北京市科委发布六份通知,征集2018年六大技术领域储备课题,这六大领域分别为: ①认知与类...

技术小能手
01/12
0
0
2014年度江西省高等学校科技落地计划项目立项名单

2014年度江西省高等学校科技落地计划项目立项名单 序号 项目编号 项目名称 负责人 承担单位 项目类别 1 KJLD14001 高频铁基非晶恒导磁滤波电感磁芯产业化技术研究 朱正吼 南昌大学 成果转化 ...

张祖锦
2014/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

django 2 urlpatterns 中正则匹配路由

django 2 urlpatterns 中正则匹配路由: 在项目的urls.py中导入re_path:

MichaelShu
12分钟前
0
0
Spring MVC 到 Spring Boot 的简化之路

背景 从Servlet技术到Spring和Spring MVC,开发Web应用变得越来越简捷。但是Spring和Spring MVC的众多配置有时却让人望而却步,相信有过Spring MVC开发经验的朋友能深刻体会到这一痛苦。因为...

别打我会飞
18分钟前
0
0
python做文本内容指定区域字符串替换

需求: 因为公司项目需要做SEO优化,所以对项目中的各种长连接做优化,比如本文中提到的精简路径;之前已经批量吧文本的路径名字等做过修改,这里不再赘述;这里的问题是外部的路径修改了,文...

坦途abc
43分钟前
4
0
MySQL 关键字模糊匹配,并按照匹配度排序

MySQL 关键字模糊匹配,并按照匹配度排序。 方式一、按照关键字搜索,然后根据关键字所占比例排序 SELECTdrug_name,pinyinFROMtbl_drugWHEREpinyin LIKE '%AM%'ORDER BY...

yh32
53分钟前
3
0
虚拟机学习之一:java内存区域与内存溢出异常

1.运行时数据区域 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途和创建、销毁时间,有的区域伴随虚拟机进程的启动而存在,有些区...

贾峰uk
53分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部