HTTPS 是什么?
HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer) 通信,再由 SSL 和 TCP 通信,也就是说 HTTPS 使用了隧道进行通信。通过使用 SSL,HTTPS 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。
HTTPS 和 HTTP 的区别?
1、HTTP 协议传输的数据都是未加密的,也就是明文的,因此使用 HTTP 协议传输隐私信息非常不安全,HTTPS 协议是有 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比HTTP 协议安全。
2、HTTP 协议需要到 CA 申请证书,一般免费证书较少,因而需要一定费用。
3、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者443.
什么是SSL/TLS?
SSL代表安全套接字层。它是一种用于加密和验证应用程序(如浏览器)和 Web 服务器之间发送的数据的协议。如今已逐渐被更安全的 TLS (传输层安全)协议取代。
HTTPS 的加密机制是一种混合加密机制,结合了共享密钥加密(对称加密)和公开密钥加密(非对称加密)。对称加密的优点在于加密、解密效率通常很高。在 HTTPS 通信中,首先使用非对称加密交换密钥,然后利用对称加密进行实际的数据传输加密。非对称加密中,公钥是公开的,私钥则严格保密。
SSL/TLS 协议作用:认证用户和服务,加密数据,维护数据完整性的传输层与应用层之间的协议。
SSL 中的认证中的证书是什么?了解过吗?
通过使用证书来对通信方进行认证。数字证书认证机构(CA,Certificate Authority) 是客户端与服务器双方都可信赖的第三方机构。服务器的运营人员向 CA 提出公开密钥的申请,CA 在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公开密钥证书后绑定在一起。进行 HTTPS 通信时,服务器会把证书发送给客户端。客户端取得其中的公开密钥之后,先使用数字签名进行验证,如果验证通过,就可以开始通信了。
对称密钥加密的优点缺点?
对称密钥加密(Symmetric-Key Encryption),加密和解密使用同一密钥。
优点:运算速度快
缺点:无法安全地将密钥传输给通信方
非对称密钥加密的优点缺点?
非对称密钥加密,又称公开密钥加密(Public-Key Encryption),加密和解密使用不同的密钥。
公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方收到通信内容后使用私有密钥解密。
非对称密钥除了用来加密,还可以用来进行签名。因为私有密钥无法被其他人获取,因此通信发送方使用其私有密钥进行签名,通信接收方使用发送方的公开密钥进行解密,就能判断这个签名是否正确。
优点:可以更安全地将公开密钥传输给通信发送方
缺点:运算速度慢
HTTPS 采用的加密方式有哪些?是对称还是非对称?
HTTPS 采用混合的加密机制,使用非对称密钥加密用于传输对称密钥来保证传输过程的安全性,之后使用对称密钥加密进行通信来保证通信过程的效率。

确保传输安全过程(其实就是 rsa 原理):
1、Client 给出协议版本号、一个客户端生成的随机数(Client random), 以及客户端支持的加密方法。
2、Server 确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)
3、Client 确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,加密这个随机数,发给 Server.
4、Server 使用自己的私钥,获取 Client 发来的随机数(Premaster secret)。
5、Client 和Server根据约定的加密方法,使用前面的三个随机数,生成“对话密钥”(session key),用来加密接下来的整个对话过程。
HTTPS 是如何保证数据传输的安全,整体的流程是什么?(SSL 是怎么工作保证安全的)
1、客户端向服务器发起 SSL 连接请求,请求中包含客户端随机数、可用算法列表等
2、服务器把服务器随机数、CA 证书等发送给客户端,并且服务器端保存着唯一的私钥
3、客户端用服务器公钥对新生成的客户端随机数进行加密,并发送给服务器端
4、服务器利用自己唯一的私钥对客户端发来的新客户端随机数进行解密,并通过之前选定的某种算法计算出主密钥
5、进行数据传输,服务器和客户端双方用公有的相同的对称密钥对数据进行加密解密,可以保证在数据收发过程中的安全,即使是第三方获得数据包,也无法对其进行加密、解密和篡改。因为数字签名、摘要是证书防伪非常关键的武器。“摘要”就是对传输的内容,通过 Hash 算法计算出一段固定长度的串。然后,通过发送方的私钥对这段摘要进行加密,加密得到的结果就是“数字签名”。SSL / TLS 协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
如何保证公钥不被篡改?
将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
公钥加密计算量太大,如何减少用于加密所耗用的时间?
每一次对话(session) ,客户端和服务器端都生成一个“对话密钥”(session key),用它来加密信息。由于“对话密钥”是对称加密,所以运算速度非常快,而服务器公钥只用于加密“对话密钥”本身,这样就减少了加密运算所消耗的时间。
1、客户端向服务器端索要并验证公钥
2、双方协商生成“对话密钥”
3、双方采用“对话密钥”进行加密通信。上面过程前两步,又称为“握手阶段”

3996

被折叠的 条评论
为什么被折叠?



