关闭

HTTP系列(五):HTTPS

标签: HTTPSSSL
381人阅读 评论(0) 收藏 举报
分类:

一、数字加密技术

一些基础概念:

密码

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

比如循环移位算法,每个字母都用字母表中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 握手,在这个握手过程中,它们要完成以下工作:

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



1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

JVM系列五:JVM监测&工具[整理中]

前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案。正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置,每个参数的设置都需要对JVM进行长时间的监测,并...
  • w1014074794
  • w1014074794
  • 2016-03-29 14:22
  • 223

Quartz.NET学习系列(四)--- 数据注入

Quartz.NET中任务是需要额外新建一个类继承IJob的,方法入参和出参都是已经规定好了的,这时要想传额外参数就得借助Quartz.NET的内置的对象IJobExecutionContext 通...
  • Eye_cng
  • Eye_cng
  • 2015-03-14 19:43
  • 1765

OllyDBG 入门系列<7> 汇编功能

转载说明:不知道何原因 ,此系列的第6篇并没有相关资料,如有读过第6篇的网友请给我留言,谢谢 标 题: 【原创】OllyDBG 入门系列(七)-汇编功能 作 者: CCDebuger ...
  • u013035751
  • u013035751
  • 2013-12-16 09:00
  • 657

强化学习之五:基于模型的强化学习(Model-based RL)

本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t...
  • qq_32690999
  • qq_32690999
  • 2018-01-07 18:46
  • 69

USB入门系列总结

USB是什么呢?一说USB是You SB的意思,即“你傻B”的意思。另一种说法是USB其实是美国的弟弟,因为美国叫USA,USB当然是他的弟弟了。     那么USB到底是什么呢?其实USB是通...
  • u013916997
  • u013916997
  • 2014-05-27 17:09
  • 751

HTTPS和HTTP的区别

什么是 HTTPS? HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。 你也可以说:HTTPS = H...
  • whatday
  • whatday
  • 2014-07-26 17:01
  • 41358

HTTPS请求与HTTP兼容

今天升级Xcode 7.0 bata发现网络访问失败。 输出错误信息 The resource could not be loaded because the App Transport Secur...
  • ewq866866
  • ewq866866
  • 2015-11-17 10:38
  • 3167

HTTP协议与HTTPS的区别

HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本。 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议。与之类似的还有文件传送协议(filetrans...
  • permike
  • permike
  • 2016-09-06 14:11
  • 1537

配置tomcat同时支持http和https协议

今天项目中需要配置https协议,同时支持http和https两种协议,使用的tomcat服务器,并使用nginx做了转发。 网上关于配置tomcat的https协议文章有很多,在此整理一下。 一、配...
  • jxllove1120
  • jxllove1120
  • 2017-03-07 10:25
  • 4104

https比http到底那里安全?

HTTPS和HTTP的概念 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTT...
  • qiandublog
  • qiandublog
  • 2016-12-02 14:03
  • 2035
    个人资料
    • 访问:299706次
    • 积分:4282
    • 等级:
    • 排名:第8232名
    • 原创:117篇
    • 转载:22篇
    • 译文:12篇
    • 评论:120条
    详细资料
    博客专栏