專利名稱:安全代碼生成方法和使用方法及用于其的可編程設備的制作方法
技術領域:
本發明涉及通過可編程用戶設備生成用于用戶認證和用于對信息進 行存儲、簽署以及加密/解密的可再現安全代碼的方法。本發明還涉及將 所述可再現安全代碼用于各種安全目的的方法和對應的可編程用戶設 備。
背景技術:
在服務提供方通過電子介質向公眾提供服務和傳遞信息的許多情況 下,需要提供對接收服務或與服務提供方交換信息的個人的驗證識別的 機制。傳統認證方案釆用用戶名和密碼對來認證用戶。然而,這種簡單 方法提供了最小的安全性。為了實現更高程度的安全性,日益普通的是 使用所謂的雙因素認證。這種雙因素認證基于"你所知道的"要素(如 密碼)和"你所具有的"要素; 一個示例是銀行支付卡(你所具有的) 和對應的PIN (個人標識號)代碼(你所知道的)。
如果通過開放的電信或計算機網絡發送密碼,則它可以容易地被其 他方捕獲。因此,理想的是,準許使用所謂的一次性密碼(動態密碼) 來代替固定(靜態)密碼(如PIN碼)。出于這個目的,許多銀行例如正 在使用卡狀半導體裝置(也稱為安全令牌),該卡狀半導體裝置計算并在
小屏幕上顯示一次性通行碼(passcode)(即,時變數字)。通過在嘗試認 證(登錄)時將這個數字輸入到系統中,這樣做的個人證明他擁有該裝 置。在美國專利No. 4599489中公開了這種半導體裝置的一個示例。為了 增加安全性,該半導體裝置本身有時受"打開"該裝置所需要的PIN碼 保護。如果這樣,則在顯示正確的通行碼數字之前首先必須輸入正確的 PIN。
這種半導體裝置的一個問題是它們的獲得和分發成本較大。另一個
問題是,作為幾種服務(舉例來說,如經由因特網來自各種機構的銀行
服務,使用每一個都需要單獨的半導體裝置)的登記用戶的個人,將不
得不保持并且處理多個不同的裝置。如果多個服務提供方可以使用同一 個半導體裝置作為用于多種服務的公共或通用"多碼計算器",則這確實
有益于公眾。
另一方面,己知允許在各種電子設備中實現安全措施的方案。例如, 可以將軟件存儲在通信終端中,以用于用戶與服務提供方之間的安全通 信服務。所需的軟件可以作為獨立計算機程序存儲在終端存儲器中。在 同一個終端中,針對各種用途,可以存儲源自不同服務提供方的應用。
想要使用針對一服務(如安全通信服務)的計算機程序的個人,在 他被允許在計算機上運行該程序以與服務提供方進行安全通信之前,通 常必須向服務提供方登記該程序。 一旦成為登記用戶,他就可以通常通 過鍵入他的用戶名和密碼,例如可以是如上所述的由卡狀半導體裝置提 供的一次性密碼,而在任何計算機上運行該程序。這個過程確認用戶擁 有正確的用戶名和密碼,或者在后一情況下,擁有正確的卡狀半導體裝 置和對應的PIN (如果需要)。
為了避免由專用于多個服務提供方中的相應服務提供方的多個卡狀 裝置帶來的問題,本發明試圖使用現有和未來的電子信息技術裝置,典 型的是具有通信能力的電子信息技術裝置,來用于安全身份驗證。
為了實現這個目的,發明人認為,代替將用戶身份捆綁至專門設計 并專用于一個用途的卡狀半導體裝置,將用戶身份捆綁至他已經擁有或 主要出于另一比標識驗證更一般的用途而獲取的一件設備,成本更低且 更具有靈活性。
本發明的一個意圖是,避免需要對要在根據本發明的系統中使用的 現有用戶設備的硬件構造進行任何修改或增補。因此,適于規定用途的 電子用戶設備應當至少是可編程的,并且包括至少一個數據輸入接口、 數據處理裝置、數據存儲裝置以及數據輸出能力。另外,為使所述設備 根據本發明進行操作,數據存儲裝置必須包括存儲有獨特標識單個設備 的設備標識符的可讀防篡改存儲部。
為了易于和選定的服務提供方進行信息交換,設備應當優選地向用 戶提供合適的通信功能。這種通信能力可以是設備固有的或者是作為功 能擴展而增加的。
因此,原理上,可以將各種電子用戶設備用于實現本發明。然而, 符合GSM (全球移動通信系統)技術的移動電話(蜂窩電話)被認為特
別適于本發明的用途,因為每個GSM移動電話己經具有存儲在防篡改存 儲器中的獨特設備標識符,即,國際移動設備身份碼(IMEI),這是主要 用來針對GSM網絡或運營商標識各GSM移動電話的15位代碼。GSM 移動電話中具有IMEI碼通常是強制性的,以使電話可在GSM網絡中操 作。因此,去除或改變IMEI碼將造成移動電話不能針對其主要用途(即, 電信)進行操作。
在這點上,從美國專利No. 6164547和5956633中己知這樣的示例, 使用IMEI碼分別用于檢查移動站的兼容性和用于控制移動站的使用/激 活權力。另外,從美國專利申請公報No. 2003/0236981和2004/0030906 中,分別己知將IMEI碼用作用于對單獨的SMS (短消息業務)消息進 行加密的密鑰,和用于通過以IMEI碼作為密鑰計算的數字簽名來對這種 消息進行認證。
WO 01/31840 Al是現有技術的又一示例,描述了可以怎樣基于個人 標識號(PIN)、訂戶標識符(典型地為GSM網絡中的IMSI)、設備標識 符(典型地為GSM網絡中的IMEI)以及時間(因此是時變通行碼),在 移動站中生成第一一次性密碼,接著在認證服務器處使用該第一一次性 密碼以使能夠在移動站與計算機系統之間進行電信連接。為了執行識別 過程,認證服務器使用從移動站接收到的訂戶標識符(IMSI)來在數據 庫中搜索與該訂戶相關聯的PIN碼和設備標識符(IMEI),并且在檢索到 時,將全部三個實體與時間相組合,以生成用于和第一一次性密碼進行 比較的第二一次性密碼。
這種方法使得能夠針對一個計算機系統或服務提供方進行認證,但 是在不損害安全性的情況下不可能由一個以上的服務提供方使用。如果 由一個以上的服務提供方使用,則該方法需要將相同的標識符(PIN、 IMEI
以及IMSI)分發至每一個計算機系統,由此損害了針對所有涉及方的安 全性。而且,這種方法僅可以用于認證,而不能用于如簽署、加密以及 安全分發的其它安全功能,也不可能用于對舉例來說諸如存儲在移動電 話中的私有PKI(公鑰基礎設施)密鑰的敏感信息的本地加密和存取控制。
WO 01/31840 Al中描述的現有技術識別處理是針對用戶隱藏而不 需要用戶交互的處理,并且它在認證時刻僅表現對用戶的弱認證。另外, 在處理中需要的所有標識符,包括用戶PIN在內,都存儲在移動站以及 相應服務提供方處的計算機系統中。這種方法還局限于使用時間作為向 一次性密碼計算輸入的變量的唯一來源,這又限制了該方法的靈活性。
在日本專利申請No. 2003-410949中,公開了這樣一種系統和方法, 其生成獨特代碼,并且例如釆用圖片的形式在用戶的移動終端上顯示該 獨特代碼。用戶使用該圖片和用于向服務提供方或計算機系統認證其本 身的"用戶秘密",來訪問服務,如取款或支付服務。除了需要額外的用 戶交互以外,該方法還具有這樣的弱點,該獨特代碼可能被無意地從顯 示器公開。這種方法不使用移動終端標識符來生成用戶認證數據。移動 終端僅被用作通信終端,而未被用作雙因素認證中的強擁有因素(你所 具有的)。
就本發明而言,移動電話的IMEI碼將被用作使移動電話根據本發明 進行操作所需要的獨特設備標識符。
可以用來接入多個不同服務提供方的安全機制通常基于所謂的公鑰 算法。在PKI系統中,私鑰需要安全存儲,而公鑰則可以在由受信任第 三方簽署的目錄或證書中公布。為了確保僅可以在用戶單獨控制下使用 私鑰, 一般將密鑰存儲在硬件密鑰容器(如智能卡或SIM (訂戶身份碼 模塊)卡)中。這種系統的主要問題在于硬件的制造和分發成本。本發 明提供了一種對于防篡改的用戶可控密鑰容器的這種需求的更便宜的解 決方案。
發明內容
本發明的一個方面涉及一種通過可編程用戶設備生成可再現安全代
碼的方法,該可再現安全代碼用于用戶認證,并且用于對信息進行存儲、 簽署以及加密/解密,所述可編程用戶設備包括至少一個數據輸入接口 、 數據處理裝置以及數據存儲裝置,該數據存儲裝置包括預存儲有獨特標 識所述用戶設備的設備標識符的可讀防篡改存儲部, 所述方法包括以下步驟
經由所述數據輸入接口將用戶個人代碼輸入到所述用戶設備中, 從所述用戶設備的所述數據存儲裝置中取得所述設備標識符, 基于至少所述設備標識符和所述用戶個人代碼的組合,在所述用戶 設備內部計算安全代碼,以及 輸出計算出的安全代碼,
由此計算出的安全代碼本身既表示所述用戶又表示所述用戶設備。
本發明的上述方法生成用于雙因素用戶標識的數據,而不需要按任 何方式登記或存儲用戶個人代碼。
在優選實施方式中,根據本發明的上述方法在所述在所述用戶設備 內部計算安全代碼的步驟之前還包括以下步驟
向所述用戶設備輸入表示對所述用戶以他/她的用戶名進行登記的 服務提供方的服務提供方代碼,
基于所述設備標識符、所述用戶個人代碼以及所述服務提供方代碼 的組合,在所述用戶設備內部計算安全代碼,以及
輸出計算出的安全代碼,
由此計算出的安全代碼本身針對一個特定服務提供方表示所述用戶 和所述用戶設備。
通過輸入用于計算安全代碼的服務提供方代碼,可以針對每一個服 務提供方生成不同安全代碼,而不需要改變任何其它標識符(用戶個人 代碼和設備標識符)。本發明的上述方法使得用戶能夠針對一個以上的服 務提供方使用同一設備來進行雙因素用戶標識,而不需要在服務提供方 自之間共享敏感數據。
本發明的一個具體方面涉及一種對用戶設備的用戶進行認證的方 法,所述用戶以他/她的用戶名和通過根據本發明的方法獲得的關聯安全
代碼登記在服務提供方處的客戶文件中, 所述方法包括以下步驟 向所述服務提供方指示用戶名,
在所述服務提供方處,在所述客戶文件中進行搜索,以查找指示的 用戶名,并且如果在所述文件中存在指示的用戶名,則向所述用戶返回 邀請,
向所述用戶設備輸入用戶個人代碼,并且從所述用戶設備的數據存 儲裝置中取得所述用戶設備的所述設備標識符, 在所述用戶設備內部計算所述安全代碼,
向所述用戶設備輸入從所述服務提供方作為所述邀請而接收到的變 量,并且基于所述安全代碼和所述變量,使用加密算法來在所述用戶設 備內部計算一次性密碼,
向所述服務提供方指示計算出的一次性密碼,
在所述服務提供方處,從所述客戶文件中檢索與所述用戶指示的所 述用戶名對應的安全代碼,
基于從所述客戶文件中檢索到的安全代碼以及與向所述用戶返回并 由所述用戶設備使用的變量相同的變量,使用與所述用戶設備所使用的 加密算法相同的加密算法,在所述服務提供方處計算一次性密碼,
在所述服務提供方處,比較剛才計算出的一次性密碼和從所述用戶 接收到的一次性密碼,并且
如果兩個一次性密碼相同,則認證結果為肯定,確認由用戶名標識 的所述用戶擁有所述用戶設備并且擁有對應的用戶個人代碼,否則,認 證結果為否定。
本發明的另一方面涉及一種在可編程用戶設備上安全存儲信息的方 法,所述可編程用戶設備包括至少一個數據輸入接口、數據處理裝置以 及數據存儲裝置,所述數據存儲裝置包括預存儲有獨特標識所述用戶設 備的設備標識符的可讀防篡改存儲部,所述方法包括在存儲之前對所述 信息進行加密的信息加密步驟和在檢索到存儲的加密信息后對該信息進 行解密的信息解密步驟,其中
所述信息加密步驟包括使用安全代碼作為加密密鑰來對要存儲的信 息進行加密的步驟,并且
所述信息解密步驟包括使用同一安全代碼作為解密密鑰來檢索存儲 的加密信息的步驟,
所述安全代碼是通過以下步驟生成的
經由所述數據輸入接口將用戶個人代碼輸入到所述用戶設備中, 從所述用戶設備的所述數據存儲裝置中取得所述設備標識符, 基于至少所述設備標識符和所述用戶個人代碼的組合,在所述用戶
設備內部計算安全代碼,以及
分別針對所述信息加密步驟/所述信息解密步驟,輸出計算出的安全代碼。
本發明的又一方面涉及一種對要在用戶設備的用戶與服務提供方之 間交換的信息元素進行簽署的方法,所述用戶以他/她的用戶名和通過根 據本發明的方法獲得的關聯安全代碼登記在服務提供方處的客戶文件 中,
所述方法包括以下步驟
如果在所述用戶設備處不存在要由所述用戶簽署的信息元素,則從 所述服務提供方向所述用戶設備傳遞所述信息元素,
向所述用戶設備輸入用戶個人代碼,并且從所述用戶設備的數據存 儲裝置中取得所述用戶設備的所述設備標識符,
在所述用戶設備內部計算所述安全代碼,
基于所述安全代碼和要簽署并傳遞到所述服務提供方的所述信息元 素,使用加密算法,在所述用戶設備內部計算"簽名",
向所述服務提供方傳遞所述用戶名和所述"簽名",并且如果在所述 服務提供方處不存在要由所述用戶簽署的所述信息元素,則還向所述服 務提供方傳遞所述信息元素,
在所述服務提供方處,從所述客戶文件中檢索與從所述用戶接收到 的所述用戶名對應的安全代碼,
基于從所述客戶文件中檢索到的所述安全代碼以及所述信息元素,
使用與所述用戶設備使用的加密算法相同的加密算法,在所述服務提供 方處計算"簽名",
在所述服務提供方處,比較剛才計算出的"簽名"和從所述用戶接 收到的"簽名",并且
如果兩個"簽名"相同,則確認所述用戶設備處的所述用戶已經專 門對所述信息元素進行了簽署并且該信息元素尚未被修改,否則,簽署 結果為否定。
在一具體實施方式
中,所述"簽名"可以包括數字或電子簽名,或
者消息認證代碼(MAC)。
本發明的再一方面涉及一種安全從用戶設備的用戶向服務提供方傳 遞信息元素的方法,所述用戶以他/她的用戶名和通過根據本發明的方法 獲得的關聯安全代碼登記在服務提供方處的客戶文件中,
所述方法包括以下步驟-
向所述用戶設備輸入用戶個人代碼,并且從所述用戶設備的數據存 儲裝置中取得所述用戶設備的設備標識符,
在所述用戶設備內部計算所述安全代碼,
使用加密算法并使用所述安全代碼作為加密密鑰,在所述用戶設備 內部對要向所述服務提供方傳遞的所述信息元素進行加密,
向所述服務提供方傳遞所述用戶名和加密信息元素,
在所述服務提供方處,從所述客戶文件中檢索與從所述用戶接收到 的所述用戶名對應的安全代碼,以及
使用與所述用戶設備使用的加密算法相同的加密算法,在所述服務 提供方處,使用從所述客戶文件中檢索到的所述安全代碼作為解密密鑰, 來對所述加密信息元素進行解密。
本發明的又一方面涉及一種安全從服務提供方向用戶設備的用戶傳 遞信息元素的方法,所述用戶以他/她的用戶名和通過根據本發明的方法 獲得的關聯安全代碼登記在服務提供方處的客戶文件中,
所述方法包括以下步驟
在所述服務提供方處,從所述客戶文件中檢索要被傳遞所述信息元
素的所述用戶的所述安全代碼,
使用加密算法并使用所述安全代碼作為加密密鑰,對所述信息元素 進行加密,
向所述用戶傳遞加密信息元素,
當在所述用戶設備中接收到所述加密信息元素后,向所述用戶設備 輸入用戶個人代碼,并且從所述用戶設備的數據存儲裝置中取得所述用 戶設備的所述設備標識符,
在所述用戶設備內部計算所述安全代碼,以及
使用與所述服務提供方使用的加密算法相同的加密算法,在所述用 戶設備中使用剛才計算出的安全代碼作為解密密鑰,來對所述加密信息 元素進行解密。
這一安全從服務提供方向用戶設備的用戶傳遞信息元素的方法,可 以用于發送消息,并且用于保持針對其他方應當秘密的信息,以及用于 發送不應被復制的數字內容(如電子票,或要被保護不受違法復制的其 它數字內容、音樂、視頻、軟件等)。
本發明還涉及一種可編程用戶設備,該可編程用戶設備包括至少一 個數據輸入接口、數據處理裝置以及數據存儲裝置,該數據存儲裝置包 括預存儲有獨特標識所述用戶設備的設備標識符的可讀防篡改存儲部, 所述可編程用戶設備被編程為根據本發明的任一前述方法運行一處理。
優選的是,所述用戶設備的設備標識符是在向用戶交付之前嵌入在 該設備中的產品序列號,并且對于移動電話(蜂窩電話),所述設備標識
符可以是國際移動設備身份碼(對于GSM電話是IMEI碼)。
一般來說,本發明可以允許將用戶設備用作針對來自多個服務提供 方的多種服務的公共或通用"多碼計算器"。
通過以下參照附圖對本發明實施方式的實施例的說明,根據本發明
的用戶設備和生成安全代碼的方法的進一步特征將顯現出來,其中 圖1是例示根據本發明的用戶設備的基本組件的示意框圖, 圖2是例示生成表示用戶設備的用戶和用戶設備本身的安全代碼的 過程的示意流程圖,
圖3是例示本地安全存儲信息的過程的示意流程圖,
圖4是例示使用由圖3的過程安全存儲的信息的過程的示意流程圖, 圖5是例示從服務提供方分發利用用戶的公鑰加密的信息的過程的
示意流程圖,
圖6是例示從服務提供方分發利用用戶的安全代碼加密的信息的過 程的示意流程圖,
圖7是例示根據本發明一個實施方式對用戶進行認證的過程的示意 流程圖,以及
圖8是例示在服務提供方處的初始用戶登記的過程的示意流程圖。
具體實施例方式
參照圖1,根據本發明的用戶設備包括至少一個數據輸入接口 (如 數字小鍵盤、全鍵盤1,或其它接口裝置)、數據處理裝置(如微處理器 控制器2),以及數據存儲裝置3 (如RAM、 ROM以及/或高速緩沖存儲 器,并且包括優選為ROM的可讀防篡改存儲部4,在該可讀防篡改存儲 部4中存儲有獨特標識該設備的設備標識符),還包括諸如顯示窗5、計 算機監視器等的數據輸出能力,并且對于本發明的一些實施方式,可選 的是還包括通信模塊6,該通信模塊用于與諸如標準計算機外圍設備、計 算機網絡的外部設備進行單向或雙向通信,該通信模塊可能包括用于任 一種專用或公共電信業務的收發器裝置。
本發明的用戶設備是可編程的,即,它能夠執行讀取到其微處理器 的存儲器中的計算機程序和應用。為了實現本發明的一些實施方式,用 戶設備還應當能夠與將用戶登記為客戶或訂戶的服務提供方交換信息。 因此,符合GSM技術的移動電話(蜂窩電話)被視為特別適合于本發明 的目的。然而,設想其它個人電子設備,如便攜式計算機(膝上型)和 手持式信息設備(PDA:個人數字助理)甚或臺式個人計算機(PC)以 及未來的移動電話,在按與GSM移動電話類似的方式設置有恰當的設備
身份碼(EI)時,當然也可以使用。還可以預見未來的袖珍式計算器或 專用普通密碼生成器也可以使用。
安全代碼計算軟件
可以將用于計算安全代碼所需的軟件永久地存儲在本發明的用戶設 備中。例如可以在制造時將它實現在該設備中。為了準許使用上述合適 種類的現有設備,可以經由任何類型的數據提供介質(如軟盤、光盤
(CD-ROM)以及插入式數據存儲裝置(存儲棒或存儲卡)在任何時刻
向所述設備提供專用應用。在該設備具有通信能力的情況下,可以從軟 件廠商經由所述設備的通信網絡將所述應用下載至所述設備,以用于直 接執行和/或進行存儲以備以后使用。
根據本發明,安全代碼計算軟件是完全不包含秘密的通用計算機程 序。可以向公眾公開這種程序或應用,以便在任何合適的用戶設備上使 用。原理上,除了因使用不同操作系統、編程語言、編譯器等而造成的 計算機相關差異外,這種應用對于每一個用戶設備都可以是相同的。
在不損害安全性的情況下原理上自由分發安全代碼計算軟件和可以 從一個設備向另一設備復制該軟件這一特征,是本發明的主要優點,尤 其是與在用戶軟件本身中需要存在秘密的安全方案相比。
由安全代碼軟件執行的計算典型地基于用于生成安全代碼的單向加 密算法(例如,散列算法)和用于對信息元素進行加密/解密的雙向加密 算法的應用,但是也可以使用各種其它種類的加密算法。所用的加密方 法對于本發明的實現不是決定性的。然而,安全代碼應當充分獨特,并 且它應當不能從代碼本身導出其輸入數據元素(即,單向加密)。安全代 碼計算軟件的另一重要特征是,它被設計成每當要使用安全代碼時就讀 取獨特標識受關注設備的設備標識符,并且從來不將計算出的安全代碼 存儲在該設備中。
安全代碼計算
參照圖2,在一個實施方式中,根據本發明的通過可編程用戶設備
(參見圖1)和剛才描述的用戶軟件生成安全代碼的方法,包括三個主要 步驟
持有設備的用戶經由設備數據輸入接口將他/她的用戶個人代碼鍵 入到該設備中(步驟S1),
該設備從它本身的數據存儲裝置4中取得設備標識符(步驟S2),
以及
基于取得的設備標識符和鍵入的用戶個人代碼的組合,該用戶設備
在其內部計算安全代碼(步驟S3)。
由此獲得的安全代碼基于兩個因素。因此,被視為雙因素認證方案, 用戶個人代碼構成"你所知道的"部分,而設備標識符則構成"你所具 有的"部分。安全代碼表示用戶和用戶設備的獨特標識,但不能根據安 全代碼重新計算出原始輸入標識符(用戶個人代碼和設備標識符)。根據 本發明的方法防止了輸入標識符被暴露給任何其他方,并且還是不需要 按任何方式存儲用戶個人代碼的方法。
原理上,用戶可以自由選擇鍵入任何合適的個人代碼,以生成安全 代碼。個人代碼當然可以是針對不同用途的不同個人代碼。在該情況下, 安全代碼既表示用戶又表示用戶設備。該代碼現在可以通過設備的數據
輸出能力輸出,如顯示在顯示窗5中,或者可以通過通信模塊6輸出, 以發送到某外部本地或遠程設備,例如發送到位于服務提供方的位置處 的通信設備。
盡管圖2中未示出,但另選的是,在適于本發明的實施方式時,在 用戶設備內部計算安全代碼可以基于三個因素的組合。除了上述兩個因 素(即,設備標識符和用戶個人代碼)以外,在計算安全代碼時還可以 包括由服務提供方或由用戶自己選擇的用于標示服務提供方的服務提供 方代碼。這種"三因素"安全代碼本身表示針對服務提供方的用戶和用 戶設備,或者由相應服務提供方提供的特定服務。這種服務提供方代碼 當然可以存儲在用戶設備的數據存儲裝置3中,以供以后使用。
替代引入服務提供方代碼作為獨立的第三代碼,可以把服務提供方 的某種表示合并到用戶個人代碼中,使其變成兩部分代碼,從而對于每
個服務提供方都有一個不同的安全代碼。
本發明的方法能夠針對每一個服務提供方生成特定的或不同的安全 代碼,這使得用戶能夠將同一設備用于一個以上的服務提供方處的安全 服務,而不會損害安全性。服務提供方不需要共享相同的安全代碼,并 且服務提供方不能夠重新計算出輸入的標識符。
隨著生物特征編碼技術的發展,還設想這樣的可能性,即,使生物 特征數據可以作為根據本發明的安全代碼的一部分。因此,表示用戶的 生物特征數據可以單獨構成用戶個人代碼,或者可以作為用戶個人代碼 的構成部分,由此從"你所具有的"轉變到"你是"的情況。在這種情 況下,用戶設備需要配備有或者連接至合適的輸入裝置,以準許從用戶 的特征掃描生物特征細節并將其提供給用戶設備。
典型的是,用戶個人代碼和服務提供方代碼中的每一個都可以包括 字母字符序列和/或數字字符序列,該序列容易記住,并且在處理中被轉
換成二進制編碼數據序列。用戶代碼和服務提供方代碼還可以是單獨的 或者與其它信息項相組合,包括己轉換成二進制編碼數據序列的信息項。 表示用戶的生物特征數據是這種預編碼二進制數據的示例。
在任何情況下,安全代碼的計算都可以包括簡單的算術運算,或者 復雜的加密運算,或者使用其它種類的加密技術。然而,這種運算應當 使得不能根據所述代碼和/或根據對輸入元素中的一些的獲知而導出針對 計算的輸入數據元素。
信息的加密/解密
下面,參照圖3,當在用戶設備上存儲信息的元素時可以使用本發 明的安全代碼,使用該安全代碼作為加密密鑰在存儲所述信息之前對該 信息進行加密。該過程典型地可以包括下列步驟
用戶通過鍵盤1指定或啟動例如生成需要安全存儲的信息元素(例 如,PKI (公鑰基礎設施)系統中的私鑰)的過程或計算機程序(步驟
Sl),
用戶典型地經由鍵盤1將用戶個人代碼鍵入到設備中(步驟S2),
該設備從它本身的數據存儲裝置4中取得設備標識符,并在它本身
內部計算安全代碼(步驟S3和S4),以及
該設備使用安全代碼作為加密密鑰,對信息元素進行加密,并且將
加密的信息元素存儲在該設備的數據存儲裝置3中(步驟S5和S6)。 如果用戶針對不同用途而選擇使用不同個人代碼,則他/她可以例如
出于本地安全存儲信息元素的目的而選擇一個特定代碼。
在所示出的實施例中,生成了 "雙因素"安全代碼,但是,特別是
在要安全存儲的信息元素涉及服務提供方時,同樣也可以使用"三因素"
安全代碼。
隨后,在用戶設備內,可以使用安全代碼作為解密密鑰,在使用之 前檢索如上在存儲在設備上之前加密的信息元素并對其進行解密。如圖4
所示,這種過程可以包括下列步驟
用戶例如通過鍵盤1選擇或者通過其它裝置指定一個或更多個安全
存儲在設備上的信息元素(步驟S1),
用戶典型地經由鍵盤1將存儲所涉及的信息元素時使用的個人代碼
鍵入到設備中(步驟S2),
該設備從它本身的數據存儲裝置4中取得設備標識符,并在它本身 內部計算安全代碼(步驟S3和S4),以及
該設備使用安全代碼作為解密密鑰,對信息元素進行解密,從而使 得用戶可以在恰當時間讀取和/或使用解密的信息元素(步驟S5和S6)。
在一優選實現中,出于安全原因,在使用之后總是將解密的信息元 素刪除,而僅將加密的信息保留在設備的數據存儲裝置3中。
用于安全通信的安全代碼
在一優選實施方式中,用戶設備配備有通信功能,該通信功能準許 通過有線或無線通信網絡來與服務提供方進行單向和/或雙向數據通信。
在這種情況下,如果服務提供方想要使用非對稱雙密鑰加密方案, 由此在向用戶發送之前對要向用戶分發的信息進行加密,則如圖5所示, 可以利用加密方案的公鑰在發送之前對該信息進行加擾(步驟S1)。如果
進行設置而使得按通過使用安全代碼作為加密密鑰而獲得的加密格式將 加密系統的對應私鑰預先存儲在用戶設備上,那么,用戶設備可以被編 程為在接收到加擾信息時執行以下操作
使用安全代碼作為解密密鑰,來對存儲在設備上的加密的私鑰進行 解密(步驟S5),并且
使用解密的私鑰對從服務提供方接收到的加擾信息進行去擾(步驟
S6)。
在這種情況下,不需要將安全代碼存儲在服務提供方的位置處。公 鑰可以由用戶指定,或者被預先存儲在服務提供方的位置處,或者可通 過通知/公告牌服務而公開獲得。
另選的是,代替使用雙密鑰加密方案,如果進行了設置而使得在服 務提供方的位置處可存儲提供方服務的用戶的安全代碼,則服務提供方 可以針對秘密信息的分發而使用本發明的安全代碼。如圖6所示,在發 送之前使用安全代碼作為加密密鑰來對信息進行加密(圖6中的步驟Sl) 的這種處理可以包括使用剛計算出的設備的安全代碼對從服務提供方接 收到的加密信息進行解密的步驟(圖6中的步驟S4和S5)。
在兩種情況下,在使用之后,出于安全的原因,優選的是刪除解密 的信息,不再設備上留下其痕跡(除非使用安全代碼作為本地加密密鑰 來將它存儲在本地,如圖3所示)。
用于認證的安全代碼
另外,實際上可以將安全代碼用作用于對用戶的身份和屬于他/她的 用戶設備進行驗證的基礎。
在本發明的一個實施方式中,用戶設備包括通信模塊6 (參見圖1)。 就根據本發明的認證方法而言,可以將由此提供的通信功能用于經由用 戶設備本身而與服務提供方優選地以"在線"方式交換信息。在這種情 況下,參照圖7,假定用戶已經以他/她的用戶名和根據本發明的關聯安 全代碼登記在服務提供方處的客戶文件中,則對用戶設備的用戶進行認 證的方法可以包括以下步驟-.
將用戶名鍵入到電子設備中,并且將鍵入的用戶名從該設備發送到 服務提供方(步驟S2),
在服務提供方處,在客戶文件中進行搜索,以査找從電子設備接收 到的用戶名,并且如果在該文件中存在所述用戶名,則從服務提供方向
電子設備發送邀請(步驟S3和S4),
將用戶個人代碼鍵入到電子設備中,并且從該電子設備的數據存儲
裝置中取得該設備的設備標識符(步驟S5),
基于所述設備標識符和所述用戶個人代碼在該電子設備內部計算安 全代碼(步驟S6),
基于所述安全代碼和從服務提供方作為所述邀請的一部分而接收到 的變量,利用加密算法,在該電子設備內部計算一次性密碼(步驟S7),
從該電子設備向服務提供方發送計算出的一次性密碼(步驟S7),
在服務提供方處,從客戶文件中檢索與從該電子設備接收到的用戶 名對應的安全代碼(步驟S8),
基于從客戶文件中檢索到的安全代碼以及與傳輸至該電子設備并由 該電子設備使用的變量相同的變量,利用與用戶設備使用的加密算法相 同的加密算法,在服務提供方處計算一次性密碼(步驟S9),以及
在服務提供方處,比較剛計算出的一次性密碼和從電子設備接收到 的一次性密碼(步驟SIO)。
如果一次性密碼相同,則認證結果為肯定,確認由用戶名標識的用 戶擁有該電子設備,并且擁有對應的用戶個人代碼,否則,認證結果為 否定。
當用戶設備配備有通信模塊時,本發明還可以通過根據要在用戶設 備與服務提供方或者其它第三方之間傳送的消息或者根據其摘要來計算 數字簽名或MAC (消息認證代碼)而用于消息認證,根據本發明的安全 代碼是參與這種計算的一個要素。
在本發明的另一實施方式中,在用戶設備不包括通信模塊,由此不 可以經由用戶設備本身而與服務提供方直接交換信息的情況下,或者如 果不便于通過設備交換所有信息,則用戶可以充任用戶設備與服務提供
方之間的"中介"。為了和服務提供方通信,用戶接著可以使用任何可用 的通信手段,如可連接至因特網的個人計算機,例如,按可接受的方式, 優選地按實時方式,實現了用戶向服務提供方發出指示和服務提供方向 用戶返回響應的交換這一要點。在出于安全考慮需要時,當然可以按任 何常規方式對通信鏈路或其信道進行加擾或加密。
原理上,不管是否存在用于設備到設備通信的技術方案,本發明的 認證方法都可以和圖7所示方法相類似,只不過在用戶設備缺乏通信功 能時以個人和某中其它通信方案作為"中介"。
還設想到這樣的可能性,即,代替從服務提供方作為來自其的邀請 的一部分而接收變量(圖7中的步驟S7),可以通過用戶設備本身生成要 用于在用戶設備內部計算一次性密碼的變量。在這情況下,必須進行設
置,使得服務提供方能夠在該側計算一次性密碼時使用相同變量(圖7 中的步驟S9),以與從用戶設備接收到的一次性密碼進行比較(圖7中的 步驟IO)。這種設置是本領域技術人員已知的,并且例如可以包括使用時 變數字或順序數字的同步部分的機制。
初始用戶登記
對于向公眾提供的許多服務來說, 一般來說,這種服務的客戶或用 戶必須向相應的服務提供方進行登記,以獲準使用相關的服務(例如, 預訂服務)。就針對這種服務使用本發明的實施方式而言,這也是一種情 況。因此,如圖7中的步驟Sl所示,例如,前提條件是用戶最初以他/ 她的用戶名和通過本發明的方法獲得的關聯安全代碼在服務提供方進行. 登記。
用戶獲得他/她的安全代碼的一種方式是,執行上面在"安全代碼計 算"部分闡述的并且在圖2中例示的方法的步驟,生成"雙因素代碼"。 另一種方式是,首先輸入特定服務提供方代碼(其可以僅與一個特定服 務有關),接著計算"三個因素代碼",這也在所述部分中提到過。這種
過程如圖8所示,可以包括以下步驟
從服務提供方向用戶發送服務提供方代碼(步驟Sla),或者由用戶
選擇服務提供方代碼(步驟Slb),
在用戶位置處,向用戶設備輸入服務提供方代碼(步驟S2), 典型地通過鍵盤將用戶個人代碼鍵入到電子設備中(步驟S3),
從該電子設備的數據存儲裝置取得該設備的設備標識符(步驟S4),
可選地把服務提供方代碼存儲在該電子設備的數據存儲裝置中(步
驟S5),
基于設備標識符、用戶個人代碼以及服務提供方代碼,在該電子設
備內部計算安全代碼(步驟S6),
將用戶名和計算出的安全代碼發送給服務提供方(步驟S7),以及 將用戶名和從用戶接收到的關聯安全代碼登記在服務提供方處的客
戶文件中(步驟S8)。
在任一情況下,可以通過任何可用的通信手段(如通過郵政業務的
信件、傳真,甚或通過話音通信)來實現用戶與服務提供方之間的信息交換。
盡管基于以軟件實現本發明對優選實施方式進行了說明,但本發明 可以通過執行與上述實施方式的軟件類似的任務的硬件組件來實現。
權利要求
1、一種通過可編程用戶設備生成可再現安全代碼的方法,該可再現安全代碼用于用戶認證,并且用于對信息進行存儲、簽署以及加密/解密,所述可編程用戶設備包括至少一個數據輸入接口、數據處理裝置以及數據存儲裝置,該數據存儲裝置包括預存儲有獨特標識所述用戶設備的設備標識符的可讀防篡改存儲部,所述方法的特征在于,其包括以下步驟經由所述數據輸入接口將用戶個人代碼輸入到所述用戶設備中,從所述用戶設備的所述數據存儲裝置中取得所述設備標識符,基于至少所述設備標識符和所述用戶個人代碼的組合,在所述用戶設備內部計算安全代碼,以及輸出計算出的安全代碼,由此計算出的安全代碼本身既表示所述用戶又表示所述用戶設備。
2、 根據權利要求1所述的方法,該方法在所述在所述用戶設備內部 計算安全代碼的步驟之前還包括以下步驟向所述用戶設備輸入表示對所述用戶以他/她的用戶名進行登記的 服務提供方的服務提供方代碼,基于所述設備標識符、所述用戶個人代碼以及所述服務提供方代碼 的組合,在所述用戶設備內部計算安全代碼,以及輸出計算出的安全代碼,由此計算出的安全代碼本身針對一個特定服務提供方表示所述用戶 和所述用戶設備。
3、 根據權利要求1或2所述的方法,其中,所述用戶個人代碼和所 述服務提供方代碼各包括相應的字母字符序列和/或數字字符序列,或者 二進制數據序列。
4、 根據權利要求1或2所述的方法,其中,表示所述設備的所述用戶的生物特征數據構成所述用戶個人代碼的全部或一部分。
5、 根據權利要求3所述的方法,其中,所述服務提供方代碼表示由 所述服務提供方提供的服務。
6、 根據權利要求2所述的方法,該方法還包括在所述用戶設備的所 述數據存儲裝置中存儲所述服務提供方代碼的步驟。
7、 根據權利要求6所述的方法,其中,所述在所述用戶設備內部計算安全代碼的步驟,基于所述設備標識符、所述用戶個人代碼以及預先 存儲在所述用戶設備的所述數據存儲裝置中的所述服務提供方代碼的組合。
8、 一種對用戶設備的用戶進行認證的方法,所述用戶以他/她的用戶名和通過根據任一前述權利要求所述的方法獲得的關聯安全代碼登記 在服務提供方處的客戶文件中,所述方法的特征的在于,其包括以下步驟 向所述服務提供方指示用戶名,在所述服務提供方處,在所述客戶文件中進行搜索,以查找指示的 用戶名,并且如果在所述文件中存在指示的用戶名,則向所述用戶返回 邀請,向所述用戶設備輸入用戶個人代碼,并且從所述用戶設備的所述數 據存儲裝置中取得所述用戶設備的所述設備標識符, 在所述用戶設備內部計算所述安全代碼,向所述用戶設備輸入從所述服務提供方作為所述邀請而接收到的變 量,并且基于所述安全代碼和所述變量,使用加密算法來在所述用戶設 備內部計算一次性密碼,向所述服務提供方指示計算出的一次性密碼,在所述服務提供方處,從所述客戶文件中檢索與所述用戶指示的所 述用戶名對應的安全代碼,基于從所述客戶文件中檢索到的安全代碼以及與向所述用戶返回并 由所述用戶設備使用的變量相同的變量,使用與所述用戶設備所使用的 加密算法相同的加密算法,在所述服務提供方處計算一次性密碼,在所述服務提供方處,比較剛才計算出的一次性密碼和從所述用戶 接收到的一次性密碼,并且 如果兩個一次性密碼相同,則認證結果為肯定,確認由用戶名標識 的所述用戶擁有所述用戶設備并且擁有對應的用戶個人代碼,否則,認 證結果為否定。
9、 根據權利要求8所述的方法,其中,由所述用戶提供給所述服務 提供方的指示和由所述服務提供方返回給所述用戶的響應,是通過使得 可以在所述用戶與所述服務提供方之間交換信息的通信方案來傳輸的。
10、 根據權利要求9所述的方法,其中,所述用戶設備設置有通信功能,該通信功能使得所述用戶可以通過所述設備的數據輸入接口向所 述服務提供方輸入他/她的指示以傳送給所述服務提供方,并且使得所述 用戶可以將來自所述服務提供方的響應直接接收到所述用戶設備中。
11、 根據權利要求9所述的方法,其中,所述雙向通信方案包括在所述用戶設備外部可用于所述用戶的公共通信服務或設施。
12、 一種在可編程用戶設備上安全存儲信息的方法,所述可編程用戶設備包括至少一個數據輸入接口 、數據處理裝置以及數據存儲裝置, 所述數據存儲裝置包括預存儲有獨特標識所述用戶設備的設備標識符的 可讀防篡改存儲部,所述方法包括在存儲之前對所述信息進行加密的信 息加密步驟和在檢索到存儲的加密信息后對該信息進行解密的信息解密 步驟,所述方法的特征在于所述信息加密步驟包括使用安全代碼作為加密密鑰來對要存儲的信 息進行加密的步驟,并且所述信息解密步驟包括使用同一安全代碼作為解密密鑰來檢索存儲 的加密信息的步驟,所述安全代碼是通過以下步驟生成的經由所述數據輸入接口將用戶個人代碼輸入到所述用戶設備中, 從所述用戶設備的所述數據存儲裝置中取得所述設備標識符, 基于至少所述設備標識符和所述用戶個人代碼的組合,在所述用戶 設備內部計算安全代碼,以及分別針對所述信息加密步驟/所述信息解密步驟,輸出計算出的安全 代碼。
13、 根據權利要求12所述的方法,其中,表示所述設備的所述用戶 的生物特征數據構成所述用戶個人代碼的全部或一部分。
14、 一種對要在用戶設備的用戶與服務提供方之間交換的信息元素進行簽署的方法,所述用戶以他/她的用戶名和通過根據權利要求1到7中的任一項所述的方法獲得的關聯安全代碼登記在服務提供方處的客戶 文件中,所述方法的特征在于,其包括以下步驟如果在所述用戶設備處不存在要由所述用戶簽署的信息元素,則從 所述服務提供方向所述用戶設備傳遞所述信息元素,向所述用戶設備輸入用戶個人代碼,并且從所述用戶設備的所述數 據存儲裝置中取得所述用戶設備的所述設備標識符,在所述用戶設備內部計算所述安全代碼,基于所述安全代碼和要簽署并傳遞到所述服務提供方的所述信息元 素,使用加密算法,在所述用戶設備內部計算"簽名",向所述服務提供方傳遞所述用戶名和所述"簽名",并且如果在所述 服務提供方處不存在要由所述用戶簽署的所述信息元素,則還向所述服 務提供方傳遞所述信息元素,在所述服務提供方處,從所述客戶文件中檢索與從所述用戶接收到 的所述用戶名對應的安全代碼,基于從所述客戶文件中檢索到的所述安全代碼以及所述信息元素, 使用與所述用戶設備使用的加密算法相同的加密算法,在所述服務提供 方處計算"簽名",在所述服務提供方處,比較剛才計算出的"簽名"和從所述用戶接 收到的"簽名",以及如果兩個"簽名"相同,則確認所述用戶設備處的所述用戶已經專 門對所述信息元素進行了簽署并且該信息元素尚未被修改,否則,簽署 結果為否定。
15、 根據權利要求14所述的對信息元素進行簽署的方法,其中,所 述"簽名"包括數字或電子簽名,或者消息認證代碼(MAC)。
16、 一種安全從用戶設備的用戶向服務提供方傳遞信息元素的方法, 所述用戶以他/她的用戶名和通過根據權利要求1到7中的任一項所述的方法獲得的關聯安全代碼登記在服務提供方處的客戶文件中,所述方法的特征在于,其包括以下步驟向所述用戶設備輸入用戶個人代碼,并且從所述用戶設備的所述數 據存儲裝置中取得所述用戶設備的所述設備標識符, 在所述用戶設備內部計算所述安全代碼,使用加密算法并使用所述安全代碼作為加密密鑰,在所述用戶設備 內部對要向所述服務提供方傳遞的所述信息元素進行加密,向所述服務提供方傳遞所述用戶名和加密信息元素,在所述服務提供方處,從所述客戶文件中檢索與從所述用戶接收到 的所述用戶名對應的安全代碼,以及使用與所述用戶設備使用的加密算法相同的加密算法,在所述服務 提供方處,使用從所述客戶文件中檢索到的所述安全代碼作為解密密鑰, 來對所述加密信息元素進行解密。
17、 一種安全從服務提供方向用戶設備的用戶傳遞信息元素的方法, 所述用戶以他/她的用戶名和通過根據權利要求1到7中的任一項所述的方法獲得的關聯安全代碼登記在服務提供方處的客戶文件中,所述方法的特征在于,其包括以下步驟在所述服務提供方處,從所述客戶文件中檢索要被傳遞所述信息元 素的所述用戶的所述安全代碼,使用加密算法并使用所述安全代碼作為加密密鑰,對所述信息元素 進行加密,向所述用戶傳遞加密信息元素,當在所述用戶設備中接收到所述加密信息元素后,向所述用戶設備 輸入用戶個人代碼,并且從所述用戶設備的所述數據存儲裝置中取得所 述用戶設備的所述設備標識符,在所述用戶設備內部計算所述安全代碼,以及 使用與所述服務提供方使用的加密算法相同的加密算法,在所述用 戶設備中使用剛才計算出的安全代碼作為解密密鑰,來對所述加密信息 元素進行解密。
18、 一種可編程用戶設備,該可編程用戶設備包括至少一個數據輸 入接口、數據處理裝置以及數據存儲裝置,該數據存儲裝置包括預存儲 有獨特標識所述用戶設備的設備標識符的可讀防篡改存儲部,所述用戶 設備的特征在于,其被編程為根據任一前述權利要求所述的方法運行一 過程。
19、 根據權利要求18所述的用戶設備,所述用戶設備的設備標識符 是在向用戶交付之前嵌入在該用戶設備中的產品序列號。
20、 根據權利要求19所述的用戶設備,所述用戶設備是移動電話, 即蜂窩電話,該移動電話的設備標識符是國際移動設備身份碼,對于GSM 電話則是IMEI碼。
全文摘要
本發明提供安全代碼生成方法和使用方法及用于其的可編程設備。描述了一種通過可編程用戶設備生成安全代碼的方法。生成的安全代碼本身既表示用戶又表示用戶設備。在一個實施方式中,表示對用戶以他/她的用戶名進行登記的服務提供方的服務提供方代碼,構成對計算安全代碼的基礎的附加。安全代碼可用于多種安全應用,如用于用戶認證,和用于信息的本地存儲,以及用于對要在用戶與服務提供方之間或者要在服務提供方與用戶之間交換的信息進行簽署和加密/解密。
文檔編號G06F21/34GK101103358SQ200680002014
公開日2008年1月9日 申請日期2006年1月11日 優先權日2005年1月11日
發明者埃里克·林德摩, 彼得·陶戈波爾 申請人:恩凱普公司