本發(fā)明涉及用于避免對數(shù)據(jù)傳輸?shù)牟倏v的一種方法和一種裝置。
背景技術(shù):
de102009002396a1描述了一種用于借助消息認證碼(messageauthenticationcode)對在車輛中的數(shù)據(jù)傳輸進行操縱保護的方法。
在車輛中例如通過控制器局域網(wǎng)絡(controllerareanetwork)或flexray數(shù)據(jù)總線進行傳輸?shù)南⑴鋫溆行r灪?、例如用于循環(huán)冗余校驗(cyclicredundancycheck)的校驗和。安全關鍵的消息在接收方一側(cè)依據(jù)該校驗和來檢驗。
該校驗和也可以通過消息認證碼來補充或者代替。
借助軟件和/或特定地針對所述軟件適配的硬件來實現(xiàn)所述檢驗。
為了防止操縱,可以根據(jù)最小權(quán)限的安全范例(所謂的“principleofleastprivilege(最小權(quán)限原則)”)的原則來開發(fā)軟件和/或硬件。在此,在整個系統(tǒng)之內(nèi),每個模塊、也就是說每個處理器或每個程序都只獲得對如下信息或資源的訪問權(quán),所述信息或資源對于滿足相應的目的是必要的。
如果將特定的硬件模塊用于檢驗消息認證碼,那么最小權(quán)限的安全范例可能由于如下情況而被違反:特定的硬件模塊也可被用于生成消息認證碼。由此,對于消息的有危害的接收方來說也可能以最初的發(fā)送方的名義來發(fā)送具有有效的消息認證碼的失真的消息。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了按照獨立權(quán)利要求所述的用于對數(shù)據(jù)傳輸進行操縱保護的一種方法和一種裝置。
由此,在接收方一側(cè)滿足最小權(quán)限的安全范例。在特定的硬件模塊中,在安全檢驗失敗時的錯誤反應是多余的。不需要使用根據(jù)汽車安全完整性等級(automotivesafetyintegritylevel)評定的硬件來避免對數(shù)據(jù)傳輸?shù)牟倏v,。
其它的優(yōu)點由從屬權(quán)利要求的主題和下面的描述以及附圖中得到。
附圖說明
實施例在附圖中被示出并且在隨后的描述中予以闡述。
圖1示意性地示出了用于處理所接收到的消息的方法,
圖2示意性地示出了用于處理所接收到的消息的另一方法,
圖3示意性地示出了用于進行數(shù)據(jù)傳輸?shù)难b置。
具體實施方式
該方法的第一部分110借助軟件來執(zhí)行,該軟件例如在計算單元上實施。在下文,該計算單元也被稱為中央處理單元,cpu(centralprocessingunit)。
該方法的第二部分120借助特定的硬件模塊來執(zhí)行。所述特定的硬件模塊在下文也用hsm來表示。
在所述兩個部分之間的界限在圖1中被顯示為虛線。
在本例中,使用消息認證碼、尤其是基于密碼的消息認證碼(公知為cmac),作為消息認證碼(公知為mac)的實現(xiàn)形式。在對cmac的執(zhí)行方面,尤其是參閱nist特刊(specialpublication)800-38b。原則上,該方法能被應用于所有的mac變型方案。
為了處理消息,該方法具有如下步驟。
在步驟131中,由cpu接收消息。該消息包括cmac。該消息例如包括安全關鍵的信號。
緊接著,實施步驟132。
在步驟132中,由cpu將消息轉(zhuǎn)交給hsm。在本例中,為此設置接口、尤其是數(shù)據(jù)總線,用于在所述cpu與所述hsm之間進行數(shù)據(jù)傳輸。
緊接著,實施步驟133。
在步驟133中,在hsm中計算檢驗cmac,尤其是值cmac_c。
緊接著,實施步驟134。
在步驟134中,在hsm中將所接收到的cmac與所述檢驗cmac進行比較。尤其是,將被包含在該消息中的cmac與所述值cmac_c進行比較。
在一致時,實施步驟135。否則實施步驟136。
在步驟135中,將輸出參量的值設置到如下值,所述值用信號通知所接收到的cmac與所述檢驗cmac一致。例如,將結(jié)果變量設置到值“ok”。
緊接著,實施步驟137。
在步驟136中,將輸出參量的值設置到如下值,所述值用信號通知所接收到的cmac與所述檢驗cmac不一致。例如,將結(jié)果變量設置到值“wrong”。
緊接著,實施步驟137。
在步驟137中,將檢驗的結(jié)果和所述檢驗cmac轉(zhuǎn)交給cpu。尤其是,將值cmac_c和結(jié)果變量轉(zhuǎn)交給cpu。為此,設置接口、尤其是數(shù)據(jù)總線,用于在所述hsm與所述cpu之間進行數(shù)據(jù)傳輸。
如在圖1中所示,該接口可以具有用于所述結(jié)果變量的第一區(qū)域138和用于所述值cmac_c的第二區(qū)域139。
緊接著,實施步驟140。
在步驟140中,在cpu中檢驗已經(jīng)由hsm執(zhí)行過的檢驗的結(jié)果。如果在hsm中的檢驗已經(jīng)得出所接收到的cmac與所述檢驗cmac不一致,那么實施步驟141。否則實施步驟142。
在步驟141中,觸發(fā)錯誤反應。例如,用錯誤登記“error”來寫錯誤存儲器。
緊接著結(jié)束該方法。
在步驟142中,將在該消息中由cpu接收的cmac與已經(jīng)由hsm轉(zhuǎn)交的檢驗cmac進行比較。例如,將來自該消息的cmac與所述值cmac_c進行比較。
可以設置對刷新計數(shù)器(freshnesscounter)的檢驗,以便確保如下消息應當在該時間點予以比較,所述消息的cmac與所述值cmac_c進行比較。
緊接著實施步驟143。
在步驟143中,使來自該消息的數(shù)據(jù)準備用于進一步使用。例如將所述數(shù)據(jù)從該消息中提取出來。
緊接著實施步驟144。
在步驟144中,由cpu輸出所述數(shù)據(jù)??商鎿Q地,所述數(shù)據(jù)也可以在cpu上運行的其它程序部分中使用。例如,將所述數(shù)據(jù)存儲到輸出存儲器中。
緊接著結(jié)束該方法。
可替換地或附加地,在步驟141中已經(jīng)觸發(fā)了錯誤反應之后,也可以使用該消息、尤其是已經(jīng)利用該消息被接收到的數(shù)據(jù)。
在本例中執(zhí)行所述步驟中的某些步驟,使得滿足預先給定的汽車安全完整性等級。為此,使用按照iso26262標準的版本(即汽車安全完整性等級)的執(zhí)行方案,所述iso26262標準的版本在本申請的時間點是公知的。
在本例中,對于其它步驟不使用該標準。這些步驟在本例中可能滿足其它質(zhì)量要求。在本例中,這些步驟131、140、141、142、143和144必須按照預先給定的汽車安全完整性等級來執(zhí)行,以便盡可能避免操縱。也存在如下可能性:在相對應地低的要求的情況下相對應地不使被提到的步驟的全部都執(zhí)行。
優(yōu)選地,只有當步驟134已經(jīng)成功時,才在步驟137中將在步驟133中所計算出的檢驗cmac轉(zhuǎn)交給cpu。否則,有利地,將無效的檢驗cmac、例如值0轉(zhuǎn)交給cpu。
由此,只要所述檢驗cmac只有事先在步驟132中已經(jīng)轉(zhuǎn)交了具有一致的cmac的消息時才離開hsm,就滿足最小權(quán)限的安全范例。
圖2描述了所述處理的另一方法。如在事先依據(jù)圖1所描述的方法中那樣,具有相同的流程的步驟在圖2中用相同的附圖標記來表示。所述附圖標記在下文中不再一次予以闡述。
現(xiàn)在實施步驟235,而不是步驟135。
現(xiàn)在實施步驟236,而不是步驟136。
現(xiàn)在實施步驟237,而不是步驟137。
在步驟235中,將輸出參量的值設置到與所述檢驗cmac一致的值。
例如,將結(jié)果變量設置到所述檢驗cmac的值、尤其是已經(jīng)由hsm計算出的值cmac_c。
在步驟236中,將輸出參量的值設置到對應于根據(jù)可能cmac的格式的值,但是既不與所接收到的消息的cmac一致,也不與由hsm計算出的檢驗cmac一致、尤其是不與所述值cmac_c一致。例如使用值cmac_c_wrong。
在步驟237中,將檢驗的結(jié)果、例如檢驗值轉(zhuǎn)交給cpu。尤其是將值cmac_c或值cmac_c_wrong轉(zhuǎn)交給cpu。
這意味著,步驟237已經(jīng)如下地被優(yōu)化了,與cmac_c或cmac_c_wrong一起僅僅還有一個返回值被轉(zhuǎn)交給cpu。在此,根據(jù)在步驟134中的檢驗結(jié)果,所述返回值或者對應于從步驟133計算出的檢驗cmac,或者對應于錯誤的cmac、也就是說cmac_c_wrong。
借此,與之前已經(jīng)描述過的方法相比,一方面取消了在接口上的第一區(qū)域138。另一方面,取消了步驟140、也就是說對結(jié)果變量的檢驗。因此,失敗的檢驗同樣被識別并且觸發(fā)相對應的錯誤反應。
例如,在步驟235、236、237中使用下面的策略來確定cmac_c或cmac_c_wrong。
在檢驗成功時,將檢驗cmac、尤其是cmac_c轉(zhuǎn)交給cpu。
在檢驗不成功時,計算出錯誤的cmac、尤其是值cmac_c_wrong并且將其轉(zhuǎn)交給cpu。
同時,適用下面的條件:
(b1)cmac_c_wrong不同于在所接收到的消息中的cmac,
(b2)cmac_c_wrong不同于所述檢驗cmac。
第一條件b1是功能安全(safety)的要求,以便確保在步驟142中的檢驗失敗。
第二條件b2是信息安全(security)的要求,以便滿足最小權(quán)限的安全范例。
用于cmac_c_wrong的計算方法被選擇為使得兩個條件b1和b2都被滿足并且在此尤其是不可能回推出所述檢驗cmac、尤其是所述值cmac_c。
附加地,要發(fā)送的消息可以配備有刷新計數(shù)器,以便可以從功能安全(safety)(例如由于損壞的hw引起的數(shù)據(jù)幀凍結(jié)(daten-frame-freeze))的角度以及從信息安全(security)(重放攻擊(replay-attack))的角度確保數(shù)據(jù)的實時性。
本發(fā)明例如被用在如下消息的受保護的總線通信中,所述消息具有安全相關的內(nèi)容。
圖3示出了一種裝置,所述裝置包括馬達控制設備310和制動控制設備320,它們可以通過上面描述的類型的方法進行通信。馬達控制設備310包括第一收發(fā)器311、第一cpu312和第一特定硬件313。制動控制設備320包括第二收發(fā)器321、第二cpu322和第二特定硬件323。收發(fā)器311、321或cpu312、322被構(gòu)造用于借助所描述的方法之一進行通信。該方法的第一部分110例如相應地借助軟件來執(zhí)行,所述軟件在相應的cpu312、322上實施。
該方法的第二部分120例如借助特定的硬件模塊在相應的特定硬件313、323中執(zhí)行。優(yōu)選地,hsm是硬件模塊。該硬件模塊包含或者使用例如一個或多個硬件外圍設備,以便實施上面所描述的功能。
該硬件模塊也可以至少部分地設計為如下處理器,所述處理器實施軟件以便呈現(xiàn)相應的功能。
例如,隨機數(shù)發(fā)生器可以被安放在硬件模塊的硬件中或者作為所述硬件模塊的外圍硬件來安放。該隨機數(shù)發(fā)生器例如可以通過附加的處理器來實現(xiàn),軟件在所述附加的處理器上實施。
在硬件模塊中的步驟、尤其是步驟133、134、135、136、235、236也可能會以軟件來實施。
收發(fā)器311、321例如能通過數(shù)據(jù)總線330、例如控制器局域網(wǎng)絡或者flexray來彼此連接。其它控制設備同樣可以使用該方法。