1.本说明书涉及配电网,诸如微电网。
背景技术:
2.然而,本发明不限于微电网的唯一情况,并且可以有利地应用于其他类型的工业设施的控制设备中。
3.微电网通常用于住宅、商业或工业建筑中,或者甚至用于建筑群中,以在本地生产和储存电力,同时还能够连接到公共配电网。
4.微电网使得使用分配式能源变得更加容易,尤其是使用可再生能源,诸如风力涡轮机、流体动力涡轮机或光伏板。微电网还可以包括能量存储设备,例如电池,并且还可以容纳动态和可逆的电气负载,例如连接到充电终端的电动汽车。当公共电网不够可靠时,微电网可以有利地用于提供稳定和连续的电力供应。
5.控制系统通常使得控制和自动化微电网的操作成为可能,例如为了连接或断开负载和/或电功率源,例如响应于电气故障的发生,或者基于能量需求的演进和/或基于功率源的可用性,或者甚至当微电网与主电网断开时。
6.该控制通常使用可编程逻辑控制器来执行,该可编程逻辑控制器连接到微电网的各种元件,诸如电气保护设备、关于电源和/或电气负载的开关设备、或其他电气或工业装备。该连接例如通过诸如工业数据总线或局域网之类的通信链路或点对点链路来创建。
7.为此,可编程逻辑控制器被编程为执行大量任务,这些任务对于被监控的设施的正确操作是必要的。可编程逻辑控制器通常由安装者使用由软件发行商和/或可编程逻辑控制器的制造商提供的软件库来编程。
8.这些软件库包含通常不被编译的预定义的软件函数,安装者可以使用这些软件函数来准备计算机程序,该计算机程序适合于终端客户的需要和由可编程逻辑控制器监控的微电网的特定特征。
9.然而,出于安全原因,已经希望防止安装者复制包含在所提供的软件库中的某些函数,并且防止在没有授权的情况下在其他可编程逻辑控制器中使用它们。
10.对于涉及可编程逻辑控制器关键函数的函数而言,情况正是如此,如果这些函数使用不当或未经制造商授权,则可能会产生不良后果,甚至影响被被监控的设备的正确操作。
11.因此,需要能够防止电子控制器中(特别是电气设施的可编程逻辑控制器中)的某些软件函数的未授权使用的方法和系统。
技术实现要素:
12.为此,根据本发明的一个方面,用于保护软件模块的执行的方法,该软件模块具有至少一个受保护的功能,该方法由电子控制器中的软件模块在来自电子控制器的旨在执行所述至少一个受保护的功能的请求之后实施,该方法包括:
[0013]-获得电子控制器的数字标识符;
[0014]-通过包含在软件模块中的计算函数,基于所获得的数字标识符计算数字签名;
[0015]-将所计算的数字签名与存储在软件模块中的预定义的签名进行比较,预定义的数字签名已经在创建软件模块期间基于工业控制器的数字标识符并通过与包含在软件模块中的计算函数类似的计算函数被预先插入;
[0016]-如果所计算的数字签名对应于所述预定义的数字签名,则授权执行受保护的功能,并且如果计算的数字签名不对应于预定义的数字签名,则拒绝执行受保护的功能。
[0017]
根据一些有利但非强制性的方面,这种方法可以单独或以任何技术上允许的组合的方式并入以下特征中的一个或多个:
[0018]-附加参数是操作持续时间,并且附加参数的参考值是最大操作持续时间。
[0019]-该方法包括在电子控制器的引导之后的临时禁止阶段,在该阶段期间即使所计算的数字签名不对应于预定义的数字签名,也能授权执行受保护的功能。
[0020]-电子控制器的数字标识符通过电子控制器提供的系统函数获得。
[0021]-数字标识符包括唯一标识电子控制器的硬件标识符,诸如序列号。
[0022]-计算函数是散列函数。
[0023]-电子控制器是可编程逻辑控制器。
[0024]
根据另一方面,用于生成旨在部署在目标电子控制器上的软件模块的方法,该方法包括:
[0025]-获取电子控制器的数字标识符,
[0026]-基于所获得的数字标识符计算数字签名,该计算通过计算函数来执行;
[0027]-在软件模块中记录数字签名;
[0028]-在软件模块中记录软件代码,该软件代码被配置为当由目标电子控制器的处理器执行时,提示处理器实施如上所述的方法。
[0029]
根据另一方面,诸如计算机程序产品的软件模块包括软件代码,该软件代码被配置为当由电子控制器的处理器执行时实施包括以下的步骤:
[0030]-获得电子控制器的数字标识符;
[0031]-通过包含在软件模块中的计算函数,基于所获得的数字标识符计算数字签名;
[0032]-将所计算的数字签名与存储在软件模块中的预定义的签名进行比较;
[0033]-如果所计算的数字签名对应于预定义的数字签名,则授权执行受保护的功能,并且如果所计算的数字签名不对应于预定义的数字签名,则拒绝执行受保护的功能。
[0034]
根据另一方面,配电设施——特别是配电微电网——包括电子控制器,该电子控制器包括处理器和如上所述的软件模块。
[0035]
根据另一方面,用于生成旨在部署在目标电子控制器上的软件模块的系统被配置成实施包括以下的方法:
[0036]-获取电子控制器的数字标识符,
[0037]-基于所获得的数字标识符计算签名,该计算通过计算函数来执行;
[0038]-在软件模块中记录签名;
[0039]-在软件模块中记录如上定义的软件代码。
附图说明
[0040]
根据下面对这种方法的一个实施例的描述,将更好地理解本发明,并且本发明的其他优点将变得更加明显,该描述仅作为示例提供并且参考附图给出,附图中:
[0041]
[图1]图1是配电设施的示例的示意性描绘图;
[0042]
[图2]图2是由用于图1的配电设施的控制设备使用的软件模块的简化示意图;
[0043]
[图3]图3是用于创建诸如图2的软件模块之类的软件模块的方法的实施方式的示意图;
[0044]
[图4]图4是用于保护软件模块(例如图2的软件模块)的功能的方法的实施方式的示意图。
具体实施方式
[0045]
配电设施2的示例如图1所示。
[0046]
在该示例中,设施2是配电微电网,但是作为变型,可以想到设施2具有不同类型。例如,它可以是常规配电设施或工业设施。在这种情况下,下面描述的实施例可以转置于这种设施。
[0047]
在许多实施例中,微电网2是包括电气导体4的配电设施,电气导体4使得连接电气负载6、8和本地电气能源成为可能。
[0048]
例如,电气负载6、8和电气能源包括连接到一个或多个电气导体4的电功率输入和/或输出,优选地经由包括一个或多个电气开关设备和/或一个或多个电气保护设备的连接接口连接。
[0049]
根据各种实施例,微电网2可以用于分配dc直流电流或ac交流电流。视情况而定,分配的电流可以是单相或多相的。
[0050]
在许多情况下,负载6、8可以分为两类:第一组,对应于能够被控制并且能够按需(例如根据来自微电网2的需求)断开的动态或可逆的电气负载6,以及第二组,对应于不能按需断开和/或必须一直由微电网2供电的电气负载8。
[0051]
然而,在一些实施例中可以省略这种区别。作为变型,微电网2可以仅包括上述两种类型之一的电气负载。
[0052]
在许多实施例中,微电网2可以连接到配电网10(在图1中表示为“电网”,在下文中称为“主电网”),其可以是公共电网。
[0053]
微电网2可以优选地选择性地连接到电网10或从电网10断开,例如通过可远程控制的电气开关设备来连接或断开。
[0054]
在许多实施例中,连接到微电网2的能源能够发电、或者输出储存的电气能、或者从另一能源转换电气能,并且可以取决于它们的类型连续或间歇地激活。实际上,这些电气能源允许分散的电力生产。
[0055]
在所示的示例中,给出该示例主要是出于解释的目的并不旨在将应用仅限于该实施例,微电网2包括常规发电机12(在图1中表示为“genset”)、能量存储设备14(表示为“stor”)和可再生能源16(表示为“sol”)。
[0056]
常规发电机12例如可以是发电机组、或包括燃气涡轮机的发电机,或燃料电池。
[0057]
存储设备14可以包括例如电化学蓄电池的电池、和/或诸如超级电容器电池或如
飞轮的动能存储设备之类的其他电力存储装置。
[0058]
可再生能源16可以例如包括太阳能电池板(solar panel),该太阳能电池板能够与逆变器或任何适当的电气转换装备相结合。
[0059]
作为变型,能源可以包括基于可再生能源的其他发电装置,诸如风力涡轮机或生物质锅炉、或地热供应的发电机、或水力涡轮机、或任何合适的装置。
[0060]
在实践中容易想到,微电网2的电气源的数量和类型无论是在它们的类型方面、还是在它们的数量或它们在微电网2中的布置方面都能够不同于这里描述的那些。
[0061]
在许多实施方式中,根据情况,可以控制微电网2,使得由本地源产生的至少一些电气能被传输到电网10。
[0062]
必要时,也可以控制微电网2,使得来自电网10的电气能被用于供应所有或一些电气负载6、8,例如当微电网2内由本地源产生的电力不足以满足本地需求时。
[0063]
在许多实施例中,微电网2还包括用于管理和调节在微电网2中流动的电力的电气设备,诸如电气保护设备和/或开关设备和/或电力转换器。
[0064]
微电网2还可以包括传感器和/或测量设备,该测量设备被配置成测量电气变量(电压、电流、有功(active)和无功(reactive)电功率等)或环境变量(温度、湿度等)。
[0065]
可以控制如负载和电气源的这些开关设备,以确保微电网2的稳定性(在频率方面和/或电压方面)。例如,取决于测量的操作条件和/或强加的操作策略,可以向装备发送指令,例如以改变消耗的电力或产生的电力或者以改变无功电功率。
[0066]
微电网2还可以被配置成检测电气故障的发生,并且作为响应,断开所有或一些电源和/或电气负载,以便保护设施和/或使得隔离故障和/或定位故障的起源成为可能。
[0067]
通常,微电网2包括控制系统,该控制系统包括至少一个电子控制器18,诸如可编程逻辑控制器(或plc)。
[0068]
例如,控制系统还包括连接到控制器18并包括用户接口22的用户终端20。
[0069]
在许多实施例中,用户终端20是计算机,例如工业计算机或工作站。
[0070]
用户界面22例如能够显示图形界面,并且可以包括数据输入工具,诸如按键、指示器、触摸屏、鼠标或任何等效元件。
[0071]
用户接口22还可以包括一个或多个数据获取设备(诸如光盘读取器、或有线连接器或无线通信接口)以用于从诸如运营商携带的移动设备之类的另一本地设备下载数据。
[0072]
电子控制设备(其更特别是控制器18)经由通信链路24连接到微电网2的至少一些电气设备。
[0073]
通信链路24可以包括有线网络、或数据总线(特别是工业数据总线)、或多个点对点链路,或者无线链路。
[0074]
根据出于说明目的给出的一个示例,通信链路24可以包括modbus数据总线,但是其他替代方案也可以用作变型。
[0075]
实际上,控制器18可以使用通信链路24来发送旨在连接或断开微电网2的某些装备的命令。
[0076]
链路24还可以用于向控制器18传输数据,该数据由传感器测量或由连接的装备生成,且涉及测量的电气变量和/或关于微电网2的装备的内部状态的信息。
[0077]
根据实施方式的一些模式,控制器18包括处理器(诸如可编程微控制器或微处理
器)以及形成计算机可读数据记录介质的存储器。
[0078]
例如,存储器是只读存储器(rom),或随机存取存储器(ram),或诸如eprom、eeprom、flash、nvram或等效物的非易失性存储器,或光学或磁记录介质或任何适当的技术。
[0079]
在这种情况下,存储器包括可执行指令或软件代码模块,其优选地被设计成允许微电网2执行操作其所需的操作,特别是当处理器执行这些指令时,实施如以下示例中所述的方法。
[0080]
在许多实施例中,可执行指令或软件代码模块与iec 61131标准第3部分兼容。
[0081]
作为变型,术语“处理器”的使用不排除控制器18的至少一些功能由信号处理处理器(dsp)、或可重复编程逻辑组件(fpga)、或专用集成电路(asic)、或任何等效元件来执行。
[0082]
控制设备(特别是控制器18)可以包括用于例如通过诸如互联网的计算机网络与远程计算机终端26进行通信的通信接口,该远程计算机终端26诸如计算机、或工作站、或诸如数字平板的移动通信设备或任何等效设备,该终端26能够用于配置微电网或远程监控微电网。
[0083]
终端26可以包括用户界面28,例如类似于用户界面22,同时能够显示图形界面并且可能包括数据输入和/或数据获取设备。
[0084]
如终端26的控制设备(特别是控制器18)也可以与远程计算机服务器30通信,在这种情况下,例如也可以通过诸如互联网的计算机网络通信。
[0085]
例如,终端26和服务器30各包括一个或多个处理器,其被配置为实施下面描述的所有或一些步骤。
[0086]
在一些实施例中,术语“计算机服务器”的使用不会防止服务器的对应功能由“云计算”平台上托管的软件服务来实施。
[0087]
本发明的一些方面更特别地涉及用于确保执行包含在由控制器18执行的软件程序中的功能的方法,如图2、3和4所示。
[0088]
图2示意性地示出了控制器18的软件环境40,例如操作系统和软件模块42。
[0089]
软件模块42能够由控制器18的处理器执行。
[0090]
实际上,软件模块42实施能够由控制器18执行的一个或多个功能或例程,以便执行用于自动控制设施2的操作,特别是以便自动控制微电网。
[0091]
例如,软件模块42包括可执行指令或编译的计算机代码。可执行指令或软件代码模块优选地符合iec 61131标准第3部分,但是实践中其他示例也是可能的。
[0092]
根据许多实施例,软件模块42包括:
[0093]-控制指令(框44),
[0094]-用于实施被称为受保护的功能的至少一个功能的指令(框46),以及
[0095]-数据存储区域(框48),可能例如包括一个或多个参数的值。
[0096]
实际上,软件模块42还包括用于实施至少一个不受保护的功能的指令,但是这在图2中没有明确示出。
[0097]
例如,在本说明书的意义上,“受保护的功能”表示一个或多个软件函数或方法,对于这些软件函数或方法,希望它们能够仅由已经接收到这样做的授权的用户来使用,例如通过允许它们仅在一个或多个先前授权的控制器18上执行。
[0098]
例如,受保护的功能46可以实施一个或多个算法,软件模块42的发布者或控制器18或微电网2的制造商不希望公开这些算法,或者应该限制其传播,或者避免由安装者或由终端客户端对这些算法的未经授权的复制。
[0099]
控制指令44例如被配置为限制功能46的执行,也就是说,仅在授权的情况下授权其执行,这将在阅读本说明书的剩余部分中呈现的示例时被理解。换句话说,控制指令44使得实施用于管理数字权利的机制成为可能,以便保护受保护的功能46的执行,并且在某些情况下选择性地禁止其执行。
[0100]
优选地,当软件模块42被加载到控制器18中时(特别是当软件模块42当前正在环境40中执行时),用户不能修改控制指令44。
[0101]
相反,在这种情况下称为不受保护功能的功能指示可以在控制器18上正常实施的一个或多个软件函数或方法。
[0102]
例如,受保护的功能46可以涉及由控制器16实施的一个或多个以下功能,以便特别是当设施2是微电网时控制设施2:
[0103]-用于保护电气设备或装备(电气负载、电气源等)的功能以防止电气故障的发生;
[0104]-旨在确保电网的稳定性(在电压方面和频率方面)的功能,特别是以便确保电气负载与电气源之间的平衡;
[0105]-旨在确保当微电网2与主电网10断开时微电网2的操作和稳定性的功能;
[0106]-旨在确保当微电网2连接到主电网10时微电网的过渡和稳定性的功能。
[0107]
在许多实施例中,软件环境40在第一区域50和第二区域52之间共享,在该第一区域50中可以执行功能和程序,该第二区域52诸如操作系统内核,其包括与用户发起的程序不能直接访问或用户不能直接访问的软件资源和/或硬件资源相关联的功能和例程。
[0108]
例如,在此在区域52中示出的、与控制器18的数字标识符相关的识别数据(框54)可以是软件模块42仅经由第一系统函数56可访问的。
[0109]
在这种情况下,控制指令44有利地包括用于调用第一系统函数56以便请求访问标识数据54的例程。
[0110]
因此,来自模块54的信息不能被用户或软件模块42外部的程序更改。这使得有可能防止用户绕过由控制指令44实施的保护机制。
[0111]
在许多示例中,数字标识符包括唯一标识控制器18的硬件标识符,诸如序列号。然而,其他实施例也是可能的。
[0112]
实际上,数字标识符可以包括数字、或字母数字或十六进制字符串、或符号或任何适当的表示。
[0113]
可选地,控制器18(或系统40)可以包括用于倒计时持续时间(例如控制器18的操作持续时间)的软件模块58。模块58例如包括时钟或时间计数器。模块58是软件模块42可仅经由第二系统函数60优选地访问的。
[0114]
同样在这种情况下,来自模块58的信息因此不能被用户或软件模块42外部的程序更改。
[0115]
在这种情况下,控制指令44可以有利地包括用于调用第二系统函数60的例程,以便请求访问由模块58测量的数据,诸如控制器18的操作持续时间。
[0116]
总体上,软件模块42(更特别地控制指令44)被配置成当它们由控制器18的处理器
执行时,以执行以下步骤:
[0117]-获得电子控制器的数字标识符;
[0118]-通过包含在软件模块中的计算函数,基于获得的数字标识符计算数字签名;
[0119]-将所计算的数字签名与存储在软件模块中的预定义的签名进行比较,该预定义的数字签名已经在创建软件模块期间基于工业控制器的数字标识符并通过与包含在软件模块中的计算函数类似(或相同)的计算函数被预先插入;
[0120]-如果所计算的数字签名对应于预定义的数字签名,则授权执行受保护的功能,并且如果所计算的数字签名不对应于预定义的数字签名,则拒绝执行受保护的功能。
[0121]
实施系统40和/或软件模块42的其他方式是可能的。特别地,类似于受保护的功能46的多个受保护的功能可以嵌入软件模块42中,对这些受保护的功能的访问能够由控制指令44或专用于此的控制指令来控制。
[0122]
为了便于本发明的公开,在这些示例中仅描述了一个受保护的功能,但是下面描述的用于保护执行受保护的功能46的实施例可以转置为包括多个要保护的功能的变型。
[0123]
图3示出了用于创建(或生成)诸如软件模块40的软件模块的方法的示例,该软件模块旨在部署在目标电子控制器上,例如控制器18上。
[0124]
该方法例如在编译软件模块42之前实施。
[0125]
创建方法优选地在终端26上实施,例如通过诸如软件开发环境或在线配置工具的配置系统上实施,该系统能够本地安装在终端26上和/或至少部分地由服务器30实施。
[0126]
在许多示例中,通常用户可以通过基于预先在函数库或高级编程接口(api)中定义的软件函数对一个或多个算法进行编程来开发用于控制器18的计算机程序,所述函数库或高级编程接口可以由软件发行商和/或控制器18的制造商提供。
[0127]
这特别允许用户基于该设施2的特征和具体特征来适配和定制用于控制该设施2的控制算法和计算机程序。
[0128]
在可用的功能之中,程序可能必须使用受保护的功能。因此,用于创建软件模块的方法的至少一部分目的是生成控制指令44,一旦软件模块已经被编译并安装在控制器18上,该控制指令44将使得限制执行受保护的功能46成为可能。因此,应当理解,软件模块42可以基于其预期的控制器18来定制。
[0129]
在步骤s100中,获取目标电子控制器的数字标识符。例如,标识符由用户通过在系统的界面上输入或者通过从数据存储介质加载来提供。
[0130]
在步骤s102中,基于所提供的数字标识符自动计算数字签名。例如在终端26或服务器30内,数字签名通过预定义的计算函数来计算。例如,计算函数构成了开发系统的一部分。
[0131]
在一些优选实施例中,计算函数是散列函数。然而,可以提供其他实施方式作为变型。
[0132]
在步骤s104中,数字签名可以被记录在软件模块中,例如记录在存储区域48中(或者记录在一旦软件模块42已经完成编译后将成为存储区域48的临时存储区域中)。
[0133]
接下来,创建可执行软件模块,诸如上述软件模块42。例如,在编译步骤中,自动生成软件代码,当该软件代码被目标电子控制器的处理器执行时,该软件代码被配置为提示处理器实施参考图4描述的方法。
[0134]
编译步骤不一定由终端26或由服务器30实施。在所示的例子中,该步骤在设施2中、在本地控制终端20(或“边缘控制器”)中本地实施,例如在由安装者实施的安装阶段中实施。
[0135]
因此,在步骤s110中,终端20自动接收在上述步骤s100至s104结束时生成的数据。这些数据可以包括部分编译形式的软件模块42。然后在步骤s112中实施编译,以便创建软件模块42。最后,在步骤s114中,软件模块被安装在控制器18上。
[0136]
然而,可以设想其他变型,例如其中由终端26或服务器50实施编译步骤s112。可以省略终端20,以及其接口22。
[0137]
图4示出了在控制器18上执行软件模块42期间由控制指令44实施的保护方法的示例。
[0138]
最初,在步骤s120中,控制器18被引导。
[0139]
该方法是响应于来自控制器18的请求(例如来自当前正在控制器18上执行的程序)而实施的,该请求请求执行包含在软件模块42中的受保护的功能46。
[0140]
在步骤s122中,自动获得电子控制器的数字标识符,例如通过调用第一系统函数56自动获得。
[0141]
在步骤s124中,基于获得的数字标识符自动计算数字签名。数字签名通过包含在软件模块中(例如包含在控制指令44中)的计算函数来计算。
[0142]
在实践中,该计算函数类似于并且优选地等同于在创建软件模块42期间使用的计算函数(这里在步骤s102中)。
[0143]
在步骤s126中,将所计算的数字签名与存储在软件模块42中(例如存储在软件模块42的存储区域48中)的预定义的签名进行比较。
[0144]
预定义的数字签名实际上对应于在创建软件模块42期间计算的且在创建软件模块期间预先插入的数字签名(这里在步骤s102中)。
[0145]
根据比较的结果,如果所计算的数字签名对应于预定义的数字签名,则授权执行受保护的功能(步骤s128)。对应于受保护的功能46的指令然后可以由控制器18的处理器执行。
[0146]
然后,该方法可以结束(步骤s130),直到在对软件模块42的受保护的功能46的下一次调用时的下一次执行。
[0147]
相比之下,比较的结果是,如果所计算的数字签名不对应于预定义的数字签名,则拒绝执行受保护的功能(步骤s132)。例如,然后禁止访问对应于受保护的功能46的指令,并且这些指令不能由控制器18的处理器执行。该方法可以结束,直到在对软件模块42的受保护的功能46的下一次调用时的下一次执行。
[0148]
可选地,在步骤s132中,可能生成错误信号以便由系统40处理,例如以便在事件日志中记录故障的发生,或者以便将错误信号传输到异常管理器,或者向监管者发送警报。
[0149]
在许多实施例中,在步骤s126中,如果所计算的数字签名等于预定义的数字签名,则认为所计算的数字签名对应于预定义的数字签名。当数字签名是数字或字母数字值时,情况特别是如此。
[0150]
根据一些有利但仍然可选的变型,该方法还可以包括:
[0151]-从电子控制器获取附加参数的步骤(例如在步骤s122期间);
[0152]-然后是将获取的附加参数与存储在软件模块中(例如存储在区域48中)的附加参数的参考值进行比较的步骤(例如在步骤s126期间)。
[0153]
此外,仅当所获取的附加参数对应于参考值时,才能授权执行受保护的功能,如果所获取的附加参数不对应于参考值,则拒绝执行受保护的功能。换句话说,在这个变型中,授权执行受保护的功能所需的条件是累积的。
[0154]
根据一个有利的示例,附加参数是操作持续时间,并且附加参数的参考值是最大操作持续时间。
[0155]
例如,这可以是软件模块42的操作持续时间,或控制器18的操作持续时间,或设施2的操作持续时间。
[0156]
这使得有可能例如在使用许可已经到期后防止用户无限期地继续使用软件模块42和受保护的功能46。
[0157]
实际上,附加参数的参考值可以存储在存储区域48中。并且可以通过调用系统函数(例如第二系统函数60)来获取附加参数的值。
[0158]
在未详细描述的其他实施例中,附加参数可以不同。它可以是数字许可密钥,或者是指示授予用户的使用许可是否仍然有效的等效参数。
[0159]
根据一些有利但仍然可选的变型,该方法还可以包括在控制器18引导之后的临时禁止阶段,在该阶段期间,即使所计算的数字签名不对应于预定义的数字签名,也会授权执行受保护的功能46。
[0160]
例如,在引导之后(步骤s120),控制指令44临时禁止步骤s122、s124和s126的实施方式。
[0161]
优选地,在引导控制器18或引导模块42之后的短持续时间内临时激活该禁止。禁止持续时间应保持足够短,以防止用户自由地使用受保护的功能46或绕过由控制指令44设置的保护。例如,禁止持续时间小于或等于几分钟或几秒钟。
[0162]
这种禁止允许例如用户执行诊断和维护操作,而不受由控制指令44实施的保护机制阻碍。
[0163]
然而,在许多情况下,可以省略临时禁止阶段。
[0164]
作为变型,上述方法的步骤可以以不同的顺序来实行。某些步骤可以省略。在其他实施例中,所描述的示例不防止其他步骤与所描述的步骤一起和/或循序地实现。
[0165]
上述实施例使得总体上防止在电气设施的可编程逻辑控制器中某些软件函数的未授权使用成为可能。通过授权仅在预先标识和授权的一个或多个控制器18上执行受保护的功能,防止用户和第三方在没有授权的情况下复制或复制软件模块42。
[0166]
并且,通过将保护仅限制于软件模块42的某些功能,而不是保护整个软件模块,简化了保护机制的实施。这也使得用户当在编译软件模块42之前写入程序时更容易工作。
[0167]
由控制指令44实施的保护机制比已知的软件保护机制更容易实施并且对用户更透明,在已知的软件保护机制中整个软件程序通过硬件和软件设备来保护,例如通过必须保持连接到控制器18的专用电子设备来保护。
[0168]
上面设想的实施例和变型可以彼此组合,以便创建新的实施例。
技术特征:
1.用于保护软件模块(42)的执行的方法,该软件模块具有至少一个受保护的功能(46),该方法由电子控制器(18)中的所述软件模块在来自所述电子控制器的旨在执行所述至少一个受保护的功能的请求之后实施,该方法包括:-获得(s122)所述电子控制器的数字标识符;-通过包含在所述软件模块中的计算函数,基于所获得的数字标识符计算(s124)数字签名;-将所计算的数字签名与存储在所述软件模块中的预定义的签名进行比较(s126),所述预定义的数字签名已经在创建所述软件模块期间基于所述工业控制器的数字标识符并通过与包含在所述软件模块中的计算函数类似的计算函数被预先插入;-如果所计算的数字签名对应于所述预定义的数字签名,则授权(s128)执行所述受保护的功能,并且如果所计算的数字签名不对应于所述预定义的数字签名,则拒绝(s132)执行所述受保护的功能。2.根据权利要求1所述的方法,其中所述方法还包括:-从所述电子控制器获取(s122)附加参数;-将所获取的附加参数与存储在所述软件模块中的附加参数的参考值进行比较(s126),并且其中仅当另外所获取的附加参数对应于所述参考值时,才能授权(s128)执行所述受保护的功能,如果所获取的附加参数不对应于所述参考值,则拒绝(s132)执行所述受保护的功能。3.根据权利要求2所述的方法,其中所述附加参数是操作持续时间,并且其中所述附加参数的参考值是最大操作持续时间。4.根据前述权利要求中任一项所述的方法,其中所述方法包括在所述电子控制器的引导(s120)之后的临时禁止阶段,在该阶段期间即使所计算的数字签名不对应于所述预定义的数字签名,也能授权执行所述受保护的功能。5.根据前述权利要求中任一项所述的方法,其中所述电子控制器的所述数字标识符通过由所述电子控制器提供的系统函数(56)获得。6.根据前述权利要求中任一项所述的方法,其中所述数字标识符包括唯一标识所述电子控制器的硬件标识符,诸如序列号。7.根据前述权利要求中任一项所述的方法,其中所述计算函数是散列函数。8.根据前述权利要求中任一项所述的方法,其中所述电子控制器(18)是可编程逻辑控制器。9.用于生成旨在部署在目标电子控制器上的软件模块的方法,该方法包括:-获取(s100)所述电子控制器的数字标识符,-基于所获得的数字标识符计算(s102)签名,所述计算通过计算函数来执行;-在所述软件模块中记录(s104)所述签名;-在所述软件模块中记录(s112)软件代码,所述软件代码被配置为当由所述目标电子控制器的处理器执行时,提示所述处理器实施根据前述权利要求中任一项所述的方法。10.软件模块(42),诸如计算机程序产品,包括软件代码,所述软件代码被配置为当被电子控制器的处理器执行时实施包括以下的步骤:
‑
获得(s122)所述电子控制器的数字标识符;-通过包含在所述软件模块中的计算函数,基于所获得的数字标识符计算(s124)数字签名;-将所计算的数字签名与存储在所述软件模块中的预定义的签名进行比较(s126);-如果所计算的数字签名对应于所述预定义的数字签名,则授权(s128)执行所述受保护的功能,并且如果所计算的数字签名不对应于所述预定义的数字签名,则拒绝(s132)执行所述受保护的功能。11.配电设施(2),特别是配电微电网,包括电子控制器(18),所述电子控制器包括处理器和根据权利要求10所述的软件模块(42)。12.用于生成旨在部署在目标电子控制器上的软件模块的系统,该系统被配置成实施包括以下的方法:-获取(s100)所述电子控制器的数字标识符,-基于所获得的数字标识符计算(s102)数字签名,所述计算通过计算函数来执行;-在所述软件模块中记录(s104)所述数字签名;-在所述软件模块中记录(s112)根据权利要求10所述的软件代码。
技术总结
用于保护具有至少一个受保护的功能的软件模块的执行的方法,该方法包括以下步骤:获得(S122)电子控制器的数字标识符;通过包含在软件模块中的计算函数,基于数字标识符计算(S124)数字签名;将计算的数字签名与存储在软件模块中的预定义的签名进行比较(S126);如果计算的数字签名对应于预定义的数字签名,则授权(S128)执行受保护的功能,并且如果计算的数字签名不对应于预定义的数字签名,则拒绝(S132)执行受保护的功能。(S132)执行受保护的功能。(S132)执行受保护的功能。
技术研发人员:O.缪兰特 F.奥伯特
受保护的技术使用者:施耐德电器工业公司
技术研发日:2021.11.01
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-9009.html