APP下载

基于国产密码的地震预警服务系统防篡改框架设计与应用

2023-02-13赵国峰李卫东

地震工程学报 2023年1期
关键词:密码预警终端

赵国峰, 李卫东, 李 丽, 高 楠

(中国地震台网中心, 北京 100045)

0 引言

地震预警服务系统是地震预警系统的重要组成部分,是地震部门向公众提供及时服务的典型平台代表。大震突发后,通过地震预警服务系统,抢在地震波传播到设防地区前,将地震预警信息发布到各地震预警终端,利用提前几秒至数十秒到达的警报立即进行响应,以减小当地损失,阻止或缓解严重灾害的形成[1]。

接收到地震预警信息后,只有几秒到数十秒的响应时间,设防地区需立即进行响应,以降低地震灾害损失,确保人民群众的生命财产安全。地震预警信息需具备高时效性、真实性和完整性,要求:一方面,接收到地震预警信息后,地震预警服务系统应能够通过互联网快速将其发布到各地震预警终端,为设防地区人员争取尽可能多的响应时间,以疏散和转移人民群众;另一方面,地震预警服务系统所发布的地震预警信息和各地震预警终端所接收到的地震预警信息都是真实可信的,未受到恶意攻击者伪造或篡改,从而保证地震预警服务系统的权威性,避免出现“狼来了”的情景。

然而,地震预警服务系统面向公众提供服务时,地震预警信息主要通过互联网进行传输,由于互联网自身的匿名性和开放性,使得网上传输的地震预警信息数据面临着伪造、篡改等安全风险,亟需采用可靠技术措施增强信息安全性,防止被伪造或篡改,避免带来恶劣影响。随着我国《电子签名法》[2]、《密码法》[3]、《网络安全法》[4]等法律的实施,密码技术成为解决信息安全问题的重要和有效技术手段,通过密码技术,如数字签名技术的应用,可以有效保障网络交互数据来源的真实性和内容的完整性[5],防止业务数据被非法篡改或伪造[6]。

1 地震预警信息的密码技术保护

国外密码技术往往受到美国影响,可能存在某些未知漏洞和后门,使用时存在安全隐患,如2020年西方媒体曝光的“卢比孔行动”,即美国中央情报局(CIA)和美国国家安全局(NSA)联手操控全球知名的密码设备公司Crpyto AG,并在其密码设备中植入后门进行窃听[7];美国国家标准与技术研究院(NIST)在制订一系列标准时,将带有NSA后门的算法Dual_EC_DRBG放入标准中,全球最具影响力的密码技术公司RSA在其产品中将带有后门的算法设置为优先或默认算法[8]。

地震预警信息涉及国家安全和人民群众的生命财产安全,须选择使用国产密码技术进行信息保护。这是因为,国产密码技术是我国自主可控的密码技术,且经过国家密码主管部门认证。根据2020年1月1日实施的《密码法》,要求使用商用密码对我国关键基础设施进行保护。因此,地震预警服务系统采用国产商用密码进行信息保护,通过数字签名及验签来实现(图1)。

图1 地震预警信息进行数字签名和验签原理Fig.1 Principle of digital signature and signature verification for EEW information

数字签名是由信息发送者才能产生的别人无法伪造的一段数字串,作为信息真实性的一个有效证明,通过使用公钥密码技术实现,用于鉴别数字信息的真实性和完整性。实现方式为:在信息系统部署签名验签服务器,通过证书认证中心(CA)获取代表该信息系统真实身份的数字证书,并配置在签名验签服务器中[9]。在信息系统发送信息时,调用签名验签服务器数字签名服务,实现对所发送信息的数字签名。接收端在接收信息后对数字签名进行验证,通过即表示信息确实来自于可信的信息系统,且在传输过程中未被非法篡改,从而有效保障所传输信息的真实性、完整性。

基于数字证书传统的身份鉴别实现方式为:向终端设备发放内置数字证书的智能密码钥匙,智能密码钥匙作为搭载数字证书的载体,配合服务端密码应用系统,实现基于数字证书的身份鉴别。采用基于SM2算法[10]的密钥拆分技术无需配置智能密码钥匙,且满足国家密码应用技术要求,从而规避普通文件证书的安全隐患。

2 地震预警服务系统防篡改框架设计

2.1 地震预警服务系统组成

地震预警服务系统是地震预警系统的重要组成部分,是地震行业部门发布地震预警信息的出口。地震预警系统由地震预警监测台网(1)地震预警系统分为台站观测系统、数据处理系统、通信系统、技术保障系统和预警服务系统等5部分,为讨论方便,将前4部分统筹为地震监测台网,本文侧重于讨论地震预警服务系统与预警终端安全问题。、地震预警服务系统(平台)、地震预警终端组成[11-12](图2),其中地震预警监测台网包括台站观测系统(各类观测台站)、数据处理系统等。观测系统将所采集的地震动数据实时传输至预警专业处理系统,数据处理系统实时处理数据并产出预警信息,地震预警服务系统接收到地震监测台网产出的预警信息后进行解析、预处理等操作,根据发布规则,向下游地震预警终端进行信息发布。地震预警终端接收到地震预警信息后,计算并估计本地地震烈度和到时等信息,基于响应规则,向公众和各类控制系统进行地震预警信息的声光电警报展示,促使公众和各类控制系统及时对地震预警信息进行响应。

图2 地震预警系统结构示意Fig.2 Structure of EEW system

2.2 防篡改框架设计

在地震预警服务系统中,当前面临的主要安全威胁是恶意攻击者对地震预警信息进行伪造或篡改,破坏其来源的真实性和内容的完整性。上述攻击主要发生在互联网侧,对专线网络威胁较小,故文中所提出的地震预警服务系统防篡改框架重点考虑在互联网侧进行安全增强改造,暂不考虑专线侧改造,即不考虑预警专业处理系统与地震预警信息发布平台之间的专线连接安全问题。

由于地震预警服务系统中2个核心操作分别是:地震预警终端与地震预警信息发布平台建立连接,地震预警信息发布平台向地震预警终端发送地震预警信息。故本框架重点针对在互联网侧执行的上述2个核心操作,分别提供地震预警终端可信接入能力以及地震预警信息签名验签能力。地震预警服务系统防篡改框架示意见图3。

图3 地震预警服务系统防篡改框架示意Fig.3 Tamper-proof framework of EEW information service system

目前,地震预警终端与地震预警信息发布平台之间采用“用户名-口令”的单因素身份鉴别方式进行接入鉴别,存在非授权接入等安全风险,特别是面向公众服务,地震预警终端主要部署在互联网,非法的预警终端接入会造成业务运行等的一系列安全隐患。鉴于国产商用密码应用的推进,以及GB/T 39786—2021年《信息安全技术 信息系统密码应用基本要求》[13]的正式实施,本框架采用在地震预警信息发布平台部署协同签名服务器、签名验签服务器,引入CA服务的方式,针对地震预警终端,采用基于数字证书的身份鉴别实现方式,仅需在地震预警终端部署具有协同签名能力的SDK,使用用户身份+密钥机制替代“用户名-口令”方式,增强了用户身份识别和终端登录预警发布系统的安全性。

采用在地震预警信息发布平台部署签名验签服务器,在地震预警终端部署具有验签能力的SDK,本框架即可实现对地震预警信息的数字签名和验签操作。通过功能整合,将在地震预警终端部署的SDK合并为一个具有协同签名和验签能力的SDK,以降低本框架的部署成本和复杂度。

2.3 地震预警终端可信接入流程

地震预警终端可信接入地震预警信息发布平台分为地震预警终端初始化和地震预警终端身份鉴别2个步骤。其中,地震预警终端初始化流程见图4,地震预警终端身份鉴别流程见图5。

图4 地震预警终端初始化流程Fig.4 Initialization process of EEW terminal

图5 地震预警终端身份鉴别流程Fig.5 Identification process of EEW terminal

(1) 地震预警终端初始化流程具体步骤如下:①地震预警终端与协同签名服务器协同生成签名密钥;②地震预警终端将激活终端证书的请求发送至地震预警信息发布平台;③地震预警信息发布平台核验所接收的地震预警终端信息,并将激活终端证书的请求转发至CA中心;④CA中心根据该请求,签发地震预警终端证书,并将该证书发送至地震预警信息平台;⑤地震预警信息发布平台将地震预警终端证书发送至地震预警终端,完成初始化(即证书签发)过程,证书私钥由终端私钥因子和服务端私钥因子共同构成,2个密钥因子分别在终端和服务端各自独立生成,各自安全存储。

(2) 地震预警终端身份鉴别流程具体步骤如下:①地震预警终端与协同签名服务器进行协同签名,生成身份鉴别数据;地震预警终端将鉴别请求发送给地震预警信息发布平台;②地震预警信息发布平台将验证地震预警终端证书的请求发送给CA中心;③CA中心对地震预警终端证书进行验证,并将验证结果发送给地震预警信息发布平台;④若地震预警终端证书验证通过,则地震预警信息发布平台将验证地震预警终端签名的请求发送给签名验签服务器;⑤签名验签服务器对地震预警终端签名进行验证,并将验证结果发送给地震预警信息发布平台;⑥若地震预警终端签名验证通过,则地震预警信息发布平台将鉴别结果发送给地震预警终端;⑦地震预警终端通过身份鉴别,成功接入地震预警信息发布平台。

2.4 地震预警信息签名和验签流程

地震预警信息签名验签流程见图6。

地震预警信息签名验签流程具体步骤如下:①地震预警终端接入地震预警信息发布平台;②地震预警信息发布平台生成地震预警信息;③地震预警信息发布平台调用签名验签服务器,对地震预警信息进行数字签名;④地震预警信息发布平台将地震预警终端信息推送至地震预警终端;⑤地震预警终端接收地震预警信息;⑥地震预警终端对地震预警信息中的数字签名进行验证;⑦如数字签名验证通过,地震预警终端将根据地震预警信息,对公众和各类控制系统进行声光电警报展示。

图6 地震预警信息签名验签流程Fig.6 Signature and signature verification process of EEW information

3 地震预警服务系统防篡改方案应用

3.1 防篡改方案关键环节与性能测试

由于地震预警信息的高时效性特点,在基于本框架对地震预警服务系统进行安全增强改造时需着重考虑对新引入密码操作的优化,以确保由此引发的时间开销足够小,避免因延时过大不可用。在本框架中,所引入的与密码技术相关的操作集中于地震预警终端可信接入流程、地震预警信息签名和验签流程。鉴于地震预警终端可信接入流程的发生并不频繁,且与地震预警信息发布的关联性较小,因此在防篡改方案中地震预警信息签名和验签流程成为其关键环节,需要对该环节进行性能测试。

与原地震预警信息发布流程相比,地震预警信息签名和验签流程额外增加1次签名操作和1次验签操作,即地震预警信息发布平台调用签名验签服务器对地震预警信息进行签名,地震预警终端对地震预警信息进行验签。此外,地震预警服务系统所在网络架构和网络环境均保持不变,因此分别对地震预警信息签名操作和地震预警信息验签操作进行测试。测试环境的网络部署见图7。

(1) 签名验签服务器对地震预警信息签名的性能测试。地震预警信息的签名操作由专用签名验签服务器完成,签名验签服务器使用SM2算法执行签名,可根据签名验签服务器标称的性能指标确定信息的平均签名速度。

对于国家级地震预警信息发布平台,签名验签服务器执行签名速率要求不低于10 000次/s,即执行单次签名操作的平均时间小于0.1 ms;对于省市级地震预警信息发布平台,签名验签服务器执行签名速率要求不低于1 000次/s,即执行单次签名操作的平均时间小于1 ms。

(2) 地震预警终端对地震预警信息验签的性能测试。目前,地震预警服务系统使用Android平台和单片机平台终端进行地震预警,对2种平台终端验签各进行10次性能测试。在测试过程中,模拟向各平台终端发送多条地震预警信息并请求验签,统计执行多条地震预警信息验签的总响应时间以及对1条地震预警信息验签的平均响应时间、最小响应时间、最大响应时间、验签失败数目。

图7 地震预警信息签名验签测试环境Fig.7 Test environment of EEW signature and signature verification

Android平台地震预警终端采用帝嘉科技桌面预警管理终端(型号X9R)(2)设备操作系统版本:Android 7.1.2,内核版本:Linux 4.4.112;硬件配置为:CPU:ARMv7l 4核,内存:2 GB,存储:32 GB。,具备多线程并发处理能力,可同时接收不同平台发送的地震预警信息,单片机平台地震预警终端不具备并行处理能力,只能接收1个平台发送的地震预警信息。

对于Android平台地震预警终端进行了10轮测试,每次开启5个线程同时执行验签操作,每个线程每轮测试执行1 000次验签请求,单次测试的总验签请求数量为5 000次。测试结果列于表1。

表1 Android平台验签性能测试

单片机平台地震预警终端(3)单片机平台地震预警终端配置为:型号:STM32F407,CPU:ARM 32-bit Cortex-M4,SRAM:192 kB,闪存:1 MB。进行了10轮测试,每轮测试执行100次验签请求,分别统计验签总响应时间、验签平均响应时间、最小响应时间、最大响应时间、验签失败数目。测试结果列于表2。

表2 单片机平台验签性能测试

(3) 性能测试结果分析。通过上述性能测试可以发现,Android平台地震预警终端通过开启5个线程执行5 000次验签请求(即单线程执行1 000次验签请求)的平均总响应时间为98.5 ms,单次验签请求的平均响应时间为93.9 ms、平均最大响应时间为281.9 ms、最大响应时间极值为429 ms,无验签失败情况发生。

单片机平台地震预警终端的大部分单线程验签性能指标低于Android平台,即执行100次验签请求的平均总响应时间为12.5 ms,单次验签请求的平均响应时间为128.5 ms。但单片机平台在单次验签请求的平均最大响应时间和最大响应时间极值2个指标上优于Android平台,其中单次验签请求的平均最大响应时间为187.6 ms,最大响应时间极值为309 ms,这是因为单片机为串行处理,不存在多线程切换时的中断延迟。此外,单片机平台地震预警终端无验签失败情况发生。

在本方案中引入地震预警信息签名和验签流程,对地震预警服务系统性能影响的测试结果列于表3。由表3可见,平台地震预警终端和地震预警信息发布平台随意组合,在正常情况下,签名操作时间开销的数量级均为1 ms,而验签操作时间开销的数量级均为100 ms,签名验签服务器执行签名操作的时间开销约为地震预警终端执行验签操作的1%,且执行一次签名验签操作的平均响应时间低于130 ms(即0.13 s),对地震预警服务系统的性能影响较小。即使在极端情况下,执行一次签名验签操作的最大响应时间也低于450 ms(即0.45 s),不会对地震预警业务的正常开展构成大的影响。

表3 地震预警信息签名和验签性能测试

由于单片机平台地震预警终端性能较低,产生的额外时间开销较大,可考虑对其展开性能优化。一方面,可将该类终端执行的验签操作代码改为汇编代码,通过提升代码执行效率的方式减小时间开销;另一方面,对验签操作中执行的SM2算法进行基于算法层面的计算优化,包括采用雅克比加重射影坐标系减少求模逆的次数、采用巴雷特约减方法提高求模的运算效率以及对基础乘法运算采用汇编方式提升计算效率等,进一步减小时间开销。通过优化,单片机平台地震预警终端验签性能约提升30%,有效减小了时间开销,并使得其单次验签性能达到与Android平台地震预警终端相当的水平。

3.2 渐进式改造过程中的地震预警终端兼容性优化

在基于本框架对地震预警服务系统进行安全增强改造时,由于地震预警终端不会在同一时刻统一完成改造,故实际改造是一个渐进式过程,即在改造过程中,要求已改造和未改造的地震预警终端同时接入系统。为保证地震预警终端的可用性,基于本框架的改造方案需支持渐进式改造,能够兼容未改造的地震预警终端。此外,为了降低兼容性优化的复杂度,将按照地震预警信息发布平台、地震预警终端的顺序进行改造。在此基础上,对地震预警终端初始化、终端身份鉴别、地震预警信息签名验签进行未改造地震预警终端的兼容性优化。

(1) 地震预警终端初始化过程。在地震预警终端与地震预警信息发布平台的通信协议中保留“用户名”和“口令”字段,在激活请求中增加“证书请求”字段,并放置签名密钥对等信息,在响应中增加“证书”字段,并放置证书内容。

(2) 地震预警终端身份鉴别过程。在地震预警终端与地震预警信息发布平台的通信协议中增加“签名信息”字段;在地震预警信息发布平台处配置为支持“用户名+口令”和“数字证书”的双身份鉴别模式,对于未改造的地震预警终端只需通过“用户名+口令”的身份鉴别,就返回通过鉴别的信息,不再向CA中心发送请求和调用签名验签服务器。

(3) 地震预警信息签名验签过程。在地震预警终端与地震预警信息发布平台的通信协议中增加“签名信息”字段,未改造终端自动忽略该字段,而已改造终端则进行验签操作。

经上述渐进式改造,本方案向后兼容性良好,即地震预警信息发布平台完成改造后,已改造和未改造的地震预警终端均可正常接入地震预警服务系统,执行相应功能。

4 总结

针对地震预警信息被恶意攻击者进行伪造或篡改的安全威胁,提出基于国产密码的地震预警服务系统防篡改框架,采用国产密码技术增强系统安全,并能够向后兼容未改造的地震预警终端。在此基础上,对所提出框架中使用的签名和验签操作造成的额外时间开销进行测试和分析,并进行合理优化,在该框架下,额外时间开销小,兼顾了地震预警信息的安全性和高时效性,可作为地震预警服务系统安全提升的技术解决方案,对地震预警服务系统的安全强化具有重要意义。

猜你喜欢

密码预警终端
密码里的爱
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
法国发布高温预警 严阵以待备战“史上最热周”
密码抗倭立奇功
园林有害生物预警与可持续控制
多功能北斗船载终端的开发应用
密码藏在何处
机载预警雷达对IFF 的干扰分析
夺命密码