当前位置 博文首页 > 高级网络工程师的博客:什么是SSL技术

    高级网络工程师的博客:什么是SSL技术

    作者:[db:作者] 时间:2021-08-21 16:09

    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技术作为目前广泛应用的一种传输加密产品,适用场景多,那么举例以下几大应用场景:

    图片

    通过部署企业网站安全加密,可以激活企业绿色安全标识域名,为潜在客户带来更可信的访问体验;通过部署企业应用安全加密,越来越多的中小企业可以将OA、CRM、ERP等系统部署在云端,从而享受云计算的高效与便捷性;通过部署支付体系安全加密,避免非法用户对支付信息的劫持或欺诈;通过部署政务信息安全加密,避免钓鱼网站或信息劫持,可以更加保证政务平台的公信力,通过部署SSL VPN技术,可以让远程用户安全便捷访问公司内网服务器,保证正常业务稳定运行。

    cs