一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

保护计算机系统以防操纵和功能异常的制作方法

2021-12-04 01:50:00 来源:中国专利 TAG:


1.本发明涉及保护特别是iot设备中的计算机系统以防篡改,并且更一般地,以防功能异常,而不管其原因如何。


背景技术:

2.物联网(iot)设备的实用性在很大程度上取决于它们经由一个或多个接口的联网。然而,此联网创建了攻击表面。一旦经由接口接收到的数据由设备上的软件处理,就存在攻击者将其意愿利用故意不符合数据交换规范的专门准备的数据强加于设备上的软件并因此控制设备的风险。
3.例如,如果设备上的软件期望根据规范传送一定数量的数据并在主存储器中为该数量的数据保留空间,则攻击者可以简单地发送比预期更多的数据。如果在软件中未对此进行明确拦截,则会写入超出实际保留区域的极限的数据(缓存溢出)。这样,攻击者可能改写与该软件的控制流程相关的存储器地址,并且还可能立即传送接下来要执行的代码,而不是该软件最初计划的活动。
4.另外,存在使用操纵数据来创建在设计软件的控制流程时未预见到的情况的许多其他方式。这些情况中的每一种都有可能升级到最终执行由攻击者提供的代码的程度,或者至少软件崩溃并停止工作的程度。即使软件的程序员特别努力地预见到这种操纵,攻击者创建尚未在控制流程的设计中得到处理的全新情况也只是时间问题。


技术实现要素:

5.发明的目的和解决方案
6.因此,本发明的目的是即使计算机系统和/或控制系统的软件完全在攻击者的控制之下,至少也能检测出计算机系统和/或控制系统中的操纵和功能异常,以便可以发起适当的对策。
7.根据本发明,上述目的通过根据主要权利要求的系统来实现。另外有利的实施方式从引用该主要权利要求的从属权利要求中得出。
8.在本发明的上下文中,开发了一种用于保护计算机系统和/或控制系统以防操纵和功能异常的系统。
9.在这里,操纵尤其是指计算机系统和/或控制系统中的任何故意诱发的干预,目的是破坏或更改计算机系统和/或控制系统的系统状态和/或预期功能。特别地,这种操纵可以包括例如对计算机系统和/或控制系统的软件的控制流程的干预,以使该软件随后执行与最初意图不同的事情。例如,作为分布式拒绝服务(ddos)攻击的一部分,计算机系统和/或控制系统可能被转换为免费为攻击者挖掘加密货币,发送未经请求的电子邮件(“垃圾邮件”)或发送无用的数据包。但是,攻击也可能导致计算机系统和/或控制系统泄露敏感数据(例如其他系统的访问数据)或使其主要功能适应攻击者的意愿。例如,监控摄像机可能在没有任何说明的情况下在某些时间停止更新其图像,从而使攻击者获得访问而不被检测
到。
10.另一方面,术语功能异常不限于人类故意引起的那些异常。而是,该术语还包括例如计算机系统和/或控制系统的硬件和/或与其连接的外围设备(例如传感器)由于其他原因(例如磨损或污染)而出故障或无法操作的情况。
11.系统包括监视模块,该监视模块至少具有第一接口、第二接口和至少一个存储器,所述存储器优选独立于计算机系统和/或控制系统的存储器。优选地,第一接口是可以直接访问硬件中的计算机系统和/或控制系统的存储器的物理接口。监视模块经由第一接口接收表征计算机系统和/或控制系统的系统状态的信息,并且基于该信息,对经由第二接口接收到的系统状态请求进行响应。经由第二接口的这种通信以加密的方式进行。一方面,这种加密防止了在经由第二接口以及经由可以与该第二接口连接的网络的传输期间信息的未经授权的读取。另一方面,这种加密的密钥管理确保了:
12.·
只有授权的通信伙伴才能询问计算机系统和/或控制系统的系统状态,该系统状态可能包含敏感信息,以及
13.·
即使潜在受损的计算机系统和/或控制系统软件能够将数据发送到与监视模块的第二接口连接的同一网络,该软件也可能无法诱骗监视模块的响应。
14.为此,监视模块使用存储在存储器中的请求密钥对经由第二接口接收到的加密请求进行解密。只有在请求的发送方已经使用了正确的请求密钥时,即作为授权的通信伙伴拥有该请求密钥时,这才提供有意义的结果。
15.监视模块根据经由第一接口接收到的信息的至少一部分生成对请求的响应。该信息,尤其是例如其详细程度可以例如通过请求的内容来控制。例如,第一请求可以请求关于计算机系统和/或控制系统是否整体上和/或在某些局部方面中适当地起作用的概要信息。如果明显不是一切都正常,则可以进一步请求更多详细信息,例如在计算机系统和/或控制系统上运行的某些服务的日志文件,或者甚至某些运行进程的存储器映像(memory image)。
16.对于后面的详细请求,将请求限制为拥有有效请求密钥的发送方尤为重要。例如,向互联网开放的支持tls加密的服务器进程的存储器映像可以包含该服务器进程在建立连接时用于对自身进行标识的私钥。俘获该私钥的任何人都可以设置服务器进程,而无需请求客户端报告证书错误。
17.利用使用请求确定的响应密钥对响应进行加密,并将其经由第二接口输出。确定新请求密钥,该新请求密钥是请求(32)的发送方也能访问的共享秘密。将该新请求密钥存储于存储器中。
18.应理解,新请求密钥是请求的发送方也能访问的“共享秘密”,尤其是新请求密钥由这样的信息形成,即该信息对于监视模块和请求的发送方都能访问并且可选地对于其他授权的请求发送方也能访问,但不是任何未经授权的第三方都能访问。
19.例如,可以使用向先前请求提供的响应来确定新请求密钥。由于该响应取决于在正常操作期间不应更改的计算机系统和/或控制系统的系统状态,因此可以将不可预测的附加信息引入到请求密钥的形成中。例如,这可以是来自随机数生成器的值。例如,该值也可以由更改系统状态(例如,堆栈上的哈希、io信息或关于计算机系统和/或控制系统的接口的信息)而得出。
20.特别有利地,不可预测的附加信息是请求的发送方也可以自己获得、但对于任何未经授权的第三方无法访问的信息。那么,该附加信息和新请求密钥都不必从监视模块传输到请求的发送方。这简化了请求密钥的管理,尤其是在交替地应答来自多个发送方的请求的集群中。新请求密钥不必有效地分配给所有潜在的请求者。
21.另一方面,如果请求的发送方(或将来请求的另外授权的潜在发送方)无法获得不可预测的附加信息,例如可以利用响应密钥对新请求密钥进行加密,并将其与响应一起(即,例如打包到该响应中)传输。
22.作为此的替代或与此结合,例如可以通过使用请求来确定新请求密钥。那么,请求的发送方在请求密钥的管理方面发挥更积极的作用。
23.例如,请求的发送方可以在其侧以任何方式(例如,利用随机数生成器)生成响应密钥,并将其作为请求的一部分以加密形式发送给监视模块。但是,发送方也可以将例如允许监视模块计算出也存在于发送方侧的响应密钥的任何其他信息发送给监视模块。不管详细选择哪个路径,在监视模块成功解密请求之后,该监视模块和请求的发送方都将响应密钥作为共享秘密。
24.以完全类似的方式,新请求密钥也成为只有请求的发送方和监视模块知道的共享秘密。
25.计算机系统和/或控制系统上在监视模块外部运行的软件无法访问请求密钥或响应密钥。因此,它不能生成来自监视模块的被请求发送方视为有效的伪造响应。更改响应密钥还具有以下效果:在传输过程中经由第二接口或经由与其连接的网络记录的来自监视模块的旧的、真实的响应不能在以后重复使用。因此,损坏的计算机系统和/或控制系统软件由于不是通过故意抑制监视模块的真实响应在网络上的传输,而是将先前记录的旧响应发送给请求的发送方,因此无法掩饰真正的系统状态。
26.请求的发送方与监视模块之间通信的加密尤其可以是例如对称加密。与非对称加密相比,加密需要的硬件资源则要少得多。理想地,监视模块被配置为具有其自己的处理器和存储器的单独的硬件模块,在计算机系统和/或控制系统上以其他方式运行的软件无法访问该存储器。这样的硬件模块中的计算能力比计算机系统和/或控制系统中的“常规”计算能力昂贵得多。
27.在特别有利的实施方式中,监视模块还被配置为使用响应密钥来形成新请求密钥并将新请求密钥存储于存储器中。特别地,例如,响应密钥可以用作下一个请求的请求密钥。那么,同一个密钥对于向监视模块的请求的加密仍然正好有效一次,而对于对来自监视模块的响应的加密正好有效一次。因此,不可能在通信的两个方向上重复使用旧消息(重放(replay))。
28.在另一个特别有利的实施方式中,请求中包含的密钥在用于生成响应密钥之前被另外认证。为此,将请求中包含的密钥的压缩摘要与先前存储在监视模块的存储器中的比较压缩摘要进行比较。
29.压缩摘要应理解为是指不允许对原始数据得出任何结论的任何精简形式的数据。特别地,压缩摘要可以是密码安全的,因为不可能通过合理的努力来找到用于被精确地映射到该压缩数据的给定压缩摘要的数据。这种密码安全的压缩摘要的一个例子是哈希值。
30.特别地,比较压缩摘要可能已与发送方的先前请求一起传送。这意味着,对于每个
请求,请求的发送方可以提前宣布它对于下一个请求会发送哪个响应密钥,而在该下一个请求实际到来时,该响应密钥不必已经存储在监视模块中。这使得新的未经授权的请求者更加难以“锁住”与监视模块的通信。
31.如果与当前请求一起传送的压缩摘要与当前存储在监视模块的存储器中的比较压缩摘要匹配,则请求的发送方“遵守了自己的诺言”,并已精确地传输了它先前宣布的密钥。然后,使用该密钥形成响应密钥,例如通过直接将其用作响应密钥。此外,将请求中包含的新的压缩摘要(该新的压缩摘要用于宣布在下一个请求中传输的密钥)作为新的比较压缩摘要存储于监视模块的存储器中。
32.此外,监视模块还可以使用新的压缩摘要来确定下一个请求的新请求密钥并将其存储于存储器中。特别地,例如,新的压缩摘要本身可以用作新请求密钥,然后仅需要在监视模块的存储器中进行存储一次。因此,请求的发送方仅需针对每个请求生成它将宣布用于下一个请求的响应密钥的单个新密钥,然后,该新密钥的压缩摘要也立即保护下一个请求的传输。这提供了速度优势,因为根据用于生成随机数的伪随机数生成器的质量以及用于将这些随机数进一步处理为密钥的下游算法的复杂性,生成新的不可预测的密钥非常耗时。在从中心位置监视大量计算机系统和/或控制系统并且必须针对这些通信关系中的每一个通信关系中的每一个请求反复地生成新密钥时,这尤其适用。
33.表征计算机系统和/或控制系统的状态并且监视模块生成对请求的响应所基于的信息尤其可以包含例如在计算机系统和/或控制系统的正常操作期间不更改或仅以可预测的方式更改的信息。这样,从该信息的更改不再在预期范围内可以得出以下结论:计算机系统和/或控制系统处于异常或甚至被操纵的状态。
34.这方面的一个例子是可由计算机系统和/或控制系统的至少一个处理器执行的程序代码。除非正在应用更新或补丁,否则计算机系统和/或控制系统的软件在正常操作期间不应更改。由此无法解释的对软件的更改很可能已被恶意引入。可以在计算机系统和/或控制系统在启动时从中加载软件的大容量存储设备(例如硬盘驱动器、ssd、闪存或sd卡)上检查该软件。但是,也可以例如在计算机系统和/或控制系统的随机存储器(ram)中检查该软件。随机存储器使得尤其可以检测到恶意代码已被注入到ram中并且该软件的控制流程已屈从于该恶意代码的操纵。
35.通过检查控制系统和/或计算机系统的名义上不使用的存储区域的大小和/或内容,也可以替代地或结合地检测到后面的操纵。在许多情况下,恶意代码被加载到这样的区域(例如,通过“堆喷射”),然后尝试更改软件的控制流程中的一个或多个指针(例如,堆栈上的返回地址),以便它们指向恶意代码占据的存储器区域。此外,检查名义上不使用的存储区域尤其还可以检测到利用“空闲后使用”间隙(flaw)的尝试,在该间隙中,软件报告空闲的存储区域,但之后仍然错误地对其进行访问。
36.iot设备和其他系统尤其通常会长时间在稳定状态下操作,在该状态下,应用程序的恒定集群正在运行并且工作的存储器中至少大部分的内容不应更改。在极端情况下,除了当前正在运行的应用程序存储其当前输入和这些输入的处理结果的区域以外,主存储器的内容根本不应更改。在无法通过运行的操作解释对存储器内容的任何更改的情况下,显然怀疑是攻击者出于其自己的目的而转换了其中一个应用程序。
37.工作的存储器的监视与监视模块相结合是特别有利的,监视模块的第一接口可以
在硬件方面直接访问该工作的存储器。然后可以通过计算机系统和/或控制系统上运行的软件读取工作的存储器。因此,该软件没有察觉到监视。因此,恶意软件无法采取任何对策来使其检测更加困难,例如总是在当前正在检查存储器内容的地方假装处于原始状态。此外,这种最小的接口使得难以攻击监视模块和在其上实现的软件。监视模块仅需要将存储器内容与原始状态进行比较,例如这可以通过将该存储器内容上的哈希值与参考进行比较来进行。不需要对此数据进行更深入的解释,该更深入的解释有助于通过故意呈现无效格式或其他未预期的数据而进行的攻击。
38.例如,计算机系统和/或控制系统的软件还可以包含用于计算机系统和/或控制系统的至少一个现场可编程门阵列fpga或至少一个其他可编程逻辑设备的配置数据。例如,作为软件初始化的一部分,可以规定将该配置数据加载到对应的逻辑设备上,然后使逻辑设备根据该配置数据操作。
39.另一个例子是固定的参数和/或只能在外部更改并且影响计算机系统和/或控制系统的工作的参数。这些参数在正常操作期间也不应更改。来自外部的更改可以例如经由监视模块触发,例如利用请求,也利用该请求来询问系统状态。监视模块可以将更改传到计算机系统和/或控制系统,然后返回以这种授权方式更改的系统状态。然后,请求的发送方可以将该系统状态存储为参考,以用于进一步监视。可以相对于该参考来测量随后的更改。替代地,可以经由计算机系统和/或控制系统的任何接口更改参数,然后可以将响应于下一个请求提供的再次以授权的方式更改的系统状态存储为参考,以用于进一步监视。
40.在另外有利的实施方式中,监视模块还被配置为根据预定的度量标准来确定用于形成响应的信息在预定时间段内的更改的度量。然后,监视模块可以已经处理了提供给请求发送方的信息,以使存在合理解释的更改不被视为可疑。例如,接受来自互联网的请求的计算机系统通常会经历请求的负荷的昼夜波动。这些波动并不表示攻击。另一方面,突然骤升到当时持续的满cpu负荷可能表明该cpu正在用于挖掘加密货币。例如,输入

输出利用率的突然骤升到持续的完全利用率可能表明正在尝试对数据文件进行加密。因此,监视模块还可以适于:响应于所检测到的更改满足预定标准,针对计算机系统和/或控制系统上的攻击和/或针对计算机系统和/或控制系统的故障,发起至少一种对策。
41.然而,并不听任监视模块决定对策。在另外有利的实施方式中,监视模块还适于:响应于已经经由第二接口接收到利用存储在存储器中的请求密钥加密的控制命令,针对计算机系统和/或控制系统上的攻击和/或针对计算机系统和/或控制系统的故障,发起至少一种对策。然后,监视模块直接访问计算机系统和/或控制系统以执行该动作。另一方面,请求的发送方(即,监视模块的通信伙伴)做出有关发起动作的决定。发送方可以例如将其利用来自监视模块的响应而接收到的关于系统状态的信息与其他任何信息源进行比较,以检查该信息是否表示攻击。
42.如果监视模块不再响应请求,则这可能表明它已被攻击者劫持或无法工作。然后可以假定攻击者知道先前使用的请求密钥和响应密钥。这也可以提示一种或多种对策,直至并包括将计算机系统和/或控制系统与网络或电源断开,以防止造成进一步的损害。例如,还可以通知与受影响的系统配合的系统停止这种配合。例如,这可以使逐渐渗透整个网络,甚至以蠕虫般的方式将恶意代码从一个系统传播到另一个系统更加困难。
43.作为对策,例如可以发出警报,该警报促使技术人员调查所观察到的异常情况或
行为的原因。如果监视模块仍可访问且未被劫持,则可以使计算机系统或控制系统输出可操作数据、日志数据和/或诊断信息。也可以发起计算机系统或控制系统的自测试。
44.可以将计算机系统或控制系统关闭、重新启动或重置为出厂设置。可以将软件更新和/或补丁应用于计算机系统或控制系统。在此,软件更新可以包括例如尤其修复某些已知的错误的软件的更新版本,而补丁并不是用于向软件添加任何新功能,而是仅用于修复错误。
45.其还可能降低计算机系统和/或控制系统在分散式对等网络中的价值。这样,可以继续使用计算机系统和/或控制系统的至少一些基本功能,同时使对等网络内的有害影响最小化。还可以使计算机系统或控制系统进入紧急模式。
46.为了减轻损害,还可以使计算机系统或控制系统通过经由通信接口发送重要数据来保护重要数据以免丢失,和/或通过删除机密数据来保护机密数据不被泄露。
47.还可以启动后勤动作,例如在计算机系统和/或控制系统的位置处进行服务呼叫和/或设备更换。
48.监视模块还可以适于:响应于已经经由第二接口接收到利用存储在存储器中的请求密钥加密的更新,使更新应用于计算机系统或控制系统。这样,可以确保仅从通过拥有当前请求密钥而识别的可信源获取更新。
49.在监视模块将系统状态报告给请求提出方时,它可以以任何形式进行这样做。如前所述,可以以不同的详细程度传送表征系统状态的信息直至存储器映像。为了简要监视是否有任何更改,低得多的量的信息就足够了。iot设备尤其通常经由移动无线电或经由传输时间(占空比)有限的射频进行连接,因此在给定的时间单位内只能传输有限量的数据。如果可以将常规监视减少至较少数据量,则可以将更多数据量用于对可疑情况或活动的详细调查。
50.因此,在另外有利的实施方式中,由监视模块生成的响应包括:
51.·
用于形成响应的信息的哈希值,和/或
52.·
根据指定的度量标准确定的该信息在指定的时间段内的更改的度量。
53.在另外特别有利的实施方式中,系统还包括至少一个安全模块,经由所述至少一个安全模块进行与计算机系统和/或控制系统的至少一个接口的通信。该安全模块适于根据如下内容的检查结果来进行数据从该接口的转发和数据向该接口的转发:
54.·
数据的发送方,和/或
55.·
数据的接收方,和/或
56.·
数据的形式和/或内容。
57.这样,可以将计算机系统和/或控制系统的安全性开发与应用程序开发特别充分地分离。
58.如前所述,大多数攻击是经由接口利用特制的无效输入来进行的,一旦软件处理这些输入,攻击者便会使用这些特制的无效输入将自己的意愿强加于软件。如果要加强软件抵抗此类攻击,则需要大量附加代码来检查输入是否符合规格。例如,如果使用的数据格式包含要传输的图像数据的大小指示(以字节为单位),后面跟着图像数据本身,则需要检查该大小指示是否真的后面仅跟着宣告的字节数量或是否为了引起缓存溢出而跟着更多的字节。如果输入是以文本形式处理的,则必须检查输入是否包含特殊字符,这些特殊字符
可以用于在与最初预期的方向完全不同的方向上引导进一步处理(与sql注入中一样)。因此,软件是包含计算机系统和/或控制系统的实际功能的代码和用于检查输入的可能攻击的代码的混合物。这使软件的开发更加复杂,并增加了最终交付的软件版本仍然存在安全漏洞的风险。例如,如果从软件中去除针对无效输入进行了适当保护的例程以便用新版本替换该例程,则也容易忘记对新版本中的无效输入执行所有先前存在的检查。
59.安全模块允许在实际的计算机系统和/或控制系统软件看到输入之前在上游进行大部分这样的检查。那么,该软件的开发基本上可以集中于确保计算机系统和/或控制系统执行给定有效输入的情况下应执行的内容。软件是否可能被恶意说服去做它不应该做的事情的问题不再紧迫。
60.同时,监视模块不仅可以监视软件的功能,而且还可以以安全的方式导入软件的更新。
61.在一个特别有利的实施方式中,安全模块被配置为根据考虑到预定的一组规则的以下条件进行数据的转发:
62.·
数据的发送方与数据的接收方之间的关系是合理的,和/或
63.·
数据可能可由它们的接收方处理。
64.例如,摄像机和其他传感器是物理测量数据的源,而被设置用于评估这样的数据的计算机系统是这样的物理测量数据的接收器。那么合理的是,传感器将大量的测量数据提供给计算机系统以进行分析。相反,不合理的是,大量的数据将以相反的方向从用于分析的计算机系统流向传感器,或者从一个传感器流向另一个传感器。相反,例如,从一个传感器到另一个传感器的通信(traffic)可能是由于蠕虫般的恶意代码从一个传感器开始传播到其他传感器的尝试造成的。互联网与传感器之间的通信可能表明攻击者已控制了该传感器,并且该传感器不再执行其原始任务,而是在执行完全不同的任务。
65.例如,数据是否可能可由接收方处理的检查可以通过参照接收方期望的数据格式和/或参照接收方期望的数据值范围来进行。这样,例如,可以通过故意违反文件格式的规范或其他规范(例如前面提到的初始字节数的宣布和较大数量字节的传送、小时数超过24小时且分钟数超过60分钟的时钟时间、光强度的负值)来检测在接收方的软件的开发者从未预期的方向上引导该软件的控制流程的尝试。
66.在另一个特别有利的实施方式中,安全模块被配置为根据发送方已经利用预定密钥对数据进行了加密和/或签名来进行数据的转发。这样,例如,可以防止在数据的发送方和接收方彼此通过其进行通信的网络中模仿发送方的尝试。如果数据尚未加密或尚未使用正确的密钥加密,则解密将会失败并且安全模块将不能进一步分析数据。
67.与检查数据格式的符合性相比,在此阶段拦截未经授权的数据要明显更容易,因此更安全。格式检查是一个相对广泛的而容易出错的接口,因此该接口本身必须非常小心地实现,使得其继而不能被故意无效的格式化数据暗中破坏。
68.特别地,安全模块可以被配置为对输入的加密数据进行解密以转发到计算机系统和/或控制系统的接口,并且对从该接口输入的未加密的数据进行加密。
69.在另外有利的实施方式中,安全模块适于使用从监视模块获得的至少一个密钥和/或哈希值来确定用于加密和/或解密的密钥。例如,当前对于对系统状态的请求进行加密有效的密钥也可能对于发送用于计算机系统和/或控制系统的接口的数据有效。那么,与
系统状态请求一样,提供了密钥的不断更改,这可以防止了旧数据的重新使用(重放)。
70.在另外特别有利的实施方式中,安全模块另外被配置为使用其已经接收到以转发到计算机系统和/或控制系统的接口的有效输入数据来确定至少一个输入数据哈希值,并使用该输入数据哈希值形成至少一个密钥。那么,例如,可以使用输入数据本身来更改用于与经由安全模块介导的计算机系统和/或控制系统的接口进行通信的密钥和/或用于与监视模块进行通信的密钥。这样,比通过使用伪随机数生成器更快地获得新密钥。除非输入数据可预测,否则它是发送方与安全模块之间的共享秘密。
71.在另一个特别有利的实施方式中,由监视模块生成的响应还包含输入数据哈希值。这样,还可以检查输入数据是否正确地到达安全模块并且被安全模块识别为是有效的。这使得可以检测通过伪造或抑制有效输入数据来影响计算机系统和/或控制系统的功能的尝试,例如在经由网络传输的过程中。
72.安全模块还可以被配置为在更新的输入数据哈希值时,除了使用当前输入数据之外,还使用先前的输入数据哈希值来确定新的输入数据哈希值。关于从输入数据生成的密钥的密码安全性,这补偿了输入数据仅是部分随机的事实。例如,可以基于自己对同一场景的观察,在一定限度内预测摄像机提供的图像数据。通过现在还使用先前的输入数据哈希值,输入数据的完整历史与生成的密钥相关。
73.在另一个特别有利的实施方式中,监视模块或安全模块被配置为,响应于监视模块或安全模块在预定时间段内尚未接收到利用当前的有效密钥进行认证的任何请求、命令或数据,接受利用先前的有效密钥进行认证的请求、命令或数据。所描述的密钥的更改要求监视模块或安全模块以及相应的通信伙伴不断地利用下一个有效密钥使彼此保持最新。可能存在这样的信息无法到达接收方的情况。例如,信息可能会在通过网络传输的过程中丢失,或者通信伙伴可能会丢失密钥(例如,在电池已完全放电时)。在这种情况下,可以通过恢复到先前有效的密钥来重新建立通信,而无需人工干预。
74.本发明还涉及数据处理模块、数据存储模块、摄像机模块、传感器模块和/或致动器模块。该模块包括先前描述的系统,和/或它包括fpga设备,该fpga设备以电路的方式集成到所述模块中,使得可以通过编程将该fpga设备形成到先前描述的系统和/或该系统的监视模块和/或安全模块中。如前所述,这样可以将数据处理模块、数据存储模块、摄像机模块、传感器模块和/或致动器模块的安全性开发与相应的应用程序开发分离。因此,缩短了开发周期。特别地,一旦安全功能以监视模块或安全模块的形式进行了实现,它们就可以在没有特定调整或只有很小的特定调整的情况下重新用于不同的应用程序。
75.监视模块和/或安全模块的功能可以全部或部分通过软件实现。因此,本发明还涉及一种计算机程序,其具有机器可读指令,这些机器可读指令当在硬件平台上执行和/或作为配置被引入该硬件平台时,使该硬件平台形成为上述系统和/或该系统的监视模块和/或安全模块。
76.同样地,本发明还涉及包括计算机程序的机器可读数据介质和/或下载产品。
附图说明
77.在下文中,将参照附图说明本发明的主题,而不将本发明的主题限于此。示出了如下内容:
78.图1示出了系统1与示例性计算机系统和/或控制系统2的交互;
79.图2示出了系统1的监视模块11内的示例性序列;
80.图3示出了系统1的安全模块12内的示例性序列。
具体实施方式
81.图1示出了系统1的实施方式与示例性计算机系统和/或控制系统2的交互的示例。以高度简化的形式示出的计算机系统和/或控制系统2包括存储器21、cpu 22和用于与外界通信的接口23。存储器21、cpu 22和接口23经由总线系统24互连。
82.在图1所示的示例中,用于保护计算机系统和/或控制系统2的系统1包括监视模块11和安全模块12。监视模块11读取关于计算机系统和/或控制系统2的系统状态的信息31。在图1中,将来自总线系统24的分接头(tap)和来自存储器21的分接头作为示例性数据源示出。然而,可以替代地或结合地使用任何其他数据源,例如任何类型的传感器。例如,可以经由cpu 22的温度或风扇速度确定系统负荷。
83.响应于请求32,监视模块11根据信息31确定响应33,从而对请求32做出响应。该响应33可以被未在图1中示出的外部实体(例如,操作员)用来确定是否需要对计算机系统和/或控制系统2采取动作。如果需要动作,则该外部实体可以向监视模块11发送命令35,从而使监视模块11将对策34应用于计算机系统和/或控制系统2。在图2中更详细地说明了监视模块11内的示例性序列。
84.可以以相同的方式提供用于上传到计算机系统和/或控制系统2的更新或补丁36。
85.在将为接口23指定的输入数据23a以及从接口23输出的数据23b转发给接口23或外界之前,安全模块12对这些数据进行验证。除了数据23a、23b本身之外,还可以检查数据23a、23b的发送方23a*、23b*和/或接收方23a#、23b#。在图3中更详细地说明了安全模块12内的示例性顺序。
86.图2示出了监视模块11的示例性实施方式内的示例性序列。监视模块11具有可连接至计算机系统和/或控制系统2的第一接口11a、用于与外界通信的第二接口11b以及存储器11c。
87.监视模块11经由第二接口11b接收对计算机系统和/或控制系统2的系统状态的请求。使用从存储器11c获得的请求密钥41对该请求进行解密。在该进程中,除了实际请求32之外,还揭露了响应密钥42。监视模块11经由其第一接口11a从计算机系统和/或控制系统2获取关于系统状态的信息31,并由此生成对请求32的响应33,将利用响应密钥42加密的该响应经由第二接口11b输出。根据请求32,在这种情况下是根据响应密钥42,进一步确定新请求密钥41*并将其存储于存储器11c中。这样,确保了所使用的密钥的不断更改,并且防止了旧消息的重新使用(重放)。
88.如已经结合图1所述,经由第二接口11b接收到的命令35可以用于执行针对计算机系统和/或控制系统2的异常情况和/或异常活动的对策34。同样,也可以以这种方式将更新或补丁36应用于计算机系统和/或控制系统2。
89.图3示出了安全模块12的实施方式内的示例性序列。数据23a、23b是否从它们各自的发送方23a*、23b*转发到它们各自的接收方23a#、23b#取决于规则12a。在检查这些规则之前,尤其可以例如基于数据23a、23b的签名s来认证相应的发送方23a*、23b*。这样,可以
防止通过假装来自错误的发送方(诱骗)而产生数据符合规则12a的错误印象的尝试。
90.这些规则12a的第一部分12a1使数据23a、23b的转发以数据23a、23b的相应的发送方23a*、23b*与接收方23a#、23b#之间的关系为条件。这样,例如,可以防止恶意代码在本应仅与中央服务器通信而不是彼此直接通信的iot设备的网络中以蠕虫般的方式传播。
91.规则12a的第二部分12a2使数据23a、23b的转发以数据23a、23b预期可由其相应的接收方23a#、23b#处理为条件。这可以例如用于防止利用无效数据23a、23b的攻击,所述无效数据旨在没有预见的新方向上引导相应的接收方23a#、23b#的软件的控制流程。
92.附图标记列表
[0093]1ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
用于保护的系统
[0094]
11
ꢀꢀꢀꢀꢀꢀꢀꢀ
系统1的监视模块
[0095]
11a、11b
ꢀꢀꢀ
监视模块11的接口
[0096]
11c
ꢀꢀꢀꢀꢀꢀꢀ
监视模块11的存储器
[0097]
12
ꢀꢀꢀꢀꢀꢀꢀꢀ
系统1的安全模块
[0098]
12a
ꢀꢀꢀꢀꢀꢀꢀ
安全模块12中的数据通信规则
[0099]
12a1
ꢀꢀꢀꢀꢀꢀ
关于数据23a、23b的发送方

接收方的关系的规则
[0100]
12a2
ꢀꢀꢀꢀꢀꢀ
关于数据23a、23b的可处理性的规则
[0101]2ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
计算机系统和/或控制系统
[0102]
21
ꢀꢀꢀꢀꢀꢀꢀꢀ
计算机系统和/或控制系统2的存储器
[0103]
22
ꢀꢀꢀꢀꢀꢀꢀꢀ
计算机系统和/或控制系统2的处理器(cpu)
[0104]
23
ꢀꢀꢀꢀꢀꢀꢀꢀ
计算机系统和/或控制系统2的接口
[0105]
23a
ꢀꢀꢀꢀꢀꢀꢀ
为接口23指定的输入数据
[0106]
23a*
ꢀꢀꢀꢀꢀꢀ
数据23a的发送方
[0107]
23a#
ꢀꢀꢀꢀꢀꢀ
数据23a的接收方
[0108]
23b
ꢀꢀꢀꢀꢀꢀꢀ
从接口23输出的数据
[0109]
23b*
ꢀꢀꢀꢀꢀꢀ
数据23b的发送方
[0110]
23b#
ꢀꢀꢀꢀꢀꢀ
数据23b的接收方
[0111]
24
ꢀꢀꢀꢀꢀꢀꢀꢀ
计算机系统和/或控制系统2的总线系统
[0112]
31
ꢀꢀꢀꢀꢀꢀꢀꢀ
计算机系统和/或控制系统2的状态
[0113]
32
ꢀꢀꢀꢀꢀꢀꢀꢀ
对状态31的请求
[0114]
33
ꢀꢀꢀꢀꢀꢀꢀꢀ
对请求32的响应
[0115]
34
ꢀꢀꢀꢀꢀꢀꢀꢀ
针对异常情况/异常活动的对策
[0116]
35
ꢀꢀꢀꢀꢀꢀꢀꢀ
对策34的命令
[0117]
36
ꢀꢀꢀꢀꢀꢀꢀꢀ
计算机系统和/或控制系统2的更新或补丁
[0118]
41
ꢀꢀꢀꢀꢀꢀꢀꢀ
请求密钥
[0119]
41*
ꢀꢀꢀꢀꢀꢀꢀ
新请求密钥
[0120]
42
ꢀꢀꢀꢀꢀꢀꢀꢀ
响应密钥
[0121]
s
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
签名
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献