用于操縱保護的方法
【專利摘要】本發明涉及用于操縱保護的方法。用于操縱保護的方法和設備,其包括:由第二設備(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.齊布施卡
【申請人】羅伯特·博世有限公司