文档章节

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

算法与编程之美
 算法与编程之美
发布于 2016/12/12 13:29
字数 992
阅读 507
收藏 26
点赞 2
评论 1

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

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

© 著作权归作者所有

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

评论(1)

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

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

AI科技大本营 ⋅ 06/19 ⋅ 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 ⋅ 0

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

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

技术小能手 ⋅ 01/12 ⋅ 0

量子计算云平台“中国版”启动 量子信息革命正在加速到来

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

雪花又一年 ⋅ 05/02 ⋅ 0

2014年度江西省高等学校科技落地计划项目立项名单

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

张祖锦 ⋅ 2014/07/05 ⋅ 0

【目录】姜晔的技术空间目录

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

ioio_jy ⋅ 2014/09/15 ⋅ 0

《安天365安全研究》知识星球安全圈子说明

我们致力于安全就研究和分享,分享前沿技术和实战技术,都是毫无保留的分享。打造一个真正的技术交流圈子,在这个圈子中可以快速获取想要的资料。为了杜绝一些伸手党,我们提出了收费,但也提...

simeon2005 ⋅ 2017/10/24 ⋅ 0

国务院印发《关于全面加强基础科学研究的若干意见》

经李克强总理签批,国务院日前印发《关于全面加强基础科学研究的若干意见》(以下简称《意见》),对全面加强基础科学研究作出部署。 《意见》要求,要全面贯彻党的十九大精神,以习近平新时...

中国政府网 ⋅ 01/31 ⋅ 0

基于Android平台简易即时通讯的研究与设计

1 Android平台简介 Android是Google公司于2007年11月5日推出的手机操作系统,经过2年多的发展,Android平台在智能移动领域占有不小的份额,由Google为首的40多家移动通信领域的领军企业组成开...

今幕明 ⋅ 2014/12/11 ⋅ 0

安恒信息喜摘“工业信息安全优秀实践案例奖”

  5 月 24 日-25 日,首届中国工业信息安全大会在北京世纪金源大酒店举行,安恒信息受邀参加此次会议。而在工业信息安全优秀实践案例颁奖环节中,安恒信息的「大型火电机组工控网络和信息安...

FreeBuf ⋅ 05/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Gitee 生成并部署SSH key

1.如何生成ssh公钥 你可以按如下命令来生成 sshkey: ssh-keygen -t rsa -C "xxxxx@xxxxx.com" # Generating public/private rsa key pair...# 三次回车即可生成 ssh key 查看你的 ...

晨猫 ⋅ 39分钟前 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部