本發(fā)明涉及一種用于安全地(abgesichert)釋放(Freischalten)客戶端的功能的客戶端設備。此外,本發(fā)明還涉及一種用于為客戶端設備提供密碼的服務器設備。除此之外,本發(fā)明還涉及一種帶有具有客戶端設備的客戶端以及具有服務器設備的服務器的系統(tǒng)。此外,本發(fā)明還涉及一種用于安全地釋放客戶端的功能的方法。除此之外,本發(fā)明還涉及一種用于為客戶端設備提供密碼的方法。
背景技術:
如今的產(chǎn)品呈現(xiàn)復雜的服務和維護功能,利用所述服務和維護功能可以改變設備參數(shù)并且可以診斷或者消除故障。這種功能的使用可以假設維護技術人員的高的培訓等級。這些產(chǎn)品常常是必須滿足產(chǎn)品安全性要求的設備。恰好在本上下文中重要的是:可以保證維護工作或者服務執(zhí)行只可以由具有相對應的培訓或者相對應的知識的用戶來完成。否則,執(zhí)行維護和服務功能可能會導致巨大的安全或安全性問題。針對這種產(chǎn)品的例子是醫(yī)療產(chǎn)品。
因而,在確定的設備或者產(chǎn)品上的服務功能必須被保護并且得到保障,使得制造商有如下安全性:所述服務功能只可以由被制造商授權的并且當前被訓練的用戶使用。此外,重要的商業(yè)模式也要使得為報酬而在設備上臨時地執(zhí)行服務和維護任務成為可能。因而,值得追求的是要保證所獲得的維護成果(Wartungsleistung)只可以在特定的設備上而不是在其它的類型相同的設備上被執(zhí)行和/或所獲得的維護成果只可以在所約定的持續(xù)時間之內被執(zhí)行,和/或所獲得的維護成果的證書(Credential)只允許由制造商自己來簽發(fā)。
例如可以通過設備的制造商進行授權。如果設備的操作者滿足相對應的準則,那么該操作者例如只可以由制造商授權。不同的授權要根據(jù)功能的質量被檢查。在時間上被限制的授權會是值得追求的,以便可以假設維護技術人員的分別當前的培訓水平。在這種情況下,授權可以被理解為限定了允許在該設備上做什么、做多久的數(shù)據(jù)。
為了可以提供在時間上被限制的授權可能性,所述授權可能性必須由產(chǎn)品的制造商一而再地重新給予。然而,產(chǎn)品與制造商的持久的在線連接導致了被提高的成本和被提高的必要的計算容量。此外,不是所有的設備都滿足相對應的條件,以便可以接受和處理被復雜化的授權信息。
技術實現(xiàn)要素:
在該背景下,本發(fā)明的任務在于:提供準許(freigeben)產(chǎn)品的授權或功能的簡單的并且可靠的可能性。
因此,建議了一種用于安全地釋放客戶端的功能的客戶端設備。該客戶端設備具有:存儲單元,用于存儲多個釋放密鑰(Freischaltschluessel),其中每個釋放密鑰都限定了客戶端的至少一個功能并且被分配給密碼;接收單元,用于從服務器接收密碼;和處理單元,用于將多個釋放密鑰與所接收到的密碼相比較、用于選出給其分配有所接收到的密碼的釋放密鑰,而且用于釋放客戶端的被包含在所選出的釋放密鑰中的至少一個功能。
按照所建議的客戶端設備,釋放密鑰(在本上下文中也被稱作服務密鑰(Service-Key))由(例如制造商的)服務器設備產(chǎn)生并且輸出,其中釋放密鑰也可以被稱作證書(Credential)。
按照所建議的客戶端設備,在客戶端(例如產(chǎn)品或者設備)中事先存儲有多個釋放密鑰。這例如可以在制造時或者在出售之前進行。這些釋放密鑰或者服務密鑰分別限定了客戶端的應該通過該釋放密鑰來準許的不同的功能??蛻舳说亩鄠€不同的功能也可以被理解為客戶端的功能。
所述釋放密鑰中的每個都被分配給密碼,其中該密碼不公開地被存儲在客戶端設備本身上。應要求,密碼現(xiàn)在可以從服務器接收并且該密碼被輸入到客戶端設備中。
處理單元現(xiàn)在可以將多個被存儲的釋放密鑰與所接收到的密碼相比較。在此,該處理單元選出給其分配有所接收到的密碼的那個釋放密鑰并且使用該釋放密鑰,以便釋放客戶端的被包含在該釋放密鑰中的至少一個功能。
相應的單元(例如處理單元或者接收單元)可以以硬件技術和/或也可以以軟件技術來實施。在以硬件技術實施的情況下,相應的單元可以被構造為設備或者被構造為設備的部分,例如被構造為計算機或者被構造為微處理器或者被構造為車輛的控制計算機。在以軟件技術實施的情況下,相應的單元可以被構造為計算機程序產(chǎn)品,被構造為功能,被構造為例行程序,被構造為程序代碼的部分或者被構造為可實施的對象。
按照一實施形式,密碼包括短的字符序列。
因此,該密碼可以有可接受的大小,以便技術人員可以直接在設備或客戶端上鍵入(eintippen)該密碼。以這種方式,所建議的客戶端設備也可以被用于只允許通過鍵盤輸入的設備或客戶端。這里,用戶可以通過輸入短的密碼實現(xiàn)釋放。同時,這是很可靠的,也就是說沒有黑客可以自己產(chǎn)生釋放密鑰或密碼。
與釋放密鑰相反或與通常以數(shù)字方式被簽名的授權數(shù)據(jù)相反,密碼按照該實施形式可以被編碼為相對短的Base32字符序列(例如<20個字符),使得該密碼可以由人直接在設備上鍵入。相對應地被編碼的以數(shù)字方式被簽名的授權數(shù)據(jù)從字符數(shù)目來說會太長并且借此不能被期望由人來手動地輸入。
按照一實施形式,每個釋放密鑰都用服務器的私鑰來簽名。
按照該實施形式,被用于授權的數(shù)據(jù)(也就是說釋放密鑰)用數(shù)字的簽名方法來簽名。這種簽名方法例如可以是ECDSA或者RSA。該釋放密鑰因此可以包括授權數(shù)據(jù)(也就是說說明了哪些功能要被釋放的數(shù)據(jù))和所屬的簽名。
按照另一實施形式,處理單元被設立為借助于服務器的被存儲的公鑰來驗證所選出的釋放密鑰的簽名。
制造商或服務器的私鑰留在服務器處,而公開的簽名密鑰被存儲在客戶端中。在此,黑客不能由公鑰推斷出私鑰。因而,也只有制造商可以產(chǎn)生釋放密鑰。利用該公鑰,客戶端設備現(xiàn)在可以驗證:所接收到的密碼是否與所述釋放密鑰中的一個相配。
尤其是,在釋放密鑰之內,密碼連同授權數(shù)據(jù)(也就是說說明了客戶端的要釋放的功能的數(shù)據(jù))借助于服務器的私鑰被簽名。服務密鑰或釋放密鑰因此包括授權數(shù)據(jù)和所產(chǎn)生的簽名,但是不包括被包括在內的密碼。只有服務器知道該密碼并且該密碼沒有被傳輸給客戶端設備或客戶端。
在驗證所選出的釋放密鑰時,通過處理單元來檢驗所接收到的密碼是否完全與預先存儲的釋放密鑰之一匹配。這意味著:對于每個被存儲的釋放密鑰,通過所屬的授權數(shù)據(jù)和所輸入的密碼來檢查簽名。在此,授權數(shù)據(jù)或者其的部分可以事先由客戶端設備被發(fā)送給服務器,以便請求密碼。
釋放密鑰因此包含如下信息:設備或客戶端設備依據(jù)所述信息可以檢驗該釋放密鑰是否也已真正由制造商簽發(fā)。
按照另一實施形式,該釋放密鑰限定了釋放所述至少一個功能的持續(xù)時間。
在釋放密鑰或服務密鑰中,已經(jīng)可以存儲服務持續(xù)時間、也就是說釋放密鑰的有效性的持續(xù)時間??蛻舳嗽O備可以在請求密碼時說明:該客戶端設備在哪段持續(xù)時間內需要釋放密鑰。在此,所接收到的密碼已經(jīng)被分配給如下釋放密鑰:所述釋放密鑰限定了該持續(xù)時間或者最接近于所希望的持續(xù)時間來到的持續(xù)時間。
按照另一實施形式,處理單元被設立為:在釋放的持續(xù)時間期滿之后停用所選出的釋放密鑰。
按照該實施形式,被選出的并且被使用的釋放密鑰在釋放的持續(xù)時間期滿之后自動地被停用。以這種方式,所使用的釋放密鑰不可重新被使用??商鎿Q地,釋放密鑰可以在針對重新的使用的初次激活時已經(jīng)被停用。
按照另一實施形式,客戶端設備具有用于將釋放密鑰詢問發(fā)送給服務器的發(fā)送單元,其中該釋放密鑰詢問說明了客戶端的用于釋放的至少一個功能。
為了從服務器得到密碼,發(fā)送單元可以將釋放密鑰詢問發(fā)送給服務器。在此,該釋放密鑰詢問可以限定:針對哪些功能,也就是說針對哪個服務級別(Servicelevel),需要釋放。
服務密鑰或釋放密鑰可以以密碼的形式通過營業(yè)單位(Business-Unit)(例如制造商)被出售給制造商不熟悉的人或者公司,所述制造商不熟悉的人或者公司想為制造商的設備帶來服務和維護成果。這可以直接是設備的所有者或者為該所有者接管服務和維護的分包商。
按照另一實施形式,釋放密鑰詢問說明了釋放的持續(xù)時間和/或客戶端的標識符(Kennung)。
釋放密鑰詢問可以例如借助于有效性持續(xù)時間或者起始日期來限定:所希望的釋放應該持續(xù)多久,而且此外,釋放密鑰詢問還可以說明客戶端本身的標識符。
按照另一實施形式,每個被存儲的釋放密鑰都包含釋放的持續(xù)時間和/或客戶端的標識符。
多個被存儲的釋放密鑰可以被設置用于不同的服務持續(xù)時間或釋放的持續(xù)時間。為了使被存儲的釋放密鑰的數(shù)目不變得過大,可以利用固定的時段在釋放的持續(xù)時間內工作。這樣,每個釋放密鑰都可以是例如一年有效??商鎿Q地,所存儲的釋放密鑰可包含釋放的不同的持續(xù)時間,而且如果沒有設置合適的釋放密鑰,那么可以選出最接近于所希望的持續(xù)時間來到的釋放密鑰。
按照另一實施形式,處理單元被設立為:關于在釋放密鑰詢問中被說明的釋放的持續(xù)時間和/或客戶端的標識符檢驗所選出的釋放密鑰。
為了提高安全性,處理單元可以檢驗客戶端或設備的標識符。此外,該處理單元可以通過檢驗釋放的持續(xù)時間在所選出的釋放密鑰中選出最接近于所希望的持續(xù)時間來到的那個釋放密鑰。
按照另一方面,建議了一種用于針對如上面所描述的那樣的客戶端設備提供密碼的服務器設備。該服務器設備具有:存儲單元,用于存儲多個釋放密鑰,其中每個釋放密鑰都限定了客戶端的至少一個功能并且被分配給密碼;接收單元,用于接收釋放密鑰詢問,其中該釋放密鑰詢問說明了客戶端的用于釋放的至少一個功能;處理單元,用于基于所接收到的釋放密鑰詢問從多個釋放密鑰選出釋放密鑰;和發(fā)送單元,用于將被分配給所選出的釋放密鑰的密碼發(fā)送給客戶端。
對于使用釋放密鑰所需的密碼(也就是說以前已經(jīng)針對所述特定的釋放密鑰所產(chǎn)生的密碼)必須在服務器處從所屬的授權數(shù)據(jù)(也就是說被包含在釋放密鑰詢問中的數(shù)據(jù))是可恢復的。為了將用于存儲和管理密碼的花費保持得小,可以利用所謂的密鑰衍生函數(shù)(Key-Derivation-Funktion)根據(jù)授權數(shù)據(jù)連同特定的加密密鑰來確定性地形成所述密碼。
因為只會在服務器中進行該計算,所以這也不用懷疑安全性。因為黑客沒有訪問被存儲在服務器中的私有簽名密鑰,所以他在該方法中會沒有產(chǎn)生自己的釋放密鑰的可能性。因為黑客不知道針對釋放密鑰的激活必需的密碼,所以他也不可能會為了他的目的使用在客戶端中的被存儲的釋放密鑰的池(Pool)。所述密碼已經(jīng)在服務器中隨機地或者通過秘密的密鑰衍生函數(shù)被選擇,而且黑客現(xiàn)在僅僅可能會通過暴力破解攻擊(Brute-Force-Attacke)來試遍針對所存儲的釋放密鑰的所有可能的密碼。
如果密碼被選擇得足夠長,那么然而這與很大的花費相關。例如,具有100比特的密碼可以在具有大約20個字符的字符串中被Base32編碼。對所存儲的具有100比特密碼的釋放密鑰的暴力破解攻擊不能在可認為正當?shù)模╲ertretbar)時間內被執(zhí)行。
因為隨著時間的推移,越來越多的被存儲的釋放密鑰通過使用變得不活躍或者通過有效性持續(xù)時間的期滿變得不可使用,所以被存儲的釋放密鑰的池必須被填滿。這可以通過服務器設備例如在客戶端或客戶端設備的反復的系統(tǒng)更新的范圍內發(fā)生。
按照另一方面,建議了一種帶有具有如上面所描述的那樣的客戶端設備的客戶端和具有如上面所描述的那樣的服務器設備的服務器的系統(tǒng),其中所述客戶端和所述服務器被設立為彼此進行通信。
客戶端和服務器也可以隱性地彼此進行通信,例如其方式是由服務器提供的密碼通過鍵盤被輸入到客戶端中??蛻舳说挠煞掌魈峁┑南到y(tǒng)更新也可以被理解為通信。這意味著:也可以間接進行在客戶端與服務器之間的通信??商鎿Q地,也可以通過通信網(wǎng)絡(諸如WLAN或者相類似的)進行在客戶端與服務器之間的通信。
按照另一方面,建議了一種用于安全地釋放客戶端的功能的方法。該方法具有如下步驟:存儲多個釋放密鑰,其中每個釋放密鑰都限定了客戶端的至少一個功能并且被分配給密碼;從服務器接收密碼;并且將多個釋放密鑰與所接收到的密碼相比較;選出給其分配有所接收到的密碼的釋放密鑰;并且將客戶端的被包含在所選出的釋放密鑰中的至少一個功能釋放。
按照另一方面,建議了一種用于為客戶端設備提供密碼的方法。該方法具有如下步驟:存儲多個釋放密鑰,其中每個釋放密鑰都限定了客戶端的至少一個功能并且被分配給密碼;接收釋放密鑰詢問,其中所述釋放密鑰詢問說明了客戶端的用于釋放的至少一個功能;基于所接收到的釋放密鑰詢問從多個釋放密鑰選出釋放密鑰;并且將被分配給所選出的釋放密鑰的密碼發(fā)送給客戶端。
針對所建議的設備被描述的實施形式和特征相對應地適用于所建議的方法。
此外,還建議了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品在被程序控制的裝置上促使執(zhí)行如上面被解釋的方法。
計算機程序產(chǎn)品(諸如計算機程序裝置)例如可以作為存儲介質(諸如存儲卡、記憶棒(USB-Stick)、CD-ROM、DVD)、或者也可以以網(wǎng)絡中的服務器的可下載的文件的形式被提供或者被供給。例如在無線通信網(wǎng)絡中,這可以通過傳輸相對應的具有計算機程序產(chǎn)品或者計算機程序裝置的文件來進行。
本發(fā)明的其它的可能的實施方案也包括之前或者在下文關于實施例被描述的特征或者實施形式的沒有明確被提到的組合。在此,本領域技術人員也將把單個方面作為改進方案或者補充方案添加到本發(fā)明的相應的基本形式。
附圖說明
本發(fā)明的其它的有利的構建方案和方面是本發(fā)明的從屬權利要求以及在下文所描述的實施例的主題。此外,本發(fā)明依據(jù)參考附圖的優(yōu)選的實施形式進一步被解釋。
圖1示出了具有客戶端設備和服務器設備的系統(tǒng)的示意性的方框圖;
圖2示出了用于釋放客戶端的功能的方法的示意性的流程圖;和
圖3示出了用于為客戶端設備提供密碼的方法的示意性的流程圖。
在這些附圖中,只要不另作說明,相同的或者功能相同的要素就已經(jīng)被配備有同樣的參考符號。
具體實施方式
圖1示出了帶有具有客戶端設備10的客戶端和具有服務器設備20的服務器的系統(tǒng)100。這里沒有明確地示出該客戶端或服務器。
客戶端設備10具有存儲單元11、接收單元12、處理單元13和發(fā)送單元14。
服務器設備20具有存儲單元21、接收單元22、處理單元23和發(fā)送單元24。
為了釋放客戶端的功能,客戶端設備10可以借助于發(fā)送單元14將釋放密鑰詢問發(fā)送給服務器設備20。該釋放密鑰詢問可限定客戶端的用于釋放的功能、釋放的持續(xù)時間和/或客戶端的標識符。該釋放密鑰詢問由服務器設備20的接收單元22接收。服務器設備20的處理單元23現(xiàn)在可以從多個被存儲在服務器設備20的存儲單元21中的釋放密鑰選出釋放密鑰。為此,該處理單元23可以檢驗:所存儲的釋放密鑰的哪些功能最有可能對應于所接收到的釋放密鑰詢問。
服務器設備20的發(fā)送單元24現(xiàn)在可以將分配給所選出的釋放密鑰的密碼發(fā)送給客戶端設備10。在本上下文中,發(fā)送也可以被理解為隱性地發(fā)送(例如被理解為將密碼傳送給另一設備)并且將密碼手動地輸入客戶端設備10中。
客戶端設備10的接收單元12現(xiàn)在(至少隱性地)從服務器設備20接收密碼??蛻舳嗽O備10的處理單元13現(xiàn)在可以將多個被存儲的釋放密鑰與所接收到的密碼相比較,所述多個被存儲的釋放密鑰被存儲在客戶端設備10的存儲單元11中。在這種情況下,比較可以對應于利用依據(jù)密碼和所希望的包含在釋放密鑰詢問中的功能的所產(chǎn)生的簽名檢驗被存儲的釋放密鑰的簽名。接著,客戶端設備10的處理單元13可以選出相對應的釋放密鑰,而且將客戶端的包含在所選出的釋放密鑰中的至少一個功能釋放。
釋放密鑰因此可具有如下形式:
Auth+ || SIGN(Auth+ || Auth- || PWD)
在這種情況下,如下標記符號被使用:
· A || B是字符串A和B的串接(Konkatenation)。
· SIGN(A)是利用私有簽名密鑰p對字符串A的數(shù)字簽名。
· VERIFY(A,B)通過具有公開的簽名密鑰q的輸入數(shù)據(jù)A檢驗簽名B。在正確的簽名的情況下返回OK,否則返回“錯誤(FEHLER)”。
· Auth+是涌入簽名中并且為釋放密鑰的部分的那些認證數(shù)據(jù)、諸如服務持續(xù)時間。
· Auth-是同樣涌入簽名、但不是釋放密鑰的部分的那些認證數(shù)據(jù)。所述數(shù)據(jù)直接在產(chǎn)品中是可查詢的而不必作為釋放密鑰詢問的部分被附寄:為此的例子是客戶端的標識符。
· PWD是隨機產(chǎn)生的密碼。
多個n個被存儲的釋放密鑰可具有如下形式:
Authi+ || SIGN(Authi+ || Auth- || PWDi) 針對i=1…n
針對每個被安裝的并且活躍的釋放密鑰,在處理單元13中都可以通過所屬的授權數(shù)據(jù)并且通過所輸入的密碼來檢查簽名:針對i=1…n檢驗是否VERIFY(Authi+ || Auth- || PWD,SIGN(Authi+ || Auth- || PWDi))= = OK。
圖2示出了用于安全地釋放客戶端的功能的方法。該方法具有步驟201-205。
在步驟201中,多個釋放密鑰被存儲,其中每個釋放密鑰都限定了客戶端的至少一個功能并且被分配給密碼。
在步驟202中,從服務器接收密碼。
在步驟203中,將所述多個釋放密鑰與所接收到的密碼相比較。
在步驟204中,選出給其分配有所接收到的密碼的釋放密鑰。
在步驟205中,客戶端的被包含在所選出的釋放密鑰中的至少一個功能被釋放。
圖3示出了用于為客戶端設備10提供密碼的方法。該方法具有步驟301-304。
在步驟301中,多個釋放密鑰被存儲,其中每個釋放密鑰都限定了客戶端的至少一個功能并且被分配給密碼。
在步驟302中,釋放密鑰詢問被接收,其中所述釋放密鑰詢問說明了客戶端的用于釋放的至少一個功能。
在步驟303中,基于所接收到的釋放密鑰詢問從多個釋放密鑰中選出釋放密鑰。
在步驟304中,將被分配給所選出的釋放密鑰的密碼發(fā)送給客戶端。
即使本發(fā)明已經(jīng)依據(jù)實施例被描述,本發(fā)明也可以各式各樣地(vielfaeltig)被修改。