HTTP系列(五):HTTPS

一、数字加密技术

一些基础概念:

密码

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

比如循环移位算法,每个字母都用字母表中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://www.jianshu.com/p/650ad90bf563


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

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



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

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

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



SSL握手

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

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



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值