文档章节

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

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

© 著作权归作者所有

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

评论(1)

别业胜
别业胜
期待
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
小米和西工大联手,三篇论文被Interspeech接收

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

AI科技大本营
06/19
0
0
量子计算云平台“中国版”启动 量子信息革命正在加速到来

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

雪花又一年
05/02
0
0
【目录】姜晔的技术空间目录

逆向工程系列 逆向工程第001篇:解锁FIFA07传奇模式 逆向工程第002篇:打造自己的仙剑奇侠 逆向工程第003篇:跨越CM4验证机制的鸿沟(上) 逆向工程第004篇:跨越CM4验证机制的鸿沟(中) 逆...

ioio_jy
2014/09/15
0
0
开源中国参与科技部《云计算与大数据》重点项目建设

开源中国参与科技部《云计算与大数据开源社区生态系统》重点研发项目建设 2018 科技部国家重点研发项目《云计算与大数据开源社区生态系统》(项目编号:2018YFB1004200)下的子课题《安全可控...

oschina
07/02
2.2K
27

没有更多内容

加载失败,请刷新页面

加载更多

并发+超时示例

func installMantisAgent() {log.Println("begin auto repair mantis agent")num := 0succNum := 0failNum := 0var Q *queue.Queueswitch g.Config().RepairType {ca......

我爱吃葱花
13分钟前
0
0
增加一列自增id

ALTER TABLE xxxx ADD iSiteId INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;

colin_86
22分钟前
2
0
开发函数计算的正确姿势 —— 爬虫

在 《函数计算本地运行与调试 - Fun Local 基本用法》 中,我们介绍了利用 Fun Local 本地运行、调试函数的方法。但如果仅仅这样简单的介绍,并不能展现 Fun Local 对函数计算开发的巨大效率...

阿里云官方博客
27分钟前
0
0
安卓代码混淆

Proguard是安卓提供的方便开发者对代码和apk进行保护和精简的工具,可在SDK/tools文件夹下找到。 proguard的作用 : 1,代码混淆 2,精简代码,删掉没有用到的代码,减小apk的体积。 使用场景...

whoisliang
31分钟前
1
0
配置Tomcat虚拟主机

12月13日任务 16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志 配置tomcat监听80端口 默认tomcat监听的是8080端口,如果想直接输入ip就访问到网页,就需要进行...

robertt15
37分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部