SSL
SSL技术背景
随着Internet的普及,各种电子商务活动和电子政务活动发展迅速,数字证书也开始应用到各个领域中 。说到SSL大家可能有点陌生,但是以SSL进行加密的应用层协议HTTPS大家应该就比较熟悉了 。在标准HTTP协议下 , 客户端与服务端直接通过TCP进行连接 , 以明文方式交互数据 。当传输一些普通网页数据时并没有什么问题,但是若用户在浏览网页的过程中,需要向服务端传输一些如密码,真实姓名,住址等敏感信息,我们不希望敏感信息被他人获取,也不希望其遭到篡改或伪造 。
举一个网上购物的例子:B用户此时在浏览A公司的站点,这个站点正在出售香水,B用户只需向站点A提供一个包含下单数量,收货地址和支付卡号等信息的订单,就能顺利收到A公司寄来的香水 。但是如果在此过程中不采取一些安全措施 , 这个购物过程也许并不能顺利进行 。一个安全的通信需要满足三个特性:机密性、数据完整性、身份认证,三者缺一不可 。如果没有机密性,入侵者可能截取B的订单并获取他的支付密码等敏感信息;如果不能保证数据完整性,入侵者可以随便篡改B的订单信息,比如将收货地址改成自己地址;如果没有身份认证,这个声称A公司的网站实际可能就是一个专门收集用户信息的钓鱼网站 。
SSL
SSL工作过程
SSL协议工作主要分为三个阶段,分别是握手连接,密钥导出 , 数据传输 。
第一阶段
握手连接
通信双方需要完成三个工作:
01
建立一条TCP连接
客户端B发起一条去往服务端A的TCP连接 , 随后所有的数据传输都基于这条TCP连接 。
02
验证服务端身份
TCP建立完成后 , 客户端B向服务端A发送Hello报文,服务端A使用其证书回应,客户端B收到证书后,可以明确通信服务端身份的合法性 。
03
分发pre-master key
客户端B从收到的证书中提取公钥,并本地结合Hello报文中的随机数生成pre-master key,使用服务端A的公钥加密pre-master key,发送给服务端A,服务端A使用本地私钥解密,获取pre-master key , 从而实现通信双方pre-master key的分发,这一过程也称为“数字信封” 。
第二阶段
密钥导出
通信双方使用相同方法,使用pre-master key结合密钥交互算法和Hello报文中的随机数再次生成两种对称密钥master key , 作用分别如下:
两种密钥作用分别如下
会话加密密钥:用来保护报文传输过程中的数据安全 。
HMAC密钥:用来检查报文在传输过程中是否被篡改 。
生成四个密钥分别如下:(EA=EB,MA=MB)
EA:用于从A到B发送数据的会话加密密钥
MA:用于从A到B发送数据的会话HMAC密钥
EB:用于从B到A发送数据的会话加密密钥
MB:用于从B到A发送数据的会话HMAC密钥
第三阶段
数据传输
本阶段主要包含三个过程:
01
数据加解密
当完成SSL隧道建立后,所有的安全协商包括密钥交互和数据传输都处于一个安全的连接中,并且客户端也完成了服务端的合法身份检查,通信双方在不安全的环境中建立出一条安全连接 。此时客户端通过SSL隧道传输数据时,对数据进行加密处理 , 服务端收到加密后的数据,通过对称密钥进行解密,从而获取数据实际传输内容 。
02
完整性检查
SSL数据流被分割成多个记录 , 针对每个记录附加一个加密密钥和HMAC密钥,客户端B将加密后的数据包发送给服务端A,服务端A收到数据包后,分别进行数据解密和HMAC完整性检查 , 查看数据包在传输过程中是否被篡改 。
03
防重放检查
发送方需要维护一个计数器,每发送一条记录,则将自己的计数器增1,并且在计算HMAC值时 , 需要将该序号包含在HMAC记录中,接收方也会跟踪自己收到所有记录的序号 , 并也记录在HMAC校验中,如果两者计算相同,那么则说明SSL记录在传输过程中并没有被恶意篡改顺序 。
SSL
SSL应用场景
SSL技术作为目前广泛应用的一种传输加密产品 , 适用场景多,那么举例以下几大应用场景:
【什么是ssl技术】通过部署企业网站安全加密,可以激活企业绿色安全标识域名,为潜在客户带来更可信的访问体验;通过部署企业应用安全加密,越来越多的中小企业可以将OA、CRM、ERP等系统部署在云端 , 从而享受云计算的高效与便捷性;通过部署支付体系安全加密,避免非法用户对支付信息的劫持或欺诈;通过部署政务信息安全加密,避免钓鱼网站或信息劫持,可以更加保证政务平台的公信力,通过部署SSL VPN技术,可以让远程用户安全便捷访问公司内网服务器,保证正常业务稳定运行 。