首页> 中国专利> 执行彼此交织的安全软件应用和非安全软件应用的方法

执行彼此交织的安全软件应用和非安全软件应用的方法

摘要

本发明涉及执行彼此交织的安全软件应用和非安全软件应用的方法。在该方法中,在非安全软件(M2、M4)的模块的输出处产生的至少一个输出数据(D2、D4)被用作为应用到安全软件(M3、M5)的模块的输入的输入数据,该方法包括:利用与非安全软件应用的安全约束相对应的安全约束,执行(100)一同分组到公共非安全软件应用中的安全软件应用(M2、M4)和非安全软件应用(M1、M3、M5),以更新非安全软件应用的模块的至少一个输出数据;以及利用与安全软件应用的安全约束相对应的安全约束,通过使用至少一个更新的输出数据作为用于安全软件应用模块的输入数据,来执行(120)安全软件应用(M1、M3、M5)。

著录项

  • 公开/公告号CN104077127A

    专利类型发明专利

  • 公开/公告日2014-10-01

    原文格式PDF

  • 申请/专利权人 阿尔斯通运输科技简易股份公司;

    申请/专利号CN201410121294.3

  • 发明设计人 M·立纳里斯;J-C·万登汉德;

    申请日2014-03-28

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人杜文树

  • 地址 法国勒瓦娄哇-佩雷

  • 入库时间 2023-12-17 01:44:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-06

    授权

    授权

  • 2017-12-22

    著录事项变更 IPC(主分类):G06F9/44 变更前: 变更后: 申请日:20140328

    著录事项变更

  • 2016-03-30

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140328

    实质审查的生效

  • 2014-10-01

    公开

    公开

说明书

技术领域

本发明涉及用于交织执行安全软件和非安全软件应用的方法的 领域,在该非安全软件应用的模块的输出处产生的至少一个输出数据 被用作为施加到安全软件应用的模块的输入处的输入数据。

背景技术

软件应用是计算机程序,其存储在计算机的存储器中的指令可以 由计算机的处理器执行。

安全软件应用是一种必须被安全地执行的软件应用,即,以确保 适当的操作并具有预定的信任级别。这意味着,在安全软件应用的执 行期间,与安全要求矛盾的缺陷发生具有预定的可能性。例如,标准 IEC61508限定了从SIL0(缺陷发生的高可能性)到SIL4(缺陷发 生的低可能性)的多个安全级别。为了安全执行,执行安全软件应用 的指令的计算机必须满足特定操作标准。该计算机被称作为安全计算 机。

在本申请中,术语“非安全软件”指的是其执行不受到可靠性约 束或者相比于安全软件应用受到更少约束的软件应用。例如,如果安 全软件应用是级别SIL2,具有级别SIL0的软件应用将会被认为是非 安全软件应用。在本申请中,非安全软件应用被在所谓的“非安全计 算机”的计算机上执行,即,满足兼容非安全软件应用的安全等级的 操作标准的计算机。

软件应用由多个基本模块构成。

由计算机的处理器执行的与软件应用的模块相对应的指令构成 基本处理或任务。

模块包括输入部分,其用于例如通过读取计算机的预定存储器空 间中的输入数据的当前值来获取输入数据;处理部分,其用于根据从 输入数据获取的值计算输出数据值;以及输出部分,其用于将所计算 的输出数据的值写入到计算机的预定存储器空间中。

除了在机能障碍的情况下,一旦模块被启动,其执行总是会完成, 而不会在完成之前(即,输出数据已经被产生之前)发生中断。

基于软件应用的结构,第一模块的输出数据可以构成第二模块的 输出数据。数据流因此存在为以初始事件(诸如在软件应用的输入处 更新的初始数据)开始,并且以输出事件(诸如模块的执行结束)结 束,经过软件应用的模块之间交换的不同中间数据。

完整数据流覆盖软件应用的多个连续的执行循环。实际上,在每 个循环中,被实际执行的仅有模块是在循环的开始更新的输入数据对 其可用的那些模块,或者在所考虑的模块被执行的循环期间可用的那 些模块。模块将会仅对于更新的输入数据执行一次。

当两个软件中的一者的模块许可其不同输入数据中的来自于另 一个软件应用的至少一个输出数据时,这两个软件应用被认为是交织 的。因此具有数据流,其中存在两个被执行的软件应用之间的数据交 换,使得两个软件应用相互依赖。

图1示出了包括两个交织的软件应用的逻辑结构的示例:第一安 全软件应用L_S和第二非安全软件应用L_NS。该示意性示例将会在 本说明书各处使用。

逻辑结构包括第一模块M1,其属于第一软件应用L_S。第一模 块M1使用更新的初始数据D0作为输入。这是由传感器递送并规律 地更新的数据的示例。第一模块M1能够产生第一输出数据D1。因此, 数据流以包括执行模块M1的初始事件开始。

逻辑结构包括第二模块M2,其属于第二非安全软件应用L_NS。 第二模块M2使用在模块M1的输出处产生的数据D1作为输入数据。 模块M2能够产生第二输出数据D2。

逻辑结构包括第三模块M3,其属于第一安全软件应用L_S。第 三模块M3使用在模块M2的输出处产生的数据D2作为输入数据。 模块M3能够产生第3输出数据D3。

逻辑结构包括第四模块M4,其属于第二非安全软件应用L_NS。 第四模块M4使用在模块M3的输出处产生的数据D3作为输入数据。 模块M4能够产生第四输出数据D4。

逻辑结构最后包括第五模块M5,其属于第一安全软件应用L_S。 第五模块M5使用在模块M4的输出处产生的数据D4作为输入数据。 第五模块M5不产生任何输出数据。数据流以包括模块M5的执行结 束的最终事件结束。

第一安全软件应用L_S作为安全软件应用,第一、第三和第五 模块M1、M3和M5的指令必须由安全计算机安全地执行。

已知两个方法来执行该逻辑结构,其中,安全软件应用和非安全 软件应用被交织。

根据第一已知执行方法,安全L_S和非安全L_NS软件应用被 结合到在安全计算机C1上安全地执行的公共安全软件应用中。

图2示意性地示出了用于图1的逻辑结构的情况的第一已知执行 方法。

在执行循环N期间,执行公共安全软件。

其开始于执行第一模块M1。第一模块M1实际上是在初始数据 D0已经被更新时执行的。第一模块M1导致第一输出数据D1的产生。

之后,仍在循环N期间,公共安全软件应用的执行继续经过第 二模块M2的执行。实际执行该模块是因为在恰恰已经由模块M1产 生数据D1的情况下该模块具有所需的输入数据。模块M2导致第二 输出数据D2的产生。

仍在循环N期间,公共安全软件应用的执行继续经过第3模块 M3的执行。实际执行该模块是因为该模块具有所需的输入数据,即, 恰恰已经由模块M2产生数据D2。模块M3导致第三输出数据D3的 产生。

仍在循环N期间,公共安全软件应用的执行继续经过第4模块 M4的执行。实际执行该模块是因为该模块具有所需的输入数据,即, 恰恰已经由模块M3产生数据D3。模块M4导致第四输出数据D4的 产生。

最后,仍在循环N期间,公共安全软件应用的执行继续经过第5 模块M5的执行。实际执行第五模块M5是因为该模块具有所需的输 入数据,即,恰恰已经由模块M4产生数据D4。第五模块M5的执行 的结束使得公共安全软件应用的执行结束。在单个循环N期间完成了 公共安全软件应用的执行。

因此,根据第一已知执行方法,非安全软件应用L_NS实际上由 安全计算机执行。

对于执行非安全软件应用L_NS的不同模块的执行考虑安全约 束,在非安全软件应用L_NS的发展期间强加了过度工作,以将其与 安全软件应用L_S一同结合到公共安全软件应用中。

此外,在执行公共安全软件应用期间,执行非安全软件应用L_NS 的模块所需的时间比这些模块在非安全计算机上执行时更长。

然而,公共安全软件应用的完全执行在单个执行循环中完成,尽 管如此,这导致良好的整体时间性能。

根据第二已知执行方法,安全L_S和非安全L_NS软件应用被 在两个分离计算机上并行执行:第一安全软件应用L_S由第一安全计 算机C1执行,而第二非安全软件应用L_NS由第二非安全计算机C2 执行。

图3示意性地示出了对于图1的逻辑结构的情况的第二已知执行 方法。该软件应用分别在第一和第二计算机上的执行循环基本同步。 仅示出了一个数据流。

在第一计算机C1上的安全软件应用L_S的第一执行循环N期 间,第一模块M1被在更新的初始数据D0上执行,以产生第一输出 数据D1。

安全软件应用L_S的模块M3和M5(其不具有更新的数据D2 和D4)不被执行。

并行地,在非安全软件应用L_NS在第二计算机C2上的第一执 行循环N期间,模块M2和M4(其不具有更新的数据D1和D3)不 被执行。

在第二执行循环N+1期间,在第一计算机C1上,模块1已经被 执行,并且不再次被执行。

安全软件应用L_S的模块M3和M5(其不具有更新的输入数据 D2和D4)不被执行。

并行地,在第二计算机C2上,非安全软件应用L_NS的模块 M2(其现在具有更新的输入数据D1)被执行。其产生第二输出数据 D2。

然而,模块M4(其不具有更新的输入数据D3)不被执行。

在第三执行循环N+2期间,在第一计算机C1上,模块M1不被 再次执行。

第一软件应用L_S的第三模块M3(其现在具有更新的输入数据 D2)被执行。其产生第三输出数据D3。

不具有更新输入数据D4的模块M5不被执行。

并行地,在第二计算机C2上,已经被执行的模块M2不被再次 执行。

不具有更新的输入数据D3的模块M4不被执行。

在第四执行循环N+3期间,在第一计算机C1上,已经被执行的 模块M1和M3不被再次执行。

不具有更新输入数据D4的模块M5不被执行。

并行地,在第二计算机C2上,已经被执行的模块M2不被再次 执行。

然而,现在具有更新的输入数据D3的模块M4被执行。其将数 据D4作为输出传送。

最后,在第五执行循环N+4期间,在第一计算机C1上,已经被 执行的模块M1和M3不被再次执行。

具有更新输入数据D4的模块M5被执行。

并行地,在第二计算机C2上,在循环N+4期间,已经被执行的 模块M2和M4不被再次执行。

在循环N通过更新初始数据并且执行第一模块M1而开始的数 据流在循环N+4以第五模块M5的执行结束而结束。

该已知执行方法实施简单,并且允许仅安全执行安全软件应用 L_S。非安全软件应用L_NS的进展不受到在安全环境中执行的限制, 与第一已知执行方法相反。

然而,因为软件应用的模块必须等待更新输入数据可用,所以该 第二已知执行方法要求大量的执行循环。因此,该第二方法的整体时 间性能较差。

因此本发明旨在解决上述问题。

发明内容

为了以上目的,本发明涉及一种用于执行交织的安全软件应用和 非安全软件应用的方法,在非安全软件应用的模块的输出处产生的至 少一个输出数据被用作为应用到安全软件应用的模块的输入的输入 数据,所述方法的特征在于包括:

a)利用与非安全软件应用的安全约束相对应的安全约束,执行 一同分组到公共非安全软件应用中的安全软件应用和非安全软件应 用,以更新非安全软件应用的模块的所述至少一个输出数据;以及

c)利用与安全软件应用的安全约束相对应的安全约束,通过使 用至少一个更新的输出数据作为用于安全软件应用模块的输入数据, 来执行安全软件应用。

根据具体实施例,该方法包括以下一个或多个步骤,它们单独考 虑或者按照任何技术课可能组合考虑:

在步骤(a)和(c)之间,该方法包括步骤(b),其包括将所 述至少一个更新的输出数据从所述非安全公共软件应用传输到所述 安全软件应用。

步骤(a)和(c)随时间依次地执行。

步骤(a)被由第二非安全计算机实施,并且步骤(c)被由第一 安全计算机实施,并且第一计算机和第二计算机在物理上彼此分离。

步骤(a)和(c)被由单个计算机实施,该单个计算机能够确保 在步骤(a)中公共非安全软件应用的非安全执行与在步骤(c)中安 全软件应用的安全执行之间的隔离。

步骤(a)和(c)被在时间上并行地执行,只要与非安全软件应 用的模块的输出数据相对应的安全软件应用的一个模块的输入数据 还没有被更新,安全软件应用的该模块的安全执行就处于停止状态。

步骤(a)被由第二非安全计算机实施,并且步骤(c)被由第一 安全计算机实施,并且第一计算机和第二计算机在物理上彼此分离。

附图说明

本发明及其优点将会通过阅读单独作为示例提供的以下说明书 而变得更好理解,并且参照附图来完成理解,在附图中:

图1是交织安全软件应用和非安全软件应用的逻辑结构的示意 图;

图2是用于执行图1的逻辑结构的第一已知方法的示意图;

图3是用于执行图1的逻辑结构的第二已知方法的示意图;

图4是用于实施根据本发明的执行方法的装置的示意图;

图5是用于执行在两个计算机上实施的图1的逻辑结构的根据本 发明的方法的示意图,其与图4的装置类似;

图6是图5的方法的示意图,其中示出了多个数据流;以及

图7是用于执行图1的逻辑结构的方法的示意图,其由单个计算 机实施。

具体实施方式

在图4中示出的第一实施例中,该方法在包括两个计算机的装置 10上实施。

装置10包括硬件层12和软件层32。

硬件层12包括:

第一计算机C1,其包括第一处理16和第一存储器18;

第二计算机C2,其包括第二处理器26和第二存储器28。

第一计算机C1是安全计算机,而第二计算机C2是非安全计算 机。

第一计算机C1和第二计算机C2由允许交换数据的合适的通信 链接30彼此连接。该通信链接例如是同步或非同步串行链接。

软件层32包括与针对第一计算机C1的安全软件应用L_S相对 应的软件应用34,以及针对第二计算机C2将交织的安全软件应用 L_S和非安全软件应用L_NS分组到一起的公共非安全软件应用36。

软件层32也包括针对第一计算机C1的传输软件应用38,以及 针对第二计算机C2的传输软件应用40。传输软件应用38和40能够 传输和接收适合于将存储在计算机C2中的数据的值传送到计算机C1 的信息的存储器,并且反之亦然。

软件应用38和40允许第一计算机C1和第二计算机C2的分离。

参与在其内执行安全软件应用L_S的安全环境的传输软件应用 38必须被安全地执行。

用于数据流的执行方法在图5中示意地示出。

第一执行循环N开始于更新初始数据D0。

在第一步骤100中,公共非安全软件36在第二计算机C2上执 行。其被自由地执行,或者至少以与非安全软件应用L_NS相关联的 安全级别执行。

公共非安全软件应用36的执行以第一模块M1的执行开始。实 际执行第一模块M1,这是因为在数据D0的情况下该模块具有更新的 输入数据。第一模块M1导致产生第一输出数据D1。

之后,仍在相同循环N期间,在第二计算机C2上,第二模块 M2被执行,因为其经由恰好确定的数据D1具有所需的更新输入数据。 数据模块M2的执行导致第二输出数据D2的产生。

仍在相同循环N期间,在第二计算机C2上,第三模块M3被执 行,因为其经由恰好确定的数据D2具有所需的更新输入数据。数据 模块M3的执行导致第三输出数据D3的产生。

仍在相同循环N期间,在第二计算机C2上,第四模块M4被执 行,因为其经由恰好确定的数据D3具有所需的更新输入数据。数据 模块M4的执行导致第四输出数据D4的产生。

最后,仍在循环N期间,在第二计算机C2上,第五模块M5被 执行,因为其经由恰好确定的数据D4具有所需的更新输入数据。数 据模块M5的执行的结束对应于非安全公共软件应用36和步骤100 的执行的结束。

第一循环N由此使得可以执行整个公共非安全软件应用36。第 一循环N实际上对应于在非安全计算机C2上针对所考虑的数据流执 行公共非安全软件应用36。

之后,在第二步骤110期间,软件应用38和40被执行。它们使 得可以使用链接30将来自于非安全软件应用L_NS的模块并构成安 全软件应用L_S的输入数据的输出数据的值,从第二计算机C2的存 储器传输出来。软件应用40的传输执行对应于第一循环N的结束, 而软件应用38的接收执行对应于下一个、第二循环N+1的开始。

第二循环N+1经由第三步骤120继续,在该第三步骤120期间, 仅对应于安全软件应用L_S的软件应用34被在第一计算机C1上安 全地执行。

当安全软件应用L_S的模块需要与非安全软件应用L_NS的模 块的输出数据对应的输入数据的值时,其读取第一计算机C1的存储 器中的输入数据的值。该值已经在方法的第一步骤100期间由第二计 算机C2产生,并且在第二步骤110期间被传输到第一计算机C1的 存储器中。

安全软件应用L_S的执行由第一模块M1的执行开始。该第一 模块M1对于在在先循环N开始时更新的初始数据D0上执行。第一 模块M1导致产生第一输出数据D1。

之后,仍在第二执行循环N+1期间,第三模块M3被执行,因 为其具有更新的输入数据D2。该更新的数据对应于在第一步骤100 期间由非安全软件应用36的第二模块M2的执行确定的数据D2。第 三模块导致产生第三输出数据D3。

之后,仍在第二执行循环N+1期间,第五模块M5被执行,因 为其具有更新的输入数据D4。该更新的数据对应于在第一步骤100 期间由非安全软件应用36的第四模块M4的执行确定的数据D4。第 五模块M5的执行的结束对应于安全软件应用L_S和步骤120的执行 的结束。

第二循环N+1使得可以执行整个软件应用34。第二循环N+1实 际上对应于在安全计算机C1上对于所考虑的数据流执行的安全软件 应用。

将安全软件应用L_S和不被指定为安全地执行的非安全软件应 用L_NS分组到一起的公共非安全软件应用36更易于发展和开发。 实际上,其需要考虑与非安全软件应用L_NS的安全级别相关联的安 全约束。

单个第一循环对于执行公共非安全软件应用36是必要的。该第 一执行循环的持续时间通常比根据现有技术的第一已知执行方法的 公共安全软件应用更短。因为实际上存在执行时间的获益,所以根据 该第一方法在公共非安全软件应用中安全软件应用L_S的模块的附 加非安全执行时间当然有必要比根据现有技术的方法在公共安全软 件应用中由于非安全软件应用L_NS的模块的安全执行所引起的附加 时间更短。

优选地,在本方法的第一步骤期间,实际上仅执行产生用于非安 全软件应用L_NS的模块的输入数据有必要的安全软件应用L_S的模 块。为了那个目的,公共安全软件应用36有利地结合呼叫装置。每 次非安全软件应用L_NS的模块需要与非安全软件应用L_NS的模块 的输出数据对应的输入数据时,呼叫装置开始相应模块的非安全执行, 以产生所需数据。因此,例如,为了减少第一循环的持续时间,没有 必要执行第五模块M5。

在第三步骤120中,在第二循环N+1期间,非安全软件应用L_NS 的任何模块都不被执行。实际仅执行安全软件应用L_S的模块。

在所描述的示例中,步骤100、110和120被随时间依次执行, 公共非安全软件应用36的执行的结束触发了软件应用38和40的执 行,并且软件应用38和40的执行的结束触发了软件应用34的执行。 然而,可选地,两个计算机上的两个执行可以同时开始。软件应用34 (即,安全软件应用L_S)的执行待命,直到输入数据D2具有更新 的值以执行第三模块M3,并且之后再次进入待命状态,直到输入数 据D4具有更新的值以执行第五模块M5。在此可选方式中,两个计算 机之间的数据交换随着数据产生而完成。相应地采用传输装置38和 40。

图6重复了图5,但是使得可以跟随多个数据流。在循环N中由 初始数据D0的更新和第一模型M的执行而发起的第一流在循环N+1 中通过模型M5的执行的结束而结束。

在循环N+1中由初始数据D0的更新和第一模块M1的执行发起 的第二流在循环N+2中通过模块M5的执行的结束而结束。

在图7中示出的另一个可选示例中,该方法在包括单个计算机 C3的装置上实施,该单个计算机C3能够对于安全软件应用的安全执 行构成安全环境,并且对于非安全软件应用的非安全执行构成非安全 环境。计算机C3因此能够将软件应用34(安全软件应用L_S)的安 全执行与公共非安全软件应用36(非安全软件应用L_NS和安全软件 应用L_S)的非安全执行隔离。

在该可选示例中,方法的步骤100、110和120被在先公共非安 全软件应用36、后软件应用34(即,安全软件应用L_S)的单执行 循环N的过程中依次执行。

更一般地,根据本发明的方法可以由不同装置实施。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号