具有安全記錄特徵的智慧卡讀取器的製造方法
2023-09-12 23:34:20 4
具有安全記錄特徵的智慧卡讀取器的製造方法
【專利摘要】本發明提供了一種安全智慧卡讀取器,其能夠在表示可以是安全相關的事件和動作的數據上作出讀取器籤名,該數據可以包括表示讀取器從主機或遠程應用接收到的讀取器命令、讀取器與所插入的智慧卡交換的智慧卡命令、讀取器呈現給用戶以供批准的數據、和/或讀取器在處理任何前述項時應用的配置參數的數據。智慧卡讀取器還可以適於保持可以包括與主機或遠程應用交換讀取器命令、與所插入的智慧卡交換智慧卡命令和/或與用戶的交互的特定事件和動作的日誌。日誌可以包括表示讀取器從主機或遠程應用接收到的讀取器命令、讀取器與所插入的智慧卡交換的智慧卡命令、讀取器呈現給用戶以供批准的數據、和/或讀取器在處理任何前述項時應用的配置參數的數據。該安全智慧卡讀取器可以適於生成對這些日誌中的一個或更多個日誌的讀取器籤名。
【專利說明】具有安全記錄特徵的智慧卡讀取器
[0001]對相關申請的交叉引用
[0002]本申請涉及並且要求於2011年11月14日提交的美國臨時申請序列號61/559,503的權益,其全部內容通過引用合併到本申請中。
【技術領域】
[0003]本發明涉及用戶與服務經由電子媒介、通過電子籤名的使用進行的安全遠程交互。更具體地,本發明涉及用於保護用戶利用智慧卡進行的電子數據的籤名的安全智慧卡讀取器。
【背景技術】
[0004]用戶通過電子媒介對所有種類的服務的遠程訪問以及與所有種類的服務的交互的越來越重要的作用已引發用戶能夠作出電子籤名的需求。為了安全的原因,這樣的電子籤名優選地由於將利用與用戶相關聯的密碼學鑰而被參數化的密碼學算法應用於一些電子數據而產生。在一些情況下,密碼學算法可以包括帶鑰哈希函數,由此,密鑰和要被籤名的數據的組合被提交至單向密碼學哈希函數或摘要函數(如來自MD5、SHA-1、SHA-2或SHA-256哈希函數族的密碼學哈希函數)並且所得到的哈希或摘要構成電子籤名。在其他情況下,密碼學算法可以包括對稱加密(或解密)塊密碼如可以在CBC (密碼塊鏈)模式中使用以生成可以構成電子籤名的MAC(消息認證碼)的(三重)DES(數據加密標準)或AES(高級加密標準)。在另一些情況下,例如在PKI (公鑰基礎設施)的上下文中,可以使用基於非對稱密碼學的電子籤名方案來生成電子籤名。在這些情況下,通常對要被籤名的數據進行哈希操作或將要被籤名的數據提交至摘要函數,然後利用非對稱加密算法、使用用戶的私鑰對所得到的哈希或摘要進行加密。用於生成電子籤名的非對稱密碼學算法的示例包括RSA(通用關鍵子密碼方法)和DSA(數字籤名算法)。為了增強移動性和安全性,通常把密鑰或私鑰存儲在通常也能夠執行涉及該鑰的密碼學操作的單獨的安全容器中。生成電子籤名的一種普遍的解決方案包括:智慧卡,智慧卡包括用於安全地存儲一個或更多個密鑰或私鑰以及其他安全相關信息如PIN(個人識別碼)、安全配置文件、PIN嘗試計數器、…的安全存儲器;以及密碼學引擎,其用於使用這些密鑰或私鑰通過一些對稱或非對稱密碼學算法來生成從主機接收到的數據的密碼。大部分智慧卡遵循至少部分IS0/IEC7816標準組。在許多情況下通過要求用戶輸入有效的PIN來保護智慧卡的密碼學功能。
[0005] 在典型的使用案例中,用戶使用主機計算設備例如PC(個人計算機)來與一些遠程服務例如網上銀行網站交互。用戶具有被插入又與主機計算設備通信(即,能夠從主機計算設備接收指令並且向主機計算設備返迴響應)的智慧卡讀取器的智慧卡(如上所述)。在典型的案例中,智慧卡讀取器是通過USB (通用串行總線)連接附接至主機計算設備的相當緊湊的設備。遠程用戶在主機計算設備上審查要被籤名的文件或數據。當用戶認可要被籤名的文件或數據時,可以通過應用(其可以是專用應用或網頁瀏覽器)將文件或數據提交至密碼學庫以便被籤名文件。通常用於應用和這樣的密碼學庫之間的接口的API (應用編程接口)的示例包括MS-CAPI (微軟密碼學API)和由RSA實驗室公布的PKCS#11 (公鑰密碼學標準#11)指定並且通過引用合併到本申請中的API。密碼學庫(通常稱為中間件)可以將應用對於籤名的請求轉換為通過智慧卡讀取器與智慧卡交換的一系列智慧卡命令響應指令。通常用於個人計算機上的這樣的智慧卡讀取器驅動的API (應用編程接口)是PC/SC(個人計算機/智慧卡)。在由智慧卡的實際籤名之前,通常要求用戶在主機計算設備上輸入然後被提交至智慧卡用於認證的PIN。在大多數情況下,智慧卡讀取器是所謂的透明型,意思是其不執行任何安全功能並且其本質上僅僅是將來自主機計算設備(在下文中也稱為主計算機或主機)的命令傳送至智慧卡,並且將來自智慧卡的響應傳送至主計算機的傳輸媒介。
【發明內容】
[0006]技術問題
[0007]儘管密碼學智慧卡通常配備有各種複雜的技術來阻止各類攻擊,然而在上述場景中還是存在通過對智慧卡採取措施不能解決的基本安全問題。一個基本問題是事實上在上文描繪的場景中(其對於智慧卡用於生成電子籤名的方式是典型的)所有用戶交互,包括非常敏感的操作如PIN輸入發生在主計算機上。但是在大多數情況下不認為主計算機是值得信賴的安全平臺。實際上大部分主計算機設備是PC或類似的設備,由於其本質是公開通用計算機平臺,所以通常很容易受到各種病毒和惡意軟體的攻擊。這使上述場景的設置非常容易受到攻擊,其中用戶主計算機上的惡意軟體幹預主計算機的用戶接口例如以獲得用戶輸入的PIN(例如通過按鍵記錄器的用戶),或者甚至通過在將數據發送至智慧卡用於籤名之前,使用欺騙性數據代替要被籤名的用戶已審查並且批准的數據。
[0008]一種解決方案是提供配備有安全鍵盤(或用於接受來自用戶的數據的一些其他安全用戶數據接口)的智慧卡讀取器,智慧卡讀取器使得用戶能夠在讀取器而不是在不安全的主機上輸入卡的PIN,然後讀取器然後可以將所輸入的PIN在不通過主機的情況下直接提交至卡。然而,該解決方案不能防禦幹預要被籤名的數據的攻擊,由此實際上提交至智慧卡用於籤名的數據與用戶在主機上已經審閱並且批准的數據不同。
[0009]為了解決該問題,可以為智慧卡讀取器配備安全顯示器(或向用戶呈現信息的一些其他安全用戶輸出接口)用於在將數據提交至卡之前將要被籤名的數據呈現給用戶用於批准。然而,如此可以比較容易地規避該解決方案。實際上,這足以使主計算機上的惡意軟體邀請用戶批准主計算機上的數據並且輸入卡的PIN,然後惡意軟體可以使用欺騙性數據代替已批准的數據並且在不使用讀取器的安全數據批准特徵的情況下直接將欺騙性數據提交至卡(通過把讀取器用作透明讀取器)。可以通過某種社會工程來說服用戶接收這個,例如通過惡意軟體宣稱讀取器存在一些技術故障阻礙讀取器的安全顯示器上的數據審查。
[0010]為了防止該最後一種攻擊,讀取器可以提供某種防火牆,S卩,讀取器可以掃描每個傳入的智慧卡命令並且檢查其是否對應於籤名命令。在所接收到的命令是籤名卡命令的情況下,讀取器然後可以採取適當的措施來確保主機不能向包括沒有在讀取器安全顯示器上呈現給用戶並且由用戶批准的數據的卡發送籤名命令。例如,讀取器可以自動組織命令(例如當讀取器支持安全籤名讀取器命令時,其中主機向讀取器提交要被籤名的數據,隨之讀取器會在其安全顯示器上將數據呈現給用戶並且在用戶批准後構建包括已批准的數據的籤名命令並且將其發送給用戶)。可替選地,讀取器可以從所接收到的命令中提取要被籤名的數據,將該數據呈現給用戶,並且僅在用戶批准後使得能夠將籤名命令傳送至卡。
[0011]這樣的安全智慧卡讀取器支持在讀取器鍵盤上的安全PIN輸入、在讀取器顯示器上的籤名數據的安全審查和批准、以及防火牆,竭盡全力阻止攻擊。然而,仍然存在一些問題。具體地,仍然存在以下兩個問題。
[0012]首先,讀取器防火牆適合由具體的智慧卡支持的籤名命令。在實際應用中,用於對數據進行籤名的智慧卡的命令集不是標準的。因此,同一讀取器可以很好地保護第一類型的智慧卡,但是不能保護第二類型的智慧卡(支持不能由讀取器防火牆識別的籤名命令)。如果用戶改變籤名智慧卡的類型或希望使用不同類型的智慧卡,則這可能會帶來安全問題。可以通過使防火牆可重構來解決這個問題,然而為了不引入安全漏洞,防火牆的重構必須根據安全程序來發生,安全程序非常可能對讀取器造成沉重負擔和/或降低讀取器的使用便利性。
[0013]另一問題是該解決方案不阻止攻擊者說服用戶在不安全的或已篡改的智慧卡讀取器上使用他們的籤名智慧卡。
[0014]因此,需要能夠以安全方式支持多種不同類型的智慧卡並且另外還提供阻止攻擊者說服用戶通過不安全的讀取器來使用他或她的智慧卡的攻擊的方法。
[0015]技術解決方案
[0016]下文給出本發明的簡化的概要,以便提供本文中描述的一些方面的基本理解。此概述不是所要求保護的主題的詳盡概述。它既不旨在標識所要求保護的主題的關鍵或重要元素,也不旨在描述本發明的範圍。其唯一的目的是以簡化形式給出所要求保護的主題的一些概念,作為稍後給出的更詳細的描述的序言。
[0017]本發明基於發明人的見解:儘管保證攻擊者不能說服用戶使用不安全的卡讀取器而不使用安全的卡讀取器是非常困難的或者甚至是不可能的,然而檢測使用了不安全的卡讀取器足以阻止這樣的攻擊。
[0018]在根據本發明的一種實施方式中,檢測使用了不安全卡讀取器的方法包括:使用戶使用提供其被使用過的證明的安全卡讀取器,而在不存在這樣的證明的情況下假定(或斷定)替代地使用了不安全的卡讀取器。
[0019]根據本發明的另一實施方式包括一種智慧卡讀取器,該智慧卡讀取器適於證明:其已用於通過自己生成表示安全相關事件和動作的數據上的讀取器籤名來將要被籤名的數據安全呈現給用戶,從用戶獲得該籤名操作的批准並且從卡得到已批准的數據上的籤名。在一種實施方式中,讀取器適於提供其呈現給用戶以供批准並且提交至卡供籤名的數據的表示上的電子籤名。在一些實施方式中,讀取器可以向應用返回由讀取器生成的讀取器籤名連同要被籤名的數據上的所請求的卡籤名。
[0020]本發明還基於發明人的見解:如果主計算機能夠將該信息傳遞給讀取器,並且如果讀取器能夠提供發生在安全讀取器上的動作(例如,將哪些數據呈現給用戶以供批准)以及與卡交換了哪些命令(例如,使用了哪些籤名命令以及通過哪個有效荷載)的證明,則讀取器可能不需要具有敏感智慧卡命令的精確知識。這可以使得能夠檢測實際發生了什麼與假設已經發生了什麼之間的任何差異。這又表示對於防火牆的需求可能較小,或者可以對防火牆進行較少的限制,使得讀取器相對於正在使用的卡的類型和這些卡的使用模式方面可以更靈活。
[0021]在根據本發明的一些實施方式中,安全智慧卡讀取器適於提供其呈現給用戶以供批准並且提交至卡以供籤名的數據的表示與表示如何使用了安全讀取器——例如從主計算機接收了哪些命令和/或已經發生哪些用戶交互和/或者當執行在從主機接收到的命令中所請求的操作時讀取器應用了哪些設置或配置參數和/或發生的用戶交互和/或讀取器與智慧卡交換了哪些命令——的數據的表示的組合上的電子籤名。
[0022]在一些實施方式中,安全智慧卡讀取器適於保持用於記錄表示讀取器與主機交換的命令和/或與用戶的交互和/或與智慧卡交換的命令的數據的一個或更多個日誌。在一些實施方式中,讀取器可以適於作出包括這些日誌中的一個或更多個的內容的表示的數據上的讀取器籤名。在一些實施方式中,例如,當與用戶交互或者當與智慧卡交換命令時,已經應用的配置參數或設置也可以包括在讀取器籤名的數據中。
[0023]在一些實施方式中,當進入具體的安全模式時,讀取器可以開始記錄。在一些實施方式中,響應於讀取器從主機接收到的特定讀取器命令,讀取器可以進入這樣的具體的安全模式。在一些實施方式中,響應於與卡相關的事件如卡插入,讀取器可以進入這樣的具體的安全模式。在一些實施方式中,當進入其支持的一個或更多個安全模式時,讀取器可以重置其自動保持的一個或更多個日誌。在一些實施方式中,響應於對與卡相關的事件如卡插入或卡移除,讀取器可以重置其自動保持的一個或更多個日誌。在一些實施方式中,讀取器可以記錄當在安全模式下時其與智慧卡交換的任意智慧卡命令。在一些實施方式中,讀取器可以記錄當在安全模式下時讀取器與主機交換的任意讀取器命令。在一些實施方式中,讀取器可以記錄其呈現給用戶以供批准的數據。在一些實施方式中,讀取器可以記錄是否通過讀取器將用戶已批准的數據呈現給用戶。在一些實施方式中,讀取器可以記錄安全PIN輸入功能是否用於輸入並且驗證用戶的智慧卡的PIN。
[0024]在一些實施方式中,安全智慧卡讀取器可以保持添加至一個或更多個日誌的數據的備份,並且當將數據添加至日誌時讀取器可以將新數據與已經記錄的數據聯繫起來。在一些實施方式中,安全智慧卡讀取器可以將關於添加至這些日誌的數據的一個或更多個哈希值與一個或更多個日誌相關聯,並且當將數據添加至這樣的日誌時,讀取器可以更新與正在添加的數據相關聯的哈希值。
[0025]在一些實施方式中,安全智慧卡讀取器支持將一個日誌的內容添加至另一日誌的內容的可能性。在一些實施方式中,安全智慧卡讀取器適於將日誌的內容作為智慧卡命令發送至卡。在一些實施方式中,安全智慧卡讀取器適於將日誌的內容作為智慧卡命令的一部分發送至卡。在一些實施方式中,安全智慧卡讀取器適於生成對一個或更多個日誌的內容或部分內容的讀取器籤名。
[0026]在一些實施方式中,安全智慧卡讀取器包括用於存儲與密碼學算法一起使用以生成讀取器籤名的一個或更多個秘密或私有讀取器鑰的安全存儲器。在一些實施方式中,安全智慧卡使用其來生成讀取器籤名的密碼學算法包括對稱加密或解密算法如DES或AES、密碼學帶鑰哈希算法(例如基於SHA-1或SHA-256)以及密碼學摘要函數(例如基於SHA-1或SHA-256)中的至少一個或基於非對稱密碼學的數字籤名算法(例如基於RSA算法或DSA算法或橢圓曲線)中的至少一個。[0027]本發明的一個方面提供了用於生成與所插入的智慧卡相關聯的電子籤名的智慧卡讀取器,包括:用於與主計算機通信的通信接口 ;用於與智慧卡通信的智慧卡連接器;用於安全地存儲一個或更多個密碼學鑰的第一存儲器部件;用於存儲日誌的第二存儲器部件;用戶接口,包括向用戶呈現信息的用戶數據接口以及用於接收用戶指示的用戶輸入接口 ;用於與主計算機通信,與智慧卡通信以及驅動用戶接口的數據處理部件;智慧卡讀取器適於使用智慧卡連接器與智慧卡交換智慧卡命令;智慧卡讀取器還適於工作在安全記錄模式下,在安全記錄模式下,智慧卡讀取器在日誌中記錄關於讀取器或讀取器的使用的日誌安全相關事件;並且智慧卡讀取器還適於使用存儲在第一存儲器中的一個或更多個密碼學鑰中的至少一個密碼學鑰來生成所述日誌上的讀取器籤名。
[0028]在一組實施方式中,智慧卡讀取器還適於執行從主計算機接收到的讀取器命令並且在日誌中記錄所接收到的讀取器命令中的至少一些讀取器命令。在一些實施方式中,智慧卡讀取器還適於支持用於指示讀取器執行以下操作的一個或更多個讀取器命令:向用戶呈現數據以供用戶審查和批准;使用輸出接口向用戶呈現供審查和批准的數據;使用輸入接口捕捉用戶對供審查和批准的數據的批准或拒絕;以及在日誌中記錄供審核和批准的數據。
[0029]在另一組實施方式中,智慧卡讀取器還適於在所述日誌中記錄一些在主機與智慧卡之間交換的至少一些透明智慧卡命令。在一些實施方式中,讀取器記錄的透明智慧卡命令包括用於向所插入的智慧卡提交要由智慧卡籤名的數據的透明智慧卡命令。在其他實施方式中,讀取器記錄的透明智慧卡命令包括用於從所插入的智慧卡獲得所生成的對所提交的數據的電子卡籤名的透明智慧卡命令。在又一實施方式中,讀取器適於在從第一時間點至第二時間點的時段內記錄所有透明智慧卡命令。在這些實施方式中的一些實施方式中,其中讀取器記錄所有透明智慧卡命令的時段包括:其中將要被籤名的數據提交至所插入的智慧卡的時段;或者其中從所插入的智慧卡獲得所生成的對所提交的數據的電子卡籤名的時段。
[0030]在又一組實施方式中,智慧卡讀取器存儲至少部分地確定讀取器存儲哪些日誌的一組配置數據。在一些實施方式中,智慧卡讀取器適於記錄當前組配置數據。在這些實施方式中的一些實施方式中,讀取器支持用於改變該組配置數據的一個或更多個讀取器命令。[0031 ] 在再一組實施方式中,智慧卡讀取器還包括時鐘並且適於向日誌添加一個或更多個時間戳。在一些實施方式中,智慧卡讀取器適於向所記錄的事件中的至少一些事件添加時間戳。
[0032]在另一組實施方式中,智慧卡讀取器還適於通過讀取器命令接收挑戰並且記錄所接收到的挑戰。
[0033]在另一組實施方式中,智慧卡讀取器還包括計數器並且還適於記錄與所述計數器相關的值。在這些實施方式中的一些實施方式中,智慧卡讀取器還適於當進入安全記錄模式時或者當生成日誌上的讀取器籤名時自動遞增計數器值。
[0034]在另一組實施方式中,日誌包括多個日誌文件,以及日誌上的讀取器籤名包括對多個日誌文件的多個籤名。
[0035]在另一組實施方式中,智慧卡讀取器還適於支持用於驗證用戶身份的讀取器命令。在這些實施方式中的一些實施方式中,智慧卡讀取器還適於記錄驗證用戶身份的結果。在這些實施方式中的一些其他實施方式中,智慧卡讀取器還適於請求用戶在用戶輸入接口上輸入PIN值、在用戶輸入接口上捕捉用戶輸入的PIN值、並且將所捕捉到的PIN值提交至所插入的智慧卡以供驗證。
[0036]本發明的另一方面提供了一種用於生成對要被籤名的數據的電子籤名的方法,包括以下步驟:將智慧卡讀取器連接至主計算機;將智慧卡插入讀取器中;讀取器進入安全記錄模式;向讀取器提交供用戶審查和批准的數據;由讀取器使用讀取器上的用戶輸出接口來向用戶呈現供用戶審查和批准的數據;由讀取器使用讀取器上的用戶輸入接口來捕捉用戶對所呈現的數據的批准;由讀取器在讀取器上的日誌中記錄供審查和批准的數據;向所插入的智慧卡提交要被籤名的數據,然後由所插入的智慧卡生成對所提交的要被籤名的數據的電子卡籤名,然後從所插入的智慧卡獲得所生成的對所提交的數據的電子卡籤名;由讀取器使用利用存儲在讀取器中的密碼學鑰而被參數化的密碼學數據籤名算法來生成對讀取器上的日誌的電子讀取器籤名,以及然後獲得由讀取器生成的對日誌的電子讀取器籤名。在一些實施方式中,方法還包括以下步驟:由讀取器將已提交至卡的要被籤名的數據或者由所插入的智慧卡生成的電子卡籤名記錄在讀取器上的日誌中。
[0037]在一組實施方式中,方法還包括:向所插入的智慧卡提交要被籤名的數據,並且從所插入的智慧卡獲得所生成的對所提交的數據的電子卡籤名包括主計算機使用智慧卡讀取器與所插入的智慧卡交換透明智慧卡命令;以及由讀取器在讀取器上的日誌中記錄被提交至卡的要被籤名的數據或者由所插入的智慧卡生成的電子卡籤名包括:由讀取器在讀取器上的日誌中記錄所交換的透明智慧卡命令中的至少一些透明智慧卡命令。在這些實施方式中的一些實施方式中,主計算機使用智慧卡讀取器與所插入的智慧卡交換的透明智慧卡命令至少包括:用於向所插入的智慧卡提交要被籤名的數據的透明智慧卡命令;以及讀取器在讀取器上的日誌中記錄的所交換的透明智慧卡命令中的至少一些透明智慧卡命令至少包括:用於向所插入的智慧卡提交要被籤名的數據的透明智慧卡命令;或者用於從所插入的智慧卡獲得所生成的對所提交的數據的電子卡籤名的透明智慧卡命令。在這些實施方式中的一些實施方式中,讀取器在讀取器上的日誌中記錄的所交換的透明智慧卡命令中的至少一些透明智慧卡命令包括在特定時段期間所交換的所有透明智慧卡命令。在這些其他實施方式中的一些實施方式中,其中讀取器記錄全部所交換的透明智慧卡命令的時段包括:其中將要被籤名的數據提交至所插入的智慧卡的時段;或者其中從所插入的智慧卡獲得所生成的對所提交的數據的電子卡籤名的時段。
[0038]在另一組實施方式中,方法還包括在讀取器上配置至少部分地確定讀取器在讀取器上的日誌中記錄哪些事件的一組配置數據。這些實施方式中的一些實施方式還包括以下步驟:由讀取器在讀取器上的日誌中記錄當前組配置數據。這些實施方式中的一些實施方式還包括配置該組配置數據使得讀取器在讀取器上的日誌中記錄供審查和批准的數據。這些實施方式中的一些其他實施方式還包括配置該組配置數據使得讀取器在讀取器上的日誌中記錄被提交至卡的要被籤名的數據或者由所插入的智慧卡生成的電子卡籤名。其他實施方式還包括配置該組配置數據使得讀取器在讀取器上的日誌中記錄用於向用戶呈現數據供審查和批准的讀取器命令。其他實施方式還包括配置該組配置數據使得讀取器在讀取器上的日誌中記錄一組透明智慧卡命令。這些實施方式中的一些實施方式還包括配置該組配置數據使得讀取器在讀取器上的日誌中記錄包括用於向所插入的智慧卡提交要被籤名的數據或者用於從所插入的智慧卡獲得被提交至智慧卡的數據上的所生成的電子籤名的智慧卡命令的一組透明智慧卡命令。
[0039]本發明的再一方面提供了用於保護用戶訪問應用的方法,包括以下步驟:向用戶提供用於對數據進行籤名的智慧卡;向用戶提供根據上述實施方式中的任意一種實施方式的智慧卡讀取器;向用戶提供與來自讀取器所連接的主計算機的應用的交互;匯集交易數據;匯集與所匯集的交易數據相關的要被審查和批准的數據;匯集與所匯集的交易數據相關的要被籤名的數據;確保智慧卡被插入智慧卡讀取器中;確保讀取器進入安全記錄模式;向讀取器提交用於由用戶審查和批准的數據;由讀取器使用讀取器上的用戶輸出接口來向用戶呈現供用戶審查和批准的數據;由讀取器使用讀取器上的用戶輸入接口來捕捉用戶對所呈現的數據的批准;由讀取器在讀取器上的日誌中記錄供審查和批准的數據;向所插入的智慧卡提交要被籤名的數據,然後由所插入的智慧卡生成對所提交的要被籤名的數據的電子卡籤名,以及然後從所插入的智慧卡獲得所生成的對所提交的數據的電子卡籤名;由讀取器在讀取器上的日誌中記錄被提交至卡的要被籤名的數據或者由所插入的智慧卡生成的電子卡籤名;由讀取器使用利用存儲在讀取器中的密碼學鑰而被參數化的密碼學數據籤名算法來生成對讀取器上的日誌的電子讀取器籤名,以及然後獲得由讀取器生成的對日誌的電子讀取器籤名;驗證所獲得的電子卡籤名;驗證所獲得的由讀取器生成的對日誌的電子讀取器籤名;驗證由讀取器籤名的日誌和所匯集的交易數據之間的一致性。
[0040]在本方法的一些實施方式中,向所插入的智慧卡提交要被籤名的數據包括:在主計算機與所插入的智慧卡之間交換用於向智慧卡提交要被籤名的數據的透明智慧卡命令;並且其中,由讀取器在讀取器上的日誌中記錄提交至卡的要被籤名的數據或者由所插入的智慧卡生成的電子卡籤名包括:記錄在主計算機與所插入的智慧卡之間交換的、用於向智慧卡提交要被籤名的數據,或者用於檢索被提交至卡以供籤名的數據上的由所插入的智慧卡生成的電子卡籤名的透明智慧卡命令。
[0041]有益效果
[0042]本發明的重要優點在於:其使得能夠檢測其中攻擊者說服用戶使用不安全讀取器來使用他或她的籤名卡的攻擊。本發明的另一優點在於:其使得能夠檢測在讀取器上和/或使用卡應該發生的事件與實際發生的事件之間的不一致性,使得由讀取器應用的防火牆能夠放寬,其中又表示可以與更大範圍的卡一起使用讀取器或在更大範圍的用例中使用讀取器。
[0043]本發明的更多優點對本領域的技術人員來說是明顯的。
【專利附圖】
【附圖說明】
[0044]如附圖所示,根據下面的本發明的若干實施方式的更具體的描述,本發明的前述以及其他特徵和優點將變得明顯。
[0045]下面的描述和附圖詳細闡述了所要求保護的主題的特定說明性方面。然而,這些方面僅表示了可以利用本發明的原理的各種方式中的幾種方式,並且所要求保護的主題意在包括所有這樣的方面及其等同。當結合附圖考慮時,根據下面的本發明的方面的詳細描述,所要求保護的主題的其他優點和新穎特徵會變得明顯。
[0046]下文結合附圖闡述的詳細描述旨在作為本發明的一些實施方式的描述,而並不旨在僅表示可以構造和/或利用本發明的形式。該描述結合所示出的實施方式闡述了用於構造本發明的功能和操作本發明的步驟順序。然而,應當理解的是,可以通過也意在包括在本發明的範圍內的不同的實施方式來實現相同或等同的功能與順序。
[0047]參照附圖描述了所要求保護的主題,其中貫穿附圖同樣的附圖標記用於指代同樣的元件。在下面的描述中,為了說明的目的,闡述了大量具體細節以提供對本發明的透徹理解。然而,明顯的是,在沒有這些具體細節的情況下也可以實踐所要求保護的主題。在其他情況下,以框圖形式示出公知的結構和設備以便於對本發明進行描述。
[0048]圖1示出了根據本發明的一種實施方式的安全智慧卡讀取器;
[0049]圖2示出了根據本發明的一個方面的用於進行安全交易的系統;以及
[0050]圖3a和圖3b示出了根據本發明的一個方面的用於保護遠程交易安全的方法。[0051 ] 用於執行本發明的模式
[0052]圖1示出了根據本發明的一個方面的安全智慧卡讀取器(100),包括:用於與主計算機(99)通信的通信接口(110);用於接受智慧卡(98)的智慧卡讀取器插槽(120);用於與智慧卡(98)通信的智慧卡連接器(130);用於安全地存儲一個或更多個密碼學鑰和/或一個或更多個日誌文件的至少一個存儲器部件(140);用戶接口,包括用於向用戶呈現信息的用戶輸出接口(151)和用於接收用戶指示的用戶輸入接口(152);用於與主計算機(99)通信,與智慧卡(98)通信以及驅動用戶接口(151/152)的一個或更多個處理部件(160)。智慧卡讀取器100還適於工作在安全記錄模式下,在安全記錄模式下,智慧卡讀取器(100)保持日誌,日誌的內容與安全相關,並且可以表示涉及讀取器和/或讀取器的使用,當讀取器處於安全記錄模式下時發生的並且可能對安全等級有影響的至少一些安全相關事件。讀取器可以適於以該方式在日誌文件中記錄的事件包括:讀取器從應用(例如,主機上的本地應用或與主計算機連接的伺服器上的遠程應用)接收到的讀取器命令例如向用戶呈現數據供審查和批准的讀取器命令或用於設置或改變特定配置數據的讀取器命令;讀取器與所插入的智慧卡交換的(和讀取器可能已從應用接收到的)智慧卡命令例如使卡籤名數據的智慧卡命令;用戶交互如用戶批准或拒絕讀取器呈現給用戶的數據;與安全相關的其他事件如表示意圖篡改讀取器的情況的檢測。智慧卡讀取器(100)還適於使用由至少一個存儲器部件(140)存儲的一個或更多個密碼學鑰中的至少一個密碼學鑰生成所述日誌上的讀取器籤名。為了生成讀取器籤名,讀取器可以包括處理部件(162),處理部件(162)包括能夠使用由至少一個存儲器部件(140)存儲的一個或更多個密碼學鑰中的至少一個密碼學鑰來進行密碼學計算的密碼學引擎。在一些實施方式中,處理裝置(160)可以包括處理部件(162)。在一些實施方式中,上述部件可以包括在殼體(170)中。在一些實施方式中,讀取器可以適於通過在利用存儲在讀取器的至少一個存儲器部件(140)中的公-私鑰對中的私鑰而被參數化的日誌文件的內容(或其表示,如摘要或密碼學哈希)上應用非對稱密碼學算法來生成對所述日誌文件的讀取器籤名。
[0053]在一些實施方式中,用於與主計算機(99)通信的通信接口(110)可以包括USB接口,USB接口可以包括可以用於將具有USB線纜(97)的讀取器(100)連接至主計算機(99)的USB埠的USB連接器。在一些實施方式中,用於與主計算機(99)通信的處理裝置(160)可以適於支持與主計算機(99)通信的USB協議。在一些實施方式中,USB線纜(97)可以固定至讀取器(100)。在其他實施方式中,USB線纜(97)可以是從讀取器(100)可拆卸的。[0054]在一些實施方式中,智慧卡(98)符合智慧卡的IS0/IEC7816規範的至少一部分或與智慧卡的IS0/IEC7816規範的至少一部分兼容,以及用於接受智慧卡(98)的智慧卡讀取器插槽(120)、用於與智慧卡(98)通信的智慧卡連接器(130)和用於與智慧卡(98)通信的處理裝置(160)適於處理符合智慧卡的IS0/IEC7816規範的至少一部分或與智慧卡的ISO/IEC7816規範的至少一部分兼容的智慧卡,並且適於根據IS0/IEC7816規範的至少一部分處理協議。
[0055]在一些實施方式中,智慧卡(98)可以支持密碼學功能以對數據進行籤名。在一些實施方式中,智慧卡可以支持基於對稱密碼學的數據籤名功能。在一些實施方式中,智慧卡可以支持基於非對稱密碼學的數據籤名功能。在一些實施方式中,智慧卡包括安全地存儲一個或更多個對稱或非對稱密碼學鑰的安全存儲器。在一些實施方式中,智慧卡包括執行密碼學操作如對稱或非對稱加密或解密以及基於對稱或非對稱密碼學的數據籤名操作的安全密碼學代理。在一些實施方式中,智慧卡的安全密碼學代理可以適於使用存儲在智慧卡的安全存儲器中的一個或更多個密碼學鑰。在一些實施方式中,由智慧卡支持的操作或功能中的一些操作或功能可以通過PIN值的正確輸入來保護,或者可以以PIN值的正確輸入為條件。
[0056]在一些實施方式中,智慧卡讀取器(100)可以包括提供時間值的時鐘(180)。在一些實施方式中,該時鐘(180)可以包括實時時鐘。在一些實施方式中,智慧卡讀取器可以使用由時鐘(180)提供的時間值來對特定數據、動作或事件加時間戳。在一些實施方式中,時間值可以表示絕對實時時間,即,讀取器的時間值與真實通用時間有直接關係。在其他實施方式中,時間值可以是相對於某個讀取器具體事件如生產讀取器的時刻的值。在一些實施方式中,讀取器的時間值可以是例如Unix時間(在一些實施方式中,在某個精度範圍內)、GMT (格林威治標準時間)或UMT (通用度量時間)時間。在一些實施方式中,實時時鐘可以表不某個精度範圍內的當前時間。在一些實施方式中,時鐘(180)表不與伺服器的時鐘的值同步(在某個精度範圍內)的時間值。
[0057]篡改證據、篡改檢測和防篡改
[0058]在一些實施方式中,安全智慧卡讀取器(100)適於確保檢測和/或抵禦篡改讀取器的意圖。在一些實施方式中,智慧卡讀取器(100)的殼體(170)適於抵禦殼體的打開和/或增加用戶可以通過殼體(170)的變形(篡改證據)注意到打開殼體(170)的意圖的可能性。在一些實施方式中,可以將共同組成殼體(170)的部分焊接或膠合在一起使得卸下這些部分的意圖通常會導致殼體(170)的明顯變形。在一些實施方式中,讀取器(100)包括檢測殼體(170)的打開的開關。在一些實施方式中,讀取器(100)適於在檢測到篡改的意圖時採取適當的動作。在一些實施方式中,在檢測到篡改讀取器(100)的意圖時,讀取器(100)可以擦除特定敏感數據如密碼學鑰,或者讀取器(100)可以(可能不可逆地)進入錯誤模式,或者停止工作。在一些實施方式中,讀取器(100)可以設置以及存儲與篡改意圖的檢測有關的信息(如篡改意圖的日期、時間和/或類型),並且將該信息包括在隨後的讀取器籤名計算中。
[0059]在一些實施方式中,讀取器(100)可以包括例如即使在沒有連接至主計算機(99)的情況下仍然變得或保持主動的自主電源,例如以確保主動篡改檢測,以使得時鐘(180)能夠保持實時,或給易失存儲器(140)供電。在一些實施方式中,電源可以包括電池。在一些實施方式中,電池可以是可替換的。
[0060]讀取器(100)可以具有安全用戶輸出接口(例如,安全顯示器)和安全輸入接口(例如,安全鍵盤)。在一些實施方式中,讀取器具有輸出接口,由於輸出接口完全由讀取器來控制,並且由於其不能用於通過讀取器外部的進程來向用戶呈現數據或信息,除非該進程是由讀取器授權並且控制的,所以輸出接口是安全的。在一些實施方式中,讀取器具有輸入接口,由於輸入接口完全由讀取器來控制,並且由於其不能用於通過讀取器外部的進程來從用戶獲得數據或信息,除非該進程是由讀取器授權並且控制的,所以輸入接口是安全的。在一些實施方式中,通過不允許對其固件進行任何更改或提供僅允許通過確保讀取器僅接受來自可信來源的授權的固件更新的安全協議來對讀取器固件進行更改的安全固件更新機制來保持用戶輸入接口和用戶輸出接口的安全。
[0061]讀取器(100)可以適於確保固件安全和/或支持安全固件更新。
[0062]處理部件(160)可以包括一個或更多個處理部件。這些處理部件可以包括微晶片、集成電路、微控制器、微處理器、FPGA(現場可編程門陣列)、ASIC(專用集成電路)等。
[0063]存儲器(140)可以用於安全地存儲密碼學鑰。存儲器(140)可以包括一個或多個存儲器部件,包括RAM (可能是電池支持的)、ROM、EEPR0M、快閃記憶體或其他類型的存儲器部件。在一些實施方式中,存儲器(140)可以包括一個或更多個SAM(安全存取模塊)模塊。在一些實施方式中,存儲器(140)可以包括一個或更多個SIM(用戶身份模塊)卡。在一些實施方式中,存儲器(140)可以包括一個或更多個內部智慧卡或智慧卡晶片。讀取器(100)可以適於保護敏感存儲數據一例如可以包括密碼學鑰的秘密數據一的機密性。這些秘密密碼學鑰可以包括要與對稱密碼學算法一起使用的對稱密碼學鑰和/或要與非對稱密碼學算法一起使用的非對稱密碼學鑰如公/私鑰對中的私鑰。讀取器(100)可以適於在檢測到篡改讀取器的意圖時擦除一些存儲器區域。可以對存儲器(140)的特定內容進行加密。
[0064]讀取器(100)還可以用於存儲公鑰和/或與存儲在存儲器(140)中的私鑰相關聯的證書。
[0065]讀取器(100)可以適於支持密碼學能力比如支持用於非對稱密碼學算法和/或對稱密碼學算法和/或哈希函數的計算。讀取器可以適於在表示安全相關事件和動作的數據上生成讀取器籤名,該數據可以包括表示讀取器從主機(99)接收到的讀取器命令、讀取器與所插入的智慧卡(98)交換的智慧卡命令、讀取器呈現給用戶以供批准(例如,藉助於用戶輸出接口(151))的數據、或者讀取器在處理任何前述項時應用的配置參數的數據。智慧卡讀取器(100)還可以適於保持可以包括與主機交換讀取器命令、與所插入的智慧卡交換智慧卡命令和/或與用戶的交互的特定安全相關事件和動作的日誌。安全智慧卡讀取器
(100)可以適於生成對這些日誌中的一個或更多個的讀取器籤名。
[0066]讀取器(100)可以通過對要被籤名的數據應用利用存儲在存儲器(140)中的密碼學鑰而被參數化的密碼學算法來生成讀取器籤名。密碼學算法可以包括帶鑰哈希函數,由此將密鑰和要被籤名的數據的組合提交至單向密碼學哈希函數或摘要函數(如來自MD5、SHA-USHA-2或SHA-256哈希函數族的密碼學哈希函數),並且所得到的哈希或摘要構成電子籤名。密碼學算法可以包括對稱加密(解密)塊密碼如可以(例如,在CBC (密碼塊鏈)模式或一些其他塊鏈模式中)使用以生成可以構成電子籤名的MAC(消息認證碼)的(三重)DES(數據加密標準)或AES(高級加密標準)。讀取器可以使用基於非對稱密碼學的電子籤名方案來生成讀取器籤名。在這些情況下,可以對要被籤名的數據進行哈希操作或將要被籤名的數據提交至摘要函數,然後利用非對稱加密算法、使用用戶的私鑰對所得到的哈希或摘要進行加密。用於生成電子籤名的非對稱密碼學算法的示例包括RSA(RivestShamir Adleman)和DSA (數字籤名算法)。
[0067]在一些實施方式中,安全智慧卡讀取器適於在生產期間或在生產然後使用一個或更多個秘密或私有讀取器鑰來被初始化和/或個人化。在一些實施方式中,安全智慧卡讀取器支持安全數據交換協議以更新敏感讀取器數據如安全配置參數和/或密碼學鑰。在一些實施方式中,安全智慧卡讀取器包括能夠生成密碼學鑰的安全部件。在一些實施方式中,安全智慧卡讀取器可以包括能夠生成公-私鑰對的安全部件。在一些實施方式中,安全智慧卡讀取器可以包括生成隨機數的安全部件。
[0068]防火牆
[0069]讀取器可以支持檢查由主機發送並且用於智慧卡的智慧卡命令的防火牆,由此讀取器可以根據特定標準來阻止命令。在一些實施方式中,讀取器可以根據卡的類型來配置防火牆。在一些實施方式中,讀取器藉助於一個或更多個選擇應用(SELECT APPLICAT1N)智慧卡命令來確定卡的類型。在一些實施方式中,防火牆保持必須被阻止的智慧卡命令(和可以允許通過的其他智慧卡命令)的列表。在一些實施方式中,防火牆保持允許通過的智慧卡命令(和可以被阻止的所有其他智慧卡命令)的列表。在一些實施方式中,防火牆基於命令頭中的特定字節(如CLA、INS、P1和/或P2位元組)的值來識別智慧卡命令。在一些實施方式中,讀取器可以具有可以調查和/或改變一些智慧卡命令的內容的防火牆。讀取器從主機接收到的智慧卡命令、主機旨在由讀取器轉發至卡的智慧卡命令以及在不阻止智慧卡命令或更改其內容的情況下讀取器轉發至卡的智慧卡命令可以被稱為透明智慧卡命令。如果讀取器工作在不通過防火牆來阻止或更改智慧卡命令的模式下,則可以稱為讀取器工作在透明模式下。
[0070]讀取器命令
[0071]讀取器可以適於從主計算機(即,從例如主計算機上的本地應用或連接至主計算機的應用伺服器上的遠程應用)接收並且執行讀取器命令。這樣的讀取器命令可以包括:改變讀取器的配置數據的命令、使讀取器進入安全記錄模式的命令、使用戶進行安全用戶身份認證(如輸入安全PIN)的命令、使讀取器向用戶呈現特定數據的命令,以及使用戶審查並且批准或者拒絕所呈現的數據的命令。
[0072]安全用戶認證
[0073]在一些實施方式中,讀取器可以支持能夠用於指示讀取器安全地認證用戶的讀取器命令。
[0074]例如,在一些實施方式中,讀取器可以支持能夠用於指示讀取器提示用戶輸入PIN(或口令)、捕捉由用戶輸入的PIN(或口令)並且將所捕捉到的PIN(或口令)提交至智慧卡以由智慧卡來驗證的讀取器命令。在一些實施方式中,這樣的安全PIN輸入讀取器命令可以包括向讀取器指示如何構造PIN驗證智慧卡命令的參數。在一些實施方式中,讀取器適於在將PIN或口令值提交至智慧卡用於驗證然後從存儲器擦除PIN或口令值的所有副本。
[0075]在一些實施方式中,讀取器可以包括某種類型的生物特徵捕捉設備例如指紋,並且讀取器可以支持能夠用於指示讀取器(可選地)提示用戶將他或她的生物特徵提交至讀取器,捕捉生物特徵並且驗證所捕捉到的生物特徵(例如,以便認證用戶)的讀取器命令。在一些實施方式中,可以通過由讀取器將所捕捉到的生物特徵提交至智慧卡並且智慧卡驗證所捕捉到的生物特徵來驗證生物特徵。在一些實施方式中,可以通過讀取器從智慧卡獲得生物特徵參考數據並且將所捕捉到的用戶生物特徵數據與從智慧卡獲得的生物特徵參考數據相比較來驗證生物特徵。在一些實施方式中,讀取器適於在已經將生物特徵數據提交至智慧卡用於驗證然後或在他們已經由讀取器用於用戶認證目的然後從存儲器擦除生物特徵數據的所有副本。
[0076]安全籤名
[0077]讀取器可以適於提供安全籤名模式,在安全籤名模式下與讀取器交互的主機或應用將數據提交至讀取器以要由卡來籤名。在這樣的安全籤名模式下,讀取器向用戶呈現要被籤名的數據並且請求用戶批准數據。在用戶批准數據然後,讀取器向卡發送包括要被籤名的數據(或其表示如要被籤名的數據的哈希)的籤名命令。讀取器從卡接收籤名並且將其返回至主機。在一些實施方式中,讀取器可以支持使得與讀取器交互的應用能夠向讀取器發送要由卡來籤名的數據的讀取器命令,由此應用能夠在由卡來對數據進行籤名之前向讀取器指示必須由用戶來審查和批准這些數據中的哪些數據以及用戶不必審查和批准這些數據中的那些數據。
[0078]數據審查和批准
[0079]在一些實施方式中,讀取器可以支持使得應用能夠將數據提交至讀取器以由用戶來審查和批准的讀取器命令。在一些實施方式中,這樣的讀取器命令可以包括發起如上所述的安全籤名操作的讀取器命令。在一些實施方式中,這樣的讀取器命令可以包括不指示讀取器使卡自動籤名已審查並且已批准的數據的讀取器命令。例如,在一些實施方式中,讀取器可以支持使得應用能夠將數據提交至讀取器以由用戶來審查和批准的讀取器命令,由此讀取器在用戶批准數據然後將已批准的數據(或表示已批准的數據的數據如包括這些數據或這些數據的哈希的讀取器命令)添加至日誌文件。然後,應用可以例如通過向卡發送透明智慧卡命令來將同樣的數據提交至卡用於籤名。讀取器還可以將其添加至日誌文件。然後,讀取器可以籤名日誌文件。日誌文件上的讀取器籤名由此證明已經由卡籤名的數據也由用戶已經在安全讀取器上審查和批准。
[0080]在一些實施方式中,由讀取器在例如讀取器的(安全)顯示器上將要由用戶審查和批准的數據可視化。在一些實施方式中,可以通過讀取器例如通過人工語音生成來將要由用戶審查和批准的數據呈現給用戶。在一些實施方式中,用戶可以例如通過按壓讀取器鍵盤上的OK按鈕來批准數據。在一些實施方式中,用戶可以通過例如按壓讀取器(安全)鍵盤上的取消按鈕來拒絕數據。
[0081]在一些實施方式中,如果要被審查的數據不適合於讀取器的顯示器,讀取器可以顯示一部分數據並且向用戶提供滾屏遍及其餘數據的可能性,或者讀取器可以將數據分為一系列的數據塊,每個數據塊都適合於顯示器並且向用戶提供瀏覽遍及這些資料庫的可能性。在一些實施方式中,在滾屏遍及所有數據然後或在瀏覽遍及所有數據塊然後用戶僅能夠表示批准。
[0082]安全記錄模式[0083]讀取器可以適於提供安全記錄模式,在安全記錄模式下保持一個或更多個日誌。讀取器可以提供打開這樣的安全記錄模式的讀取器命令。讀取器在進入安全記錄模式時可以重置一個或更多個日誌的內容。在一些實施方式中,讀取器可以支持使得主機能夠重置日誌的讀取器命令。讀取器可以將表示其在該模式下接收到的讀取器命令中的至少一些的數據添加至日誌中的一個日誌。讀取器可以支持使得主機能夠將數據添加至日誌中的至少一個日誌的讀取器命令。讀取器可以支持使得主機能夠指示讀取器使用日誌的內容構造智慧卡命令並且將該智慧卡命令發送至智慧卡的讀取器命令。讀取器可以支持使得主機能夠指示讀取器在讀取器的用戶輸出接口上向用戶呈現特定數據用於用戶批准的讀取器命令。讀取器可以支持使得主機能夠指示讀取器向用戶呈現日誌的內容用於批准的讀取器命令。當用戶批准數據時,讀取器可以將已批准的數據自動添加至日誌中的至少一個日誌。在一些實施方式中,讀取器可以支持使得主機能夠指示讀取器將一個日誌的內容添加至另一日誌的內容的讀取器命令。讀取器可以適於當處於安全記錄模式時將表示從主機接收到的讀取器命令的數據自動添加至日誌中的至少一個日誌。讀取器可以適於當處於安全記錄模式時將表示在讀取器和智慧卡之間交換的智慧卡命令和響應的數據自動添加至日誌中的至少一個日誌。在一些實施方式中,讀取器可以適於當處於安全記錄模式時將表示在讀取器和智慧卡之間交換的透明智慧卡命令和相應的響應中的至少一些或所有在讀取器和智慧卡之間交換的透明智慧卡命令和相應的響應的數據自動添加至日誌中的一個日誌。當處於安全記錄模式時,讀取器可以激活防火牆。該防火牆可以阻止主機要求讀取器與智慧卡交換的特定或所有智慧卡命令。
[0084]當將數據添加至日誌文件時讀取器使用的機制。
[0085]在一些實施方式中,當讀取器記錄新數據時,其可以通過將正在被記錄的新數據附加至之前已添加至日誌文件的數據來將該新數據添加至日誌文件。在一些實施方式中,讀取器可以通過更新與日誌文件相關聯的摘要或哈希值來將新數據添加至日誌文件。在一些實施方式中,當將新數據添加至日誌文件時,讀取器可以既將新數據附加至之前已記錄的數據,又更新與日誌文件相關聯的摘要或哈希值。
[0086]在一些實施方式中,讀取器可以將其添加至日誌文件的數據格式化,並且如上所述將已格式化的數據添加至日誌文件。例如,讀取器可以添加分隔符以區分被添加至日誌文件的連續數據項。在一些實施方式中,讀取器可以將開始定界符和結束定界符添加至被添加至日誌文件的數據項。在一些實施方式中,在添加至日誌文件之前,將被添加至日誌文件的數據項可以被加標籤。在一些實施方式中,在將被添加至日誌文件的數據項添加至日誌文件之前可以將它們嵌入TLV(標籤-長度-內容)結構。在一些實施方式中,標籤可以用於表示被添加至日誌文件的各種數據項的性質。例如,不同的標籤可以用於表示特定數據代表的是卡命令或響應、或是讀取器命令或響應、或是讀取器配置數據、或是代表涉及用戶交互的數據(例如,表示特定數據是否由讀取器呈現來供審查,以及用戶是否批准了被呈現來供審查的數據),或是表示特定事件的數據(例如可能企圖篡改設備的什麼的檢測),或者數據是否表示時間戳。在一些實施方式中,在將數據項添加至日誌文件之前可以給數據項加時間戳。在一些實施方式中,時間戳可以是應用於被添加至日誌文件的數據的格式化結構的一部分。
[0087]在一些實施方式中,讀取器可以在文件系統的一個或更多個文件中存儲日誌文件的內容。在其他實施方式中,讀取器可以將日誌文件的內容存儲在其保持在一些存儲器部件中的另一類型的數據結構中。
[0088]讀取器可以適於支持使得主機能夠指示讀取器生成對包括在一個或更多個日誌中的數據的讀取器籤名的讀取器命令。讀取器還可以適於在特定事件的情況下自動生成對日誌中的一個的讀取器籤名。例如,當讀取器與智慧卡交換包括由用戶批准的數據的智慧卡命令時,其可以自動生成讀取器籤名。或者,當讀取器與智慧卡交換其根據日誌的內容構建的智慧卡命令時,其可以自動生成讀取器籤名。或者,當退出安全記錄模式時,其可以自動生成對日誌中的一個的讀取器籤名。
[0089]在一些實施方式中,讀取器支持用於檢索日誌文件的內容的讀取器命令。在一些實施方式中,讀取器可以使得能夠檢索一些日誌文件而不是其他日誌文件的內容。在一些實施方式中,僅當讀取器生成了對其內容的籤名時,才能夠檢索一些日誌文件的內容。在一些實施方式中,不能從讀取器檢索日誌文件的內容。在一些實施方式中,一些日誌文件的內容可以連同對這些內容的讀取器籤名來檢索。
[0090]安全記錄模式可配置性
[0091]在一些實施方式中,當讀取器處於安全記錄模式下時,讀取器工作的方式的特定方面可以是可配置的。例如,讀取器應當記錄哪些數據或事件,以及讀取器應當將它們記錄在哪個日誌文件中可以是可配置的。在哪些條件下讀取器應當生成籤名以及讀取器應當關於哪些數據或日誌文件生成籤名也可以是可配置的。在一些實施方式中,一些安全記錄模式配置參數可以被硬編碼在讀取器中並且不能被更改。在一些實施方式中,硬編碼配置參數可以是隱式的,因為其被硬編碼入讀取器的固件邏輯。在其他實施方式中,可以以硬編碼參數值的形式對一些配置參數進行顯式硬編碼。在一些實施方式中,可以將一些安全記錄模式配置參數存儲在讀取器的非易失性存儲器中。在一些實施方式中,存儲在讀取器的非易失性存儲器中的一些安全記錄模式配置參數可以是例如使用安全參數更新讀取器命令可更新的。在一些實施方式中,可以將一些安全記錄模式配置參數作為讀取器命令的一部分提供給讀取器。在一些實施方式中,作為讀取器命令的一部分被提供給讀取器的一些安全記錄模式配置參數可以至少暫時地覆蓋存儲在非易失性存儲器中的或硬編碼的安全記錄模式配置參數。在一些實施方式中,可以使用存儲在讀取器的非易失性存儲器並且使用例如安全讀取器參數更新命令以安全方式可更新的安全記錄模式配置參數來覆蓋至少一些硬編碼的安全記錄模式配置參數。在一些實施方式中,可以將一些安全記錄模式配置參數作為讀取器命令的一部分提供給讀取器以進入安全記錄模式。在一些實施方式中,如果通過讀取器命令來提供一些安全記錄模式配置參數,則表示該命令的數據可以被自動添加至日誌文件。在一些實施方式中,當讀取器命令指示讀取器進入安全記錄模式時,該命令可以包括安全記錄模式配置參數組,並且可以自動記錄表示可用於該安全記錄模式的至少一些安全記錄模式配置參數的數據。
[0092]加時間戳
[0093]在一些實施方式中,讀取器(100)可以適於給特定數據加時間戳。讀取器(100)可以使用由時鐘(180)提供的時間來給數據加時間戳。讀取器可以加時間戳的數據可以包括被添加至日誌中的一個日誌的數據、由卡(98)籤名的數據、由讀取器(100)籤名的數據、由卡生成的籤名或由讀取器生成的籤名。在一些實施方式中,自動對添加至日誌文件的數據的每個項目加時間戳。在一些實施方式中,僅對添加至日誌文件的數據的具體項目加時間戳。在一些實施方式中,讀取器對具體事件一如讀取器進入或退出安全記錄模式的時刻,或者從卡請求或獲得籤名的時刻,或者特定用戶交互的時刻如向用戶呈現數據用於批准或從用戶獲得對於數據的批准一提供時間戳。在一些實施方式中,讀取器支持使得能夠指示讀取器給日誌文件添加時間戳的讀取器命令。在一些實施方式中,例如,作為對於具體讀取器命令的響應或作為對具體事件的響應,讀取器可以適於將表示當前讀取器時間的數據元素添加至日誌文件。
[0094]防止重放措施
[0095]在一些實施方式中,讀取器(100)可以適於支持阻止特定類型的重放攻擊的特定措施。例如,在一些實施方式中,讀取器可以將時間戳應用於讀取器籤名,或者向日誌文件或被添加至日誌文件的數據添加時間戳。在一些實施方式中,讀取器可以適於生成隨機數並且可以將隨機數添加至由讀取器籤名的數據,或者可以將隨機數添加至日誌文件。在一些實施方式中,讀取器可以保持每次讀取器使用其值時單調遞增(或遞減)的計數器或其等同物,如單調變化值,即每次由當前值的函數例如當前值的哈希函數使用時被替換的值。在一些實施方式中,讀取器可以將這樣的計數器或單調變化值添加至日誌文件或添加至其籤名的數據。在一些實施方式中,讀取器可以適於通過讀取器命令從外部應用接收伺服器挑戰如不可預知數(其可以包括隨機數或偽隨機數)或時間值或伺服器計數器值,或者讀取器可以將該伺服器挑戰添加至讀取器籤名的數據或添加至讀取器添加至日誌文件的數據。在一些實施方式中,這樣的伺服器挑戰可以是指示讀取器進入安全記錄模式的讀取器命令中的一部分數據。在一些實施方式中,這樣的伺服器挑戰可以是應用發送至讀取器以要由卡來籤名的一部分數據。在一些實施方式中,這樣的伺服器挑戰可以是應用發送至讀取器以要由用戶來審查和批准的一部分數據。
[0096]與智慧卡的安全通信
[0097]在一些實施方式中,讀取器(100)適於保護其與智慧卡(98)的通信。例如,在一些實施方式中,讀取器可以適於例如通過驗證智慧卡的證書或者通過驗證由智慧卡生成的消息認證碼來認證智慧卡。在一些實施方式中,讀取器能夠例如通過生成能夠由卡來驗證的消息認證碼來將其自身認證到智慧卡。在一些實施方式中,讀取器可以適於生成其與所插入的智慧卡共享的對稱會話鑰。在一些實施方式中,讀取器適於對其與智慧卡交換的命令和/或響應進行加密和/或解密。例如,讀取器可以適於對智慧卡命令進行加密,讀取器以智慧卡命令向卡提交敏感數據如生物特徵數據或PIN或口令值。在一些實施方式中,讀取器可以適於對來自智慧卡的加密數據例如生物參考數據進行解密。
[0098]與應用的安全通信
[0099]在一些實施方式中,讀取器(100)適於保護其與外部應用的通信,外部應用通過讀取器命令與讀取器通信。外部應用可以(全部或部分地)在讀取器所連接的主計算機上運行。外部應用還可以(全部或部分地)在經由計算機網絡連接至讀取器所連接的主計算機的遠程應用伺服器上運行。在一些實施方式中,讀取器可以與外部應用共享可以用於保護讀取器和應用之間的通信的密鑰。在一些實施方式中,讀取器可以適於與應用建立共享的秘密會話鑰。在一些實施方式中,讀取器可以存儲公-私鑰對中的私鑰,並且讀取器可以適於接收由應用使用該公-私鑰對中的公鑰加密的種子,對加密種子進行解密並且使用解密種子來建立與應用共享的秘密會話鑰。在一些實施方式中,讀取器可以適於對來自應用(或聲稱來自應用)的命令或數據進行解密或認證。在一些實施方式中,讀取器可以適於驗證關於聲稱來自應用的命令或數據的籤名或消息認證碼。在一些實施方式中,讀取器可以適於對其返回給應用的響應或數據進行加密。在一些實施方式中,讀取器可以適於使用具有其與應用共享的密鑰的對稱密碼學來對讀取器與應用交換的消息和/或數據進行解密、加密和/或認證。在一些實施方式中,讀取器可以適於使用具有其存儲的並且與應用提供商或與受信任的證書頒發機構相關聯的公鑰的非對稱密碼學來對聲稱來自應用的消息、命令或數據進行認證(例如,通過驗證來自應用的關於這樣的消息、命令或數據的籤名)。在一些實施方式中,讀取器可以適於使用具有其存儲的私鑰的非對稱密碼學來對其返回或發送至應用的消息或數據進行認證(例如,通過籤名)。
[0100]在一些實施方式中,讀取器(100)可以適於以這種方式來對在安全固件更新協議的上下文中交換的應用消息或數據進行解密或認證(即,驗證來源)。在一些實施方式中,讀取器可以適於以這種方式來對在安全參數更新協議的上下文中交換的應用消息或數據進行解密或認證。在一些實施方式中,讀取器可以適於以這種方式來對意在由用戶來審查和批准和/或由卡來籤名的數據(或包括這樣的數據的應用命令)進行解密或認證。
[0101]識別讀取器
[0102]在一些實施方式中,讀取器可以適於使得能夠對單個讀取器進行識別。例如,讀取器可以存儲識別數據元素(如序列碼),並且可以適於使得應用能夠獲得該識別數據元素的值(例如,通過一些讀取器命令)。在一些實施方式中,讀取器的身份可以表示在存儲在讀取器中並且可以通過應用來檢索的公鑰證書中。在一些實施方式中,讀取器可以存儲識別存儲在讀取器中並且可以通過應用來檢索的一個或更多個公鑰的一個或更多個識別數據元素。在一些實施方式中,讀取器可以支持使得應用能夠檢索讀取器的識別數據的一個或更多個讀取器命令。在一些實施方式中,讀取器將讀取器的識別數據包括在響應於其他命令返回的數據中。例如,在一些實施方式中,讀取器可以將讀取器的識別數據包括在讀取器對應用請求檢索對日誌文件的讀取器籤名的響應中。
[0103]讀取器命令的交換和格式化
[0104]在一些實施方式中,讀取器支持形式上具有與真正智慧卡APDUS(如由ISO/IEC7816定義的應用協議數據單元)相同的格式或結構的讀取器命令,或者具有與真正智慧卡APDUS至少足夠相似的格式和結構使得能夠以與真正智慧卡命令相同的方式並且使用讀取器的主計算機上的與真正智慧卡命令相同的軟體和驅動棧來與讀取器進行交換的讀取器命令。在一些實施方式中,讀取器可以基於上下文或基於所接收到的命令的參數值來區分讀取器命令與實際智慧卡命令。例如,在一些實施方式中,讀取器可以基於APDU中的CLA和/或INS字節的特定具體值來識別讀取器命令。在一些實施方式中,讀取器可以支持向讀取器表示後續命令應當被解釋為智慧卡命令還是被解釋為讀取器命令的一個或更多個命令。
[0105]在一些實施方式中,可以使用其他機制來交換讀取器命令,例如通過專有USB命令。
[0106]未連接模式
[0107]在一些實施方式中,讀取器(100)可以適於使得其在不連接至主計算機(99)時也能夠工作。在這樣的未連接模式下,其可以從其自己的自主電源獲得電力。在未連接模式下,讀取器能夠例如工作為強認證令牌並且生成一次性口令、對挑戰的響應和/或交易數據籤名。可以通過讀取器應用基於使用也對驗證伺服器已知的對稱密鑰的對稱密碼學的算法來生成讀取器在未連接模式下從而生成的一次性口令、對挑戰的響應和/或交易數據籤名。在一些實施方式中,讀取器在一次性口令、對挑戰的響應和/或交易數據籤名的生成中可以使用所插入的智慧卡(98)。在一些實施方式中,在一次性口令、對挑戰的響應和/或交易數據籤名的生成中可以使用智慧卡來進行至少一部分密碼學計算。在一些實施方式中,讀取器可以使用智慧卡來獲得一個值,讀取器可以使用該值得到對稱密鑰,然後讀取器在一次性口令、對挑戰的響應和/或交易數據籤名的生成中使用該對稱密鑰。在一些實施方式中,讀取器可以在一次性口令、對挑戰的響應和/或交易數據籤名的生成中使用由時鐘(180)提供的時間值。在一些實施方式中,讀取器可以在對挑戰的響應和/或交易數據籤名的生成中使用用戶經由輸入接口(152)提供給讀取器的數據。在一些實施方式中,輸入接口(152)包括鍵盤,並且用戶可以鍵入數據。在一些實施方式中,讀取器可以通過輸出接口(151)向用戶輸出所生成的一次性口令、對挑戰的響應和/或交易數據籤名。在一些實施方式中,輸出接口(151)可以包括顯示器,並且可以將所生成的一次性口令、對挑戰的響應和/或交易數據籤名顯示為字符串例如十進位字符串、十六進位字符串或字母數字式字符串。
[0108]在一些實施方式中,讀取器(100)可以適於與EMV-CAP(泛歐卡-萬事達卡-VISA-晶片認證計劃)可兼容或符合EMV-CAP。
[0109]可攜式和手持式
[0110]在一些實施方式中,讀取器具有重量和空間度量使得讀取器能夠被認為是可攜式手持設備。在一些實施方式中,讀取器具有重量和空間度量使得能夠以適度成本通過郵件將讀取器發送至用戶。例如,在一些實施方式中,讀取器可以具有小於2cm的厚度、小於1cm的寬度、小於15cm的長度以及小於200克的重量。在其他實施方式中,讀取器可以具有小於1.5cm的厚度、小於7cm的寬度、小於13cm的長度以及小於110克的重量。
[0111]專用硬體設備
[0112]在一些實施方式中,讀取器是專用硬體設備。在一些實施方式中,讀取器可以專用於在保護用戶訪問應用或保護用戶與這樣的應用交互的方法中使用。在一些實施方式中,讀取器的主要目的是在保護用戶訪問應用或保護用戶與這樣的應用交互的方法中使用。在一些實施方式中,為了保證讀取器專用於其作為安全設備的用途,讀取器可以適於使不可能更改其固件。在一些實施方式中,為了保證讀取器專用於其作為安全設備的用途,僅可以通過被設計成確保僅授權的控制可信方能夠更新或改變讀取器的固件的安全固件更新協議來對其固件作出任何改變或更新。這使得受控可信方能夠確保不發生會影響讀取器專用於其在保護用戶訪問應用或保護用戶與這樣的應用交互的方法中使用的固件更新。具有智慧卡讀取功能但是在例如用戶能夠在沒有控制可信方的授權的情況下能夠更新軟體的意義上是開放的通用設備不能被認為是專用設備。
[0113]安全讀取器
[0114]在一些實施方式中,智慧卡讀取器是安全讀取器。這表示讀取器的用戶輸入接口是安全用戶輸入接口,並且讀取器的用戶輸出接口是安全用戶輸出接口。這還表示:讀取器的安全敏感固件和數據(其可以包括使特定安全功能參數化的密碼學鑰和/或配置數據)不能被改變或被更新,或僅能夠藉助於僅使得可信方能夠進行改變或更新的安全更新協議來被改變或被更新。
[0115]圖2示出了根據本發明的一個方面的用於進行安全交易的系統。系統包括:安全智慧卡讀取器(100)如結合圖1討論的讀取器;主計算機(99),智慧卡讀取器(100)可以連接至主計算機;一個或更多個遠程應用伺服器(200);以及計算機網絡(210),計算機網絡(210)可以連接主計算機(99)和一個或更多個遠程應用伺服器(200)。系統還包括智慧卡(98),智慧卡(98)與用戶相關聯,並且可以被插入智慧卡讀取器中(100)。
[0116]主計算機(99)可以包括用戶接口如顯示器和鍵盤和滑鼠以與用戶交互。主計算機(99)可以包括網絡接口以將主計算機(99)連接至計算機網絡(210)。主計算機(99)可以包括數據處理裝置如微處理器。主計算機(99)可以包括存儲器。主計算機(99)可以包括軟體如作業系統和應用軟體。在典型的實施方式中,主計算機(99)可以包括PC(個人計算機)或筆記本電腦。主計算機(99)可以包括與外圍硬體例如智慧卡讀取器(100)交換數據和/或命令和/或響應的接口。該接口可以包括例如USB接口。
[0117]遠程應用伺服器(200)可以包括網絡伺服器。遠程應用伺服器可以包括在多個硬體部件上運行的多個軟體部件。遠程應用伺服器可以與主計算機上的軟體交互。主計算機上的遠程應用伺服器和/或軟體可以是整體應用的部件。在一些實施方式中,這樣的整體應用的一些部件可以由不同的參與者來操作或者代表不同的參與者。例如,在一些實施方式中,整體應用可以包括由用戶或客戶操作或者代表用戶或客戶的部件、由零售商操作或者代表零售商的其他部件、和/或由金融機構操作或者代表金融機構的另一些部件。一個或更多個遠程應用伺服器可以包括多於一個遠程應用伺服器,由此不同的伺服器可以承擔不同的功能。例如在一些實施方式中,用戶可以與一個伺服器交互以向應用提交交易數據,而另一伺服器可以負責驗證卡和/或對例如交易數據的讀取器籤名。
[0118]計算機網絡(210)可以包括例如網際網路。
[0119]在一些實施方式中,智慧卡(98)可以例如包括能夠使用具有公-私鑰對中的私鑰的非對稱密碼學來生成籤名的PKI智慧卡。智慧卡(98)可以安全地存儲並且使用公-私鑰對中的私鑰。智慧卡(98)還可以存儲公-私鑰對中的公鑰和/或與公-私鑰對中的公鑰相關聯的證書。可以通過PIN來保護使用存儲在智慧卡(98)中的公-私鑰對中的私鑰的操作。
[0120]在一些實施方式中,智慧卡(98)可以包括例如能夠使用具有密鑰的對稱密碼學來生成密碼的智慧卡。智慧卡(98)可以安全地存儲並且使用密鑰。可以通過PIN來保護使用存儲在智慧卡(98)中的密鑰的操作。在一些實施方式中,智慧卡(98)可以是EMV可兼容的,或符合EMV,或者可以包括EMV可兼容或符合EMV的智慧卡應用。
[0121]在一些實施方式中,由用戶通過主計算機訪問的並且與智慧卡讀取器(100)交互以保護該用戶訪問應用的應用可以由遠程應用伺服器(200)來運行或以其為主機。在一些實施方式中,這個應用的部分可以由遠程應用伺服器(200)來運行或以其為主機,以及應用的部分可以由主計算機(99)來運行或以其為主機。在一些實施方式中,應用可以由主計算機(99)和遠程應用伺服器(200)來運行或以其為主機,在這種情況下,計算機網絡(210)可以是可選的或不存在。在一些實施方式中,應用的一些部件可以由不同的參與者來操作或者代表不同的參與者。例如,在一些實施方式中應用可包括由用戶或客戶操作或者代表用戶或客戶的部件、由零售商操作或者代表零售商的其他部件、和/或由金融機構操作或者代表金融機構的另一些部件。
[0122]在一些實施方式中,應用可以包括網絡銀行或網際網路銀行應用,遠程應用伺服器(200)可以包括可以是後端銀行伺服器的網絡前端的網絡伺服器,並且主計算機(99)可以通過網際網路(210)連接至網絡伺服器並且可以包括用戶能夠使用以通過網際網路(210)訪問網絡銀行應用的網絡瀏覽器。
[0123]圖3a和圖3b示出了根據本發明的一個方面的保護遠程交易的方法。
[0124]向用戶提供讀取器
[0125]在步驟(302)中,可以向用戶提供安全智慧卡讀取器(100)如結合圖1描述的讀取器。在一些實施方式中,應用所有者向一個或更多個應用用戶提供合適的讀取器。在一些實施方式中,應用鼓勵應用用戶獲得合適的讀取器。在一些實施方式中,應用向應用用戶提供如何獲得合適的讀取器的信息。
[0126]將讀取器連接至用戶的主計算機
[0127]在步驟(304)中,將已經提供給用戶的安全智慧卡讀取器(100)連接至可以由用戶使用的主計算機(99)。
[0128]用戶訪問應用
[0129]在步驟(306)中,用戶使用主計算機(99)來訪問應用,安全智慧卡讀取器(100)可以連接至主計算機(99)。在一些實施方式中,應用可以包括例如由遠程應用伺服器
(200)運行的應用。在其他實施方式中,應用可以包括由主計算機執行的軟體應用。在又一些實施方式中,應用可以包括客戶端-伺服器應用,其包括在主計算機上運行的客戶端軟體模塊和在一個或更多個遠程伺服器(200)上運行的一個或更多個伺服器軟體模塊。在一種實施方式中,應用可以包括文本編輯器。在另一實施方式中,應用可以包括電子郵件程序。在又一實施方式中,應用可以包括財務應用如網際網路銀行應用。在一種實施方式中,用戶可以使用在他或她的主計算機上運行的網絡瀏覽器來訪問基於遠程網絡的應用。
[0130]用戶發起交易
[0131]在步驟(308)中,例如,用戶可以與例如在主計算機上或在遠程伺服器上的應用交互以發起交易。在用戶與應用交互的過程中,用戶可以將交易提交至應用。例如,用戶可以向網際網路銀行網站提供用戶希望執行的貨幣轉移的細節,或者用戶可以表示他們希望在商業網站上購買特定物品,或者用戶可以批准合同或可以書寫要被籤名的電子郵件或信件。
[0132]要被籤名的數據的匯集。
[0133]在步驟(310)中,例如在主計算機上或在遠程伺服器上的應用匯集要由用戶數字地籤名的數據組例如表示由用戶發起的交易的數據。該數據組可以包括例如要被籤名的文件或電子郵件,或者可以包括例如表示用戶希望執行的金融交易的數據或與用戶希望執行的金融交易相關的數據。要被籤名的數據可以包括例如與用戶想要進行的貨幣轉移相關的數據,例如要被轉移的貨幣的量、流通量指示器、貨幣應當被轉移至的目的地的表示(例如,目的帳戶號碼)、和/或要被轉移的貨幣應當從其獲得的源的表示(例如,源帳戶號碼)。在另一情況下,要被籤名的數據可以例如與股票交易訂單——例如一些股票的出售或收購一相關。數據可以例如包括要交易的股票的類型的指示符、要交易的股票的數量的指示符、交易的類型(出售、購買、…)、價格、有效性、期限、…。
[0134]智慧卡插入
[0135]在某個點(312)處,要求用戶將用戶的智慧卡插入讀取器中,並且用戶將智慧卡插入讀取器中。從這個時刻開始,應用和讀取器開始與所插入的智慧卡交換智慧卡命令。在一些實施方式中,插入智慧卡表示將智慧卡物理地插入讀取器的智慧卡插槽中。在其他實施方式中(例如,在其中讀取器使用非接觸智慧卡通信協議與非接觸智慧卡交互的實施方式中),插入智慧卡表示相對於讀取器對智慧卡進行定位使得智慧卡與智慧卡讀取器之間可以通信。例如,在一些實施方式中,不需要物理地將智慧卡插入讀取器中,但是為了可以進行通信,必須將智慧卡移動至某個距離範圍(例如,小於1cm)內。
[0136]識別讀取器
[0137]在步驟(314)中,例如在主計算機上或在遠程伺服器上的應用識別讀取器。在一些實施方式中,應用僅確立讀取器的類型。在其他實施方式中,應用獲得讀取器固件的版本。在又一些實施方式中,應用獲得特定讀取器的身份的表示(例如,讀取器的序列號或對與在讀取器中存儲的私鑰對應的公鑰的參考)。在一些實施方式中,應用可以使用標準USB智慧卡讀取器機制來檢索讀取器的類型。在其他實施方式中,應用可使用一個或更多個讀取器命令來檢索讀取器的識別數據。在一些實施方式中,應用可以檢索讀取器的識別數據作為還可以包括其他讀取器相關數據如讀取器狀態、讀取器的一組配置數據、讀取器的固件版本等的讀取器數據組的一部分。
[0138]讀取器進入安全記錄模式 [0139]在步驟(320)中,使安全智慧卡讀取器進入安全記錄模式。在一些實施方式中,讀取器可以響應於指示讀取器進入安全記錄模式的具體讀取器命令來進入安全記錄模式。在一些實施方式中,作為指示讀取器作出一些動作的讀取器命令——如以安全方式(例如通過輸入安全PIN)對用戶進行認證的命令,或將特定數據呈現給用戶用於批准和審查的命令,或進行安全籤名會話的命令——的自動副效應,讀取器可以進入安全記錄模式。在一些實施方式中,響應於特定事件如讀取器開啟事件、或智慧卡插入事件、或智慧卡開啟或重置事件,讀取器可以自動進入安全記錄模式。在一些實施方式中,讀取器可以默認處於安全記錄模式。在一些實施方式中,讀取器始終處於安全記錄模式。在一些實施方式中,讀取器可以將一個或更多個認證文件初始化成某個具體的狀態。例如,可以將它們重置為空或使用例如包括配置數據(例如,影響安全記錄模式的配置數據)和/或表示讀取器狀態和/或固件版本的數據等的數據組來將它們初始化。在一些實施方式中,初始化在使讀取器進入安全記錄模式之前發生。在一些實施方式中,該初始化可以在讀取器進入安全記錄模式時發生。在一些實施方式中,初始化可以在讀取器進入安全記錄模式然後的某個時間點發生。
[0140]讀取器記錄數據
[0141]一旦處於安全記錄模式,智慧卡讀取器可以自動開始將數據添加至一個或更多個記錄文件(步驟321)。在一些實施方式中,被添加至記錄文件的數據包括表示以下事件的數據:安全敏感事件、狀態和動作如讀取器命令和/或響應、用戶與讀取器的交互(例如,數據對用戶的呈現和用戶輸入)、智慧卡命令和/或響應、固件版本和/或固件變化事件、配置數據和/或配置數據變化事件、其他事件(例如,可以表示篡改意圖或可能危害讀取器安全的完整性的事件——如特定機械或電子操作如試圖打開殼體或功率尖峰或失去電力----的檢測。)
[0142]讀取器記錄智慧卡命令
[0143]在一些實施方式中,讀取器以這種方式記錄與其與卡交換的智慧卡命令例如讀取器從應用接收以與插入讀取器中的智慧卡交換的透明智慧卡命令有關的數據(步驟322)。在一些實施方式中,讀取器可以系統地記錄所有所交換的智慧卡命令。在一些實施方式中,讀取器可以僅記錄一些所交換的智慧卡命令。在一些實施方式中,讀取器可以記錄滿足特定標準的那些智慧卡命令。例如,讀取器可以記錄特定類型的智慧卡命令。在一些實施方式中,讀取器用來決定要記錄哪些命令的標準可以由配置參數來參數化。這些配置參數可以包括例如要被記錄的命令列表或不應當被記錄的命令列表。在一些實施方式中,讀取器基於智慧卡命令報頭的特定字節——例如CLA、INS、P1和/或P2位元組——的值來識別智慧卡命令類型。在一些實施方式中,通過應用例如藉助於一些讀取器命令例如指示讀取器進入安全記錄模式的讀取器命令來將確定可以記錄哪些智慧卡命令(和/或相應的卡響應)以及在適用的情況下在那個日誌文件中記錄的配置參數傳送至讀取器。
[0144]讀取器記錄讀取器命令
[0145]在一些實施方式中,讀取器記錄與其接收到的讀取器命令相關的數據(步驟S323)。在一些實施方式中,讀取器可以系統地記錄所有所交換的讀取器命令。在一些實施方式中,讀取器可以僅記錄一些所交換的讀取器命令。
[0146]設置安全記錄配置參數 [0147]在一些實施方式中,應用藉助於讀取器命令指示讀取器進入安全記錄模式,並且藉助於同一讀取器命令或一個或更多個另外的讀取器命令向讀取器傳遞(步驟316)可以
確定讀取器在安全記錄模式下應當記錄哪些數據-例如記錄哪些智慧卡命令、記錄哪些
讀取器命令、記錄哪些用戶交互(例如,哪些用戶消息和/或讀取器呈現給用戶的數據,以及讀取器從用戶接收到的哪些用戶響應)、記錄那些其他事件(例如,錯誤事件)——的安全記錄模式配置參數組。在一些實施方式中,讀取器自動記錄相關的配置參數和/或對這些配置參數作出的任何改變。在一些實施方式中,應用可以藉助於一個或更多個讀取器命令將安全記錄模式配置參數傳遞給讀取器。在一些實施方式中,讀取器可以藉助於同樣的讀取器命令將安全記錄模式配置參數傳遞給讀取器以指示讀取器進入安全記錄模式。在一些實施方式中,應用使用一個或更多個其他讀取器命令來將安全記錄模式配置參數傳遞給讀取器。在一些實施方式中,讀取器可以在讀取器進入安全記錄模式之前將安全記錄模式配置參數傳遞給讀取器。在一些實施方式中,讀取器可以在讀取器進入安全記錄模式然後將安全記錄模式配置參數傳遞給讀取器。
[0148]日誌交易數據的審查和批准
[0149]在一些實施方式中,當讀取器處於安全記錄模式時,使讀取器至少記錄(步驟324)讀取器呈現給用戶並且用戶審查和批准(或不批准)的數據(或這樣的數據的表示如這樣的數據的摘要或哈希)。在一些實施方式中,讀取器記錄其呈現供審查和批准的數據,並且記錄用戶的決定(批准或拒絕)。在一些實施方式中,讀取器僅記錄已經呈現給用戶並且用戶已經審查並批准的數據(以及讀取器不記錄用戶已經拒絕的數據)。在一些實施方式中,讀取器記錄應用使用其向讀取器傳送要被審查和批准的數據的讀取器命令(或這樣的命令的表示如讀取器命令的哈希或讀取器命令的部分),並且記錄讀取器對應用的響應以表示用戶的批准或拒絕。
[0150]在一些實施方式中,當讀取器處於安全記錄模式下時,使讀取器至少記錄(步驟336)應用提交至卡用於獲得籤名的數據(或這樣的數據的表示如摘要或哈希,或甚至對這些數據的卡籤名)。在一些實施方式中,這可以通過讀取器記錄用於將要被籤名的數據傳遞至卡的智慧卡命令的內容來完成。在一些實施方式中,這通過記錄卡的響應包括對要被籤名的數據的卡籤名來完成。在一些實施方式中,使讀取器記錄能夠由應用使用以使卡籤名數據的所有智慧卡命令。在一些實施方式中,讀取器記錄當讀取器處於安全記錄模式下時應用通過讀取器發送至卡的所有透明智慧卡命令。在一些實施方式中,讀取器記錄當讀取器處於安全記錄模式下時應用通過讀取器發送至卡並且滿足一些標準的所有透明智慧卡命令。在一些實施方式中,這些標準是用於安全記錄模式的讀取器的配置數據的一部分。在一些實施方式中,可以設置這些標準使得確保記錄了表示或確定卡已經籤名或將要被籤名哪些數據的那些智慧卡命令。在一些實施方式中,讀取器記錄關於要被籤名的數據的智慧卡籤名以及要被籤名的數據本身,或者記錄對要被籤名的數據的智慧卡籤名而不記錄要被籤名的數據本身。
[0151]在一些實施方式中,當讀取器處於安全記錄模式下時,使讀取器至少記錄讀取器呈現給用戶並且用戶審查並批准的數據(或這樣的數據的表示)(如上所述),以及應用提交至卡用於獲得籤名的數據(如上所述)。
[0152]根據標準記錄數據
[0153]在一些實施方式中,讀取器用於記錄滿足特定標準的任何事件、透明智慧卡命令、讀取器命令、用戶動作或其他事件。在一些實施方式中,這些標準可以是讀取器的配置數據的一部分。在一些實施方式中,應用可以在步驟(316)中設置或改變讀取器的配置數據中的至少一些。例如在一些實施方式中,應用可以指示讀取器進入安全記錄模式並且應用可以包括讀取器可以使用以決定其要記錄哪些事件、智慧卡命令、讀取器動作或用戶動作的標準中的一些標準的特定配置數據。
[0154]記錄配置數據
[0155]在一些實施方式中,讀取器自動記錄(步驟318)其應用以決定記錄什麼的所有配置數據或一部分配置數據。在一些實施方式中,讀取器自動記錄其從應用接收並且其應用以決定要記錄什麼的配置數據。
[0156]交換透明智慧卡命令
[0157]在步驟(328)中,應用將一系列一個或更多個智慧卡命令發送至安全智慧卡讀取器用於讀取器與智慧卡讀取器中所插入的智慧卡交換並且向應用返回對這些智慧卡命令的卡響應。在一些實施方式中,應用通過讀取器的主計算機上的標準軟體棧與讀取器交換這些命令以與智慧卡讀取器中所插入的智慧卡交換智慧卡命令。在一些實施方式中,該軟體棧可以包括CCID (集成電路卡接口設備)USB驅動器和/或PC/SC (個人計算機/智慧卡)部件。如上所述,在一些實施方式中,當讀取器處於安全記錄模式下時,讀取器可以將與一些或所有這些智慧卡命令相關的數據和/或相應的智慧卡響應添加至一個或更多個讀取器的日誌文件。在一些實施方式中,讀取器可以支持接觸接口並且可以通過電流接觸與智慧卡交換命令。在一些實施方式中,讀取器可以支持非接觸智慧卡接口並且可以使用非接觸通信協議例如IS0/IEC14443協議來與智慧卡交換命令。在一些實施方式中,智慧卡讀取器包括用於插入智慧卡的智慧卡插槽。
[0158]對智慧卡命令應用防火牆
[0159]在一些實施方式中,在與智慧卡交換這些智慧卡命令之前,讀取器可以對這些智慧卡命令應用防火牆(步驟326)。在一些實施方式中,讀取器可以基於特定標準來阻止一些智慧卡命令。
[0160]在一些實施方式中,應用可以例如與智慧卡交換透明智慧卡命令以在卡上選擇用於生成籤名的函數以及/或者以在卡上選擇安全預置文件或環境以及/或者以從卡讀取數據例如與用戶相關的數據和/或與用戶相關聯的公鑰(例如證書)。
[0161]驗證用戶身份
[0162]在步驟(330)中,讀取器可以驗證用戶身份。例如,讀取器可以進行安全PIN輸入。讀取器可以提示用戶輸入PIN,捕捉用戶輸入的PIN並且將PIN提交至智慧卡用於由智慧卡來驗證。在一些實施方式中,應用藉助於一個或更多個安全PIN輸入讀取器命令來指示讀取器進行安全PIN輸入。在其他實施方式中,讀取器藉助於可以例如基於指紋的生物特徵用戶認證法來驗證用戶的身份。在一些實施方式中,讀取器可以記錄用戶的身份驗證。例如,讀取器可以記錄用戶身份驗證是否發生和/或用戶身份驗證的結果是什麼。
[0163]交易數據的批准
[0164]在步驟(331)處,應用將數據(例如,交易數據)提交至讀取器以將數據呈現給用戶用於由用戶來審查和批准。在一些實施方式中,應用使用具體讀取器命令來將這些數據提交至讀取器。讀取器可以將這些數據呈現給用戶(例如通過在讀取器的顯示器上呈現數據),並且提示用戶審查數據並且表示批准或拒絕。讀取器可以捕捉(322)用戶的批准或拒絕(用戶可以例如通過按壓OK或取消按鈕來表示)。讀取器可以將用戶批准或拒絕的決定返回至應用。在一些實施方式中,如果用戶不批准數據,則應用可以退出交易。
[0165]在典型的實施方式中,讀取器記錄(333)呈現給用戶和/或由用戶批准的數據(或這些數據的表示例如摘要或哈希)。在一些實施方式中,讀取器僅在用戶批准數據的情況下記錄這些數據。在一些實施方式中,讀取器記錄數據而不管用戶是批准了這些數據還是拒絕了這些數據,並且還記錄用戶的決定(即,用戶是批准了數據還是拒絕了數據)。在一些實施方式中,讀取器記錄數據和表示用戶的結果的數據元素。在一些實施方式中,在用戶批准了數據的情況下,讀取器僅記錄已經被審查的數據使得用戶記錄這些數據的事實在日誌文件中表示用戶審查了並且批准了這些數據。在一些實施方式中,讀取器記錄包括要由用戶來審查和批准的數據的讀取器命令,並且還記錄包括用戶的決定的表示的相應的響應。
[0166]通過卡的交易數據的籤名
[0167]在步驟(334)中,如果用戶批准了數據,使智慧卡對一組數據進行籤名。在典型的實施方式中,應用可以生成關於要被籤名的數據的摘要(例如,通過對數據應用密碼學哈希函數),並且可以將摘要或哈希提交至智慧卡,隨後智慧卡籤名所提交的摘要或哈希。在一些實施方式中,應用可將要被籤名的數據直接提交至智慧卡。在一些實施方式中,智慧卡可以關於其從應用接收到的要被籤名的數據來生成摘要或哈希並且籤名該摘要或哈希。在一些實施方式中,要被籤名的數據和要由用戶來審查和批准的數據是相同的。在一些實施方式中,要被籤名的數據包括要被審查和批准的數據,但還可以包括其他數據(例如對於用戶無意義的隨機挑戰,並且因此不需要被審查和批准,但是它們可以用於防止特定類型的重放攻擊)。在一些實施方式中,要被審查和批准的數據包括要被籤名的數據,但是還可以包括沒有提交至卡用於籤名的另外的信息。在典型的實施方式中,在一方面要被審查和批准的數據與另一方面要被籤名的數據之間存在至少部分的重疊。然而,在一些實施方式中,在一方面要被審查和批准的數據與另一方面要被籤名的數據之間不存在直接的字面上的重疊,但是存在關係,即關於這些數據的含義。例如,要被籤名的數據可以包括全部合約,而要被審查和批准的數據可以包括合約的簡短概要。
[0168]在典型的實施方式中,應用藉助於其與智慧卡交換的透明智慧卡命令來提交要被籤名的數據。在這樣的實施方式中,讀取器可以不具有或不需要關於可以用於使卡籤名要被籤名的數據的該組命令的知識。例如,在一些實施方式中,應用可以向智慧卡發送透明智慧卡命令以選擇合適的安全環境(其可以例如選擇卡可以隨後使用的私鑰)。應用可以向智慧卡發送一個或更多個透明智慧卡命令以向智慧卡提交要被籤名的數據的摘要或哈希,或者應用可以向智慧卡發送一個或更多個智慧卡命令以向智慧卡提交要被籤名的數據本身,並且智慧卡可以計算摘要或哈希(例如,自動或在從應用接收到這樣做的明確命令時)。然後智慧卡可以籤名所接收到的或所生成的摘要或哈希。在一些實施方式中,同時使用相同的智慧卡命令以向智慧卡提交要被籤名的數據或者關於要被籤名的數據的摘要或哈希並且指示智慧卡生成實際籤名。在其他實施方式中,可以使用不同的智慧卡命令一方面向智慧卡提交要被籤名的數據或者關於要被籤名的數據的摘要或哈希,而另一方面指示智慧卡生成實際籤名。在一些實施方式中,與生成對數據的籤名有關的一些或所有智慧卡命令可以被稱為PS0(執行安全操作)命令。
[0169]在其他實施方式中,應用使用指示讀取器向用戶呈現特定數據來供審查和批准並且(在用戶批准數據的情況下)將已批准的數據(或與已批准的數據相關的數據組)提交至智慧卡用於籤名的安全籤名讀取器命令。在這樣的實施方式中,讀取器可以已經內置或配置關於可以用於使卡籤名要被籤名的數據的該組命令的知識使得其能夠構造正確的命令。在一些實施方式中,應用可以傳遞關於如何構造籤名命令的讀取器信息。
[0170]記錄由卡籤名的數據
[0171]在典型的實施方式中,讀取器在步驟(336)中記錄已經由卡籤名的數據(或表示這些數據的數據如摘要或哈希)。在一些實施方式中,讀取器記錄所有透明智慧卡命令(至少對於特定時刻)使得也自動記錄由應用使用來向卡提交數據用於籤名的任何透明智慧卡命令。在一些實施方式中,讀取器被配置成自動記錄滿足特定標準的所有透明智慧卡命令,並且這些標準被配置使得也自動記錄由應用使用來向卡提交數據用於籤名的任何透明智慧卡命令。在典型的實施方式中,讀取器不具有關於如何識別被用於向卡提交要被籤名的數據的智慧卡命令的知識。在一些實施方式中,讀取器還記錄與所記錄的智慧卡命令對應的卡響應。在一些實施方式中,可以在不記錄相應的卡響應的情況下記錄一些智慧卡命令。在一些實施方式中,可以在不記錄相應的智慧卡命令的情況下記錄一些卡響應。在一些實施方式中,讀取器僅記錄要被籤名的數據(或其表示如哈希)。在一些實施方式中,讀取器僅記錄卡籤名(其可以被認為是要被籤名的數據的表示)。在一些實施方式中,讀取器記錄要被籤名的數據(或其表示如哈希)和相應的卡籤名二者。[0172]檢索卡籤名
[0173]在步驟(338)中,應用例如通過接收卡對於籤名智慧卡命令的響應來檢索卡對要被籤名的數據所生成的卡籤名。
[0174]生成對日誌文件的讀取器籤名
[0175]在步驟(340)中,讀取器生成對所記錄的數據的讀取器籤名。在一些實施方式中,讀取器使用基於非對稱密碼學的籤名算法並且使用公-私鑰對中的讀取器私鑰來生成日誌籤名,由此該私鑰被安全地存儲在讀取器中。在一些實施方式中,讀取器使用基於對稱密碼學的算法並且使用安全地存儲在讀取器中的秘密讀取器鑰來生成日誌籤名,並且由此可以與一些驗證伺服器共享該秘密讀取器鑰。在典型的實施方式中,所有所記錄的數據被記錄在單個日誌文件中,並且讀取器生成對該單個日誌文件的單個日誌籤名。在一些實施方式中,讀取器可以使用多個日誌文件來記錄數據並且可以分別籤名一些日誌文件使得日誌籤名包括對分別籤名的日誌文件的多個籤名。例如在一些實施方式中,讀取器可以在一個日誌文件中記錄讀取器命令或供審查和批准的數據,並且可以在另一日誌文件中記錄透明智慧卡命令,並且生成對每個這些日誌文件的籤名,使得讀取器的日誌籤名包括對具有所記錄的讀取器命令或供審查和批准的數據的日誌文件的讀取器籤名以及對具有透明智慧卡命令的日誌文件的讀取器籤名。
[0176]檢索所生成的讀取器籤名
[0177]在步驟(342)中,應用檢索讀取器對該一個或更多個日誌所生成的讀取器籤名。在一些實施方式中,應用還可以檢索所籤名的日誌本身的內容。在一些實施方式中,應用還可以從讀取器檢索與由讀取器使用來生成日誌上的讀取器籤名的一個或更多個鑰(其可以包括公-私鑰對中的私鑰)有關的一個或更多個證書。在一些實施方式中,應用還可以從讀取器檢索與由讀取器使用來生成對日誌的讀取器籤名的公-私鑰對中的私鑰對應的一個或更多個公鑰。在一些實施方式中,應用還可以從讀取器檢索可以由應用使用以獲得(例如,通過查詢資料庫)與由讀取器使用來生成對日誌的讀取器籤名的鑰相關的一個或更多個公鑰和/或證書的讀取器識別數據。
[0178]驗證用戶確實已經批准了交易。
[0179]在已經將交易數據提交至應用,並且用戶已經審查要被審查和批准的數據,並且卡已經籤名要被籤名的數據然後,應用可以驗證是否每件事都根據應用的適用安全策略發生。例如,為了排除或最小化中間人攻擊的風險,其中攻擊者通過使用欺詐數據替換用戶意在提交至應用的交易數據來幹預交易(例如,攻擊者可以在貨幣轉移交易中改變了目標帳號),應用可以驗證由用戶提交至應用的交易數據是否有效地與用戶在安全讀取器上審查和批准並且通過卡籤名的數據相符。為了進行該驗證,應用可以驗證日誌文件上的讀取器籤名和卡籤名,並且驗證已籤名的日誌文件與根據應用的預期和安全策略應當發生的事件是否相符。在典型的實施方式中,應用的安全策略要求由用戶在安全讀取器上審查和批准交易數據的表示並且由卡來籤名同一交易數據的表示。在一些實施方式中,應用還可以要求用戶的審查和批准以及卡的籤名在同一會話中發生。在一些實施方式中,應用還可以要求在該會話中沒有其他數據被呈現給用戶來供審查和批准並且/或者沒有其他數據被卡籤名。在典型的實施方式中,讀取器被配置成記錄由用戶在讀取器上執行的數據的所有數據審查和批准,並且記錄由卡籤名的所有數據(例如,通過記錄可以包括所有智慧卡命令的一組透明智慧卡命令)。在一些實施方式中,應用要求所提交的交易數據和由用戶在讀取器上審查和批准的數據和由卡籤名的數據是相同的。在一些實施方式中,應用不要求這些數據相同但是要求在它們之間存在一些預定義的關係。例如,在一些實施方式中,由用戶審查的數據可以包括所提交的數據或者由卡籤名的數據的子集或概要。例如,除了由用戶審查的數據之外,由卡籤名的數據可以包括對用戶沒有意義的並且因此不被呈現給用戶以供審查的一些數據元素(如交易序列號)。例如,所提交的交易數據可以包括可變交易數據連同標準條款和條件的龐大列表,並且僅可變交易數據被有效地呈現給用戶用於在安全讀取器上審查。
[0180]在下面的示例性步驟中,應用驗證是否已經由用戶審查和批准了正確的數據以及是否已經由卡籤名了正確的數據。
[0181]驗證卡籤名
[0182]在步驟(344)中,應用驗證卡的籤名是否與應用意在要由卡來籤名的數據相符。這可以藉助於驗證數據籤名的傳統技術來完成。例如在典型的實施方式中,通過對要被籤名的數據進行哈希操作以及卡利用其私鑰對所得到的哈希進行加密來獲得籤名。在這樣的情況下,可以通過使用與卡的私鑰對應的公鑰對籤名進行解密並且將解密結果與假定已經由卡籤名的數據的哈希相比較來驗證籤名。
[0183]日誌文件的應用副本的驗證或匯集
[0184]在步驟(346)中應用驗證或匯集讀取器已籤名的日誌的內容。
[0185]在一些實施方式中,應用已經從讀取器檢索到已籤名的日誌的內容並且驗證這些內容是否與應用假設已經發生的事件和動作一致。例如,應用可以驗證日誌是否表示是否已經將數據呈現給用戶以供審查和批准,已經將哪些數據呈現給用戶以及用戶是已經批准還是已經拒絕這些數據。應用還可以例如驗證在與其中由用戶批准數據的會話相同的安全記錄會話的過程中是否已經生成從卡獲得的卡籤名。應用可以例如驗證是否在與由用戶批准的數據相同的日誌文件中已經記錄了卡籤名。應用可以例如驗證日誌文件中的特定時間戳是否在應用的容受極限範圍內。
[0186]在其他實施方式中,應用通過其自己記錄讀取器應當記錄的所有動作和事件並且應用假設讀取器應用的同樣的記錄機制和規則來匯集讀取器所匯集的日誌文件的假設副本。例如在典型的實施方式中,讀取器可以在安全記錄模式下記錄其與應用交換的所有讀取器命令和透明智慧卡命令(以及他們相應的響應),並且應用可以以完全相同的方式記錄其假設與讀取器交換的所有讀取器命令和透明智慧卡命令。該組所交換的讀取器命令和透明智慧卡命令包括向用戶呈現數據以供審查和批准的任意讀取器命令和使卡生成籤名的任意透明智慧卡命令。
[0187]關於日誌文件的讀取器籤名的驗證
[0188]在步驟(348)中,應用驗證讀取器籤名是否與其已經檢索到的或所匯集的日誌文件的內容匹配。這可以藉助於驗證數據籤名的傳統技術來完成。例如在典型的實施方式中,通過對要被籤名的數據進行哈希操作以及讀取器使用其私鑰對所得到的哈希進行加密來獲得籤名。在這樣的情況下,可以通過使用與讀取器的私鑰對應的公鑰對籤名進行解密以及將解密結果與假定已經由讀取器籤名的數據(即,日誌文件的內容)的哈希相比較來驗證籤名。[0189]驗證正確的數據是否已由用戶批准
[0190]在步驟(350)中,應用驗證由用戶批准的數據是否與由卡籤名的數據匹配以及/或者由用戶批准的數據是否與所提交的交易數據匹配。在一些實施方式中(例如在應用自己匯集日誌文件的應用副本的實施方式中),這可以是隱式的。在其他實施方式中,該步驟可以是顯式的(例如,在應用檢索日誌文件的內容的實施方式中,應用可以驗證在日誌文件中記錄的已經由用戶批准的數據是否與應用意在由用戶審查和批准的數據相符)。
[0191]已籤名的日誌文件內容是否與交易數據一致的驗證
[0192]應用可以驗證所提交的交易數據是否與根據日誌文件已經由用戶審查和批准的數據一致以及/或者所提交的交易數據和/或這些已審查和已批准的數據是否與由卡籤名的數據一致。
[0193]在一些實施方式中,應用可以驗證日誌文件中的特定時間戳是否與特定交易事件的時間一致。
[0194]生成用戶批准確認信號
[0195]在步驟(352)中,當成功地完成上述驗證時,應用可以生成確認用戶批准了交易的信號;否則應用可以生成表示驗證失敗的信號。
[0196]執行交易
[0197]在步驟(354 )中,應用可以通過執行交易來按照該確認信號行動。
[0198]在一些實施方式中,如果上述驗證中的任何驗證失敗,則應用會中止或取消交易。
[0199]方法步驟的順序
[0200]雖然在上文已經以在典型實施方式中可以執行這些步驟的順序描述了本方法的步驟,但在其他實施方式中,可以以另一種順序來執行一些步驟,可以省略一些步驟,可以添加額外的步驟,可以將一些步驟與其他步驟合併,以及一些步驟可以包括可以與其他步驟的子步驟交織的子步驟。
[0201]例如在很多實施方式中,應用可以在各種時刻交換透明智慧卡命令:在讀取器進入安全記錄模式之前或然後,在使讀取器向用戶呈現數據以供審查和批准之前或然後,在使卡對數據進行籤名之間或然後,…。例如,應用可以在進入安全記錄模式之前與智慧卡交換一系列智慧卡命令來確定卡的類型並且讀取卡的公鑰證書(例如,確定用戶身份),並且基於從而獲得的信息來設置讀取器的記錄配置參數(例如,以表示應當記錄哪些透明智慧卡命令,透明智慧卡命令可以是智慧卡類型的函數)。
[0202]雖然在典型的實施方式中,讀取器向用戶呈現數據以供審查和批准的步驟在卡對數據進行籤名的步驟之前發生,在一些實施方式中,在要求用戶批准數據之前數據可以已經被提交至卡用於籤名。
[0203]在一些實施方式中,使讀取器進入安全記錄模式的步驟可以與將要由用戶來審查和批准的數據提交至讀取器的步驟同時發生。例如,在一些實施方式中,當讀取器接收用於呈現要由用戶審查和批准的數據的讀取器命令時,讀取器自動進入安全記錄模式。
[0204]本發明的優點
[0205]在典型的實施方式中,讀取器和應用被布置使得確保讀取器可以記錄由用戶批准的數據和由卡籤名的數據二者。在典型的實施方式中,讀取器和應用還可以被布置使得確保讀取器可以記錄應用在安全記錄會話過程中提交至讀取器要由用戶來審查和批准的任何數據,並且可以記錄在安全記錄會話過程中提交至卡用於籤名的任何數據。
[0206]例如,在一些實施方式中,讀取器可以記錄能夠用於指示讀取器向用戶呈現數據的所有讀取器命令,並且讀取器還可以記錄寬的一組透明智慧卡命令(例如所有透明智慧卡命令)使得確保當讀取器處於安全記錄模式下時讀取器可以記錄提交至讀取器用於呈現給用戶的任何數據和提交至卡用於籤名的任何數據。在一些實施方式中,應用可以配置讀取器的記錄規則並且讀取器也可以始終記錄記錄規則,並且應用配置記錄規則使得讀取器可以記錄能夠用於指示讀取器向用戶呈現數據的任何讀取器命令和能夠用於向卡提交數據用於籤名的透明智慧卡命令。
[0207]在這樣的典型實施方式中,應用能夠獲得使由用戶在安全讀取器上批准的數據和由卡籤名的數據相關聯的密碼學證據。更具體地,通過驗證卡籤名,應用能夠驗證由卡有效地籤名了那些數據;通過驗證對日誌的讀取器籤名,應用此外能夠驗證由用戶實際審查和批准了哪些數據(以及應用當然還能夠驗證數據被有效地審查和批准的事實);以及通過驗證日誌的內容和對日誌的讀取器籤名,應用能夠驗證數據批准和數據籤名使用同一讀取器發生在同一安全記錄會話中,以及在該同一會話中沒有批准和/或籤名其他數據;以及通過將根據日誌由用戶批准的數據和根據日誌由卡籤名的數據相比較,應用能夠驗證由用戶批准的數據與已籤名的數據相匹配。
[0208]以這種方式,本發明解決了其中不能夠排除對應於卡籤名的數據與由用戶例如在不安全PC的顯示器上已經批准的數據不相符的現有技術的安全問題。另外,能夠通過根據本發明的不要求具有關於任何具體智慧卡的該組智慧卡命令的任何知識的讀取器來實現該解決方案,使得讀取器的固件不需要能夠了解、解析或構造特定用於對數據進行籤名的特定智慧卡命令。這具有以下優點:一方面讀取器能夠與多種卡(具有非常不同的命令組)一起使用並且在要使用新類型的卡的情況下不需要任何固件更新,同時相對於智慧卡命令的處理,讀取器的固件能夠保持相對簡單。
[0209]通常,除非另有說明,或除非根據上下文明確,可以將上述段落中的術語「命令」(如在「卡命令」或「讀取器命令」中)理解為或者在嚴格的意義上僅包括命令本身或者包括命令本身和相應的響應二者。
[0210]通常,除非另有說明,或除非根據上下文明確,可以將上述段落中的術語「將數據添加至日誌」理解為將數據完全照原樣添加至日誌文件或將表示這些數據的數據(如包括這些數據的數據或這些數據的哈希)添加至日誌文件二者。
[0211]具體地,除非另有說明,或除非根據上下文明確,當使用術語「記錄卡命令」或「記錄讀取器命令」時,則其可以理解為包括記錄命令-響應對或表示命令-響應對的有效荷載的數據,即實際命令和對應於該命令的響應或表示他們各自的有效荷載的數據。例如,在一些實施方式中,當記錄命令-響應對時,可以省略命令的一些部分或響應的一些部分如對於響應狀態碼的命令報頭的特定字節的平凡值。此外,在一些實施方式中,對於特定命令-響應對僅記錄實際命令有效荷載或僅記錄響應有效荷載。
[0212]已經關於若干部件之間的交互作用描述了上述系統和設備。應當理解,根據上述系統和設備的各種置換和組合,這樣的系統和部件可以包括這些部件或指定的子部件、指定部件或子部件中的特定部件或子部件、和/或另外的部件。子部件還可以實現為通信上耦接至其他部件的部件,而非包括在父部件內(分級結構)。此外,應當注意,可以將一個或更多個部件合併成提供綜合功能的單個部件或者分成若干分離的子部件,並且,可以設置任意一個或更多個中間層(如管理層),使其通信上耦接至這樣的子部件,以提供綜合功能。本文中描述的任意部件還可以與本文中沒有具體描述但是本領域技術人員通常了解的一個或更多個其他部件交互。
[0213]已經描述了多個實現,然而,需要理解的是可以作出各種修改。例如,可以組合、刪除、修改或補充一個或更多個實現的元素以形成另外的實現。作為又一示例,在附圖中描繪的邏輯流程不要求示出的具體順序或串行順序以實現期望的結果。另外,可以向所描述的流程提供其他步驟或可以從所描述的流程中去除步驟,或者可以將其他部件添加至所描述的系統或從所描述的系統中去除其他部件。例如,模塊或部件不需要執行歸屬於上述實現中的模塊的所有功能或功能中的任意功能,並且可以通過另一模塊或部件、另一另外的模塊或部件來執行或並不執行歸屬於上一個模塊或部件的所有功能或功能中的任意功能。因此,其它實現在所附權利要求的範圍之內。
[0214]此外,雖然可能僅關於若干實現中的一個實現公開了本發明的具體特徵,然而,如果對於任意給定或特定應用是期望的且有利的,則這樣的特徵可以與其他實現的一個或更多個其他特徵合併。此外,就詳細描述或權利要求中所使用的術語「包括」、「具有」、「包含」及其變型以及其他相似的詞語而言,這些用語意在與作為開放式過渡詞的術語「包括」相類似的方式是包括性的,而不排除任意另外的或其他的元素。
[0215]雖然在上文已經描述了本發明的各種實施方式,但是應當理解的是它們僅以示例而不是限制的方式被呈現。具體地,當然,為了描述所要求保護的主題的目的,不能描述部件或方法的每個能夠想到的組合,但是本領域的技術人員可以承認本發明的許多另外的組合和排列都是可能的。因此,本發明的廣度和範圍不應受到任何上述示例性實施方式的限制,而是應當僅根據所附權利要求及其等同來限定。
【權利要求】
1.一種用於結合所插入的智慧卡生成電子籤名的智慧卡讀取器,包括: 通信接口,用於與主計算機通信; 智慧卡連接器,用於與所述智慧卡通信; 第一存儲器部件,用於安全地存儲一個或更多個密碼學鑰; 第二存儲器部件,用於存儲日誌; 用戶接口,包括用於向用戶呈現信息的用戶輸出接口以及用於接收用戶指示的用戶輸入接口 ; 數據處理部件,用於與所述主計算機通信、與所述智慧卡通信以及驅動所述用戶接口, 所述智慧卡讀取器適於使用所述智慧卡連接器與智慧卡交換智慧卡命令; 所述智慧卡讀取器還適於工作在安全記錄模式下,在所述安全記錄模式下,所述智慧卡讀取器在所述日誌中記錄關於所述讀取器或所述讀取器的使用的安全相關事件;並且 所述智慧卡讀取器還適於使用存儲在所述第一存儲器中的所述一個或更多個密碼學鑰中的至少一個密碼學鑰來生成所述日誌上的讀取器籤名。
2.根據權利要求1所述的智慧卡讀取器,還適於執行從所述主計算機接收到的讀取器命令並且在所述日誌中 記錄所接收到的讀取器命令中的至少一些讀取器命令。
3.根據權利要求2所述的智慧卡讀取器,還適於支持用於指示所述讀取器執行以下操作的一個或更多個讀取器命令:向用戶呈現數據以供用戶審查和批准;使用所述輸出接口向用戶呈現所述供審查和批准的數據;使用所述輸入接口捕捉用戶對所述供審查和批准的數據的批准或拒絕;以及在所述日誌中記錄所述供審查和批准的數據。
4.根據權利要求3所述的智慧卡讀取器,還適於在所述日誌中記錄在所述主機與所述智慧卡之間交換的至少一些透明智慧卡命令。
5.根據權利要求4所述的智慧卡讀取器,其中,所述讀取器記錄的透明智慧卡命令包括用於向所插入的所述智慧卡提交要由所述智慧卡籤名的數據的透明智慧卡命令。
6.根據權利要求4所述的智慧卡讀取器,其中,所述讀取器記錄的透明智慧卡命令包括用於從所插入的所述智慧卡獲得所生成的對所提交的數據的電子卡籤名的透明智慧卡命令。
7.根據權利要求4所述的智慧卡讀取器,其中,所述讀取器適於在從第一時間點至第二時間點的時段內記錄所有透明智慧卡命令。
8.根據權利要求7所述的智慧卡讀取器,其中,其中所述讀取器記錄所有透明智慧卡命令的時段包括:其中將要被籤名的數據提交至所插入的所述智慧卡的時段;或者其中從所插入的所述智慧卡獲得所生成的對所提交的數據的電子卡籤名的時段。
9.根據權利要求1所述的智慧卡讀取器,其中,所述讀取器存儲至少部分地確定所述讀取器記錄哪些事件的一組配置數據。
10.根據權利要求9所述的智慧卡讀取器,其中,所述讀取器適於記錄當前組配置數據。
11.根據權利要求10所述的智慧卡讀取器,其中,所述讀取器支持用於改變所述組配置數據的一個或更多個讀取器命令。
12.根據權利要求1所述的智慧卡讀取器,還包括時鐘並且適於向所述日誌添加一個或更多個時間戳。
13.根據權利要求12所述的智慧卡讀取器,其中,所述讀取器適於向所記錄的事件中的至少一些事件添加時間戳。
14.根據權利要求1所述的智慧卡讀取器,還適於通過讀取器命令接收挑戰並且記錄所接收到的挑戰。
15.根據權利要求1所述的智慧卡讀取器,還包括計數器並且還適於記錄與所述計數器相關的值。
16.根據權利要求15所述的智慧卡讀取器,其中,所述讀取器還適於當進入所述安全記錄模式時或者當生成所述日誌上的所述讀取器籤名時自動遞增計數器值。
17.根據權利要求1所述的智慧卡讀取器,其中,所述日誌包括多個日誌文件,並且其中,所述日誌上的所述讀取器籤名包括對所述多個日誌文件的多個籤名。
18.根據權利要求1所述的智慧卡讀取器,還適於支持用於驗證用戶身份的讀取器命令。
19.根據權利要求18所述的智慧卡讀取器,還適於記錄驗證所述用戶身份的結果。
20.根據權利要求18所述的智慧卡讀取器,還適於請求用戶在所述用戶輸出接口上輸入PIN值、在所述用戶輸入接口上捕捉用戶輸入的PIN值、並且將所捕捉到的PIN值提交至所插入的所述智慧卡以供驗證。
21.一種用於生成對 要被籤名的數據的電子籤名的方法,包括以下步驟: 將智慧卡讀取器連接至主計算機; 將智慧卡插入所述讀取器中; 所述讀取器進入安全記錄模式; 向所述讀取器提交供用戶審查和批准的數據; 由所述讀取器使用所述讀取器上的用戶輸出接口來向用戶呈現所述供用戶審查和批准的數據; 由所述讀取器使用所述讀取器上的用戶輸入接口來捕捉用戶對所呈現的數據的批准; 由所述讀取器在所述讀取器上的日誌中記錄所述供審查和批准的數據; 向所插入的所述智慧卡提交要被籤名的數據,然後由所插入的所述智慧卡生成對所提交的要被籤名的數據的電子卡籤名,然後從所插入的所述智慧卡獲得所生成的對所提交的數據的電子卡籤名;以及 由所述讀取器使用利用存儲在所述讀取器中的密碼學鑰而被參數化的密碼學數據籤名算法來生成對所述讀取器上的日誌的電子讀取器籤名,然後獲得由所述讀取器生成的對所述日誌的電子讀取器籤名。
22.根據權利要求21所述的方法,還包括如下步驟:由所述讀取器在所述讀取器上的日誌中記錄被提交至所述卡的要被籤名的數據或者由所插入的所述智慧卡生成的電子卡籤名。
23.根據權利要求22所述的方法,其中,向所插入的所述智慧卡提交要被籤名的數據並且從所插入的所述智慧卡獲得所生成的對所提交的數據的電子卡籤名包括:所述主計算機使用所述智慧卡讀取器來與所插入的所述智慧卡交換透明智慧卡命令;並且其中,由所述讀取器在所述讀取器上的日誌中記錄被提交至所述卡的要被籤名的數據或者由所插入的所述智慧卡生成的電子卡籤名包括:由所述讀取器在所述讀取器上的日誌中記錄所交換的透明智慧卡命令中的至少一些透明智慧卡命令。
24.根據權利要求23所述的方法,其中,所述主計算機使用所述智慧卡讀取器與所插入的所述智慧卡交換的透明智慧卡命令至少包括:用於向所插入的所述智慧卡提交要被籤名的數據的透明智慧卡命令;並且其中,所述讀取器在所述讀取器上的日誌中記錄的所交換的透明智慧卡命令中的至少一些透明智慧卡命令至少包括:用於向所插入的所述智慧卡提交要被籤名的數據的透明智慧卡命令;或者用於從所插入的所述智慧卡獲得所生成的對所提交的數據的電子卡籤名的透明智慧卡命令。
25.根據權利要求23所述的方 法,其中,所述讀取器在所述讀取器上的日誌中記錄的所交換的透明智慧卡命令中的至少一些透明智慧卡命令包括在特定時段期間交換的所有透明智慧卡命令。
26.根據權利要求25所述的方法,其中,其中所述讀取器記錄所有所交換的透明智慧卡命令的時段包括:其中將要被籤名的數據提交至所插入的所述智慧卡的時段;或者其中從所插入的所述智慧卡獲得所生成的對所提交的數據的電子卡籤名的時段。
27.根據權利要求21所述的方法,還包括在所述讀取器上配置至少部分地確定所述讀取器在所述讀取器上的日誌中記錄哪些事件的一組配置數據。
28.根據權利要求27所述的方法,還包括如下步驟:由所述讀取器在所述讀取器上的日誌中記錄當前組配置數據。
29.根據權利要求28所述的方法,還包括配置所述組配置數據使得所述讀取器在所述讀取器上的日誌中記錄所述供審查和批准的數據。
30.根據權利要求28所述的方法,還包括配置所述組配置數據使得所述讀取器在所述讀取器上的日誌中記錄被提交至所述卡的要被籤名的數據或者由所插入的所述智慧卡生成的電子卡籤名。
31.根據權利要求27所述的方法,還包括配置所述組配置數據使得所述讀取器在所述讀取器上的日誌中記錄用於向用戶呈現數據供審查和批准的讀取器命令。
32.根據權利要求27所述的方法,還包括配置所述組配置數據使得所述讀取器在所述讀取器上的日誌中記錄一組透明智慧卡命令。
33.根據權利要求32所述的方法,還包括配置所述組配置數據使得所述讀取器在所述讀取器上的日誌中記錄包括用於向所插入的所述智慧卡提交要被籤名的數據或者用於從所插入的所述智慧卡獲得被提交至所述智慧卡的數據上的所生成的電子籤名的智慧卡命令的一組透明智慧卡命令。
34.一種用於保護用戶訪問應用的方法,包括以下步驟: 向用戶提供用於對數據進行籤名的智慧卡; 向用戶提供根據權利要求1所述的智慧卡讀取器; 提供與來自與所述讀取器連接的主計算機的應用的用戶交互; 匯集交易數據; 匯集與所匯集的交易數據相關的要被審查和批准的數據; 匯集與所匯集的交易數據相關的要被籤名的數據; 確保所述智慧卡被插入所述智慧卡讀取器中;確保所述讀取器進入安全記錄模式; 向所述讀取器提交供用戶審查和批准的數據; 由所述讀取器使用所述讀取器上的用戶輸出接口來向用戶呈現所述供用戶審查和批准的數據; 由所述讀取器使用所述讀取器上的用戶輸入接口來捕捉用戶對所呈現的數據的批准; 由所述讀取器在所述讀取器上的日誌中記錄所述供審查和批准的數據; 向所插入的所述智慧卡提交要被籤名的數據,然後由所插入的所述智慧卡生成對所提交的要被籤名的數據的電子卡籤名,然後從所插入的所述智慧卡獲得所生成的對所提交的數據的電子卡籤名; 由所述讀取器在所述讀取器上的日誌中記錄被提交至所述卡的要被籤名的數據或者由所插入的所述智慧卡生成的電子卡籤名; 由所述讀取器使用利用存儲在所述讀取器中的密碼學鑰而被參數化的密碼學數據籤名算法來生成對所述讀 取器上的日誌的電子讀取器籤名,然後獲得由所述讀取器生成的對所述日誌的電子讀取器籤名; 驗證所獲得的電子卡籤名; 驗證所獲得的由所述讀取器生成的對所述日誌的電子讀取器籤名; 驗證由所述讀取器籤名的所述日誌與所匯集的交易數據之間的一致性。
35.根據權利要求34所述的方法,其中,向所插入的所述智慧卡提交要被籤名的數據包括:在所述主計算機與所插入的所述智慧卡之間交換用於向所述智慧卡提交要被籤名的數據的透明智慧卡命令;並且其中,由所述讀取器在所述讀取器上的日誌中記錄被提交至所述卡的要被籤名的數據或者由所插入的所述智慧卡生成的電子卡籤名包括:記錄在所述主計算機與所插入的所述智慧卡之間交換的、用於向所述智慧卡提交要被籤名的數據或者用於檢索被提交至所述卡以供籤名的數據上的由所插入的所述智慧卡生成的電子卡籤名的透明智慧卡命令。
【文檔編號】G06F21/55GK104040555SQ201280065615
【公開日】2014年9月10日 申請日期:2012年11月14日 優先權日:2011年11月14日
【發明者】哈爾姆·布拉姆斯 申請人:威斯科數據安全國際有限公司