SSL包含记录层(Record Layer)和传输层,记录层协议肯定了传输层数据的封装格式。传输层安全协议使用X.509认证,以后利用非对称加密演算来对通信方作身份认证,以后交换对称密钥做为会谈密钥(Session key)。这个会谈密钥是用来将通信两方交换的数据作加密,保证两个应用间通讯的保密性和可靠性,使客户与服务器应用之间的通讯不被攻击者窃听。算法
TLS协议容许C/S模型的应用程序跨网络通信,旨在防止窃听和篡改的方式进行沟通。 TLS协议的优点在于它是与应用层协议独立无关的。高层的应用层协议(例如:HTTP、FTP、Telnet等等)能透明的建立于TLS协议之上。TLS协议在应用层协议通讯以前就已经完成加密算法、通讯密钥的协商以及服务器认证工做。在此以后应用层协议所传送的数据都会被加密,从而保证通讯的私密性。安全
TLS协议是可选的,因此若是须要使用就必须配置客户端和服务器,有两种主要方式实现这一目标:一个是使用统一的TLS协议通信端口(例如:用于HTTPS的端口443);另外一个是客户端请求服务器链接到TLS时使用特定的协议机制(例如:邮件、新闻协议和STARTTLS)。一旦客户端和服务器都赞成使用TLS协议,他们经过使用一个握手过程协商出一个有状态的链接以传输数据[1]。经过握手,客户端和服务器协商各类参数用于建立安全链接:服务器
当客户端链接到支持TLS协议的服务器要求建立安全链接并列出了受支持的密码组合(加密密码算法和加密哈希函数),握手开始。网络
服务器从该列表中决定加密和散列函数,并通知客户端。函数
服务器发回其数字证书,此证书一般包含服务器的名称、受信任的证书颁发机构(CA)和服务器的公钥。加密
客户端确认其颁发的证书的有效性。spa
为了生成会话密钥用于安全链接,客户端使用服务器的公钥加密随机生成的密钥,并将其发送到服务器,只有服务器才能使用本身的私钥解密。orm
利用随机数,双方生成用于加密和解密的对称密钥。这就是TLS协议的握手,握手完毕后的链接是安全的,直到链接(被)关闭。若是上述任何一个步骤失败,TLS握手过程就会失败,而且断开全部的链接。ip