HTTP系列(五):HTTPS

原创 2016年06月01日 23:56:10

一、数字加密技术

一些基础概念:

密码

对文本进行编码,使偷窥者无法识别的算法。

比如循环移位算法,每个字母都用字母表中N位之后的字母代替。

密钥

改变密码行为的数字化参数,循环移位算法中的N就是密钥。


对称密钥加密系统
/解码使用相同密钥的算法。

对称密钥加密技术的缺点之一就是发送者和接收者在互相对话之前,一定要有一个共享的保密密钥。 如果有N 个节点,每个节点都要和其他所有N-1个节点进行安全对话,总共大概会有 N2个保密密钥 。


不对称密钥加密系统
/解码使用不同密钥的算法。

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。

比如,RSA算法。

虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。为了解释这个过程,请看下面的例子:

(1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。

(2) Alice的浏览器向银行的网站请求公钥。

(3) 银行将公钥发送给Alice。

(4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。

(5) Alice的浏览器将加密后的对称密钥发送给银行。

(6) 银行使用私钥解密得到Alice浏览器的对称密钥。

(7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。


数字签名

用来验证报文未被伪造或篡改的校验和。

数字签名通常是用非对称公开密钥技术产生的。因为只有所有者才知道其私有密钥,所以可以将作者的私有密钥当作一种“指纹”使用。 


数字证书

由一个可信的组织验证和签发的识别信息。 


二、HTTPS细节介绍

HTTPS 就是在安全的传输层上发送的 HTTPHTTPS 没有将未加密的 HTTP 报文发送给 TCP,并通过世界范围内的因特网进行传输(参见图 14-13a),它在将HTTP 报文发送给 TCP 之前,先将其发送给了一个安全层,对其进行加密(参见14-13b)。

现在,HTTP 安全层是通过 SSL 及其现代替代协议 TLS 来实现的。我们遵循常见的用法,用术语 SSL 来表示 SSL 或者 TLS。 



SSL如何与安全服务器建立连接

在未加密 HTTP 中,客户端会打开一条到 Web 服务器端口 80 TCP 连接,发送一条请求报文,接收一条响应报文,关闭连接。图 14-15a 对此序列进行了说明。

由于 SSL 安全层的存在,HTTPS 中这个过程会略微复杂一些。在 HTTPS 中,客户端首先打开一条到 Web 服务器端口 443(安全 HTTP 的默认端口)的连接。一旦建立了 TCP 连接,客户端和服务器就会初始化 SSL 层,对加密参数进行沟通,并交换密钥。握手完成之后,SSL 初始化就完成了,客户端就可以将请求报文发送给安全层了。在将这些报文发送给 TCP 之前,要先对其进行加密。图 14-15b 对此过程进行了说明。 



SSL握手

在发送已加密的 HTTP 报文之前,客户端和服务器要进行一次 SSL 握手,在这个握手过程中,它们要完成以下工作:

交换协议版本号;
选择一个两端都了解的密码;
对两端的身份进行认证;
生成临时的会话密钥,以便加密信道。 



版权声明: 举报

相关文章推荐

HTTP系列(五):HTTPS

1.数字加密技术 一些基础概念: • 密码 对文本进行编码,使偷窥者无法识别的算法。 比如循环移位算法,每个字母都用字母表中N位之后的字母代替。 • 密钥 改变密码行为的数字化参数,循环移位算...

如何在HTTPS里调用HTTP资源不出现提示框

什么是HTTPS? HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

http和https的区别

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字...

HTTP HTTPs

HTTP与HTTPs简介

http https

http 和 https 的区别   http https 端口 80  443 通信 明文 ssl + http  加密认证 HTTPS通...

Android HTTP和HTTPS那点事

先看看网络OSI(Open System Interconnect)模型: CA证书是什么?CA(Certificate Authority)是负责管理和签发证书的第三方权威机构,是所有行业和公...

HTTP,HTTP2.0,SPDY,HTTPS看这篇就够了

作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处...

揭秘HTTPS的"秘密

本文作者为: SylvanasSun.转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自SylvanasSun Blog,原文链接: https://sylvanassun.git...

Https协议连接过程

思考问题的顺序 学技术时,总是会问什么?这里也不例外,https为什么会存在,它有什么优点,又有什么缺点?为什么网站有的用http,有的用https?如果不能很好的回答,就往下看吧。 ht...

HTTP和HTTPS详解

转自:http://www.cnblogs.com/ok-lanyan/archive/2012/07/14/2591204.html HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)