文档章节

密码学——网间数据加密传输全流程(SSL加密原理)

花果山妖
 花果山妖
发布于 2014/08/02 13:23
字数 2010
阅读 75
收藏 0
点赞 0
评论 0

0.导言

  昨天写了一篇关于《秘钥与公钥》的文章,写的比较简单好理解,有点儿像过家家,如果详细探究起来会有不少出入,今天就来详细的说明一下数据加密的原理和过程。这个原理就是大名鼎鼎SSL的加密原理,哦,对了,有人说上个月SSL刚爆出本年度最轰动的漏洞“心脏滴血”,可能危及全球好多互联网企业,那这个东西靠谱吗?其实,爆出漏洞的是SSL的一款产品openssl,是程序员编码时候的失误,是程序上的漏洞,而非SSL原理上出现了问题,所以SSL还是靠谱的,HTTP协议还是需要它来保护,我们不应该因为一个个人的失误,而否定一项很犀利的技术。好啦,我们开始吧,先看看下面的图:

情景假设

发送方:李雷

接收方:韩梅梅

发送内容:一封很长很长的信。

1.准备阶段

  首先,李雷想发邮件给韩梅梅先要经过韩梅梅的授权,韩梅梅要事先把含有自己公钥的数字证书发送给李雷。这就引出了数字证书的概念。

1.1数字证书:

  数字证书简称CA,又叫公钥证书(对公钥和私钥概念不清楚的可以参考这篇文章。《公钥与私钥》),是由权威机构颁发的一种电子证书,这里的权威机构一般都是官方认证的机构,里面包含了使用者的公钥和一些其他的信息。当然,windows系统里也自带证书服务器,也就是说,如果你自己想给别人颁发证书的话也可以,但因为你并不具有权威,所以不会有人用你颁发的证书,除非你想自己建一个网站(例如电商网站),需要安全数据传输,如果别人使用你的网站,需要在你这里注册证书,但你的证书还是不会被操作系统信任,一般都要去官方的机构注册还能有效。

  注意,证书的颁发机构,使用者和拥有者是不同的三个人。

  颁发机构是第三方官方认证机构,保证证书的权威性。

  使用者是颁发给的那个人,是真正的证书持有者,数字证书就相当于该人的身份证,里面记录了他的公钥。

  拥有者可以是很多人,证书的使用者可以把自己的证书发送给他人,用来和他人发生安全的通信。

  数字证书里面含有身份认证的相关信息:持有者的公钥、证书指纹、加密所有算法,证书有效期等等。下图为我电脑windows系统下的一个微软颁发的证书。我们在图中可以看到上述所说的信息,这里的颁发机构是 Microsoft Windows Hardware Compatibility PCA,使用者是 Microsoft Windows Hardware Compatibility Publisher,拥有者当然是我啦。所以,一个人如果拥有了对方的数字证书,也就拥有了对方的公钥。

1.2 获取接收方证书

  所以,在发送方想发送加密信息之前,要先从接收方那里获得数字证书。这里的情景也就是韩梅梅要事先把自己的证书发送给李雷。

2.加密阶段

2.1 制作信息摘要

 

  如上图(可以参考文章最开始大图),加密的第一步就是将原文的明文信息利用Hash函数制作出一个加密的信息摘要,这个信息要比原文小的多,因为Hash函数式不可逆的,所以无法从加密的摘要信息反推回原文。这个信息将作为解密时的校验信息。

2.2 制作数字签名

  将上一步得到的信息用发送方李雷的私钥加密,制作出数字签名。数字签名就是最后解密是接收方韩梅梅校验发送方身份的所利用的信息。

2.3 制作正文密文。

  将信件明文,上一步得到的数字签名,和发送方李雷自己的数字证书方在一起进行对称加密。这里介绍下对称加密的概念,首先说公钥和私钥的加密形式叫做非对称加密,是两把不同的秘钥不想加锁和开锁,自己不能开自己。而对称加密就是只有一个秘钥,用它来枷锁也用它来解锁。对称加密存在安全隐含,因为你必须让发送方和接收方都知道这个秘钥,这就必然要把这个秘钥在网络上传输,这就存在风险。但对称加密也有优点,就是算法是时间复杂度底,加密过程快,而非对称加密的时间复杂度很高,如果对一段很长的全文都进行非对称加密显然是不现实的。所以聪明的人们相出了用非对称加密算法加密对称加密秘钥的方法,就可以做到两者兼得,在下一步中,就可以看到这个奇迹发生。

2.4制作数字信封

  用接收方韩梅梅数字证书中的公钥对这把对称加密的秘钥进行加密,形成数字信封,这样在传输过程中,黑客就无法截取到加密正文所用的对称秘钥,达到了效率和安全性上的兼顾。

2.5 打包数据,可以上路了!

  将第3步制作的密文和第4步制作的数字信封打包在一起,发送出去。这样固若金汤的加密过程就结束了!

3.解密阶段

  韩梅梅这时候已经收到了李雷发来的信件。解密阶段基本是加密阶段的反过程。

3.1 解密数字信封

  韩梅梅利用自己的私钥解开数字信封,数字信封是用韩梅梅的公钥加密的,得到对称秘钥。

3.2 解密正文、数字签名、发送方数字证书。

  利用上一步解密得到的对称秘钥,解开密文。得到明文、数字签名、含有李雷公钥的数字证书。

3.3 解密数字签名

  利用上一步得到的发送方李雷的公钥解密数字签名,数字签名是用李雷的私钥加密的,得到发送方李雷利用Hash函数制作的信息摘要。

3.4 接收方制作信息摘要

  接收方韩梅梅利用第二步解密得到的信件明文利用Hash函数再次制作信息摘要。

3.5 校验原文

  将第3步和第4步得到的两份信息摘要进行对比,如果一样,说明接收数据正确且完整。至此,一套完整的加密传输流程结束了!

 

4.总结

  如果你细细体味,会发现这里有很多巧妙的地方。

  1、利用非对称加密确保了数据的绝对安全性。

  2、利用对称加密加密原文,简化了时间复杂度,同时有用非对称加密加密对称秘钥,让对称秘钥的传输绝对安全。也许你会想,原文最终还是只用对称加密算法加的密,我们只需要暴力破解这个对称密码就可以了。这里要说明的是,这个对称秘钥是随机生成的,对用户透明,一般应该也会很长,要破解这个基本上也是不现实的。

  3、利用Hash函数的不可逆性、结果唯一性对数据进行校验,有效的保证了数据的完整性。

本文转载自:http://www.cnblogs.com/darksir/p/3705554.html

共有 人打赏支持
花果山妖
粉丝 3
博文 17
码字总数 9727
作品 0
沈阳
密码学的两大圣杯如何拯救云计算?

随着好莱坞明星们的裸照在全球互联网疯传,云计算几乎成了危险的代名词,从好莱坞女星到上百亿资产的银行家都为之忧心忡忡。 对于银行等数据安全要求较高的企业来说,云计算的安全是个两难问...

oschina
2014/09/24
1K
7
浅谈 HTTPS 和 SSL/TLS 协议的背景与基础

相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识。 大致了解几个基本术语(HTTPS、SSL、TLS)的含义 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”) ...

AlexMahoneFBI
2015/04/02
0
1
密码学-学习资料和网站

我接触密码学有一段时间了,把我收集的资料整理出来,以便后期查阅。另外也给网友一些捷径。 书籍 计算机安全和密码学.Computer.Security.And.Cryptography.pdf 英文版 《深入浅出密码学——...

BjarneCpp
01/09
0
0
关于https和ssl/tls协议的介绍

先澄清几个术语——HTTPS、SSL、TLS 1. “HTTP”是干嘛用滴? 2. “SSL/TLS”是干嘛用滴? 3. “HTTPS”是啥意思? 再来说说 HTTP 协议的特点 1. HTTP 的版本和历史 2. HTTP 和 TCP 之间的关...

不正经啊不正经
2014/12/24
0
0
苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事

WeTest 导读 2017年1月1日起,苹果公司将强制使用HTTPS协议传输。本文通过对HTTPS基础原理和通信过程内容的讲解,介绍APP开发者在这个背景下的应对办法。 几周前,我们在《https大势已来?看...

依依言若
2016/12/15
0
0
聊聊HTTPS和SSL/TLS协议

要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识。 1. 大致了解几个基本术语(HTTPS、SSL、TLS)的含义 2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”) 3. 大致...

河北李晓东
2017/08/23
0
0
用RSA加密实现Web登录密码加密传输

通常我们做一个Web应用程序的时候都需要登录,登录就要输入用户名和登录密码,并且,用户名和登录密码都是明文传输的,这样就有可能在中途被别人拦截,尤其是在网吧等场合。 这里顺带一个小插...

商者
2016/07/03
84
0
HTTPS及HTTPS中间人攻击

全站HTTPS正在称为潮流趋势,国内实现全站https的有淘宝和百度两家 0x01:https的作用 C I A:机密性,完整性,可用性(可用性是合法用户可以访问自己有权限访问的资源) 解决的是信息传输中...

wt7315
2016/11/26
0
0
2018-3-16 12周5次课 Nginx负载均衡、ssl原理、秘钥、配置

12.17 Nginx负载均衡 在upstream下定义多个ip 如何查到网站解析的ip?——使用dig命令 需要安装bind-utils [root@localhost ~]# yum install -y bind-utils(过程省略)[root@localhost ~]#...

alexis7gunner
03/17
0
0
SSL协议之数据加密过程详解

前言 总括: 本文详细讲述了SSL协议中的数据加密的过程,数字证书、对称加密、非对称加密和SSL握手过程等概念。 原文博客地址:SSL协议之数据加密过程详解 知乎专栏&&简书专题:前端进击者(...

Damonare
2017/12/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

单身税的时代就要来临,你还没有用Python帮你找一个女朋友吗?

单身税的历史可以追溯到2015年韩国的新政, 低生育率逼得韩国产生了这一政策。 现在我国也要实行这一政策, 很多单身狗就接受不了了 很可惜,国家不包分配对象, 男的都说找对象难, 有没有向...

猫咪编程
15分钟前
0
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
19分钟前
0
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
0
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
0
0
流利阅读笔记33-20180722待学习

黑暗中的生物:利用奇技淫巧快活生存 Daniel 2018-07-22 1.今日导读 如果让你在伸手不见五指的黑暗当中生存,你能熬过几天呢?而大千世界,无奇不有。在很多你不知道的角落,有些生物在完全黑...

aibinxiao
昨天
5
0
Hystrix降级逻辑中如何获取触发的异常

通过之前Spring Cloud系列教程中的《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》一文,我们已经知道如何通过Hystrix来保护自己的服务不被外部依赖方拖垮的情况。但是实际...

程序猿DD
昨天
0
0
gin endless 热重启

r := gin.New()r.GET("/", func(c *gin.Context) {c.String(200, config.Config.Server.AppId)})s := endless.NewServer(":8080", r)s.BeforeBegin = func(add string) ......

李琼涛
昨天
0
0
JAVA模式之代理模式

平时一直在用spring,spring中最大的特效IOC和AOP,其中AOP使用的就是代理模式.闲着无聊,随手写了一个代理模式,也记录下代理模式的实现Demo. 比如现在有一个场景是:客户想要增加一个新的功能,...

勤奋的蚂蚁
昨天
0
0
ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部