站长论坛 - 站长交流社区- SEO交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 22|回复: 0

https安全协议

[复制链接]
发表于 2019-7-17 09:56:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
那么什么是HTTPS?
HTTPSHypertext Transfer Protocol Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用TLS来加密数据包。
HTTPS开发的主要目的,是对提供提供服务的服务器的身份认证,保护交换数据的隐私与完整性。
什么是TLS
TLS是传输层加密协议,它的前身是SSL协议。由网景公司于1995年发布。后改名为TLS。常用的 TLS 协议版本有:TLS1.2, TLS1.1, TLS1.0 SSL3.0。其中 SSL3.0 由于 POODLE 攻击已经被证明不安全。TLS1.0 也存在部分安全漏洞,比如 RC4 BEAST 攻击。
由于HTTP协议采用明文传输
HTTPS相对HTTP提供了更安全的数据传输保障,主要体现在三个方面:
1)内容加密:客户端到服务器的内容都是以加密形式传输,中间者无法直接查看明文内容;
2)身份认证:通过校验保证客户端访问的是自己的服务器;
3)数据完整性:防止内容被第三方冒充或者篡改。(如:fiddler打断点截取数据篡改请求参数)
那么HTTPS实现原理到底具体是怎样的呢?
对称加密:
即加密和解密使用同一个密钥,虽然对称加密破解难度很大,但由于对称加密需要在网络上传输密钥和密文,一旦被黑客截取很容就能被破解,安全性角度讲很不安全,你暴露了把我也拉下水!因此对称加密并不是一个较好的选择。
非对称加密:
即加密和解密使用不同的密钥,分别称为公钥和私钥。我们可以用公钥对数据进行加密,但必须要用私钥才能解密。在网络上只需要传送公钥,私钥保存在服务端用于解密公钥加密后的密文。
但是非对称加密消耗的CPU资源非常大,效率很低,严重影响HTTPS的性能和速度。因此非对称加密也不是HTTPS的理想选择。(详见文章:《即时通讯安全篇(六):非对称加密技术的原理与应用实践》)
到这里你会问纯对称不安全,纯非对称性能差那你说咋办?
其实为了提高安全性和效率HTTPS结合了对称和非对称两种加密方式。即客户端使用对称加密生成密钥(key)对传输数据进行加密,
然后使用非对称加密的公钥再对key进行加密。因此网络上传输的数据是被key加密的密文和用公钥加密后的密文key
因此即使被黑客截取,由于没有私钥,无法获取到明文key,便无法获取到明文数据。所以HTTPS的加密方式是安全的。
数字证书
我们上面提到了HTTPS的工作原理,通过对称加密和非对称加密实现数据的安全传输。我们也知道非对称加密过程需要用到公钥进行加密。
那么公钥从何而来?
其实公钥就被包含在数字证书中。数字证书通常来说是由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,证书中包含了一个密钥对(公钥和私钥)和所有者识别信息。数字证书被放到服务端,具有服务器身份验证和数据传输加密功能。
除了CA机构颁发的证书之外,还有非CA机构颁发的证书和自签名证书:
1)非CA机构即是不受信任的机构颁发的证书,理所当然这样的证书是不受信任的;
2)自签名证书,就是自己给自己颁发的证书。当然自签名证书也是不受信任的。
例如12306网站使用的就是非CA机构颁发的证书(最近发现12306购票页面已经改为CA证书了),12306的证书是由SRCA颁发,SRCA中文名叫中铁数字证书认证中心,简称中铁CA。这是个铁道部自己搞的机构,相当于是自己给自己颁发证书。
说了这么多,我们来总结一下数字证书的两个作用:
1)分发公钥:每个数字证书都包含了注册者生成的公钥。在 TLS握手时会通过 certificate 消息传输给客户端;
2)身份授权:确保客户端访问的网站是经过 CA 验证的可信任的网站。(在自签名证书的情况下可以验证是否是我们自己的服务器)
最后我们从别处搬来一个中间人攻击的例子,来认识证书是如何保证我们的数据安全的。?
HTTPS双向认证
所谓双向认证就是客户端校验服务器证书,同时服务器也需要校验客户端的证书。因此,双向认证就另需一张证书放到客户端待服务端去验证。面试官要面试我能力,我也要查看下面试官你的财力
双向认证流程
接下来我们来了解下双向认证的流程,以加深对双向认证的理解:
a. 客户端发送一个连接请求给服务器。
b. 服务器将自己的证书,以及同证书相关的信息发送给客户端。
c. 客户端检查服务器送过来的证书是否和App内置证书相同。如果是,就继续执行协议;如果不是则终止此次请求。
d. 接着客户端比较证书里的消息,例如域名和公钥,与服务器刚刚发送的相关消息是否一致,如果是一致的,客户端认可这个服务器的合法身份。
e. 服务器要求客户发送客户自己的证书。收到后,服务器验证客户端的证书,如果没有通过验证,拒绝连接;如果通过验证,服务器获得用户的公钥。
f. 客户端告诉服务器自己所能够支持的通讯对称密码方案。
g. 服务器从客户发送过来的密码方案中,选择一种加密程度最高的密码方案,用客户的公钥加过密后通知客户端。
h. 客户端针对这个密码方案,选择一个通话密钥,接着用服务器的公钥加过密后发送给服务器。
i. 服务器接收到客户端送过来的消息,用自己的私钥解密,获得通话密钥。
j. 服务器通过密钥解密客户端发送的被加密数据,得到明文数据。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易采站长站 ( 蒙ICP备14002389-1号 ) |

GMT+8, 2019-8-26 15:00

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表