HTTPS
HTTPS总结
HTTP缺点:
1、通信使用明文(不加密)被窃听。
2、不验证通信方的身份遭遇伪造,任何人都可以发起请求。
3、无法证明报文的完整性被篡改;
HTTP+ 加密+ 认证+ 完整性保护=HTTPS
HTTP 通信接口部分用SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)代替,加密HTTP 的通信内容。与SSL 组合使用的HTTP 被称为HTTPS(HTTPSecure,超文本传输安全协议)。
HTTPS采用==混合加密==:利用公钥加密私钥解密方式交换共享密钥,保证传输过程的安全性;利用(对称加密)共享密钥加密通信交换报文,保证通信过程的效率。
利用数字证书证明公钥正确性,附有认证机构的数字签名,使用私钥加密,公钥解密,来进行数字签名。
HTTP和HTTPS区别
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本体浏览器的传输协议,它可以是游览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,因此加密的详细内容就需要SSL。
区别:
HTTP协议需要到CA申请证书,需要一定费用。
HTTP是超文本传输协议,信息是明文传输,HTTPS则是安全性的SSL加密传输协议。
HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是==80==,后者是==443==。
详情见:https://www.cnblogs.com/wqhwe/p/5407468.html。
69、对称密钥加密的优点缺点
对称密钥加密,加密和解密使用同一密钥。
- 优点:运算速度快
- 缺点:无法安全地将密钥传输给通信方
70、非对称密钥加密优缺点
非对称密钥加密,又称公开密钥加密,加密和解密使用不同的密钥。
公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方收到通信内容后使用私有密钥解密。
非对称密钥除了用来加密,还可以用来进行签名。因为私有密钥无法被其他人获取,因此通信发送方使用其私有密钥进行签名,通信接收方使用发送方的公开密钥对签名进行解密,就能判断这个签名是否正确。
- 优点:可以更安全地将公开密钥传输给通信发送方;
- 缺点:运算速度慢。
74、为什么有的时候刷新页面不需要重新建立 SSL 连接?
TCP 连接有的时候会被浏览器和服务端维持一段时间,TCP 不需要重新建立,SSL 自然也会用之前的。
75、SSL中的认证中的证书
通过使用 证书 来对通信方进行认证。
数字证书认证机构(CA,Certificate Authority)是客户端与服务器双方都可信赖的第三方机构。
服务器的运营人员向 CA 提出公开密钥的申请,CA 在判明提出申请者的身份之后,==会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公开密钥证书后绑定在一起。==
进行 HTTPS 通信时,服务器会把证书发送给客户端。客户端取得其中的公开密钥之后,先使用数字签名进行验证,如果验证通过,就可以开始通信了。
21、HTTPS是如何保证数据传输的安全,整体的流程是什么?(SSL是怎么工作保证安全的)
(1)客户端向服务器端发起SSL连接请求;
(2) 服务器把绑定证书的公钥发送给客户端,并且服务器端保存着唯一的私钥
(3)客户端对证书进行验证,通过后用公钥对双方通信的对称秘钥进行加密,并发送给服务器端
(4)服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密,
(5)进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法对其进行加密,解密和篡改。
因为数字签名、摘要是证书防伪非常关键的武器。 “摘要”就是对传输的内容,通过hash算法计算出一段固定长度的串。然后,在通过CA的私钥对这段摘要进行加密,加密后得到的结果就是“数字签名”
SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
22、如何保证公钥不被篡改?
将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
公钥加密计算量太大,如何减少耗用的时间?
每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。
(1) 客户端向服务器端索要并验证公钥。
(2) 双方协商生成"对话密钥"。
(3) 双方采用"对话密钥"进行加密通信。上面过程的前两步,又称为"握手阶段"(handshake)。