关闭

HTTP系列(五):HTTPS

标签: HTTPSSSL
312人阅读 评论(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网站的观点或立场
    个人资料
    • 访问:268742次
    • 积分:4004
    • 等级:
    • 排名:第8613名
    • 原创:117篇
    • 转载:22篇
    • 译文:9篇
    • 评论:117条
    详细资料
    博客专栏