1. 普通网络通信存在的安全性问题
明文传输(可直接截取报文获取数据)
无法验证通信双方的合法性(可能将数据发送至伪造的服务端,数据也可能来自伪造的客户端)
无法防止传输的数据被篡改(在通信中被篡改或丢失)
2.SSL可解决以上三个问题
利用对称加密算法对传输的数据进行加密
基于证书,利用数字签名方法对服务器和客户端进行身份验证;可进行单向验证和双向验证,单项验证只验证服务端的合法性
消息完整性验证,使用MAC算法校验消息的完整性
2.1 数据传输的机密性
通信双方建立加密通道:发送方在发送数据前使用加密算法和加密密钥对数据进行加密,然后将数据发送给对方;接收方接收到数据后利用解密算法和解密密钥从密文中获取明文。
加解密算法分为两类:
对称密钥算法:加密和解密使用相同的密钥
非对称算法:加密和解密使用不同的密钥,一个是公开的公钥,一个是由用户秘密保存的私钥;利用公钥(或私钥)加密的数据只能用私钥(或公钥)才能解密。
对称密钥加密算法计算速度快,通常用于对大量信息进行加密;而非对称密钥算法一般用于对数字签名和对较少的信息进行加密。
SSL加密通道采用对称密钥算法对数据进行加密,目前主要支持的算法有DES,3DES,AES。
2.2 身份验证机制
在通信中必须保证服务端的真实性,以免重要信息被非法窃取。SSL利用数字签名来验证通信双方的身份。
非对称密钥加密算法可用来实现数字签名。A利用公钥对一段固定的信息加密后发给B,B利用A的私钥进行解密,如果解密结果与固定信息相同,那么就认定信息的发送者为A,这个过程就称为数字签名。
参考:
SSL工作原理