HTTPS如何保证数据安全?讲得很细!
虽然现在许多网站都会用到HTTP传输协议和HTTPS协议,但是大家极力倡导使用的却是更为安全的HTTPS,今天我们就来了解一下HTTPS是如何保证数据传输的安全性的。前文 HTTPS如何保证数据安全性(一)中详细的介绍了HTTP的缺点、HTTPS如何保证数据安全性、HTTPS对称加密和非对称加密等详细信息。本文接着上文详细讲解了HTTPS的请求过程、如何防止数字证书被篡改、单双向认证等详细的通信过程。
一、HTTPS的请求过程
在上面我们简单介绍了一下HTTPS和数字证书,但是它们是如何来解决HTTP中存在的数据窃听、数据篡改、身份伪造问题的呢?
上图是HTTPS简单的请求模型,使用这个模型可以完美的解决上面提到的三个问题点。
在第一次请求时,客户端先去请求服务端的数字证书,并且生成一个随机数R1,将随机数和自己支持的加密算法告诉服务端。
服务端收到客户端的请求后,选择双方共同支持的加密算法,并且生成新的随机数R2,将服务器的数字证书及加密算法、随机数一并返回给客户端。
客户端收到服务端的数字证书,然后使用浏览器内置的CA证书进行解密获取到证书中的服务端的公钥及服务端的认证信息,从而确保证书没有被人篡改过。然后生成新的随机数R3,使用服务端的公钥对随机数R3进行加密后返回给服务端并将随机数R1、R2、R3组合成一串密钥用作对称加密用。
服务端收到客户端加密后的随机数R3,使用自己的私钥对密文进行解密获取到随机数R3,组合R1、R2、R3获取到一串密钥(和客户端一致);然后开始使用对称加密进行通信。
上述就是HTTPS对密钥协商的过程,由于非对称加密一方密匙加密后只能使用另一方密匙解密,所以在前两次数据传输中即使被窃听也不怕,因为在第三次传递随机数R3时是使用公钥加密的,只有服务端的私钥才能解密,从而确保密钥的安全性。
二、如何防止数字证书被篡改
在上面的请求模型中,如何防止客户端返回的数字证书被篡改呢?
我们在申请数字证书时,会提供我们的基本信息以及企业域名信息等,证书颁发机构CA会根据证书中的这些信息以及所提供的签名算法对内容进行摘要,得到一个消息摘要(散列hash串),即使用Hash算法获取到的一个唯一标识,然后CA机构会使用自己的私钥对摘要进行加密,获取到一个密文,即数字签名,也叫做指纹;表示其唯一性。然后证书颁发机构对整个明文数字证书使用证书颁发机构CA自己的私钥进行加密,得到数字证书。
当数字证书中的内容被篡改时,使用Hash算法对内容进行计算获取到新的摘要,只需要对比一下两个摘要是否相同即可知道证书中的数据知否有被篡改。
当客户端请求数据从浏览器端获取到数字证书后,通过浏览器内置的CA证书中的公钥对数字证书进行解密,获取到明文数字证书(包含企业基本信息及服务端公钥以及数字签名),通过如上图所示方式来判断证书是否有被篡改。
三、单双向认证
在上面的例子中,客户端请求服务端获取证书信息进行认证,这个就是单向认证,只是客户端认证服务端,但是服务端并没有认证客户端的请求。HTTPS支持单向认证,也支持双向认证。
双向认证的情况通常比较少见,常见于银行等领域,就像我们以前使用银行的U盾,这就是一种双向认证案例,还有就是在电脑上安装支付宝的证书等;双向认证比单向认证更加安全,但是需要对每一个客户端都进行分配证书。
查看技术文章和免费咨询技术问题可以访问成都太阳集团tcy8722电子科技有限公司官网及各官方平台:
微信号:cdebyte
今日头条:太阳集团tcy8722
新浪微博:成都太阳集团tcy8722
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdhanzaichips.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都太阳集团tcy8722电子科技有限公司【版权所有】 蜀ICP备27697263号-3