一、作用
不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,潜在三大风险。
1、窃听风险(eavesdropping):第三方可获知通信内容。
2、篡改风险(tampering):第三方可以修改通信内容。
3、冒充风险(pretending):第三方可以冒充他人身份参与通信。
SSL/TLS协议是为了解决这三大风险而设计的,目的是希望达到:
1、所有信息都是加密传播,第三方无法窃听。
2、具有校验机制,一旦被篡改,通信双方会立刻发现。
3、配备身份证书,防止身份被冒充。
二、历史
互联网加密通信协议的历史,几乎与互联网一样长。
1994年,NetScape工时设计了SSL协议(Secure Sockets Layer)的1.0版,但未发布。
1995年,NetScape公司发布了SSL 2.0版,很快发现有严重漏洞。
1996年,SSL 3.0版问世得到大规模应用。
1999年,互联网标准化组织ISOC接替NetScape公司,发布了SSL的升级版TLS 1.0版。
2006年及2008年,TSL进行了俩次升级,分别为TLS 1.1版和TLS 1.2版。最新的变动是2011年TLS 1.2的修订版。
目前,应用最广泛的是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),用它来加密信息。由于对话密钥是对称加密,所以
运算速度非常快。而服务器公钥只用于加密“对话密钥”本身,这样就减少了加密运算的消耗时间。
因此,SSL/TLS协议的基本过程是这样的:
1、客户端向服务器端索要并验证公钥。
2、双方协商成“对话密钥”。
3、双方采用“对话密钥”进行加密通信。
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html