用于操纵保护的方法

文档序号:10538524阅读:276来源:国知局
用于操纵保护的方法
【专利摘要】本发明涉及用于操纵保护的方法。用于操纵保护的方法和设备,其包括:由第二设备(S)接收(202)由第一设备(E)所发送的第一数据包,其中所述第一数据包包括第一时变参数;借助于非对称加密方法的被分配给第二设备(S)的私钥对第一哈希值与第一时变参数和第二设备(S)的标识的联系进行签名(207),其中被存储在第二设备(S)上的、被设置用于在第二设备运行时进行实施的程序指令或者数据被考虑用于确定所述哈希值;产生(207)包括签名和联系的第二数据包;由第二设备(S)将第二数据包发送(209)给第一设备(E)。
【专利说明】
用于操纵保护的方法
技术领域
[0001]本发明涉及一种用于操纵保护的方法、用于实施所述方法的设备和计算机程序。
【背景技术】
[0002]根据DE 10 2009 002 396 Al,公知了一种用于对传感器和传感器的传感器数据进行操纵保护的方法,在所述方法中,在对传感器进行认证(Authentifizierung)的范围内随机数由控制设备被寄送给传感器。在此,传感器数据一方面被配备有使用密码的完整性保护(kryptographischer Integritaetsschutz),而另一方面附加的时变参数被添加到传感器数据。在此,所述传感器数据与完整性保护和所添加的时变参数一起由传感器被寄送给控制设备。在此,针对时变参数,在对传感器进行认证的情况下,随机数或者该随机数的部分或者通过由随机数构成的函数所获得的数被考虑。
[0003]借此,不仅传感器的身份而且由传感器所传输的数据的完整性被保护。

【发明内容】

[0004]除了保护发送方的身份和由发送方所传输的数据的完整性以外,还对在发送方上所采用的软件或者固件的完整性的保护是值得期待的。
[0005]依照独立权利要求所述的按照本发明的方法、按照本发明的设备和按照本发明的计算机程序使得能够保护存在于设备上的固件或者软件的完整性和在另一设备上对该完整性进行确认。
[0006]借此,根据在所保护的设备上进行的固件或者软件的完整性能够实现完整性保护。这样,在传感器的情况下,对传感器或者传感器的测量进行控制的固件或者软件的完整性例如可以被保护。
[0007]采用非对称密码技术(asymmetrische Kryptographie)减轻了对一个或者多个不同的设备制造商的多个不同的要保护的设备的保护的处理(Handhabung)。
[0008]通过在从属权利要求中所举出的措施,有利的扩展方案和改进方案是可能的。
[0009]第一数据包优选地包括第一设备的标识(Identifikat1n)与第一时变参数的联系(Verknuepfung),并且根据该联系产生而且传送消息认证码(Message Authenticat1nCode)。这使得附加的对所传输的数据的完整性保护成为可能。
[0010]优选地被设置的是,私钥被存放在值得信任的区域(尤其是物理不可克隆功能(PUF,Physically Unclonable Funct1n)或者可信平台模块(TPM,Trusted PlatformModule))中。尤其是当所使用的硬件被构造为使得除了由制造商所设置的数据访问以外不可能有其它的对所述值得信任的区域的无破坏的访问时,这附加地提高了安全性。
[0011]所述时变参数优选地是随机数、随机数的部分或者已经根据对随机数应用函数所计算的数。使用随机数附加地提高了对重放攻击(Replay Angriffe)的抵抗力。
[0012]第二数据包优选地被划分为具有确定的(位)长度的多个部分,而且该第二数据包的至少一个部分与其它的要由第二设备发送给第一设备的信息相联系地被传送。借此,信号传输是特别有效的。这主要是在其它的要发送的信息的最低值的位优选地被与第二数据包的一个或者多个部分的联系替换时适用。
[0013]错误修正码(Error-Correct1n-Code)优选地被设置为用于传送第二数据包的附加值,并且在所识别出的操纵的情况下借助于错误修正码设置修正,所述附加值被传送并且在接收方处被分析利用。借此,该传输的可靠性被提高。
[0014]在所识别出的操纵的情况下优选地设置有重复传输所涉及的第二数据包或者切断第一设备、第二设备或者所述设备中的至少一个所属的系统。借此,或者提高相对于传输故障的稳健性,或者实现特别安全的系统。
【附图说明】
[0015]本发明的实施例在附图中被示出并且在随后的描述中进一步被阐明。
[0016]图1示出了用于操纵保护的系统的部分的示意图,
图2示出了信号流图。
【具体实施方式】
[0017]图1示意性地示出了用于操纵保护的系统100的部分的图示,所述用于操纵保护的系统100的部分包括第一设备110和第二设备120。
[0018]第一设备110包括第一网络接口 111。第二设备120包括第二网络接口 121。所述第一网络接口 111和所述第二网络接口 121被构造为使得它们通过用于数据交换的数据连接190彼此是可连接的。为了数据交换,优选地设置有数字的PSI5接口。完样一样地,例如可以设置如控制器区域网(Controller Area Network)那样的现场总线。其它的经过电缆连接的数据连接或者如WLAN那样的无线的数据连接以及诸如因特网协议(I n t ern e tProtocol)/传输控制协议(Transmiss1n Control Protocol)那样的任意的用于网络通信的协议同样可以被设置。所述网络接口 111和121在这种情况下相对应地被适配。
[0019]第一设备110包括存储区域112(例如电可擦除可编程只读存储器(EEPR0M,Electrically Erasable Programmable Read-Only Memory)),在本例中在所述存储区域112上存储有非对称加密方法或者签名方法的由公钥PKCA和秘密密钥SKCA构成的第一密钥对 PKCA、SKCA 的公钥PKCA。
[0020]第二设备120包括值得信任的区域122(例如物理不可克隆功能(PUF)或者可信平台模块(TPM)),在所述值得信任的区域122中存放有相同的非对称加密方法的由被分配给第二设备120的公钥PKS和秘密密钥SKS构成的密钥对PKS、SKS的被分配给第二设备120的秘密密钥PKS。
[0021]例如RS A被用作非对称加密方法或者签名方法,或者椭圆曲线数字签名算法(ECDSA,Elliptic Curve Digital Signature Algorithm)方法被用作签名方法。
[0022]此外,第一设备110还包括非易失性存储器113(例如闪存一EEPR0M),在所述非易失性存储器113上保存有被设置用于在第一设备110运行时进行实施的程序指令或者数据(例如固件或者软件)。
[0023]此外,第一设备110还包括处理器114,所述处理器114与第一网络接口 111、存储区域112和非易失性存储器113相连,用于(例如通过未示出的数据总线)通信。
[0024]处理器114被构造为在起动系统100时实施用于运行第一设备110的指令并且对此借助于第一网络接口 111与第二设备120进行通信。
[0025]此外,处理器114还被构造为实施在下文所描述的用于操纵保护的方法。
[0026]第二设备120包括非易失性存储器123(例如闪存一 EEPR0M),在所述非易失性存储器123上保存有被设置用于在第二设备120运行时进行实施的程序指令或者数据(例如固件或者软件)。
[0027]此外,第二设备120还包括处理器124,所述处理器124与第二网络接口 121、值得信任的区域122和非易失性存储器123相连,用于(例如通过未示出的数据总线)通信。
[0028]处理器124被构造为在起动系统100时实施用于运行第二设备120的指令并且对此借助于第二网络接口 121与第二设备110进行通信。
[0029]此外,处理器124还被构造为实施在下文所描述的用于操纵保护的方法。
[0030]通过在下文所描述的实例,用于运行第二设备120的指令和数据的完整性被保护以防操纵。在此,该方法依据固件FWS’的实例被描述,然而完全一样地可被应用在其它的指令和数据上。在接下来的实例中,第一设备110是控制设备E,而第二设备120是传感器S。然而,该方法也完全一样地可被应用在其它的设备上。
[0031]在该方法开始之前,证书授证机构CA(例如数字证书认证机构(CertificateAuthority))借助于它的第一密钥对PKCA、SKCA根据固件FWS’的哈希值h’(FWS’)产生第一签名SigCA(h’(FWS’))。例如利用MD5或者SHA-1哈希函数产生所述哈希值。此外,产生第二密钥对PKS、SKS的公钥的第二签名SigCA(PKS)。
[0032]例如,证书授证机构CA产生或者集成的签名sigCA(h’(Fws’)Ipks)或者两个具有共同的但是随机的数值1的签名51804(11’$¥5’)^)、51804(?1?,0作为关联的签名518〇八(…)。
[0033]对此,传感器S的制造商产生哈希值h’(FWS’)并且将它连同它的公钥PKS和固件FW一起传送给证书授证机构CA。
[0034]证书授证机构CA将关联的签名SigCA(...)发送给控制设备E的制造商。
[0035]在接收到所述关联的签名SigCA(...)之后,该制造商E也努力获得所有所希望的值得信任的证书授证机构的公钥、尤其是证书授证机构CA的如上面所描述的那样被存放在存储区域112中的公钥?1^八。
[0036]此外,在传感器S中和在控制设备E中,相应的设备的标识被存放在所提及的存储器之一中。例如相应的序列号或者序列号的部分用作标识。每个其它的标识(例如字母数字字符串)同样可以被使用。
[0037]例如当传感器S和控制设备E彼此通过相应的网络接口和数据连接相连时,该方法开始。对此,在本例中,传感器S和控制设备E被建造在车辆中并且彼此相连。例如,该方法可以在每次车辆新起动时或者也在任意的可预先给定的时间间隔内被重复。
[0038]图2示出了信号流,依据所述信号流,该方法在下文被阐明。传感器S和控制设备E在图2中相对应地利用S和E被表征。
[0039]在起动之后,认证阶段开始,在所述认证阶段中,在步骤201中产生第一数据包DKl。在本例中,例如AES 128或者PRESENT加密方法的共同的对称的认证密钥K被用于进行认证。在本例中,在所述设备的每个设备中,该认证密钥K被存储在所述存储器之一中。然而,所述认证利用其它的加密方法或者认证方法例如在使用所保存的非对称密钥的情况下也是可能的。此外,具有挑战应答对(challenge-response-Paaren)的被存放在安全的存储器中的表格可以被使用。
[0040]在此,第一数据包DKl作为挑战(challenge)被发送给传感器S。该传感器S在值得信任的区域内由其产生应答(Response)。在本例中,借助于PUF和被包含在其中的使用密码的秘密密钥SKS通过对第一数据包DKl进行加密而产生应答。可替换地,由TPM作为对第一数据包DKl的回答所产生的测量结果也可能会被用作应答。
[0041]第一数据包DKl包括第一时变参数。该时变参数例如是随机数ch、随机数的部分或者已经根据对随机数应用函数所计算的数。使用在不知道计算算法的情况下(也即对于攻击者而言)不能与随机数相区别地被计算的数(例如伪随机数)同样是可能的。
[0042]在下文,该方法以随机数ch为例被阐明。该随机数例如作为64位随机数ch在控制设备E中被产生。
[0043]此外在本例中,第一数据包DKl包括控制设备E的标识(例如控制设备E的序列号idR)。该序列号idR例如有32位的长度。
[0044]在此,第一数据包DKl作为随机数ch与序列号idR的联系被产生:DKl= ch| | idR。
[0045]第一数据包DKl在消息202中由控制设备E发送并且由传感器S接收。
[0046]在接收到消息202之后,传感器S在步骤203中借助于被加密的数据包DK= EncK(chI idR)的共同的对称的认证密钥K来对消息202进行加密。
[0047]紧接着,传感器将消息204发送给控制设备E。该消息204包括被加密的消息202与传感器的序列号idS(在本例中传感器S的序列号idS)的联系EncK(ch I idR) | |idS。该序列号idS例如有32位的长度。
[0048]在发送消息202之后,控制设备E同样在步骤205中利用另一被加密的数据包DK’=EncK(ch I I idR)的共同的对称的认证密钥K对消息202进行加密。
[0049]在接收到消息204之后,控制设备E在步骤206中将来自消息204的传感器S的序列号ids与所期望的序列号ids’相比较。所期望的序列号ids’例如在嵌入在控制设备E中的范围内与接着所建造的传感器S相配地被存放在所述存储器之一中。此外,在步骤206中,被加密的数据包DK与另一被加密的数据包DK’进行比较。
[0050]如果序列号idS与所期望的序列号idS’一致,并且被加密的数据包DK与另一被加密的数据包DK’一致,那么传感器S相对于控制设备E已经成功地被认证。
[0051 ]在本例中,借助于DUF产生被加密的数据包DK。替代于其地,对TPM的测量也可以被使用。在这种情况下,代替所述另一被加密的数据包DK’,设置有挑战一应答数值的表格。在这种情况下,数据包DK包括应答并且通过将应答(也就是说测量结果)与来自表格的所期望的应答相比较而在一致的情况下确认认证。
[0052]在接收到消息202之后,在步骤207中由传感器S产生第二数据包DK2。
[0053]为此,传感器S在值得信任的区域中产生被设置用于运行传感器S的固件FWS的另一哈希值h(FWS)。在此,使用也曾被使用于上面所提到的对用于证书授证机构CA的哈希值的计算中的相同的哈希函数(例如MD5或者SHA-1哈希函数)。
[0054]借此,只要涉及相同的固件(也就是说FWS = FWS ’),所述两个哈希值h (FWS)和h ’(FWS’)就只有一致。
[0055]接着,另一哈希值h(FWS)与传感器S的随机数ch和序列号idS的联系借助于非对称加密方法的被分配给传感器S的私钥SKS被签名。
[0056]借此产生第二数据包DK2 = sigSKS(h(FWS) I ch I idS)。因此,第二数据包DK2包括所述签名和所述联系。
[0057]在步骤208中,第二数据包DK2优选地被划分为N个部分(例如确定的长度的N位)。这些部分连同有效数据m—起被传输。
[0058]紧接着,第二数据包DK2由传感器S被发送给控制设备E。在本例中,所述N个部分以N次迭代在N个消息209( I...Ν)中被传输给控制设备。
[0059]可替换地,多个部分也可以共同地在少于N个消息209中被传输。完全一样地,第二数据包DK2也可以在唯一的消息209中被传输。
[0060]在本例中使用消息认证码(MAC)、例如基于密码的MAC(CMAC,Cipher Based MAC)。为此,在两个设备中例如在所述存储器之一中存放有共同的消息认证码密钥(MessageAuthenticat1n Code Schluessel)kMAC0
[0061]传感器S将第二数据包DK2 = SigSKS(h(FWS) | ch I idS)划分为N个等长的部分:(s[O],s[l],...,s[N] )=sigsKs(h(FWS) | ch | idS)。
[0062]接着,传感器S以N次迭代通过对联系应用MAC而产生N个消息209:
MACkMAc(m[i] I I (ch+i) | | idS | idR | s[i]),
所述联系包括相应的有效数据m[i]、传感器S的序列号idS、控制设备E的序列号idR和相应的针对?=1...Ν的部分s[i]。
[0063]控制设备E接收所述消息209并且在得到N个消息209之后在步骤210中检查所述消息认证码。
[0064]紧接着,在步骤211中,控制设备E确定另一联系h’(FWS’)Ich |idS’。该联系对应于固件的整数值(intergrer Wert),所述固件的整数值不通过不同于所期望的发送方发送并且不曾通过重放攻击产生。
[0065]在步骤212中,通过比较所述另一联系h’(FWS’)||ch| |idS’与所述在第二数据包DK2中所得到的联系h(FWS) I ch I idS,固件的完整性由控制设备E确认。
[0066]在步骤213中,在另一比较中,第二数据包DK2的签名sigSKS(h(FWS) I ch |idS)借助于关联的签名SigCA(...)被验证。
[0067]在成功的验证和固件的完整性检查的情况下,尤其是在步骤210、211和212中的成功的检查的情况下,没有操纵曾被识别出。接着,该方法在必要时以确定的时间延迟(或者在重新接通控制设备E或者传感器S时)被重复。
[0068]否则,在步骤214中切断控制设备E或者所述控制设备E所属的系统100,因为操纵曾被识别出。在这种情况下,完全一样地可以被设置的是,将另一消息发送给传感器S,所述另一消息应该促使所述传感器S切断。
[0069]为了传输消息209,优选地设置有用于传送第二数据包DK2的错误修正码。在这种情况下,在步骤214中的所识别出的操纵的情况下,优选地借助于所述错误修正码设置修正。
[0070]完全一样地,在步骤214中的所识别出的操纵的情况下可以设置有对所涉及的第二数据包的重复传输。
[0071]如果上面所提到的用于密码操作的数据或者数据包或者中间结果不能有相配的(位)长度,那么此外例如借助于填充(padding)设置对长度的适配。
【主权项】
1.用于操纵保护的方法,其具有步骤: 由第二设备(S,120)接收(202)由第一设备(E,110)所发送的第一数据包(DKl),其中所述第一数据包(DKl)包括第一时变参数(ch); 借助于非对称加密方法的被分配给第二设备(S,120)的私钥(SKS)对第一哈希值(h)与第一时变参数(ch)和第二设备(S,120)的标识(idS)的联系进行签名(207),其中被存储在第二设备(S,120)上的、被设置用于在第二设备运行时进行实施的程序指令(FWS)或者数据(FWS)被考虑用于确定哈希值(h); 产生(207)包括签名和联系的第二数据包(DK2); 由第二设备(S,120)将第二数据包(DK2)发送(209)给第一设备(E,110)。2.根据权利要求1所述的方法,其中,第一数据包(DKl)包括第一设备(E,110)的标识(idR)与第一时变参数(ch)的联系,并且其中消息认证码根据所述联系被产生并且被传送。3.用于操纵保护的方法,其具有步骤: 由第一设备(E,110)发送(202)第一数据包(DKl),其中第一数据包(DKl)包括第一时变参数(ch); 由第一设备(E,110)接收(209)第二数据包(DK2); 借助于被分配给预先确定的第二设备(S,120)的公钥(PKS)检验(213)非对称加密方法的被包含在第二数据包(DK2)中的签名; 通过预先确定的哈希值(h’)、第一时变参数(ch)和预先确定的第二设备(S,120)的预先确定的标识(ids’)的联系计算(211)用于被包含在第二数据包(DK2)中的数据的确定的部分的比较值,其中被设置用于在预先确定的第二设备(S,120)运行时进行实施的程序指令(FSW’)或者数据(FSW’)已经被考虑用于确定所述预先确定的哈希值(h’); 将比较值与确定的部分进行比较(212); 根据比较结果识别(214)操纵。4.根据权利要求3的方法,其中,第一数据包(DKI)包括第一设备(E,110)的标识(i dR)与第一时变参数(ch)的联系,并且其中根据所述联系所产生的消息认证码被接收(210)并且被检查。5.根据上述权利要求之一所述的方法,其中,设置有:私钥(SKS)被存放在值得信任的存储区域(122)、尤其是物理不可克隆功能(PlF)或者可信平台模块(TPM)中。6.根据上述权利要求之一所述的方法,其中,时变参数(ch)是随机数、随机数的部分、已经根据对随机数应用函数所计算的数或者不能与随机数相区别的数。7.根据上述权利要求之一所述的方法,其中,第二数据包(DK2)被划分为具有确定的位长度的多个部分(s[i]),并且其中第二数据包(DK2)的至少一个部分(s[i])与要由第二设备(S,120)发送给第一设备(E,110)的其它信息(m[i])相联系地被传送。8.根据上述权利要求之一所述的方法,其中,错误修正码被设置用于与第二数据包(DK2)—起传送,并且其中在所识别出的操纵的情况下借助于错误修正码设置修正。9.根据上述权利要求之一所述的方法,其中,在所识别出的操纵的情况下设置有:重复地传输所涉及的第二数据包或者切断第一设备(E,110)、第二设备(S,120)或者所述设备中的至少一个所属的系统(100)。10.用于实施根据权利要求1至9之一所述的操纵保护的设备(S,E)。11.计算机程序,其被设立为执行根据权利要求1至9之一所述的方法的步骤。
【文档编号】H04L9/30GK105897423SQ201610088418
【公开日】2016年8月24日
【申请日】2016年2月17日
【发明人】J.肖克罗拉希, J.齐布施卡
【申请人】罗伯特·博世有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1