配电网自动化DTU 终端的103规约的安全性分析①
余 鹏1,  王 勇1,  王 相2,  王 敏1
1(上海电力大学 计算机科学与技术学院, 上海 201306)2
(国家电网 上海市电力公司检修公司, 上海 200063)通讯作者: 余 鹏摘 要: IEC 60870-5-103规约是应用于继电保护设备的信息接口配套标准, 传输的主要内容是与继电保护有关的信息. 该报文进行的是明文传输, 缺乏加密措施和数字签名机制, 安全性较低. 为了验证以太网传输的103规约存在安全隐患和风险, 搭建了主
站与配电网自动化DTU 终端的通信实验环境. 运用ARP 欺骗手段对系统进行了中间人攻击测试, 实验的结果表明以太网传输的103规约具有中间人攻击的风险. 为了提高协议的安全性, 提出了一种基于非对称密码算法的双向身份认证机制, 并采用对称加密机制、数字签名技术确保传输报文的机密性和完整性, 最后通过仿真测试验证该方法的有效性.
关键词: DTU; 103规约; ARP 欺骗; 中间人攻击; 身份认证
引用格式:  余鹏,王勇,王相,王敏.配电网自动化DTU 终端的103规约的安全性分析.计算机系统应用,2021,30(5):262–268. /1003-3254/7890.html
Security Analysis of 103 Protocol of DTU Terminal in Distribution Network Automation
YU Peng 1, WANG Yong 1, WANG Xiang 2, WANG Min 1
1(School of Computer Science and Technology, Shanghai University of Electric Power, Shanghai 201306, China)
2
(Shanghai Electric Power Company Maintenance Company, State Grid Corporation of China, Shanghai 200063, China)
Abstract : The IEC 60870-5-103 protocol is an information interface supporting standard applied to relay protection equipment and transmits mainly the information related to relay protection. The message is transmitted in plain text and has poor security for a lack of encryption measures and digital signature mechanism. A communication experiment environment between the master station and the DTU terminal is built to verify that there are hidden dangers in the 103protocol of Ethernet transmission. A man-in-the-middle attack test is carried out on the system by detecting ARP spoofing. The experimental results show that the 103 protocol of Ethernet transmission faces the risk of man-in-the-middle attack. In order to improve the security of the protocol, we propose a two-way identity authentication mechanism based on an asymmetric cryptographic algorithm and rely on a symmetric encryption mechanism and digital signature technology to ensure the confidentiality and integrity of the transmitted message. Finally, the method is validated through simulation tests.
Key words : DTU; 103 protocol; ARP spoofing; man-in-the-middle attack; authentication
计算机系统应用 ISSN 1003-3254, CODEN CSAOBN
E-mail: Computer Systems & Applications,2021,30(5):262−268 [doi: 10.15888/jki.csa.007890] ©中国科学院软件研究所版权所有.
tcp ip协议的安全隐患
Tel: +86-10-62661041
① 基金项目: 国家自然科学基金面上项目(61772327); 上海自然科学基金面上项目(20ZR1455900); 奇安信大数据协同安全技术国家工程实验室开放课题(QAX-201803); 浙江大学工业控制技术国家重点实验室开放式基金(ICT1800380)
Foundation item: General Program of National Natural Science Foundation of China (61772327); General Program of Natural Science Foundation of Shanghai (20ZR1455900); Open Project of Qi-Anxin National Engineering Laboratory of Big Data Collaborative Security Technology (QAX-201803); Open Fund of State Key Laboratory of Industrial Control Technology, Zhejiang University (ICT1800380)
收稿时间: 2020-09-03; 修改时间: 2020-09-25; 采用时间: 2020-10-09; csa 在线出版时间: 2021-04-28
262
IEC 60870-5-103规约(以下统称为103规约)是国际电工委员会根据IEC 60870-5系列基本标准而制定的, 是用于继电保护设备信息接口的配套标准[1]. 103规约对变电站自动化系统、厂站自动化系统中的控制系统以及继电保护设备或者间隔单元的信息传输做出了明确规范, 可以用于配电网自动化主站和站所终端
单元(Distribution Terminal Unit, DTU)之间的数据传输. 由于103规约主要考虑的是信息交换数据格式的统一, 不同地区和不同的厂家有着不同的具体实现方式, 有的采用串口通讯, 有的采用以太网TCP/IP或者是采用以太网UDP/IP, 甚至可以采用二者结合的方式[2].
103规约在设计之初并没有考虑到其安全性, 使得攻击者很容易利用规约的漏洞进行攻击, 拦截甚至篡改通信内容, 一旦通信主站接收错误指令或者通信系统崩溃将会给电力系统带来巨大损失. 文章针对基于TCP/IP的以太网103规约存在的明文传输、易受中间人攻击等漏洞进行分析, 并进一步搭建具体的实验环境进行验证, 最后设计了一种数据安全传输机制, 能很好地抵挡中间人攻击以及明文传输存在的威胁, 一定程度上可以增强该以太网103规约的安全性.
本文做以下工作:
(1)针对103规约进行了安全性分析, 指明其存在的若干安全隐患. 并采用PMA通信协议分析及仿真软件进行了仿真实验, 获得了103规约的通信报文, 验证了该规约的明文传输特性.
(2)搭建了真实的通信实验环境, 构建基于以太网103规约的DTU设备与主站的硬件连接, 通过软硬件结合可以遥测到DTU设备所采集的电压电流等真实数据.
(3)使用中间人攻击的方式对系统进行了安全性测试, 可以成功对主站与DTU设备通信的网关进行欺骗, 证明该规约存在中间人攻击隐患.
(4)为增加规约的通信安全性, 提出了一种基于RSA 非对称密码算法的双向身份认证机制, 并运用高级加密标准(Advanced Encryption Standard, AES)和安全散列算法1(Secure Hash Algorithm 1, SHA-1)保证传输数据的机密性和完整性, 最后通过socket编程进行实现.
1  研究现状
针对103规约的研究,国内外学者做了诸多研究.姬希娜等[3] 针对国家电网以太网103规约设计了一种可用于测试规约子站的工具, 该工具既能作为TCP连接的客户端, 还可实现LPCI测试和基于测试 用例集的应用功能的自动测试, 能有效提高用例错误检测能力.张磊等[4]针对日渐复杂和受到限制的装置人机接口, 针对103规约的功能不足, 在其基础上扩展了装置菜单读取、权限控制、装置命令等功能, 有效弥补了人机交互功能差, 并在保护装置中进行实际使用. 等[5]为解决当前牵引变电站综合自动化系统在高精度实时负荷录波方面存在的诸多不足, 提出一种基于103规约扩展的实时负荷录波设计实现方案, 并在实际使用中获得了很好的效果. 韦宇等[6]采用103规约结合UDP报文和TCP报文建立发电机原有的主保护装置与上位机的通信, 用于保护装置的数据传输, 对发电机实施计算机控制, 经过改造后可实现少人值守甚至无人值班的目标. 雷林绪等[7]针对输电线路的故障诊断, 为了在修复过程中提高故障定位的准确性, 提出一种应用103规约将行波故障测距装置连接到继电保护信息管理系统和变电站监控系统的设计方案, 并介绍了实现的方法和思路. 余梦泽等[8]对103规约在110 kV裂心式高压并联可控电抗器控制装置中的一些应用进行介绍, 并对可控电抗器的运行数据结构进行分析, 最后给出在可控电抗器的控制装置中的具体实现
方法. 刘亮亮等[9]肯定了以太网103规约对提高继保装置效率和可靠性的作用, 同时浅析了以太网103规约在实际中的优点和不足, 并给出一些以太网103规约在实际使用中的建议.
综上所述内容, 目前国内外研究人员针对103规约的研究大部分还是在实际应用中, 很少关注到安全性方面. 本文通过实验环境的搭建, 重点分析103规约存在的安全隐患.
2  103规约存在的安全问题
2.1  未采用加密通信
103规约的通信报文进行的是明文传输, 未使用任何有效的加密措施和数字签名机制, 这使得该规约存在一定的安全风险. 攻击者可以通过嗅探方式很容易获得并轻松解析出其中的数据. 如果遭受到中间人攻击, 攻击者很容易对截获的报文进行篡改再转发, 将导致系统的错误决策从而造成经济损失.
为验证103规约采用的是明文传输, 我们使用PMA通信协议及仿真软件进行仿真实验, 这个软件可以模拟主从站的通信过程. 首先我们在软件中选取相应的规约并分别对通信的主从站进行相关设置, 配置完成后主从站就可以进行通信, 如图1所示. 从图中我们可以看到该规约确实采用明文传输, 其通信安全存在隐患.
2021 年 第 30 卷 第 5 期计算机系统应用
263
图1    主从站通信报文界面
2.2  数据校验方式简单
数据校验是为了确保数据正确传输, 检验数据是否完整的一种验证操作. 首先发送方用指定的算法对原始的通信数据进行计算得出一个校验值, 接收方接收数据后采用相同的算法计算出一个校验值, 然后对比接收到的校验值和自己计算的检验值是否相同, 如果校验值相同, 则数据是正确传输, 没有出现丢失情况. 103规约是采用简单的帧校验和的方式进行数据校验的. 对于固定帧长格式, 帧校验和为控制域与地址域算术和(不考虑溢出位,即256模和); 对于可变帧长,帧校验和为地址域、控制域及应用服务数据单元算术和(不考虑溢出位,即256模和). 这种校验和算法过于简单, 虽然可以一定程度保证数据传输过程中的正
确性,但是一旦攻击者篡改数据之后对校验位进行重新计算,很容易可以达到欺骗的目的.
2.3  缺少身份认证机制
以太网103规约大都是基于TCP/IP协议进行设计的, 在103规约的基础上使用TCP协议进行数据传输,导致以太网103规约缺乏身份认证机制. TCP协议的可靠连接是进行以太网103规约数据传输的前提, 但是在进行TCP连接的时候, 只要知道目的IP就可以发起请求从而确定目的MAC地址. 攻击者可以利用这一漏洞,通过伪造ARP数据包把自己伪装成目的机, 进而发起中间人攻击截获通信数据包, 攻击者甚至可以对通信数据进行恶意转发和非法篡改操作.
3  安全性测试与分析
3.1  实验环境
本实验系统采用的是某品牌的DTU设备、路由器和终端电脑构成, 系统硬件连接图如图2所示.
在终端电脑安装DTU配套软件并进行相关配置,将终端电脑IP地址设置为198.120.0.100, 网关设置为198.120.0.2, 子网掩码为255.255.0.0. 将DTU设备IP 地址配置为198.120.0.1, 网关与子网掩码的配置与终端电脑是一样的. 进行连接以后, 使用wireshark软件可看到电脑终端与DTU设备的通信数据包如图3所示, 从图中可看出该以太网103规约是基于TCP协议的.
DTU 设备
路由器
图2
系统硬件连接图
图3    终端电脑与DTU设备的通信数据包
3.2  中间人攻击测试
中间人攻击是一种历史悠久的网络入侵方式, 并且由于它存在巨大的继续开发潜力, 使得它一直以来都是信息安全领域的重要隐患. 中间人攻击的具体攻击方式有SMB会话劫持、ARP欺骗、DNS欺诈等.简单来说, 中间人攻击就是在通信双方不知情的情况下, 分别与通信的两方进行单独连接, 拦截和获取网络通信数据, 并可以对通信数据进行嗅探和篡改.
文章使用的是ARP欺骗的方式实现中间人攻击,本实验的网络配置情况如下:
攻击者的IP地址: 198.120.0.101; MAC地址: 00-0c-29-b5-48-cc.
路由器的网关IP地址: 198.120.0.2; MAC地址: 48-0e-ec-0c-d7-b4.
目标主机的IP地址: 198.120.0.100.
网络拓扑结构如图4所示.
在进行攻击实验之前, 在目标主机的cmd窗口下使用arp -a命令查看ARP列表, 如图5所示.
本次ARP攻击测试实验所采用的工具是Kali Linux操作系统中自带的ettercap软件进行. 攻击完成以后, 再查看ARP列表会发现网关的MAC地址已经由原来的48-0e-ec-0c-d7-b4变为攻击者的MAC地址
计算机系统应用2021 年 第 30 卷 第 5 期264
00-0c-29-b5-48-cc, 结果如图6所示. 这说明攻击者实施ARP 欺骗成功, 成功地在目标主机与DTU 设备中间充当了中间人. 当实现ARP 欺骗后, 监控端与DTU 设备不能继续通过网关建立正常的连接, 从而导致系统的崩溃.
DTU 设备
路由 (网关)
监控端系统:Windows 10
攻击者系统:Kali Linux
图4    网络拓扑连接图
图5    攻击前目标主机的ARP 列表
图6    攻击后目标主机的ARP 列表
4  数据安全传输机制
4.1  双向身份认证算法
通过以上实验, 我们验证了采用以太网103规约的DTU 设备存在中间人攻击的风险. 现在的配电网终端设备通常都是在线自动注册的, 这给不法分子有可乘之机, 部分非法用户在系统重启时自动连接到系统,所以在主站和配电终端之间进行数据传输之前验证对方身份的合法性很有必要[10]. 针对冒充攻击、中间人攻击等威胁, 文献[11]设计了一种基于身份密码体制的挑战/应答式双向身份认证协议, 解决了使用数字证书的身份认证机制中的证书难管理、宽带消耗大等缺点. 文献[12]针对传统的公钥基础设施(Public Key Infrastructure, PKI)中证书颁发、撤销以及难以实现交叉认证等缺陷, 提出了基于智能合约的去中心化的身
份认证机制, 可以实现交叉认证以及满足不同场景下的实际需求. 身份认证是网络安全的第一道防线, 具
有非常重要的作用. 我们设计了一种基于RSA 密码算法双向身份认证机制, 我们将双向身份认证的Server 端和Client 端程序部署到相应的终端设备上. 在进行电力数据传输之前首先验证设备的合法性, 从而保证接下来通信的可靠性.
(1)注册阶段
注册阶段是使Server 端和Client 端建立初始信任的过程, 整个过程可以描述为Server 端和Client 端在离线过程中交互各自的公钥, 这种直接信任的过程也是最简单直接的方式, 具体注册过程如图7所示.
图7    离线注册过程
(2)双向身份认证过程
符号说明:
K pubc 表示Client 端公钥, K pric 表示Client 端私钥.K pubs 表示Server 端公钥, K pris 表示Server 端私钥.EK ()表示使用密钥对括号内容进行加密.DK ()表示使用密钥对括号内容进行解密.双向身份认证详细步骤如下:
① Client 端生成随机数N 1, 使用Server 端公钥
K pubs 对N 1进行加密后发送给Server 端.
② Server 端收到后进行解密得N 1并随机生成N 2,将N 1与N 2进行合并得N 1||N 2, 使用Client 端的公钥K pubc 进行加密得E K pubc (N 1||N 2), 将密文数据发送给Client 端.
③ Client 端接到数据以后, 首先用自己的私钥K pric 对密文进行解密, 查看第一个分量是否为N 1, 如果第一个分量为N 1则Client 端对Server 端身份认证成功, 否则身份认证失败.
④ C l i e n t 端解密得到的第二个分量N 2使用Server 端的公钥K pubs 进行加密得E K pubs (N 2)发送给Server 端.
⑤ Server 端对密文解密验证明文是否为N 2, 如果明文是N 2则Server 端对Client 端身份认证成功, 也就是双向身份认证成功, 否则身份认证失败.
双向身份认证的流程图如图8所示.
2021 年 第 30 卷 第 5 期
计算机系统应用
265
图8    双向身份认证流程图
4.2  数据加密与签名
103规约主要用于传输继电保护相关数据, 对数据的完整性保护和来源可靠性具有较高要求[13], 并且该规约采用的是明文传输容易被他人窃听[
14,15]. 于是我们采用通信双方协商的规则来确定出后续用于数据加密的对称密钥[16], 文章利用注册阶段互换的RSA算法的公钥和SHA-1散列算法协商出数据加密密钥key, 协商具体过程如图9所示. 首先由Server端生成AES加密密钥key并利用对方的公钥将其加密发送给Client 端, Client端解密后利用自身私钥K pric和SHA-1散列算法对key签名Sign1(key)发送给Server端, Server 验证签名正确则用自己的私钥K pr
is和SHA-1散列算法生成签名Sign2(key)发送给Client, 如果两次签名都验签都正确, 则双方成功协商出数据加密密钥key. Server端和Client端双方建立通信之前协商出会话密钥的目的是为了保证前向安全,
同时也起到了功能隔离的作用, 在Client端和Server端虽然存在注册密钥,如果用注册密钥进行加密通信数据, 一旦密钥泄露将导致所有时间的会话内容泄露, 恰当地使用会话密钥可以有效避免这一点.
图9    密钥协商过程
双方协商出密钥key后, 发送方使用密钥key对数据进行AES对称加密, 并同时利用SHA-1散列算法和自身私钥生成签名. SHA-1是一种密码散列函数, 可以将一段明文以不可逆的方式将它转换成一段固定长度的输出也就是消息摘要, 只要原文被篡改将导致消息摘要发生巨大变化. 数字签名是在消息摘要的基础上利用私钥进行再次加密从而形成数字签名, 验签者则需要利用对方的公钥进行验签得到消息摘要, 由于非法者不能拥有合法用户的私钥, 所以这就能够保证数据来源的真实性, 同时也能验证数据在传输过程中是否被篡改, 具体的数字签名过程如图10所示.
图10    数字签名过程图
发送方对原始数据进行处理, 进行对称加密得到密文并生成数字签名, 随后将密文和数字签名一起发送给接收方, 数据发送流程图如图11所示.
数据接收过程流程图如图12所示, 接收方收到密文块和签名块. 接收方使用对称密钥key进行解密得到明文M并使用与发送方相同的SHA-1散列算法进行计算消息摘要, 将计算的消息摘要与运用发送方公钥进行验签得到消息摘要进行对比, 如果一致则认为消息是安全的未被篡改, 同时也能确定数据发送方的身份真实性, 否则数据通道存在不安全因素.
计算机系统应用2021 年 第 30 卷 第 5 期266

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。