摘 要:本文首先介绍了在计量自动化系统建设实施时系统主站与现场终端之间的数据通信全过程,然后介绍了用户身份认证技术的基本概念,并提出了一种动态口令算法HOTP。然后对GPRS通信的计量自动化终端在数据传输过程中存在的安全性问题进行了探讨,提出将动态口令身份认证技术用于终端数据通信传输的设想和方案,提高主站系统与现场终端数据在传输过程中的安全性。 关键词:身份认证;动态口令;主站系统;HOTP;计量自动化终端 1 引言 通过近几年的计量自动化系统建设,计量自动化终端的覆盖率得到了很大程度的提高,已安装终端的用户数量越来越多,并通过计量自动化系统实现了终端数据的远程采集、负荷控制,在满足自动化抄表,电量统计等应用的同时,还对计量装置监测、用电检查、电能质量监测、负荷管理、线损管理都提供了非常重要的数据和依据。计量自动化系统由系统主站、现场运行的终端和主站与终端间的通信信道组成。目前绝大部分用电客户侧的计量自动化终端上传通信信道主要采用GPRS、CDMA通信,终端通信方式也主要以GPRS、CDMA移动公用网络为主。为保障终端在接收、存储和发送过程中数据通信安全问题,尽管采用APN专网方式对终端、通讯服务器做了一定的安全防护,提高了系统的安全性,但主要是依赖GPRS本身的安全机制,在数据安全性方面依然存在隐患,因为计量自动化终端通讯规约是公开的,一旦主站系统与终端通信的信道被攻击者打通,主站系统与终端通信的数据安全就受到严重威胁,影响着终端执行主站下发命令的正确性,还可能会造成用电客户侧断路器误动作的事故,给电力系统安全稳定运行带来隐患。本文结合计量自动系统建设经验和对终端数据传输过程分析,探讨动态口令身份认证技术在计量自动化终端通信传输过程中的数据安全应用问题。
图1 计量自动化系统结构图 2 基本概念 用户身份认证技术是计算机信息安全体系中非常重要的组成部分。目前大部分系统还是采用静态口令认证技术,即通过用户名和密码来进行用户身份的识别。随着计算机应用技术的快速发展,这种静态口令认证技术开始面临许多安全方面的挑战,已经无法实现高安全性的要求。 2.1 动态口令 动态口令认证技术又称一次性口令认证技术,是根据特殊算法得到一个无法预测的随机数字组合,作为密码,一个密码只能用于一次认证。动态口令认证技术已成为身份认证技术的主流,已经广泛应用于电子政务、电子商务、网银、电信运营、企业管理等领域。 2.2 计量自动化终端数据通信过程分析 GPRS(General Packet Radio Service,通用无线分组业务)是一种基于GSM 系统的无线分组交换技术,是利用“包交换”(Packet—Switched)的概念所发展出的一套无线传输方式。提供端到端的、广域的无线IP连接。目前大部分安装于客户侧和小区集抄的计量自动化终端主要通过GPRS与主站进行通信,大部分供电局主要以专用APN(Access Point Name,接入点)组网方式为主。 在使用专用APN通信方式时,计量自动化主站管理系统通过专线和通信运营商GPRS网的GGSN(Gateway GPRS Support Node,网关GPRS支持节点)相连,使用企业在通信运营商GGSN上申请一个专用的APN接入点,从而在主站系统和终端之间构成一条VPN(Virtual Private Network,虚拟专用网络)通道。现场计量自动化终端投入运行时每台终端需要安装一张运营商的SIM卡,当终端GPRS无线模块向GGSN发送登录请求时,GGSN核对SIM卡的IMEI(International MobileEquipment Identifier,国际移动设备标识)号码及APN名称,正确无误后,通过DNS(Domain Name System,域名系统)将APN解析成域内分配的SIM卡指定的IP地址,并把该IP地址信息经SGSN送回给计量自动化终端。当终端要发送数据时,向SGSN (Serving GPRS Supporting Node,GPRS服务支持节点)发送PDP上下文激活请求,SGSN通过验证后,PDP上下文激活过程完成,至此,计量自动化终端客户端业务应用软件就启动了,并与计量自动化系统前置通信服务器建立TCP/IP连接,进行相关业务操作和数据传输。如图2所示的GPRS网络结构图。
图2 GPRS网络结构图 GPRS通信方式提供端到端的IP连接,但端到端的数据安全性得不到全面保证,它只保证SGSN-MS(终端)的数据安全,数据只在SGSN-MS之间进行加密解密,而未明确主站系统到SGSN之间是否加密及采用何种方式加密。目前,对于APN专网方式,一般未对数据进行加密处理,而大部分计量自动化主站系统前置机等与终端间的GPRS通讯基本都使用APN方式,部分地区由于区域与范围等因素无法实现APN方式,也存在使用公网Internet方式进行组网。在终端和主站系统之间的数据传输没有经过任何处理,数据的安全性就完全依赖于GPRS的数据安全措施。如果数据完全依赖GPRS本身的安全机制以及APN等方式,那么计量自动化终端在通信过程中的数据安全性就没有安全保障。 2.3 动态口令算法介绍 HOTP(HMAC-based One Time Password)是基于HMAC的一次性口令算法,在OATH(Initiative For Open Authentication)组织的努力下,于2005年10月发布在“IETF RFC 4226”报告中。自发布以来,该算法被全世界的许多公司广为使用,成为世界上较为领先的基于事件的一次性口令认证标准。HOTP算法是一个免费的开放标准。用户可以自行确定算法的详细实现和安全认证协议。 HOTP算法的知识点可以进行如下分解: HOTP(HMAC-based One Time Password) │ ├─MAC(Message Authentication Code) │ │ │ └─HMAC(Hash-based MAC) │ └─OTP(One Time Password)
3 动态口令算法详解 HOTP[3](HMAC-based One Time Password)就是基于HMAC的一次性口令算法。是Initiative For Open Authentication(OATH)组织的基石。 3.1 HOTP公式 HOTP(key,message)= Truncate(HMAC(key, message))&0x7FFFFFFF
HOTP-Value = HOTP( key,message ) mod 10^d Truncate是动态截短函数 HMAC代表HMAC算法 key代表密钥 message代表将要被验证的数据, d是期望输出数据的位数,一般是6~8位 3.2 HOTP(key,message)=Truncate(HMAC(key, message))&0x7FFFFFFF详解 (1)将HMACValue分解w为String[0]... String[19]; (2)从String[19]中获取低4位,得到偏移量Offset,Offset的取值范围在0~15之间; (3)将String[OffSet+0]...String[OffSet+3]作为P,总共有32字节; (4)从P中获取低31位,得到结果A; 举例如下: HMAC Value内容: 0x1f8698690e02ca166185d0ef7f19da8e945b555a --0001020304050607080910111213141516171819 ----------------------********-----------* 计算过程 (1)HMACValue分解为String[0]...String[19] (2)偏移量Offset取String[19]的第四位 (3)取String[10] String[11] String[12] String[13]的值,即0xd0ef7f19作为P (4)从P中获取低31位,即P&0x7fffffff得到结果0x50ef7f19 3.3 HOTP-Value = HOTP( key, message) mod 10^d详解 举例如下: (1)HOTP( key,message )的结果是0x50ef7f19,转为10进制就是1357872921 (2)如果希望保留6位十进制的数据,则d取值为6,HOTP-Value就是872921;如果希望保留8位十进制的数据,则d取值为8,HOTP-Value就是57872921。 4 终端动态口令认证方案 4.1 数据验证 本文采用了基于事件同步认证技术和异步认证技术相结合的安全认证协议,来实现数据传输过程中的安全认证。 采用基于事件同步认证技术,来实现计量自动化系统主站与远程终端交互时的身份认证和数据完整性保证。认证方案设计如下: (1)通信主站和远程终端各自拥有一个递增计数器,初始为0。通信主站和远程终端还有一个对称密钥。 (2)当主站与终端通信时,将自身计数器与通信报文中用户数据区的数据连接,将此数据作为动态数据,与密钥一起按照前文所述的HOTP算法计算得到6位的10进制密码数据ClientPassword,将此密码保存在在报文的消息认证码区域,与报文一起发送到终端。 (3)终端收到报文后,将其中的用户数据区数据取出,与自身的计数器值连接,与自己这端的密钥一起也按照前文所述的HOTP算法计算得到6位的10进制密码数据ServerPassword,如果ClientPassword与ServerPassword相等,则为通过验证,终端将自身的计数器自增。然后根据报文内容进行后续业务操作,并回复主站报文。如果验证失败,采用回溯计数器值的方法(详见后文“4.2回溯计数器值同步”)来进行操作。 (4)主站收到终端的回复报文以后,也将自身的计数器自增。以此来保证双方计数器的同步。 4.2 回溯计数器值同步 通过前文的描述可以看到终端一方验证通过以后,自身的计数器就会自增。但是主站一方,必须是收到终端的回复以后才进行自身的计数器的自增,在此过程中,可能会因为网络通信不稳定等因素,导致回复报文的丢失。此时继续通信时就会出现双方计数器不同步的问题。 本文采用回溯计数器值的方法来解决此问题 (1)在终端一方,当验证无法通过时,尝试使用“自身计数器-1…自身计数器-n”来进行ServerPassword的计算 (2)如果有ClientPassword与ServerPassword相等的情况,则为通过验证。 (3)验证通过以后,终端需要据此调整自身的计数器,以保证后续的同步。这里n的取值需要进行权衡,如果取值过大,可能会增加终端的计算及验证耗时。如果取值过小,可能无法有效缓解因通信丢包导致的无法有效同步。 (4)如果依然验证无法通信,终端对主站回复验证错误应答。 4.3 计数器值重新同步 当终端采用回溯计数器依然无法实现与主站的同步时,就需要双方协商进行计数器重新同步了。本文采用异步认证,即挑战/应答方式Challenge/Response) [7]的方式来实现计数器重新同步。 计数器重新同步的触发机制:主站一方,如果收到了终端的验证错误应答,则m加1(m表示验证未通过次数),如果验证通过了,则此m重置为0。如果m大于maxRetry(maxRetry表最大同步失败次数),则需要进行双方的计数器重新同步。 (1)主站向终端发出认证请求信息; (2)终端收到此请求后,生成一个随机数Radom,将这个随机数Radom传给主站(这就是挑战Challenge) (3)主站将收到的随机数Radom作为动态数据,与密钥一起按照前文所述的HOTP算法计算得到6位的10进制密码数据ApplyPassword,将这个ApplyPassword传给终端(这就是应答Response) (4)终端也将随机数Radom作为动态数据,与密钥一起按照前文所述的HOTP算法计算得到6位的10进制密码数据ConfirmPassword,如果ApplyPassword与ConfirmPassword相等,则确认主站是合法的。终端将自身的计数器值传给主站。 (5)主站收到计数器值以后调整自身的计数器。 5 安全性分析 (1)密钥key是通信双方事先约定的,通信双方对此密钥的管理不再此讨论,可以假定为是安全的、不为外人所知的。从前文所描述的算法中可以看到,攻击者只能获取到摘要信息的片段(摘要信息的片段:密钥与其他数据连接后的哈希摘要,对此摘要信息也进行了动态截短处理),而攻击者是无法根据已有的明文传输的数据来推导密钥的。因为不知道密钥信息,所以攻击者无法伪造出可以通过接收端验证的响应数据。 (2)因为采用了HMAC算法,所以有效的解决了“length-extensionattack”对加密哈希函数的攻击,而且通过迭代哈希的方式,避免了对哈希函数的碰撞攻击。 (3)采用了OTP认证技术,攻击者虽然可以截获或是侦听到用户的动态口令,但是因为每个动态口令之间是没有直接联系的,无法通过已有的动态口令进行数据信息破译。 (4)文本中主要讨论了终端对主站一方的安全认证及数据完整性验证,完全可以在此基础上添加双向认证,来保证双方通信的安全性。 6 结论 本文提出的终端动态口令认证方案采用了基于事件同步认证技术和异步认证技术相结合的方式,在主站系统与计量自动化终端进行数据通信时采用这种算法和安全认证方式,可以极大提高计量自动化系统数据传输过程中的安全性。同时可以有效的实现对数据来源有效性的判断及对数据完整性的甄别,解决了通信中因为网络超时等原因导致的不同步问题。这些认证算法和安全认证协议经过适当调整后,可以适用于其他类型的网络通信传输时的身份认证及数据验证,对加强智能电网的系统安全性应用有着重要的作用。
参考文献: [1] 云南电网公司四合一计量自动化系统技术规范[S],云南电网公司,2012.8. [2] 杨波. GPRS技术在电力系统中的应用分析[J].电信工程技术与标准化,2010,(1):8-11 [3] H. Krawczyk.HMAC: Keyed-Hashing for Message Authentication [RFC2104].http://www.ietf.org/rfc/rfc2104.txt,Retrieved 3 December 2009 [4] 云南电网公司用电信息采集与管理系统数据传输规约[S],云南电网公司,2009.8 [5] 李如雄,张波,苏杏志.基于GPRS的大客户负荷管理终端[J].电测与仪表,2008,(07):29-31 [6] 姜开山.GPRS远程抄表系统应用实践[M].北京:中国电力出版社,2007. [7] D. M'Raihi.HOTP: An HMAC-Based One-Time Password Algorithm[RFC 4226]. http://tools.ietf.org/html/rfc4226,2005 [8] 文志成.GPRS网络技术[M].北京:北京电子工业出版社,2005:60-74.
|