專利名稱:具有使用保密數據的可修改計數器的安全電子單元的制作方法
技術領域:
本發明涉及的是使用保密數據的可修改計數器的一種安全電子單元。
本發明屬于如微電路卡那樣的電子單元使用安全領域,然而,適用于各類安全保護的電子單元。
上面所述的安全保護電子單元例如可以是安全微電路卡,例如,銀行卡,進入監控卡、識別卡、SIM卡(用戶識別模塊,英語為Subscriber Identification Module)或者是安全保護的存儲卡(例如SD卡,Panasonic的“Secured Digital”),也可以是安全保護的PCMCIA卡(個人計算機內存卡國際協會,英語為“Personal Computer Memoryeard International Architecture”,例如IBM4758卡)。所述的安全電子單元還可以是一種安全電子護照,就是說,是一種通常的紙介質形成的護照,但其中的某一頁上加插有一個含有護照安全裝置的無接觸微電路。
本發明在于防止偷取安全電子單元中所含的保密數據,例如密鑰或者證書,以對安全電子單元進行安全保護。
有多種形式的攻擊能夠偷取存儲在安全電子單元的存儲器中的保密數據,例如可以舉出各種DPA攻擊(微分功率分析,英語為“Differential power Analysis”)和EMA(電磁分析,英語為“ElectroMagnetic Analysis”)。
為了實施這些攻擊,偷密者通常是重復向其攻擊的安全電子單元發送命令,使其使用其中的保密數據進行一種算法,典型的是一種驗證算法。
大多數攻擊在能夠解讀保密數據之前需要上萬次驗證,比如100000多次的驗證。
在微電路卡方面,偷取保密數據的存取可以對一個微電路卡進行“克隆”,這種對微電路卡的克隆在于偷取記錄于原始微電路卡的存儲器中的保密信息,然后將這保密信息拷貝在一個(或多個)次級微電路卡上,最終偷盜使用,而使原卡的持有人一無所知。
這就對各種類型的安全電子單元指出了嚴重的安全問題,例如銀行卡、特別是在這個方向要求高的用于移動無線通信的各種微電路卡,或者是各種安全電子護照(存取保密數據就可以制造假護照)。
為了阻止偷取一個電子單元中的保密數據,技術人員通常使用一個計數器來計數并限制這個保密數據使用的次數。例如文獻DE-A-19818998和WO-A-9956253提出了這種限制。在微電路卡方面,如文獻DE-A 198 18 998所批露的那樣,其解決辦法是對驗證的次數確定一個限值,這個限值或是大于這個卡的全部壽命中所執行的預定的驗證次數,或是小于為偷取這個卡的密鑰所需的驗證次數。
因此要將驗證的次數限制在幾萬,以避免使一個攻擊能夠實現發現密鑰所需的驗證次數。對于一種遵守GSM規范的SIM型移動無線通信微電路卡,其每次呼叫的開始例如都需要一次驗證,可將其驗證的次數限定在54720,這大約為五年內每天呼叫大約三十次。
然而,已經出現新類型的攻擊,特別是各種DFA攻擊(微分錯誤分析,英語為Differential Fault Analysis),這種攻擊獲取安全保護數據所用的次數遠遠小于這個保密數據的使用次數,對于某些算法小于十幾次,有時只需2或3次驗證,對于其它的更為可靠的算法也低于百次。
同時,對于用于移動通信的微電路卡,特別是各種SIM卡,某些操作者使用一種GSM標準中的名為COMP128的算法,其中有兩個版本COMP128-1,COMP128-2,這種算法以其安全性特別低而知名。進行幾千次驗證,經常小于5000次或10000次驗證,如能花費幾個小時的攻擊,就能偷取記錄于卡中的保密密鑰。
對于一個操作者的SIM移動通信微電路卡來說,這個問題是相當嚴重的。例如歐洲遵守GSM標準,這樣的偷取攻擊通常是能夠在將卡賣給顧客之前實現的。偷取者可以向別的操作者,例如亞洲人提供他無償使用的克隆卡,這個操作者就授權按照GSM標準中稱為漫游(英語為“roaming”)的方式進行通信。按照這種漫游方法,亞洲的操作者允許檢驗歐洲操作者卡的人在其復蓋的區域內打電話,通過和歐洲操作者的協作,檢驗歐洲操作者在卡中驗證所用的密鑰。這種漫游方法一般并不使亞洲操作者立即達到歐洲操作者的通信的金額,或者檢驗預付卡的情況下相應帳目中還有的余額,因而這個偷取者在一段時間內不會被發現。
這樣,對于COM128算法,為偷取密鑰只需5000或10000次的偷取驗證,偷取密鑰所需要的驗證數目完全低于這個卡的壽命中預定要實現的驗證數目。在這種情況下,不可能為驗證的次數設定一個限值,即使其高于卡的全部壽命中執行驗證的預定數目,但又低于偷取其中的密鑰所需的驗證的數目。這就一定是要么選擇一個限值低于卡的整個壽命內預定要實現的驗證數目,例如5000次的驗證,這就擔心一個卡不是因為遭遇攻擊而不再能自我驗證;要么選取一個限值高于偷取密鑰所需的驗證數目,例如6000次驗證,而在此情況下,保密數據的安全就得不到保證。
當根據應用,希望抗擊只需幾十次驗證的DFA攻擊的情況下,其局面就更為嚴重。
有一種辦法可以是對驗證次數選取一個中間限值,超過這個數值,這個卡就會向操作者發送一個信號,使之改為一個新保密數據。將這個中間限值定得較現在的技術人員認為的值還要低,例如1000次驗證。而這另一方面操作人員必須檢驗這個卡沒有向他發送信號,以便異常頻繁更換新的保密數據的信號,這將是微電路卡遭到攻擊的標志。
然而,這種方法是既花錢又復雜,特別是這要涉及到密鑰修改的管理,例如在一個無線通信網絡中特別要在網絡中不同組成元件間同步的問題,因為要將新的密鑰同時向網絡中的所有成員發布其在微電路卡中修改。
發明內容
本發明的目的在于使用一種簡單的方法消除前面舉出的弊端。
為此,本發明提出一種安全電子單元,其中有一個模塊用于存儲使用該電子單元存儲的保密數據的最大授權次數,值得注意的是其中還包括一個模塊,用于在這個電子組使用之后根據接收到預定的操作修改最大次數。這個電子單元還有一個命令接收模塊,適于檢驗來自授權第三者的命令。
這樣,在使用這個安全電子單元的時候,例如當這個安全的電子單元是一個微電路卡并在將這個卡個人化時,將一個計數器初始化在一個給定的驗證次數上,例如1000,然后每次使用保密數據都減少這個數值。當這個計數器的值到達零時,則這個安全電子單元便可以禁止保密數據的新的使用。授權使用最大數目的修改或更新可以是對這個計數器重新初始化,例如重新賦予的值為1000或2000。
也可以使用一個計數器,在安全電子單元開始使用時將它的值初始化為零,然后保密數據的每次使用都使計數器的值增加,當計數器達到存儲在這個安全電子單元里一個最大值時,例如1000,這個卡便能禁止對其中的保密數據的新的使用。授權使用最大數目的修改或更新可以是對這個計數器重新初始化,賦予值0或修改最大值,例如為2000。
修改最大值還可能是考慮修改前保留的授權驗證最大數目。可以例如在上述最大值上,例如修改前等于500,加上修改命令中已知的一個增量,例如10000。
上面所述的接收命令模塊可使用的機制對下述的情況是不可能的-非授權第三者截獲的命令的拒絕;-非授權第三者對一個命令的修改;以及-非授權第三者所發射的一個命令的執行。
典型的講,在這種安全電子單元中的這種安全命令接收模塊是由一個為這作用而開發出來的一種應用,利用一個密鑰、多種密碼術算法(DES、AES、RSA非限制性例子),以及多種散列函數(MD5或SHA1,非限制性例子)。在微電路卡這種特殊的情況下,其接收模塊和修改模塊可以是用一種存儲在這個卡中的應用來實施的,而且可以是用和ISO7816標準相適應的方式向這個卡發送APDV命令來執行的。在微電路卡帶有一個Java虛擬機的情況下,接收模塊和修改模塊由一個java小應用程序構成,同樣可以利用向這個卡發送一個APDU命令來執行。
于是,按照本發明,不需改變保密數據,可以簡單地更新授權的驗證的最大次數,只要在適當的時間進行更新,就可以阻止使用足夠驗證次數偷取保密數據的攻擊。
在用于移動通信的微電路卡領域,操作者可以在卡售出之時起,就是說在他接收到銷售人員發出的有關卡持有人的所有的蹤跡(coordonnée)起,每隔一段時間修改一次授權驗證的最大數目。可以將這個卡的驗證次數初始化為某一個數目,以能在持有人正常的幾天中使用,這就使操作者接收到它的蹤跡。這樣,可在對卡個人化的時候將授權驗證最大次數初始化為200次驗證,讓持有人能在一個星期中進行通信,在操作者接收到持有人的蹤跡時便每隔一定時間賦給授權驗證的最大數目,所給的數值例如大于這個微電路卡的整個壽命中預定的驗證的次數。這樣就完全避免了這個卡在售給持有人之前就被克隆的危險。
作為變種,移動通信的操作者可以分階段地逐步對保密數據使用的授權最大次數進行修改,隨著SIM卡的持有人的信譽的逐步得到證實而給他的次數的數值逐漸加大,例如在幾個月的使用中這個持有人在付費方法沒有任何意外。
操作者還可以估計持卡人根據其耗費來實施的驗證次數,當持卡人估計他的微電路卡的授權驗證數目接近用完時便更新一次最大驗證次數。
操作者還可以用定期的方式賦予授權的驗證最大次數,例如每六個月一次,使用修改模塊授權最大驗證數為5000。
方便的是使保密數據的授權使用的最大數目小于這個電子單元的整個壽命中預計的使用數目。
這樣就可以將保密數據使用的最大次數限制在一個足夠低的數目,使得任何類型的攻擊都不能實施,例如實施DFA型攻擊,亦或根據COMP128算法。修改模塊在選定的時間實施對最大次數的修改使這個卡在不遭到攻擊時永遠不能達到這個限定的最大次數。
根據方便的但非限制性的方法,保密數據的使用在于對安全電子單元的驗證操作。實際上,現行的大多數安全通信系統都是建立在對安全電子單元中存儲的密鑰的驗證上面,這可以是經典的驗證模式,例如“詢問-應答”模式(英語為“challenge-response”)。在這種模式中,服務器向安全電子單元發送一個隨機數,后者運用密碼算法和其中的密鑰獲得一個數并將這個數返回,所述的密碼術算法例如可以是如AES、DES、RSA密碼術算法中的某一種,也可以是無線通信操作者所用的算法,例如稱為COMP128-1,COMP128-2,COMP128-3的用GSM標準所定義的算法,也可以是稱為“milenage的用UMTS標準定義的算法,也可以是用CDMA標準定義的稱為“cave”的算法。在無線通信領域,微電路卡就是這樣在通信網絡中被驗證的。
在別的實施方式中,使用所述的數據在于加密、解密或簽名等操作。
方便地說,授權使用的最大次數的值在1到15000之間,這個數值可以是在安全電子單元開始使用時賦予的,或如果這個安全電子單元是一個微電路卡時在個人化之后,或是在授權驗證最大數目的初始化的過程中賦予的。這樣可以保護防止對安全水平比較低的算法的各種攻擊,例如根據GSM標準定義的COMP128算法,需要上萬次驗證,可以通過一次偷取攻擊而獲得密鑰。
方便地說,授權使用的最大次數的值在1到500之間。這個數值同樣可以是在安全電子單元開始服務時賦予,如果這個安全電子單元是一個微電路卡時也可以在將這個卡個人化時賦予,也可以是在個人化后對最大次數初始化期間賦予。這樣就可以在遭遇只需相對很少的驗證次數就能偷取安全電子單元保密數據的DFA攻擊時得到保護。這樣的攻擊在事實上就不能在直到下一次修改授權的最大使用次數之前實現獲取這個保密數據所需要的這個保密數據的使用次數。
例如,如果微電路卡為一銀行卡,所用的驗證模式是建立在AES密碼術算法上的,可以在將這個卡個人化時把驗證的最大次數確定為30,存儲于這個銀行卡的EEPROM存儲器中。如果驗證的模式是建立在DES算法上,則可以將驗證的最大次數確定為5,因為這種算法抗DFA攻擊的能力要低得多。如果所用密碼術算法的抗攻擊能力極端地弱,則可設想將授權的最大驗證次數確定在同樣低的數值1。在這種極端情況下,在每次驗證后就都要重新賦予一次使用次數。
方便地說,所述的電子單元包括一些裝置,當授權的最大使用數低于一個給定的閾值時便向例如服務器目的地發送一個修改授權的最大使用數目的請求。典型的這些裝置是在電子單元中的ROM或EEPROM存儲的應用。所述的請求例如是以一種SMS形式(短信服務,英語是“short message service”)發送,其中含有一個安全消息。
服務器在接收到這個請求,檢驗出這個要求在沒有對卡進行攻擊的情況下是可接受的之后,便向這個電子單元發送前面講到的預定的命令,修改最大次數的值,以使電子單元能繼續運行。這樣就完全避免了安全電子單元在授權使用的最大次數到0的時候而可能出現的阻斷。
在本發明的一種實施方式中,安全的電子單元是一個微電路卡,而修改模塊是這個卡被個人化之后開始使用的。實際上這種類型的電子單元特別適于本發明。各種類型的微電路卡在各種安全應用方面(銀行的、無線通信、識別,......)有非常廣泛的應用,且具有便攜性(將之放在錢包內,可能被偷和遭受攻擊),應該特別對偷取存于其存儲器中的保密數據的攻擊進行防護。在微電路卡的情況下,亦有可能在個人化之后對最大的驗證次數進行修改以改善其安全性能。
在第一種實施例中,所述的微電路卡是在移動通信網中的一種用戶識別卡,啟動修改最大驗證次數的命令可以是在根據SMS協議接收的,所述的SMS協議可以是根據SMS標準或是MMS標準(多媒體消息傳送服務,英語為“Multimedia messaging service”),例如通過與GSM標準相適應的一個命令包絡。這樣就能夠由移動通信操作者通過它的網絡非常簡單地就對持有人的識別卡的授權的最大驗證次數進行初始化。當然,對于其它實施方式,這種命令可以是由接收模塊通過有線網絡或是局域網接收到的。在移動通信網絡中的一個用戶識別卡可以是一種根據GSM標準的SIM卡,也可以是依據各種標準,如CDMA、TDMA、UMTS的卡。
為了攻擊這樣的系統,一個攻擊者可以觀察等待下一次對授權的使用最大次數的修改,或他需要的修改,以期保密數據使用的數目使他能夠偷取這個保密數據。如果授權的使用的最大次數是以一個隨機的和保密的值修改的,則使實現這樣的攻擊相當困難。例如在10、100、500、1000、2000和5000這些數字中抽取某一個數值,為獲取這個保密數據所需的這個保密數據的使用次數為10000。
為了使得這種方法有效,在我們的10、100、500、1000、2000和5000這個例子中所選取的隨機數應該是保密的,就是說這不能為攻擊者知道。為此賦予授權使用最大次數的值可以是加密的。如果對保密數據使用的授權最大次數的修改的命令是加密的,自然賦予授權使用最大次數的值也是加密的。這個隨機數值也可以是由微電路卡來選擇。顯然在向這個微電路卡賦予隨機數值運行時便實現了對授權的使用最大次數的后面的修改。例如可以設想,在安全電子單元是一個SIM卡的情況下,假如選取的隨機數為100,并且預計用戶每天使用30次驗證,下一次對使用最大值的修改是在3天以后。
方便地說,一個無線通信操作者的用戶微電路卡,在授權的保密數據的使用數低于一個給定的閾值時,例如是將驗證的次數的最低閾值定為50,則例如用SMS形式的信息向這個操作者發送修改授權使用最大次數的請求。
當所述的操作者接收到這個請求的時候,他可以檢驗這個請求并非是由一個攻擊發動的。例如他檢驗這個請求并非是這個卡剛剛發送的,或者通過這個卡所實現的驗證的演化來檢驗這個請求的相關性(例如以費率單位察看這個持有人的消費)。按照這種方法,僅當需要修改授權的最大使用次數時才進行這個修改,這樣就減少了SMS發送的次數,從而可以減少修改的總的費用。
在這種實施方式中,上述的閾值可以方便地由微電路卡隨機生成。在相反的情況下,一個攻擊就可以檢測一個這樣的修改請求的發送,并且推導剩余的授權的驗證次數。
當然,在無線通信領域,授權的使用最大次數不需要由操作者來實現,例如可以是由一個服務供應商來實現,在這種情況下,這個供應商應該擁有用來發送修改安全命令的密鑰。
在后面給出的示例性的但非限制性的特別的實施例的詳細描述中,可以看出本發明的別的觀念和利益。在后面的描述中參考的附圖如下圖1用示意性方式示出一個根據本發明的安全電子單元,在一個特別的實施方式中這個電子單元是關于微電路卡的;而圖2用示意性方式示出圖1所示類型的電子單元根據本發明的接收的修改授權的驗證最大次數的命令。
具體實施例方式
在圖1所示的這種實施方式中,根據本發明的安全電子單元是一個微電路卡10,其中有一個中央處理單元CPU(美語為“CentralProcessing Unit”)和一個密碼單元13,按照傳統的方式一個RAM存儲器、一個EEPROM存儲器、一個ROM存儲器和一個輸入/輸出端口與它們相連接。
在這個非限制性的例子中,涉及到一個根據GSM標準的SIM卡。EEPROM存儲器中有一個用專用于每個卡的密鑰CLE1根據ISO7816標準加以安全保護的文件FICH1,文件FICH1中有一個記錄器(enregistrement)16,存儲著授權使用的最大次數,這里是卡的驗證操作。
每進行一次驗證,這個卡的操作系統(存儲于ROM)就將上述的記錄器16遞減。自從這個記錄器所存的數目為零,這個操作系統就禁止新的驗證。在制造商將這個卡個人化時,便將這個記錄器初始化為200。存儲器EEPROM還存儲一個修改授權的驗證最大次數的接收命令的計數器CPT1。
根據本發明,所述的操作系統還在ROM存儲器中包括一個應用17,用于接收并執行修改授權的驗證最大次數的命令。應用17可以根據GSM標準為SMS協議的命令包絡激活。
所述的應用17例如還可以在授權的最大驗證數目低于一個確定的閾值時向服務器發送一個修改這個數目的請求。作為變種,所述的操作系統還可以包含一個不同于應用17的另一個應用,該另一個應用專門用于向服務器發送修改授權驗證最大次數的請求。
接收的所述的命令包絡可以包含有如圖2所示的CMD數據,這些CMD數據為應用17所接收,其中有-授權驗證最大次數的新值V,-一個修改的數目CPTO,能夠禁止拒絕非授權的第三者截取的命令,以及-密鑰CLE1。
所有的這些數據是用密鑰CLE2加密的。這些密鑰是每個卡所特有的,存儲在這個微電路卡的EEPROM存儲器中(見圖1)。
移動通信的操作者接收到一個持有卡10的新的持有人的信息,通常的檢驗之后,就是說在協議生效之后,便向這個卡10發送一個SMS信息,其中含有CMD數據,將應用17激活,賦予V一個值,這個值等于這個卡在整個壽命中預計要驗證的次數,例如60000。
在操作者那邊(圖中沒有畫出),操作者保持一個修改信息計數器,每發送一次授權的最大驗證次數的修改信息,這個計數器都遞增。用發送SMS在CPT0記錄器中對操作者的計數器賦值,操作者還向他所制造的每一個卡存儲密鑰CLE1和CLE2。
所述的卡10在接收到這個SMS信息時,便啟動應用17用密鑰CLE2將CMD信息解密,并將記錄器CPTO的值和存于EEPROM的CPTI的記錄值比較。如果存儲在CPTO的值大于存儲在CPTI的值,則這個信息并非是一個拒絕,且操作系統將CPTO的值賦予記錄器CPTI,然后使用密鑰CLE1打開文件FICH1,并將V的值賦予記錄器16,在我們的例子中,此值為60000。
對用來打開文件FICH1的密鑰CLE1的檢驗能夠檢驗所發信息的真實性,就是說能夠檢驗出SMS是否為非授權的第三者所發送或修改。事實上,攻擊者不使用密鑰CLE1就發送一個任意的CMD信息,他希望非常幸運,解密V的值很大,例如為200000,這就能使他實現多次數的驗證。作為變種,可以不使用密鑰CLE1,而信息CMD中含有一個根據散列函數和加密函數而得到的簽名,以對上述的消息進行證實。
這樣操作者就完全避免了在將卡售給用戶之前和移動通信操作者使協議生效之前就實現的克隆。
作為變種,所述的命令包可以為一個文件FICH1選擇命令所取代,這個選擇命令即為跟隨在記錄器16的修改命令后面的根據ISO7816標準的SELECT命令,亦即在ISO7816標準中的UPDATERECORD命令。SMS可以簡單地根據GSM03.48加密。
權利要求
1.一種安全電子單元,包括用于存儲允許使用由所述的安全電子單元存儲的保密數據的最大次數的裝置(16),其特征在于安全電子單元還包括用于在這個電子單元投入使用之后根據接收到的預定命令(CMD)修改所述的最大次數的裝置,所述電子單元包括所述命令的接收裝置(17),這些接收裝置適于檢驗所述命令是否來自經授權的第三方。
2.根據權利要求1所述的安全電子單元,其特征在于所述的最大次數小于在所述電子單元的整個壽命中預計使用的次數。
3.根據權利要求1或2所述的安全電子單元,其特征在于所述的保密數據的使用是所述的安全電子單元的驗證操作。
4.根據權利要求1、2或3所述的安全電子單元,其特征在于所述的最大次數的值是在1到15000之間。
5.根據上述權利要求中任一項所述的安全電子單元,其特征在于所述的最大次數的值是在1到500之間。
6.根據上述權利要求中任一項所述的安全電子單元,其特征在于包括裝置(17),適于在所述的最大次數低于一個預定閾值時,發送對所述最大次數進行修改的請求。
7.根據上述權利要求中任一項所述的安全電子單元,其特征在于所述的電子單元是一微電路卡,修改裝置是在將該卡個人化之后使用的。
8.根據權利要求7所述的安全電子單元,其特征在于所述微電路卡是移動無線通信網絡中的用戶識別卡,所述的命令(CMD)由接收裝置(17)根據SMS協議接收。
9.根據上述權利要求中任一項所述的安全電子單元,其特征在于修改機構適于將一個隨機的保密值賦予所述最大次數。
10.一種修改允許使用安全電子單元所存儲的保密數據的最大次數的方法,所述的最大次數存儲在所述的電子單元中,其特征在于包括在電子單元投入使用之后根據接收到的預定命令(CMD)修改所述的最大次數的步驟;和檢驗所述命令是否來自經授權的第三方的步驟。
11.根據權利要求10所述的方法,其特征在于所述的最大次數小于所述電子單元在整個壽命中預計使用的次數。
12.根據權利要求10或11所述的方法,其特征在于所述保密數據的使用是所述的安全電子單元的驗證操作。
13.根據權利要求10、11或12所述的方法,其特征在于所述的最大次數的值在1到15000之間。
14.根據權利要求10到13中任一項所述的方法,其特征在于所述的最大次數的值是在1到500之間。
15.根據權利要求10到14中任一項所述的方法,其特征在于所述的電子單元在所述的最大次數小于一個預定閾值時發送對最大次數進行修改的請求。
16.根據權利要求10到15中任一項所述的方法,其特征在于所述的電子單元是一個微電路卡,還在于修改步驟是在對卡進行個人化之后進行的。
17.根據權利要求16所述的方法,其特征在于所述的微電路卡是移動無線通信網絡中的用戶識別卡,所述方法還包括根據SMS協議接收所述命令(CMD)的步驟。
18.根據權利要求10至17中任一項所述的方法,其特征在于在修改步驟中將一個隨機的保密值賦予所述最大次數。
全文摘要
本發明的安全電子單元包括一個模塊(16),用來存儲電子單元授權的使用保密數據的最大次數,還包括一個用來在電子單元投入使用后根據接收預定的命令(CMD),修改所述的最大使用次數的模塊,還有一個接收預定命令的模塊(17),它能檢驗這個命令是來自授權第三人的。本發明特別用于微電子卡。
文檔編號G06F21/55GK1771519SQ200480009534
公開日2006年5月10日 申請日期2004年3月24日 優先權日2003年4月9日
發明者西爾維斯特雷·德尼斯, 讓-貝爾納德·菲舍爾 申請人:奧貝蒂爾卡系統股份有限公司