基于个人移动端的SSL协议安全技术与教学应用

2021-07-06 02:10李明坤胡曦明
计算机技术与发展 2021年6期
关键词:报文客户端加密

李明坤,胡曦明,2*,李 鹏,2

(1.陕西师范大学 计算机科学学院,陕西 西安 710119;2.现代教学技术教育部重点实验室,陕西 西安 710119)

0 引 言

作为提供信息加密、身份验证和完整性验证等安全服务支撑HTTPS安全链接的SSL协议(secure sockets layer),面临会话劫持攻击、剥离攻击和数据密文解密攻击等多种攻击[1-4]。有关移动终端的SSL安全分析表明,安智网和360手机安卓市场近6万个应用软件中约有59.25%的应用软件使用了与SSL相关的API,存在可信证书链缺陷的软件占77.1%,SSL错误忽略缺陷的软件占比33.29%,不可信证书链攻击成功的软件占比17.39%,无域名认证攻击成功的软件占比15.22%[5];即使大部分网络银行类APP完整实现了SSL证书公钥绑定,也依然存在诸多安全隐患。

反观高校SSL协议安全技术应用发展现状:一方面,SSL协议作为计算机相关专业的教学重点得到了广泛关注和持续研究;但另一方面,SSL协议安全技术长期停留于基于PC真机或仿真平台局限在学校实验室的内部网络环境中实施的传统模式,例如:华南师范大学石硕基于“PC+服务器”开展SSL实验[6];海南经贸职业技术学院黄雪琴采用仿真平台开展SSL协议实验[7];温州大学黄辉使用ASA模拟器开展SSL实验[8]。在高校建设面向移动互联网新经济深化产教融合培养网络安全卓越工程师的背景下,探索在真实的移动互联网环境下,基于手机、笔记本电脑和PAD等设备的新型SSL协议个人移动安全技术和实验应用成为了富有时代性、紧迫性和教育价值的新课题。

1 SSL协议及其安全机制

1.1 SSL协议

SSL协议在TCP/IP分层模型中工作在传输层和应用层之间,为互联网环境中的两个通信进程提供安全及数据完整性保障。从协议体系结构上来看,SSL协议分为上下两个协议子层,上层是SSL握手协议簇(SSL Handshake Protocol),具体包括SSL握手协议(SSL Handshake Protocol)、修改密文协议(Change Cipher Protocol)和告警协议(Alert Protocol);下层是SSL记录协议(SSL Record Protocol),具体定义了两种报文,分别为发送信息报文(Send Information Packet)和接受信息报文(Accept Information Packet)。

SSL握手协议负责通信双方的身份验证、参数协商和交换密钥以建立安全的加密通道,修改密文协议负责将参数更新信息进行加密、压缩并告知对端,告警协议负责在通信异常时向对端发出警告或致命两类报文。SSL记录协议分别定义了发送信息报文和接受信息报文,接受信息报文对接收的加密数据进行解密、合并和传输,发送信息报文则对发送数据进行加密、分组和传输。

1.2 SSL安全机制

如图1所示,SSL记录协议首先将应用数据分为多个片段并对片段进行压缩,随后附上由安全哈希协议或消息摘要等算法生成的加密MAC作为消息身份验证代码,然后根据双方协商的加密方式与参数对数据进行加密,最后封装SSL首部[9]。SSL握手协议簇通过客户端和服务器之间四个阶段的会话协商机制,建立起安全的数据传输通道,具体过程如下。

图1 SSL协议安全机制

(1)Hello阶段。

客户端与服务器分别向对方发送ClientHello和SeverHello报文,客户端发送一个随机数给服务器,客户端与服务器相互交换加密套件(Support Ciphers)与版本信息(SSL Version)等安全信息。

(2)服务器认证阶段。

服务器向客户端发送Certificate、Server Key Exchange和ServerHello Done等身份证书报文实现自身身份验证并与客户端交换公钥与参数。在Certificate报文中,服务器需要向客户端发送整个证书链,包括服务器CA(数位凭证认证机构)、中间CA以及到达可信的根CA所需要的所有中间证书。大部分公共签名机构CA不直接在服务器证书上签名,中间CA是由根CA对其签名验证的,由根CA离线存储以保证信息的安全。个人移动端一般仅信任根CA,这样服务商同样需要向其他CA申请证书,多级递进确保证书的安全。在SSL协议握手期间服务器会向客户端发送整个证书链。

(3)客户端发送共享密钥和加密套件阶段。

客户端首先向服务器发送包含组装共享密钥的预主密钥、一个随机数和加密套件的Client Key Exchange报文,服务器收到预主密钥后,将预主密钥与收到的两个随机数组合生成共享密钥,然后通过Change Cipher Spec报文通知服务器之后的报文会用共享密钥加密,在此基础上客户端发送握手信息摘要经加密成的Encrypted Handshake Message报文,以便于服务器验证共享密钥的有效性。

(4)服务器发送用户注册信息阶段。

服务器向客户端发送包含客户端登陆会话所需Session信息的New Session Ticket报文,然后发送Change Cipher Spec报文通知客户端之后的报文同样采用共享密钥加密,最后服务器同样发送Encrypted Handshake Message报文将握手信息摘要发送给客户端,以便于客户端接受后确认共享密钥的有效性。

2 SSL协议安全技术设计

在分析SSL协议和SSL安全机制的基础上,该文探索基于手机、笔记本电脑等个人移动端在真实互联网环境下构建SSL协议安全技术系统,实现轻量化、便携化的SSL协议攻击与防御。

2.1 总体架构

基于个人移动端的SSL协议安全技术总体架构包含四个模块,如图2所示。

图2 基于个人移动端的SSL协议安全技术总体架构

(1)攻击方模块:由笔记本电脑组成,与服务器和客户端在同一网络环境下,负责对客户端模块进行证书伪造攻击、跳转篡改攻击等SSL攻击操作。

(2)SSL服务器模块:由内容服务器组成,负责与客户端建立HTTPS链接。由于攻击对象为SSL客户端,该安全技术不会对服务器造成任何不良影响,因此既可以自行搭建私网服务器,也可以采用公网的服务器。该文以百度服务器与163邮箱服务器为例,以更加真实地测试SSL安全。

(3)SSL客户端模块:由手机、PAD等个人移动设备组成,与服务器建立HTTPS链接,作为被攻击方。

(4)数据测量与分析模块:由笔记本电脑组成,负责对SSL攻击进行数据测量和可视化分析,而如何从SSL客户端获取数据是安全技术的难点。

2.2 技术环节

基于个人移动端的SSL协议安全技术环节如图3所示。

图3 基于个人移动端的SSL协议安全技术环节

技术环节总体上分为:搭建环境、攻击与防御、测量分析。首先采用“个人移动端+内容服务器”搭建技术环境,在此基础上可以开展X.509证书伪造、链接跳转篡改和绕过SSL绑定攻击等多种SSL典型攻击以及ARP防御、反向验证和安全开发与使用等防御,在实现过程中通过实时抓包分析、证书解密等方法实现对实现过程的数据测量和可视化分析。

3 SSL协议安全技术实现

3.1 个人移动端配置

整个安全技术需要基于手机、笔记本电脑等个人移动端设备完成SSL攻击、防御与测量分析等一系列复杂功能,包括证书伪造、链接跳转篡改、手机抓包等,而这部分正是整个安全技术的难点所在。该文以常见的X.509证书伪造攻击和链接跳转篡改攻击为例,实现过程中使用到的设备有一台HP 8GRAM+1TROM/I5 /GTX1050TI笔记本电脑,作为攻击方和数据测量与分析的设备;一台MI 骁龙835/6GRAM+64GROM手机,作为客户端和数据测量与分析的设备;一台SSL服务器 BAIDU HTTPS SERVER/163 HTTPS SERVER,作为SSL服务器。

在此基础上,该安全技术所用的手机和笔记本电脑等个人移动设备配置方法,如图4所示,包括关键步骤、详细操作和工具实例。

图4 个人移动端软件环境配置

3.2 X.509证书伪造攻击

(1)攻击原理。

在SSL客户端访问一个基于SSL加密的Web时,需要三个步骤验证证书服务器的有效性[10]:①该证书的主题名与访问服务站点的名称一致性;②该证书的有效期限;③该证书与证书链中数字签名的匹配。若以上步骤有任意一个没有通过,SSL协议就会向客户端发出警告,指出证书存在安全问题。此时需要用户来决定是否继续使用,攻击方由此利用用户安全意识缺乏进行攻击,若用户选择信任不安全的证书,或者被攻击方恶意控制将伪造的证书加入信任列表,从而造成基于X.509证书伪造的SSL会话劫持攻击。

(2)实现流程。

基于X.509证书伪造的攻击流程如下:

①HTTPS连接协商:攻击方同时与客户端、服务器发出HTTPS连接协商,攻击方截获并转发客户端与服务器之间的所有请求与响应。当攻击方截获客户端发给服务器的ClientHello请求时,记录随机序列在内的相关信息之后再转发给服务器。

②攻击方代替客户端对服务器进行验证:该步骤为证书伪造攻击的关键步骤,当攻击方截获服务器发给客户端的响应及服务器证书时,保存包括随机序列和session的相关信息,将数据包中的证书重组替换为伪造的X.509证书,重新打包数据之后转发给客户端。

③攻击方截获服务器与客户端交换的密钥:客户端发送密钥给服务器,攻击方截获密钥再转发给服务器,若服务器要求对客户端进行认证,则攻击方需要截获用户证书并重新打包转发。

④攻击方基于伪造的X.509证书实施攻击:攻击方利用伪造的证书同时和服务器与客户端建立HTTPS链接,但服务器与客户端并不知道攻击方作为中间人劫持了HTTPS链接,随后服务器与客户端之间传输的数据都可以被攻击方明文解析。

(3)操作与关键配置。

X.509证书伪造攻击在攻击方和被攻击方通过命令行输入命令和浏览器建立HTTPS链接等方式,共需要五个步骤完成。X.509证书伪造攻击的操作步骤与关键配置如表1所示。

表1 X.509证书伪造攻击操作与关键配置

(4)数据测量与可视化分析。

根据被攻击方抓包得到的报文可以看到攻击方保持了证书id等外部信息不变,但实则替换了证书内部的加密协商相关字段值,由此达到攻击方可以明文解密被攻击方与服务器之间HTTPS链接的目的。

攻击方进行X.509证书伪造攻击之后,使用fiddler对被攻击方的HTTPS访问请求进行抓包分析,如图5所示。攻击方从截获的报文中可以监控被攻击方的网络访问记录,本例访问了百度移动端站点www.m.baidu.com;在此基础上,攻击方通过X.509证书伪造攻击可以进一步窃取被攻击方的个人私密信息,如被攻击方的cookie值。在被攻击方通过HttpCanary抓包,可以验证攻击方窃取的cookie值的真实性。

图5 证书对比分析

3.3 链接跳转篡改攻击

(1)攻击原理。

使用者在申请HTTPS链接时有两种实现方式[11],一种是在输入网址时添加前缀https://指定该链接为HTTPS链接,另一种是使用者如果没有指定链接是HTTP还是HTTPS,浏览器会默认为HTTP类型,此时跳转到HTTPS就需要利用HTTP的302状态来重定向为HTTPS链接。大部分人图方便并不会采用第一种实现方式,而第二种实现方式就给了攻击方攻击的机会[12]。一个完全由SSL加密的HTTPS通信变成了加密的HTTPS通信和明文传输的HTTP会话混合的传输方式,如果HTTP通信被劫持,那么HTTPS会话也会遭到劫持。

(2)实现流程。

基于链接跳转篡改攻击流程如下:

①HTTPS链接协商:攻击方分别向客户端、服务器发出HTTP和HTTPS链接协商,攻击方截获并转发客户端与服务器之间的所有请求与响应。

②攻击方替换服务器HTTPS流量中的信息:攻击方截获服务器发给客户端的HTTPS流量,攻击方解析该数据包并将其中的替换成,将Location:https://...替换成Location:http://..,保存修改的URL后,重新打包数据并转发给客户端。

③攻击方转发修改客户端HTTP流量中的信息:攻击方截获并解析客户端发给服务器的HTTP请求,与之前保存的URL对比之后,若存在要修改的HTTP URL,则替换为原HTTPS URL,重新打包数据并转发给服务器。

④攻击方维持与客户端和服务器之间的虚假HTTPS链接:分别与客户端和服务器维持HTTP和HTTPS链接。

(3)操作与关键配置。

链接跳转篡改攻击在攻击方和被攻击方通过命令行输入命令和浏览器建立HTTPS链接等方式,共需要四个步骤完成。链接跳转篡改攻击的操作步骤与关键配置如表2所示。

表2 链接跳转篡改攻击操作与关键配置

(4)数据测量与可视化分析。

攻击方进行链接跳转篡改攻击之后,使用fiddler对被攻击方的HTTPS访问请求进行抓包分析,如图6所示。攻击方从截获的报文中可以看到被攻击方与服务器之间建立的会话都是HTTP链接,本例中被攻击方与163邮箱移动站点建立了HTTP链接,地址栏信息为http://smart.mail.163.com。由于链接跳转篡改攻击将HTTPS链接篡改为了HTTP链接,攻击方可以轻易窃取被攻击方的个人私密信息,如被攻击方的cookie值。如图7所示,在被攻击方通过HttpCanary抓包,可以验证攻击方窃取的cookie值的真实性。

图6 数据可视化分析

图7 攻击端截获的信息

3.4 SSL协议的个人移动端防御

SSL协议的个人移动端防御的关键在于如何有效防止攻击方与服务器和客户端建立虚假的HTTPS链接,具体可从四个方面实施。

(1)ARP防御。

在证书伪造攻击和链接跳转篡改攻击中都需要攻击方接入网络并对被攻击方进行ARP攻击,因此针对ARP欺骗、DNS欺骗等网络欺骗的防御方法同样适用于SSL攻击防御。常用的有动态ARP检测、静态IP-MAC绑定和安装ARP防火墙等[13]。

(2)提高用户安全意识。

证书伪造攻击需要用户安装并信任伪证书,链接跳转篡改攻击则利用了用户缺乏直接建立HTTPS链接的安全意识,因此用户良好的安全意识可以有效防止SSL攻击。例如,在网上注册、登陆等需要提供私密信息时,选择带有https://前缀的网址;更换使用360等具有安全防护功能的浏览器并及时更新;尽量避免使用未知的wifi热点。

(3)反向验证。

SSL协议中仅要求在建立HTTPS链接时,客户端验证服务器的身份,使得攻击方可以作为中间人伪装成客户端或服务端与对端建立虚假的HTTPS链接,因此服务器要求反向验证客户端身份可以防止SSL攻击。例如,服务器在建立链接与通信过程中也要求客户端使用证书与数字签名验证自身身份。

(4)提高开发者安全意识。

在对于78名Android和IOS开发者调查中发现,仅14名开发者意识到不完整实现SSL协议会遇到很多安全问题[14]。证书伪造攻击利用了开发者对于证书绑定实现的忽视,因此开发者良好的安全意识可以减少受到SSL攻击的可能。例如,完整的实现SSL相关接口;使用SSL Pinnng技术将证书与应用程序绑定[15-16]。

4 应用实效性分析

基于个人移动端的SSL协议安全技术可以完全依托个人移动端实现真实网络环境中的SSL协议攻击与防御,使得学生在居家条件下仍然可以利用手机、笔记本电脑等个人设备完成实验,从而实现学生居家边学边做“停课不停练”。针对本校2017级计算机科学与技术专业创新班学生开展问卷调查,全班46人共收回有效问卷42份,结果表明该技术具有轻量化、实景化、便携化和个性化的独特优点。

(1)技术效能对比。

超过95%的学生有计算机和手机,83%的学生在疫情期间习惯使用手机上网课,80%的学生在疫情期间习惯使用计算机上网课。

根据调查问卷的结果,50%的学生认为基于计算机的实验技术在易操作性上有优势,分别有56%、49%、46%、65%的学生认为基于手机的实验技术在易配置、直观性、真实性和成本低方面有明显优势,而仅有20%的学生认为基于仿真的实验技术在实验真实性方面有微弱的优势。

(2)实验模式创新。

师生可以在远程同步进行实验,教师可以通过示范、答疑等方式对实验的重难点分析解决。这种理论与实践一体化的教学模式为有效破除高校人才培养存在的“眼高手低”“高分低能”等现实弊病提供了切实可行的教学模式创新空间。

根据调查问卷的结果,96%的学生认为教学中的同步实验是很有必要的,79%的学生认为手机实验能很好的实现教学与实验的同步,但仅41%的学生认为手机实验能代替传统计算机实验与仿真实验,大部分学生对于手机实验替代传统实验并不乐观,而以手机为支点结合笔记本电脑等个人移动设备的实验方式应用范围更加广泛。

5 结束语

随着5G移动网络的快速普及,个人移动端用户规模和应用领域将迎来新一轮高速发展,以手机为支点的新应用、新业态和新模式进一步渗透融入国民经济和社会生活。该文提出基于手机、笔记本电脑等个人移动端的SSL协议安全技术设计,并具体实现X.509证书伪造和链接跳转篡改等典型SSL攻击。疫情期间,该技术的应用实现了学生在居家环境下开展网络安全实验“停课不停练”,形成了以学习体验为核心的个人掌上移动实验室,经过实践检验具有轻量文章、实景化和便携化的优点,为网络安全技术创新开拓实践新途径。

猜你喜欢
报文客户端加密
基于J1939 协议多包报文的时序研究及应用
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
以太网QoS技术研究及实践
避免饥饿的CAN 总线高优先级反转算法
基于报文类型的限速值动态调整
保护数据按需创建多种加密磁盘
谷歌禁止加密货币应用程序
虚拟专用网络访问保护机制研究
加密与解密
新华社推出新版客户端 打造移动互联新闻旗舰