用於虛擬密鑰的安全傳送的方法和用於移動終端的鑑別的方法與流程
2023-06-16 18:24:41
本發明大體上涉及藉助於移動終端的機動車輛的功能的控制。
更具體地涉及一種用於從伺服器到適於與伺服器通信的移動終端的虛擬密鑰的安全傳送的方法。
本發明還涉及一種通過機動車輛的電子控制單元的移動終端的鑑別的方法。
本發明特別有利地用於其中控制功能是車輛門的解鎖或車輛啟動的情況。
背景技術:
已經提出通過移動終端(例如車輛所有者通常使用的手機)來控制機動車輛的某些功能,例如解鎖車輛的門。
為了僅允許對實際授權的人進行此控制,使用存儲在手機中的虛擬密鑰,其存在是由車輛的電子控制單元在指令門的解鎖之前進行驗證的。
以與針對每個車輛有多個物理密鑰以使車輛的所有者可以容易地將其車輛借出或出租給另一用戶相同的方式,需要能夠將多個虛擬密鑰分配給多個手機。
允許所有者將虛擬密鑰傳送到另一用戶的手機的方法當前在於,對於所有者,向伺服器發送伴隨著應該分配該虛擬密鑰的手機號碼的虛擬密鑰請求。
然後,伺服器開發虛擬密鑰並將其傳送到手機。出於安全原因,該虛擬密鑰被提供以存儲在移動終端的物理安全元件中,例如在該手機的sim(用戶標識模塊)卡的保護區域中。
為了訪問此物理安全元件,因此需要事先從手機操作員請求特殊訪問。
由於各種原因,此訪問請求是限制性的。因此,它使虛擬密鑰共享過程複雜化。由於用戶接收虛擬密鑰的速度取決於操作員在響應請求訪問物理安全元件的速度,所以它也減慢了速度。最後,以自動方式設置這個訪問授權在實踐中被證明是複雜的。
此外,由於一些手機的運營商或製造商不希望訪問其手機的保護區域,所以有時可能證明機動車輛的出借是不可能的。
技術實現要素:
為了克服現有技術的上述缺點,本發明提出不再將虛擬密鑰存儲在手機的物理安全元件中,而是存儲在電話存儲器中的安全軟體部分中。
更特別地,本發明提出了一種用於從伺服器到適合於與伺服器通信的移動終端的虛擬密鑰的安全傳送的方法,包括以下步驟:
a)伺服器接收用於移動終端的認證請求,
b)伺服器提供並下載將用戶應用到移動終端,以及
c)伺服器向移動終端提供虛擬密鑰,以及
d)將虛擬密鑰下載並保護在移動終端的安全元件中,
其特徵在於,所述安全元件由加密軟體環境形成。
因此,本發明提供了不再將虛擬密鑰存儲在手機的物理安全元件中,而是在加密軟體環境中。
以這種方式,由於本發明,不再需要從手機運營商要求訪問授權,以便能夠保護虛擬密鑰,這有助於共享虛擬密鑰的過程。
在本發明中,那麼加密軟體環境具有虛擬保險箱功能,其中可以隱藏虛擬密鑰以便保護它。
根據本發明的傳送方法的其他有利和非限制性的特徵如下:
·安全元件被集成到在步驟b)中下載的用戶應用程式中,並且在步驟d)中,所述保護包括經由所述加密軟體環境加密和存儲所述虛擬密鑰的操作;
·在步驟d)之前,提供了所述伺服器向移動終端提供所述加密軟體環境的步驟,以及移動終端下載所述加密軟體環境的步驟,並且在步驟d)中,所述保護包括經由所述加密軟體環境加密和存儲虛擬密鑰的操作;
·所述加密軟體環境使用白盒加密技術進行操作;
·所述加密軟體環境包括專為所述移動終端開發的唯一算法;
·在步驟a)中,所述認證請求包括與所述移動終端相關聯的標識號碼;
·所述伺服器提供所述加密軟體環境包括藉助於與其相關聯的標識號碼向移動終端發送訪問所述加密軟體環境的消息的操作;
·設想到在所述加密軟體環境中,確保接口應用適於與所述加密軟體環境之外的存儲在所述移動終端中的用戶應用進行通信;
·為所述加密軟體環境的輸入密鑰提供由伺服器更新的定期步驟;
·在步驟b)中,虛擬密鑰是從根密鑰和至少一個公共推導參數開發的;
·因為虛擬密鑰具有預定的到期日,所以在步驟c)之後提供了經由伺服器用所述更新的虛擬密鑰更新虛擬密鑰並且提供虛擬終端的定期步驟。
附圖說明
以下參照附圖並作為非限制性示例給出的描述將解釋本發明的特徵以及如何它能夠實現。
在附圖中:
-圖1示出了其中可實現本發明的本文示例,特別地包括伺服器、機動車輛和移動終端;
-圖2示意性地示出了用於理解本發明圖1的機動車輛和移動終端的部件;
-圖3示出了用於從伺服器到圖1的移動終端的虛擬密鑰的安全傳送的方法的主要步驟;以及
-圖4示出了通過圖1的機動車輛的移動終端的鑑別的方法的主要步驟。
具體實施方式
圖1示出了可以實施本發明的本文示例。
在本文中,機動車輛10包括適於控制機動車輛10的功能並且可以經由無線連結與移動終端20進行通信的電子控制單元(ecu)11。
這可以是手機,優選是「智慧型手機」類型的。它也可以是連接的手錶,連接的眼鏡等。
電子控制單元11適於與該移動終端20進行通信,以便交換數據,例如用於藉助於移動終端20控制機動車輛10的功能(其中這樣的功能可以是,例如,如機動車輛10的門的解鎖或機動車輛10的發動機的起動),如下所述的。
用於在電子控制單元11和移動終端20之間通信的無線連結例如是藍牙類型的。
此外,移動終端20被設計為連接到手機網絡30,手機網絡30特別包括通過無線電連結與移動終端20通信的基站32,以及用於連接到公共網絡40例如網際網路的網關34。
為此目的,它包括通過2g,3g,4g或其他類型的行動電話協議用於連接到基站32的設備。移動終端20還設置有用於經由wifi協議(典型地由ieee802.11組的標準管理的協議)連接到公共網絡的設備。
伺服器50也連接到公共網絡40,使得移動終端20和伺服器50可以經由手機網絡30和公共網絡40進行通信和交換數據。
圖2示意性地示出了用於理解本發明的機動車輛10和移動終端20的部件。
機動車輛10特別包括上述電子控制單元11、致動器15(在這種情況下被設計為允許機動車輛10的門被解鎖)、無線通信模塊16和用戶接口18。
車輛標識號碼(vin)被分配給機動車輛10並存儲在伺服器50的資料庫中。
電子控制單元11包括處理器12和存儲單元14,例如可重寫的非易失性存儲器,硬碟或安全元件。
存儲單元14特別存儲包括指令的電腦程式,其處理器12的執行允許電子控制單元11實施下述方法。
存儲單元14還存儲在下面描述的方法的上下文中使用的數據,特別地如之後解釋所使用的根密鑰(或主密鑰)密鑰vk0。
在電子控制單元11安裝在機動車輛10中之前,根密鑰vk0例如在電子控制單元11的製造期間寫入存儲單元14中。
根密鑰vk0還與vin標識號碼或與分配給機動車輛10的電子單元相關聯的任何其它特定標識符存儲在伺服器50處。
移動終端20包括處理器22、存儲器24(例如可重寫非易失性存儲器)、無線通信模塊26和用於在手機網絡30上通信的模塊28。
移動終端20的無線通信模塊26使得可以與機動車輛10的無線通信模塊16建立無線連結(在這種情況下為如早已指示的藍牙類型的),電子控制單元11的處理器12和移動終端20的處理器22通過該無線連結可以交換數據,特別是如下進一步解釋的。
通信模塊28允許移動終端20(並且精確地提供該移動終端20的處理器22)如已經指示的那樣與連接到手機網絡30或公共網絡40的其他設備,特別是與伺服器50,交換數據。
存儲器24特別地存儲包括指令的應用,其由處理器22的執行允許移動終端20實施下面描述的方法。
存儲器24還存儲如在下面描述的方法的上下文中使用的數據。
圖3示出了用於將虛擬密鑰vk從伺服器50安全地傳送到移動終端20的方法的主要步驟。該虛擬密鑰vk可以對應於用於與車輛的鑑別的加密密鑰或對應於用於與也稱為卡片(cardlet)的加密算法相關聯的認證的該相同加密密鑰。圖4示出了用於通過電子控制單元11的移動終端20的認證的方法,由於先前由伺服器50傳送的虛擬密鑰vk,其然後允許移動終端20訪問用於控制機動車輛10的功能的服務。
為了更清楚,在說明的其餘部分中,術語「所有者p」將指授權向第三方傳送用於訪問機動車輛10的密鑰的人。這通常是車輛的所有者。
「用戶」一詞是指所有者p希望借出或出租其機動車輛10的人,無論是否在固定周期。
移動終端20(在圖3中也參考為t)將指用戶的手機。所有者p的手機將始終稱為「所有者p的電話」。
將認為,在實施用於虛擬密鑰vk的安全傳送的方法之前,移動終端20沒有專門準備用於控制機動車輛10的功能,並且不包括與機動車輛相關聯的任何數據。這會因此例如是用戶常用的手機。
然而,將會考慮的是,所有者p的電話將準備用於控制機動車10的功能(在圖4中也參考為v)以及與伺服器50的通信(在圖3中也參考為s)。因此,它將特別攜帶用戶應用程式,其優點將在本說明書的其餘部分中被清楚地描述。
類似地,在該方法的實施之前,移動終端20對於伺服器50是未知的,因此伺服器50不知道與該移動終端20相關聯的任何數據。
在這種情況下所述的實施例中,用戶攜帶並使用移動終端20,該移動終端20如上所述的,首先經由無線連結(例如藍牙類型的)與電子控制單元11進行通信,其次,經由無線電連結直到基站31,然後經由網關34和公共網絡40,伺服器50通信。
根據本發明的有利實施例,用於將虛擬密鑰vk從伺服器50安全傳送到移動終端20的方法包括以下操作:
-伺服器50接收通過所有者p的電話發送的用於移動終端20的認證請求,
-伺服器50向移動終端20提供專用應用,
-伺服器50向移動終端20提供加密軟體環境(以下稱為虛擬保險箱27),
-移動終端20下載虛擬保險箱27,
-伺服器50向移動終端20提供虛擬密鑰vk,以及
-下載和加密虛擬密鑰vk在保險箱27中。
根據另一個實施例,虛擬保險箱直接集成在專用應用程式內,因此與專用應用程式同時下載。
在本說明書的其餘部分中,將參照圖3詳細描述這些各種操作。
將會以初步的方式注意到,這些步驟可以使用圖3所示的時序或使用稍微修改的時序來實現。
對於所有者p,第一步e1在於讓用戶將用戶應用程式25下載到其移動終端20。
此用戶應用程式25是用戶能夠在與嵌入在其移動終端20上的作業系統相關聯的「在線商店」上下載的應用程式。實際上,如果用戶擁有後者能夠在上下載該應用程式(步驟e2)。
一旦下載並安裝在移動終端20上,該用戶應用程式25將被存儲在存儲器24中(參見圖2)。
已經在其手機上擁有該用戶應用程式的所有者p使用該應用程式向伺服器50發送對移動終端20的認證請求(步驟e3),使得後者可以接收虛擬密鑰vk。
為了發送此認證請求,用戶應用程式要求所有者p輸入與用戶的移動終端t相關聯的標識號碼(該標識號碼例如是在容納在移動終端中的可移除卡中限定的電話號碼,sim卡類型的)。一旦輸入了該標識號碼,就將用於該移動終端t的認證請求發送到伺服器s.
此認證請求然後包括移動終端t的標識號碼和分配給機動車輛11的vin標識號碼。
在步驟e4中,伺服器50因此接收該認證請求。然後將其編程為以安全的方式將虛擬密鑰vk傳送到移動終端20。
為此目的,在步驟e5中,伺服器s將生成(或從第三方服務獲取)虛擬保險箱27。
此虛擬保險箱27(或「加密軟體環境」)將用來被存儲在移動終端20的存儲器24中。因此,提供它被部署在移動終端的物理安全元件之外的開放介質上(sim卡,ese模塊等)。在本文中,黑客將能夠訪問該虛擬保險箱27。因此,虛擬保險箱27將形成對這個黑客攻擊的唯一防線。
然後,虛擬保險箱27將被編程為例如使用白盒加密技術進行操作。
這種密碼技術是本領域技術人員已知的。總而言之,它在於加密和隱藏用來在不感興趣的指令和數據流之中受到保護的數據和指令,使得黑客找不到要保護的數據和指令。
有關此主題的更多信息,可以參考文獻brechtwyseur的「"white-boxcryptography:hidingkeysinsoftware",bybrechtwyseur,」,例如公布在:
http://www.whiteboxcrypto.com/files/2012_misc.pdf
優選地,虛擬保險箱27包括專門為移動終端20開發的唯一算法。換句話說,每個虛擬保險箱27將是唯一的,以使得具有多個移動終端的黑客將無法比較存儲在這些終端中的虛擬保險箱為了獲得密鑰。
每個虛擬保險箱27將包括輸入密鑰ek,通過該輸入密鑰ek,可以對數據進行加密,以便能夠將數據記錄在該虛擬保險箱27中。然後虛擬保險箱27的輸入密鑰ek將被存儲在伺服器s的資料庫中。
輸入密鑰ek將被傳送或下載到保險箱27,然後由伺服器50定期更新。
在步驟e6中,伺服器s然後將該虛擬保險箱27提供給移動終端20。
此步驟e6將優選地以這樣的方式來實施以使得它可以確保用於發送虛擬密鑰vk的方法。
為此目的,在本發明的優選實施例中,伺服器s命令向移動終端20發送用於訪問虛擬保險箱27的sms(短消息服務)消息,其中如所述的電話號碼為伺服器s所知道。
然後,該sms消息將包括超文本連結,通過該超文本連結用戶將能夠在步驟e7期間經由根據超文本傳送協議安全「https」的安全連接下載虛擬保險箱27。
在替代的選擇中,這種超文本連結可以以另一種方式發送給用戶,例如通過電子郵件或紙質郵件(通過向用戶傳送允許後者訪問連結的標識符和密碼)。
虛擬保險箱27也可以由移動終端t通過使用vpn(虛擬專用網絡)協議來下載,即通過在伺服器s和移動終端t之間建立專用網絡來進行。
無論使用何種方法,在步驟e7結束處,移動終端t的存儲器24存儲虛擬保險箱27。
在伺服器s已經檢測到虛擬保險箱27已經被移動終端t下載之後,它開發出允許移動終端t訪問機動車輛10的虛擬密鑰vk(步驟e8)。
此虛擬密鑰vk在這種情況下由伺服器50從根密鑰vk0以及從應用於該根密鑰vk0的至少一個公共導出參數dp開發。
如早已所示的,根密鑰vk0存儲在伺服器s的資料庫中和機動車輛10的存儲單元14中。
推導參數dp可以包括例如機動車出借的到期日,移動終端20的電話號碼等。
在接下來的步驟e9中,伺服器s向移動終端20提供虛擬密鑰vk和接口應用程式29,在這種情況下是卡片(見圖2)。
該接口應用程式29被設計為用作用戶應用程式25(存儲在虛擬保險箱27外部)和虛擬保險箱27內部之間的媒介。如將在本說明書的其餘部分中將詳細解釋的,特別是使得可以將由用戶應用程式25提供的信息作為虛擬密鑰vk的函數加密,並將該加密信息發送回用戶應用程式25。
實際上,該接口應用程式29將能夠由在本說明書的其餘部分中被標記為f的加密函數形成。在這種情況下將注意到,該密碼函數f也將被存儲在機動車輛10的存儲單元14中。
在這種情況下,提供接口應用程式29和虛擬密鑰vk對於伺服器s在於,如果需要,在將該數據傳送到移動終端20時,虛擬保險箱27已經被下載。由於用於虛擬保險箱27的輸入密鑰ek(如所述的那樣,該密鑰被存儲在伺服器s的資料庫中),該接口應用程式29和虛擬密鑰vk以加密形式經由安全網際網路連接發送。
在替代的選擇中,如步驟e6中那樣,該提供可在於通過sms消息向移動終端t發送超文本連結。仍然在替代的選擇中,可以使用不同的協議,例如,vpn協議,進行提供。
在步驟e10中,移動終端20因此以加密的形式接收接口應用程式29和虛擬密鑰vk,並將它們存儲在其存儲器24的虛擬保險箱27中。
一旦該步驟e10已經完成,移動終端20由伺服器s認證:它包括用於訪問機動車10的虛擬密鑰vk。
在這個階段,移動終端20因此可以由機動車輛10的電子控制單元11鑑別,例如以能夠訪問機動車10的功能。在本說明書的其餘部分中考慮的功能將是車輛的門的解鎖。
該鑑別可以參照圖4以下列方式進行。
在步驟s2中,機動車輛v的電子控制單元11接收到解鎖車輛的門的請求。在這種情況下,將認為該請求由移動終端t發送。
因此,作為示例,當在移動終端t和電子控制單11元之間建立藍牙連結時,可以使用安裝在其移動終端t上的用戶應用程式25,由用戶手動執行該請求(步驟s1)。
該請求由發送到電子控制單元11的一組數據形成,特別地包括導出參數dp(已經允許伺服器s從根密鑰vk0計算虛擬密鑰vk的相同參數)。
在替代的選擇中,該請求可以以另一種方式執行。例如,當操作機動車輛的門把手之一時,它可以由用戶執行。在該替代的選擇中,機動車輛將以下述方式向移動終端發送消息,以使得後者將上述導出參數返回到其上。
在任何情況下,當它接收到門解鎖請求和導出參數dp時,電子控制單元11產生口令(challenge),例如隨機數rnd(步驟s3)。
然後,電子控制單元11在步驟s4中通過使用虛擬密鑰vk應用加密函數f來計算與該口令rnd相關聯的響應resp,該響應resp可以被寫為:
resp=f(rnd,vk)。
實際上,由於電子控制單元11的存儲器包含根密鑰vk0並且已經接收到導出參數dp,所以它適合於預先計算虛擬密鑰vk。
由於已建立的藍牙連結,機動車輛v的電子控制單元11然後在步驟s5中將口令rnd發送到移動終端t。
在步驟s6中,移動終端t接收口令rnd。
然後,用戶應用程式25將該口令rnd傳送到接口應用程式29,該接口應用程式29又在步驟s7中通過使用存儲在虛擬保險箱27中的虛擬密鑰vk來將加密函數f應用到所接收的口令rnd以計算預期的響應resp』,其可以寫成:
resp'=f(rnd,vk)。
在步驟s8中,由於藍牙連結,接口應用程式29向用戶應用程式25發回該預期的響應resp',使得該用戶應用程式25將預期的響應resp'傳送到電子控制單元11。
在步驟s9中,機動車輛v的電子控制單元11因此接收該預期的響應resp'。
然後將響應resp與預期的響應resp'進行比較,驗證這兩個響應是否是相同的(步驟s10)。
如果沒有驗證到相同的響應,則電子控制單元11終止鑑別處理(步驟s11)。實際上,這意味著由移動終端20使用的虛擬密鑰vk與由電子控制單元11所使用的不同。例如,可以在移動終端20的屏幕上顯示錯誤消息。
如果驗證到相同的響應,則電子控制單元11進行到步驟s12,通過向致動器15發送用於所請求的功能的控制信號,在這種情況下解鎖機動車輛10的門。
當然,本發明決不限於所描述和所示的實施例。
特別地,虛擬密鑰將可以具有預定的到期日,並且該到期日距離車輛的出借或租賃結束日期更近。
在該替代的選擇中,那麼將設想到定期修改虛擬密鑰的值,以便更好地保護虛擬密鑰。例如,這些定期的更新可以以固定的間隔,例如每隔24小時,進行。
因此,那麼將提供定期步驟用於經由伺服器更新虛擬密鑰,並且例如通過安全連接將該新虛擬密鑰從伺服器傳送到移動終端。