《实时功能完整性检查系统.pdf》由会员分享,可在线阅读,更多相关《实时功能完整性检查系统.pdf(11页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103885851 A (43)申请公布日 2014.06.25 CN 103885851 A (21)申请号 201310064783.5 (22)申请日 2013.03.01 G06F 11/10(2006.01) (71)申请人 上海富欣智能交通控制有限公司 地址 201203 上海市浦东新区张江高科技园 区亮秀路 112 号 2 号楼 4 层 (72)发明人 沈雪亮 吴昊 (74)专利代理机构 上海浦一知识产权代理有限 公司 31211 代理人 孙大为 (54) 发明名称 实时功能完整性检查系统 (57) 摘要 本发明公开了一种实时功能完整性检查系 统, 包括。
2、两个以上的 CPU, 且在 CPU 之间存在通 信使其可以交换数据 ; 每个 CPU 上除了运行安 全功能软件 F1Fn外, 还运行完整性检查功能 FSupervision, 当前 CPU 的安全功能 Fn, 由当前 CPU 的 完整性检查功能实现完整性检查, 当前 CPU 的完 整性检查功能FSupervision, 由其他CPU的完整性检查 功能实现完整性检查。本发明运行额外的功能完 整性检查任务, 来实现对自身CPU和其他CPU上运 行的安全功能进行执行路径完整性检查和执行时 间完整性检查, 能够实时发现由于随机故障和系 统故障导致的系统安全功能失效, 使引导系统导 向安全, 防止安全事。
3、故发生。 (51)Int.Cl. 权利要求书 1 页 说明书 6 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书6页 附图3页 (10)申请公布号 CN 103885851 A CN 103885851 A 1/1 页 2 1. 一种实时功能完整性检查系统, 其特征在于, 包括两个以上的 CPU, 且在 CPU 之间存 在通信使其可以交换数据 ; 每个 CPU 上除了运行安全功能软件 F1Fn外, 还运行完整性检查功能 FSupervision, 当前 CPU 的安全功能 Fn, 由当前 CPU 的完整性检查功能实现完整性检查, 当前 CP。
4、U 的完整性检查 功能 FSupervision, 由其他 CPU 的完整性检查功能实现完整性检查 ; 安全功能 Fn会根据自身的运行不断的发送执行报告 RExec到当前 CPU 的完整性检查功 能 FSupervision; 完整性检查功能 FSupervision负责根据当前 CPU 内的执行报告 RExec, 来监控安全功能的执 行路径和执行时间完整性, 完整性检查功能FSupervision负责根据当前CPU内的执行报告RExec, 通过 CRC 算法产生功能执行校验字 WExecChk; 该校验字 WExecChk将通过 CPU 之间的通信发送到 其他的 CPU, 实现通过其他 CP。
5、U 上完整性检查功能 FSupervision对当前 CPU 上完整性检查功能 FSupervision的监控。 2. 如权利要求 1 所述的实时功能完整性检查系统, 其特征在于, 完整性检查功能 FSupervision包括4个模块 : 当前CPU功能执行路径监控MCurExecCase; 当前CPU功能执行时间监控 MCurExecTime; 其他 CPU 功能执行路径监控 MOthExecCase; 其他 CPU 功能执行时间监控 MOthExecTime。 3. 如权利要求 1 所述的实时功能完整性检查系统, 其特征在于, 不同的 CPU 对当前 CPU 执行路径完整性的检查采取不同的。
6、方式, 来实现软件控制流差异化。 4.如权利要求3所述的实时功能完整性检查系统, 其特征在于, 部分CPU使用自动机状 态转换的方式, 其他 CPU 使用自动机真值表查表的方式。 5. 如权利要求 1 所述的实时功能完整性检查系统, 其特征在于, 不同的 CPU 对当前 CPU 执行时间完整性的检查采取不同的方式, 来实现软件控制流差异化。 6.如权利要求5所述的实时功能完整性检查系统, 其特征在于, 部分CPU使用系统提供 的定时器实现定时, 其他 CPU 使用执行报告的时间戳进行周期检查实现定时。 7.如权利要求1所述的实时功能完整性检查系统, 其特征在于, 不同的CPU进行循环冗 余校验。
7、 CRC 运行时采用不同的循环冗余校验 CRC 多项式。 权 利 要 求 书 CN 103885851 A 2 1/6 页 3 实时功能完整性检查系统 技术领域 0001 本发明属于安全检查领域, 具体涉及一种用于计算机的检查系统。 背景技术 0002 在工业控制系统和安全信号系统 (应用于航空电子、 铁路信号、 核电等行业) 中, 软 件系统一般在多个 CPU 上运行, CPU 并不能保证安全软件能够正确的运行。为了确保安全 软件的执行正确性和功能完整性, 必须采用有效的措施来检测软件功能的完整性, 以避免 由来自 CPU 和存储器的随机故障引发系统功能失效、 甚至安全事故的发生。该方法可以。
8、提 高系统的安全性, 避免安全事故的发生。 0003 以目前轨道交通信号系统行业为例, 安全系统采用 2 取 2 或者 3 取 2 架构, 软件在 多个 CPU 之上运行, 运算结果最后经过硬件表决输出, 保证能够故障导向安全。但该方式有 如下缺点 : 0004 1. 对具有表决功能的硬件设计要求很高, 因为该表决硬件是保证输出安全的关 键。 0005 2. 由于 CPU 上面运行的安全软件功能是相同的, 容易出现系统性故障, 错误的得 到危险侧输出, 并在 2 取 2 表决后输出危险输出。 0006 3. 如果某个 CPU 上运行的安全软件由于随机故障导致软件跑飞, 另外一个 CPU 却 不。
9、能以及得知该故障, 会导致软件功能丧失, 可能错误的得到危险侧输出。 发明内容 0007 本发明所要解决的技术问题是提供一种实时功能完整性检查系统, 它可以运行额 外的功能完整性检查任务, 来实现对自身 CPU 和其他 CPU 上运行的安全功能进行执行路径 完整性检查和执行时间完整性检查, 能够实时发现由于随机故障和系统故障导致的系统安 全功能失效, 使引导系统导向安全, 防止安全事故发生。 0008 为了解决以上技术问题, 本发明提供了一种实时功能完整性检查系统, 包括两个 以上的 CPU, 且在 CPU 之间存在通信使其可以交换数据 ; 每个 CPU 上除了运行安全功能软件 F1Fn外, 。
10、还运行完整性检查功能 FSupervision, 当前 CPU 的安全功能 Fn, 由当前 CPU 的完整性 检查功能实现完整性检查, 当前 CPU 的完整性检查功能 FSupervision, 由其他 CPU 的完整性检查 功能实现完整性检查 ; 安全功能 Fn会根据自身的运行不断的发送执行报告 RExec到当前 CPU 的完整性检查功能 FSupervision; 完整性检查功能 FSupervision负责根据当前 CPU 内的执行报告 RExec, 来监控安全功能的执行路径和执行时间完整性, 完整性检查功能FSupervision负责根据当 前 CPU 内的执行报告 RExec, 通过。
11、 CRC 算法产生功能执行校验字 WExecChk; 该校验字 WExecChk将通 过 CPU 之间的通信发送到其他的 CPU, 实现通过其他 CPU 上完整性检查功能 FSupervision对当 前 CPU 上完整性检查功能 FSupervision的监控。 0009 本发明的有益效果在于 : 运行额外的功能完整性检查任务, 来实现对自身 CPU 和 其他 CPU 上运行的安全功能进行执行路径完整性检查和执行时间完整性检查, 能够实时发 说 明 书 CN 103885851 A 3 2/6 页 4 现由于随机故障和系统故障导致的系统安全功能失效, 使引导系统导向安全, 防止安全事 故发生。
12、。 适合不同类型的CPU, 适合实时性要求较高的系统, 实现方式简单, 检查算法具有较 高的实时性和可靠性, 采用多种软件安全技术。 0010 完整性检查功能 FSupervision包括 4 个模块 : 当前 CPU 功能执行路径监控 MCurExecCase; 当前CPU功能执行时间监控MCurExecTime; 其他CPU功能执行路径监控MOthExecCase; 其他CPU功能 执行时间监控 MOthExecTime。 0011 不同的 CPU 对当前 CPU 执行路径完整性的检查采取不同的方式, 来实现软件控制 流差异化, 例如部分CPU使用自动机状态转换的方式, 其他CPU使用自动。
13、机真值表查表的方 式。 0012 不同的 CPU 对当前 CPU 执行时间完整性的检查采取不同的方式, 来实现软件控制 流差异化。例如部分 CPU 使用系统提供的定时器实现定时, 其他 CPU 使用执行报告的时间 戳进行周期检查实现定时。 0013 不同的 CPU 进行循环冗余校验 CRC 运行时采用不同的循环冗余校验 CRC 多项式。 附图说明 0014 下面结合附图和具体实施方式对本发明作进一步详细说明。 0015 图 1 是多 CPU 实时功能完整性检查方案示意图。 0016 图 2 是功能执行报告产生方式示意图。 0017 图 3 是某安全功能的功能流程图。 0018 图 4 是某安全。
14、功能的自动机状态迁移图。 具体实施方式 0019 本发明可以应用在不同类型的CPU, 并适合实时性和安全性的较高的系统。 本发明 包括 : 在安全系统采用的 2 取 2 或者 3 取 2 架构中, 在能够相互通信的多个 CPU 上, 运行额 外的功能完整性检查任务, 来实现对自身 CPU 和其他 CPU 上运行的安全功能进行执行路径 完整性检查和执行时间完整性检查, 能够实时发现由于随机故障和系统故障导致的系统安 全功能失效, 使引导系统导向安全, 防止安全事故发生。 本发明适合不同类型的CPU, 适合实 时性要求较高的系统, 实现方式简单, 检查算法具有较高的实时性和可靠性, 采用多种软件 。
15、安全技术。 0020 本发明所述用于安全系统软件的实时功能完整性检查算法能够应用于包括但并 不局限于信号系统、 工业控制系统等领域。 0021 下面以轨道交通信号控制为例。 0022 该算法包括下面 5 个部分 : 0023 1. 功能执行报告的产生 ; 0024 2. 对当前 CPU 的功能执行路径检查 ; 0025 3. 对当前 CPU 的功能执行时间检查 ; 0026 4. 对其他 CPU 的功能执行路径检查 ; 0027 5. 对其他 CPU 的功能执行时间检查 ; 0028 本发明的实施方案如下 (见图 1) : 说 明 书 CN 103885851 A 4 3/6 页 5 0029。
16、 1. 在安全系统中, 存在两个以上的 CPU, 且在 CPU 之间存在通信使其可以交换数 据。 0030 2. 在每个 CPU 上除了运行安全功能软件 F1Fn外, 还运行完整性检查功能 FSupervision, 所述 n 为正整数。 0031 a) 当前 CPU 的安全功能 Fn, 由当前 CPU 的完整性检查功能实现完整性检查 ; 0032 b) 当前 CPU 的完整性检查功能 FSupervision, 由其他 CPU 的完整性检查功能实现完整 性检查 ; 0033 3. 安全功能 Fn会根据自身的运行不断的发送执行报告 RExec到当前 CPU 的完整性 检查功能 FSupervi。
17、sion。 0034 4. 完整性检查功能 FSupervision负责根据当前 CPU 内的执行报告 RExec, 来监控安全功 能的执行路径和执行时间完整性。包括下面的 4 个模块 : 0035 a) 当前 CPU 功能执行路径监控 MCurExecCase; 0036 b) 当前 CPU 功能执行时间监控 MCurExecTime; 0037 c) 其他 CPU 功能执行路径监控 MOthExecCase; 0038 d) 其他 CPU 功能执行时间监控 MOthExecTime; 0039 5. 完整性检查功能 FSupervision负责根据当前 CPU 内的执行报告 RExec, 。
18、通过 CRC 算法 产生功能执行校验字 WExecChk。该校验字 WExecChk将通过 CPU 之间的通信发送到其他的 CPU, 实 现通过其他 CPU 上完整性检查功能 FSupervision对当前 CPU 上完整性检查功能 FSupervision的监 控。 0040 本发明的实施方案中, 为了满足软件安全需求, 可以采用 : 0041 1. 不同的 CPU 对当前 CPU 执行路径完整性的检查采取不同的方式, 来实现软件控 制流差异化。 例如 : CPU1使用自动机状态转换的方式, CPU2使用自动机真值表查表的方式。 0042 2. 不同的 CPU 对当前 CPU 执行时间完整性。
19、的检查采取不同的方式, 来实现软件控 制流差异化。例如 : CPU1 使用系统提供的定时器实现定时, CPU2 使用执行报告的时间戳进 行周期检查实现定时。 0043 3. 不同的 CPU 进行 CRC 运行时采用不同的循环冗余校验 CRC 多项式, 以实现软件 数据差异化, 防止共模随机故障和共模随机故障的产生。 0044 4. 不同的 CPU 将自身的校验字互相传输并检查, 实现软件表决。 0045 功能执行报告产生的实施方式 : 0046 安全功能可以被分割成若干个处理步骤, 每个处理步骤的结果可能对整个处理流 程产生分支作用。 这样可以在每个步骤开始, 步骤结束, 步骤分支等其他需要的。
20、地方的地方 产生一个功能执行报告 RExec(如图 2) 。 0047 执行报告至少需要包含下面的内容 : 0048 1. 处理步骤的名称 : 用来指示是哪个功能的哪一处理步骤 ; 0049 2. 处理步骤的结果 : 用来指示之前执行的结果, 或者接下来的分支路径 ; 0050 3. 产生的时间戳 : 用来进行时间检查 ; 0051 功能校验字产生的实施方式 : 0052 为了减少功能监控对CPU之间通信资源的占用, 当前CPU的完整性检查功能, 对收 到执行报告序列进行校验字计算。校验字算法采用可循环运算的循环冗余校验 CRC 算法。 说 明 书 CN 103885851 A 5 4/6 页。
21、 6 参与循环冗余校验 CRC 运算的时候, 应该处理步骤的名称和结果等设计时确定的数据, 而 不包括时间信息等动态的数据。 0053 当前CPU的完整性检查功能, 在每次收到某功能的执行报告RExec时, 将该执行报告 RExec和该功能之前的校验字进行循环冗余校验 CRC 运行, 得出新的校验字 WExecChk。 0054 当前 CPU 的完整性检查功能, 在某功能执行完成之后, 通过 CPU 间的通信通道, 将 最后的执行校验字 WExecChk, 发送的其他的 CPU 进行监控。 0055 当前 CPU 功能执行路径监控的实施方式 0056 当前 CPU 功能执行路径监控 MCurE。
22、xecCase模块, 为每个安全功能维护一个自动机, 自 动机根据收到的执行报告 RExec的内容从一个状态迁移到另一个状态。如果收到的执行报 告 RExec不是当前状态能够处理的, 则说明被监控的功能出现错误, 整个系统应该立刻导向 安全。 0057 例如 : 下面描述某安全功能 (见图 3) 的执行路径检查的实施。 0058 图 4 是上述功能在执行路径监控 MCurExecCase模块中对应的自动机状态迁移图。 0059 表 1 是上述功能在执行路径监控 MCurExecCase模块中对应的自动机真值表。 0060 0061 注 : 内容为 “-” 的表格代表完整性丢失 0062 表 1。
23、 某安全功能的自动机真值表 0063 如果发现在当前状态, 收到了无法处理的执行报告, 则说明当前功能执行路径完 整性丢失, 整个系统应该立刻导向安全。 0064 当前 CPU 功能执行时间监控的实施方式 : 0065 在安全功能上报的执行报告的内容中, 包含了报告产生时的时间戳。 所以当前CPU 功能执行时间监控 MCurExecTime模块, 可以根据时间戳来完成对执行时间的监控。 0066 例如 : 某安全功能 (见图 3) 的步骤 1 要求在 10ms 内处理完成。 0067 1. 当 MCurExecTime模块收到 “任务调度, 结果 OK” 时, 开启一个 10ms 的定时器。 。
24、说 明 书 CN 103885851 A 6 5/6 页 7 0068 2. 当 MCurExecTime模块收到 “步骤 1 完成, 结果 Y” 或者 “步骤 1 完成, 结果 N” 时, 关 闭 10ms 定时器。 0069 3. 如果 10ms 定时器超时, 说明该安全功能完整性丢失, 整个系统应该立刻导向安 全。 0070 这里的时间戳有 2 个用处 : 0071 1. 在有系统定时器可用时, 计算定时器超时时间的偏差值。 0072 2. 在没有定时器可用时, 根据报告时间戳, 和当前时间戳, 通过周期性时间检查来 实现类似定时器的功能。 0073 其他 CPU 功能执行路径监控的实施。
25、方式 : 0074 其他 CPU 功能执行路径监控 MOthExecCase模块, 通过 CPU 间通信接收到来自其他 CPU 的功能执行校验字 WExecChk, 来实现对其他 CPU 的功能执行路径完整性进行检查。 0075 功能执行校验字 WExecChk采用循环冗余校验 CRC 算法, 将安全功能执行过程中产生 的执行报告中的处理步骤的名称和结果进行循环迭代计算, 得出校验字。 0076 例如 : 某安全功能的某条正常执行路径校验字可以通过下面的描述计算得出。 0077 WExecChk= 循环冗余校验 CRC(“任务调度” ,“结果 OK” ,“步骤 1 完成” ,“结果 Y” ,“。
26、步骤 3 完成” ,“结果 B” ,“步骤 5 完成” ,“结果 OK” ) 0078 所以, 每一个执行路径的校验字都是唯一的。 0079 当 MOthExecCase模块收到校验字时, 可以在软件设计时产生的执行路径校验字表格中 进行对照检查 (见表 1) 。如果收到校验字的没有在对应功能的校验字表中存在, 说明其他 CPU 的功能执行路径完整性丢失, 整个系统应该立刻导向安全。 0080 其他 CPU 功能执行时间监控的实施方式 0081 其他 CPU 功能执行时间监控 MOthExecTime模块, 通过 CPU 间通信接收到来自其他 CPU 的功能执行校验字 WExecChk, 实现。
27、对其他 CPU 的功能执行时间完整性进行检查。 0082 该检查仅能针对其他 CPU 的功能整体执行时间或时间间隔进行检查。因为要检查 其他CPU的功能内部细节的执行时间检查, 会耗费大量的CPU资源和通信资源, 且该检查已 经由其所在的 CPU 完成。 0083 例如 : MOthExecTime模块监控某安全功能 (见图 3) 是否 10ms 正常执行一次。 0084 1. 当收到校验字时, 进行查表检查 (见表 2) , 看校验字是否表示该功能在其他 CPU 上是按照正常执行路径执行的。 0085 说 明 书 CN 103885851 A 7 6/6 页 8 0086 表 2 某安全功能。
28、的执行路径校验字 0087 2. 如果校验字表示功能正常完成 (可以是不同的正常执行路径) , 则重启 10ms 定 时器。 0088 3. 如果 10ms 定时器超时, 则说明其他 CPU 上的某安全功能执行时间完整性丢失, 系统应该立刻导向安全。 0089 综上所述, 本发明能够实时发现由于随机故障和系统故障导致的系统安全功能失 效, 使引导系统导向安全。因此满足工业控制系统和安全信号系统 (应用于航空电子、 铁路 信号、 核电等行业) 的软件系统安全需求。 0090 本发明并不限于上文讨论的实施方式。 以上对具体实施方式的描述旨在于为了描 述和说明本发明涉及的技术方案。 基于本发明启示的显而易见的变换或替代也应当被认为 落入本发明的保护范围。以上的具体实施方式用来揭示本发明的最佳实施方法, 以使得本 领域的普通技术人员能够应用本发明的多种实施方式以及多种替代方式来达到本发明的 目的。 说 明 书 CN 103885851 A 8 1/3 页 9 图 1 说 明 书 附 图 CN 103885851 A 9 2/3 页 10 图 2 图 3 说 明 书 附 图 CN 103885851 A 10 3/3 页 11 图 4 说 明 书 附 图 CN 103885851 A 11 。