Open lxfriday opened 4 years ago
HTTPS=HTTP+TLS,在HTTP 和TCP协议之间加上TLS加密协议
明文传播的危害:
目前,应用最广泛的是TLS 1.0,接下来是SSL 3.0。但是,主流浏览器都已经实现了TLS 1.2的支持。
TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。
SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密,整个过程中只有服务器拥有私钥,而公钥是任何一个客户端都可以获取到的,但是公钥加密的内容只能用服务器端的撕咬才能够解密。
传输过程中有几个问题需要解决:
1. 如何保证公钥不被篡改?
将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
2. 公钥加密计算量太大,如何减少耗用的时间?
解决方法:每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。
会话密钥使用前三次的随机数依据算法生成,会话密钥用来加密信息的内容。而每次传输时客户端公钥加密和服务器
开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(handshake)。
ref
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
《图解 HTTPS 协议》
《HTTPS 协议的七个误解》
《HTTPS 协议的延迟有多大?》
一个故事讲完https
你知道,HTTPS用的是对称加密还是非对称加密?