專利名稱:一種用于電子交易的密碼系統(tǒng)和方法
本申請是申請日為1999年5月5日,申請?zhí)枮?9807072.6,發(fā)明名稱為“一種用于電子交易的密碼系統(tǒng)和方法”的發(fā)明專利申請的分案申請。
本發(fā)明涉及用于安全電子交易的密碼系統(tǒng)和方法,更具體地說,涉及一種電子卡,該電子卡采取“智能卡”和/或其等效軟件的形式。
通稱“智能卡”一般表示集成電路(IC)卡,即,嵌有微芯片的信用卡大小的塑料片。智能卡上的IC芯片通常,但不是必須地,由微處理器(CPU),只讀存儲器(ROM),隨機存取存儲器(RAM),輸入/輸出裝置,和諸如電可擦可編程只讀存儲器(EEPROM)之類的一些持久性存儲器組成。該芯片能實現算術計算,邏輯處理,數據管理以及數據通信。
智能卡主要分成接觸式和非接觸式兩種。國際標準組織(ISO)已在ISO系列下制定了關于這種電子卡的規(guī)范。特別地,ISO 7816適用于集成電路卡。由于其具有計算能力,智能卡可支持許多安全特征,例如認證,安全讀/寫,對稱性密鑰和非對稱性密鑰加密/解密。這些智能卡安全特征使智能卡非常適合于電子商務,在電子商務中,數據安全和認證是最重要的。
智能卡已被應用于許多特定領域中,例如公共交通,健康保險,停車場,校園,加油站等等。并且其在電子商務和其它金融領域中的潛在應用,正在以較快的步伐日益普及。在1996年5月28日授予Robert S.Power的美國專利No.5521362,“具有多個存儲器以防止欺詐使用的電子錢包及其方法”描述了一種電子錢包應用。Power的發(fā)明證明了智能卡被用作安全的金融工具的能力,而不僅僅是用作存儲裝置。
隨著技術的進步,使智能卡芯片的計算速度越來越快,存儲器容量越來越大,“多用途智能卡”的概念日益變得從經濟上和物理上均是可行的。1996年6月25授予Douglas C.Tarylor的美國專利No.5530232,“多用途數據卡”描述了一種多用途卡,該多用途卡能夠代替各種現有的單用途卡,并能滿足金融和非金融要求。該多用途卡使用常規(guī)的數據鏈路連接智能卡和遠程服務提供商。Taylor的多用途卡專利并不涉及任意類型的開放式網絡或加密方法。
1996年8月5日授予Mandelhaum等的美國專利No.5544246,“適于多個服務提供商,并且適于其遠程設置的智能卡”描述了一種智能卡,該智能卡允許不同的服務提供商共存于同一智能卡上。每個服務提供商被看作是智能卡的一個用戶,并由智能卡的發(fā)行者/所有者設置在該智能卡上。允許每個用戶建立樹形文件結構,并利用口令文件保護其樹形文件結構。Mandelbaum的發(fā)明描述了一種允許產生和刪除多種應用的智能卡。Mandelbaum的智能卡通過使用適當的口令文件控制對每種應用的訪問。
1997年9月23日授予Taher Elgamal的美國專利No.5671279,“使用安全信使系統(tǒng)的電子商務”描述了一種利用公鑰/密鑰密碼學,在公用網絡上實現電子商務的系統(tǒng)。Elgamal的專利沒有提及智能卡作為實施電子商務的工具的應用,并且是通過利用數字憑證來驗證電子商務參與者的。安全信使系統(tǒng)需要諸如因特網之類開放式網絡上,交易各方之間的安全通道,例如安全套接層(Secure Socket Layer)(SSL)。
1998年8月4日授予Fox等的美國專利No.5790677,“用于安全電子商務交易的系統(tǒng)和方法”描述了具有位于交易程序之前的登記程序的系統(tǒng)和方法。在登記階段中,每一位交易參與者通過向服務器發(fā)送登記包,登錄信任的憑證約束服務器(trusted credential bindingserver)。服務器根據接收的請求,產生獨特的憑證,并將其發(fā)送給請求發(fā)起者。在交易階段中,交易的發(fā)起者請求,接收并核實商務文件和/或契約的所有預期接受者的憑證,并利用單獨接受者的公鑰對文件和/或契約加密。這樣,各個接收方可解密并訪問只打算供其使用的商務文件。Fox的專利描述了反映所謂的“安全電子交易”(SET)標準的主題的程序,安全電子交易標準是由幾家主要的金融公司和軟件公司目前正在共同支持的一項計劃,以便建立基于電子商務系統(tǒng)的數字憑證和憑證管理機構。
1998年8月18日授予Derek L.Davis的美國專利No.5796840,“提供保密通信的設備和方法”描述了一種半導體器件,該半導體器件能夠產生將在后續(xù)的消息驗證和數據通信中使用的特定于器件的密鑰對。該半導體器件使用公鑰/密鑰密碼學,以確保通信雙方的可靠性。
1996年7月9日授予Simon G.LainR和Matthew P.Bowcock的美國專利No.5534857,“實現智能卡的安全,分散個人化的方法和設備”描述了把來自發(fā)行者的機密數據安全地寫入位于遠方的用戶智能卡的方法和設備。通過使用存儲在保密計算機和零售商智能卡中的公用密鑰,產生用于對保密終端和保密計算機之間的數據傳送進行加密的共同對話密鑰。
根據上面提及的發(fā)明,顯然安全電子商務系統(tǒng)的結構涉及公鑰基礎結構和與之相關的數字憑證管理機構。
開放式網絡中,基于保密密鑰的系統(tǒng)在密鑰分配和密鑰管理方面靈活性較差。另一方面,基于公鑰/密鑰的系統(tǒng)固然有優(yōu)于保密密鑰系統(tǒng)的優(yōu)點,但是也具有自已的使人望而生畏的任務,即使交易各方相互認證。本發(fā)明提出另一種系統(tǒng)和方法,該系統(tǒng)和方法不需要憑證管理機構和數字憑證。本發(fā)明是一種用于電子交易的混合系統(tǒng)。該混合系統(tǒng)在密鑰交換階段內使用公鑰/密鑰,并在交易階段中使用對話密鑰作為保密密鑰。
本發(fā)明是用于使用電子卡(EC)并通過通信網絡聯(lián)系的電子交易的密碼系統(tǒng)和方法,該電子卡呈智能卡或等效軟件的形式。
本發(fā)明的優(yōu)選實施例使用開放式網絡,例如因特網。本發(fā)明的備選實施例可使用其它類型的網絡。本發(fā)明的一個實施例或者使用物理的智能卡,或者使用實現為計算機軟件包,并在諸如個人計算機(PC)之類的計算裝置上運行的智能卡。同樣,交易中涉及的商家可使用作為銷售點終端的商家裝置,或者使用主計算機上的軟件與EC和服務提供商通信的裝置。當使用智能卡時,需要智能卡讀卡器,以允許智能卡與主設備,例如網絡就緒商家終端,PC或者能夠支持智能卡交易的任意其它電子裝置通信。
在基于公共密鑰和數字憑證的系統(tǒng)中,交易參加者通過利用由憑證管理機構(CA)或證書約束服務器簽發(fā)和證明的數字憑證或其它電子證書,交換公共信息。CA或服務器與每個交易參加者之間的通信必須保密。隨機數和數字簽名被用于確保在交易參加者之間傳送的消息的真實性和有效性。
本發(fā)明的優(yōu)選實施例的密碼系統(tǒng)和方法也使用公共/專用密鑰密碼法,不過運用方式稍有不同。本發(fā)明的密碼系統(tǒng)和方法并不試圖建立另一種信任關系,這種信任關系類似于存在于數字憑證持有者和憑證管理機構之間的那種信任關系。本發(fā)明特別地是以大型的會員制金融機構,諸如大型的信用卡公司及其所有持卡人,或者主要銀行和其所有ATM持卡人作為其潛在用戶。非金融機構也可使用這種密碼系統(tǒng)和方法,從而通過網絡執(zhí)行電子商務或非金融交易。
服務提供商(SP)向其會員提供某些服務。金融機構正是一種類型的服務提供商。服務提供商在本質上還可以是非金融的。不論服務提供商是金融機構還是非金融機構,產生的過程基本相同。涉及金融機構的交易和涉及非金融機構的交易之間的唯一區(qū)別是消息可能包括不同的數據字段。
當EC持卡人和服務提供商之一簽訂使用服務契約之后,服務提供商在EC上產生一個專用表目。每個表目含有服務提供商的帳戶信息,SP的公共密鑰,存取控制信息和其它相關數據。每個EC可支持預定數目(例如10)的這種表目,并且每個這種表目代表一個服務提供商。
通過使用公共/專用密鑰密碼學,極大地簡化了密鑰分配過程。EC持卡人他/她自己或者任意受托第三方,例如銀行支行或者甚至郵局都可執(zhí)行密鑰分配工作。SP的公共密鑰只用于SP和持卡人之間的初始密鑰交換。在初始密鑰交換步驟之后,SP分配對話密鑰,對話密鑰保護持卡人和SP之間,或者持卡人他們自己之間的任意進一步消息交換。
這種既使用公共密鑰/專用密鑰密碼學又使用保密密鑰密碼學(即對話密鑰)的混合系統(tǒng)和其它保密密鑰系統(tǒng)的不同之處在于在混合系統(tǒng)中,保密密鑰(即對話密鑰)只對單個對話期有效,不適用于其它對話期。對話期具有確定的時間長度。當超逾時間期限或者當條件被滿足時,對話期會終止。
在交易中涉及商家的情況下,商家經歷大體和EC持卡人相同的程序和SP通信。商家將首先執(zhí)行與SP的密鑰交換,并接收對話密鑰。對話密鑰將由商家用于與SP的后續(xù)通信。持卡人和商家對發(fā)給SP的每條消息進行數字簽名,SP類似地對回送給持卡人和商家的響應消息簽名。
在交易需要與另一基于以電子憑證為交易機制的系統(tǒng)的相互作用的情況下,在基于在初始的密鑰交換之后的進一步信息交換,驗證持卡人和商家之后,SP可充當持卡人和商家的憑證代理人。在最極端的情況下,SP獨立地執(zhí)行該代理功能,變成以電子憑證為交易機制的系統(tǒng)的網關。這種類型的層次結構是非常理想的,因為減少了在多個系統(tǒng)之間,執(zhí)行交易所需的信任關系的數目。另外,用戶因此不必攜帶憑證。
圖1是表示根據本發(fā)明的一個實施例的系統(tǒng)的各個部分之間的系統(tǒng)的方框圖。
圖2表示了經過網絡的這兩個交易階段的流程。
圖3是EC的概略表示。
圖4表示了服務提供商數據區(qū)的格式。每個服務提供商的信息在該表中被分配一個表目,并受到存取條件的保護。
圖5表示了數字簽名是如何用在本發(fā)明的實施例中的。
圖6A-6Q表示了為了通過開放式通信網絡,例如因特網,執(zhí)行電子交易,在本發(fā)明的一個實施例中使用的密碼系統(tǒng)和方法的示意流程圖。
圖7-11描繪了在密鑰階段和交易階段中,組合請求和響應消息的最終格式和內容。
圖12表示了一個服務提供商與被串聯(lián)布置的多個交易參加者進行交易。
圖13表示了一個服務提供商在網絡上與已被布置成層次組織形式的多個交易參加者進行交易。
本發(fā)明的優(yōu)選實施例是一種利用呈智能卡或等效軟件形式的電子卡(EC),并通過通信網絡通信的,用于電子交易的密碼系統(tǒng)和方法。
在本發(fā)明優(yōu)選實施例中,網絡是諸如因特網之類的開放式網絡。在本發(fā)明的備選實施例中,可使用其它開放式網絡和/或封閉式網絡建立服務提供商和其會員之間的通信。例如,服務提供商可使用其自己所有的金融網絡和其會員通信。
任何因特網協(xié)議可用于因特網連接??墒褂玫膮f(xié)議的例子包括TCP/IP,UDP,HTTP等等。
也可借助諸如使用傳統(tǒng)的模擬電話業(yè)務(又名簡易老式電話業(yè)務或POTS)的公用交換電話網絡(PSTN)之類的通信網絡傳送業(yè)務,或者通過使用諸如T-1,E1或DS-3數據電路,綜合業(yè)務數字網絡(ISDN),數字用戶線路(DSL)業(yè)務之類的數字通信業(yè)務,或者甚至使用無線業(yè)務等等,實現通信。當利用這種業(yè)務實現時,可獨立于通信協(xié)議(即,在電子接口層)實現本發(fā)明。
還可借助局域網(LAN)或廣域網(WAN),例如以太網,令牌網,FDDI,ATM等等實現通信??墒褂玫膮f(xié)議的例子包括TCP/IP,IPX,OSI等等。
其它通信鏈路可包括光纖連接,無線RF調制解調器連接,蜂窩調制解調器連接,衛(wèi)星連接等等。
只要在服務提供商和其會員之間可建立通信路徑,即可采用本發(fā)明。上面的例子是用來舉例說明可實踐本發(fā)明的各種通信環(huán)境的幾個例子。本領域的普通技術人員清楚,本發(fā)明并不局限于上面詳述的那些環(huán)境。
EC可采取智能卡或在諸如個人計算機(PC)之類計算機系統(tǒng)上運行的軟件包的形式。當EC被實現為智能卡時,它可用在諸如PC之類的網絡就緒(network-ready)計算機系統(tǒng)上,以便和另一會員和/或選定的服務提供商交易。將需要和計算機系統(tǒng)通信的讀/寫接口裝置,以及連接智能卡持有者和網絡的一些應用軟件,例如因特網瀏覽器。如果EC是載入計算機系統(tǒng)中的軟件包,則不需要讀/寫接口。本發(fā)明關于EC的例證實施例作電子錢包(或者虛擬錢包)的作用,該電子錢包的功能和真實錢包的相類似。真實錢包可帶有信用卡,借記卡,ATM卡,保健卡(health provider card),會員卡,現金等等。EC具有所有上述金融和非金融工具的數字等同物,并能夠通過因特網實施安全交易。
服務提供商會員可以是商家和/或EC卡持卡人。商家是由服務提供商向其支付交易酬金的會員。會員可以既是商家又是EC卡持卡人。商家可參與和其它持卡者的交易,其結果是服務提供商向該商家支付交易酬金。商家還可以是EC卡持卡人,并從例如供貨商那里購買供應品。
密碼系統(tǒng)可包括服務提供商和任意數目的服務提供會員之間的通信。這樣,通信可在EC和SP之間,可在商家和SP之間,可在第一EC,第二EC和SP之間,可在第一商家,第二商家和SP之間,等等。EC可直接和服務提供商通信,以便查詢帳戶余額。商家可以只以其自己的名義,而不是以EC的名義和服務提供商通信,因為,例如商家希望了解他自己與服務提供商的帳戶余額。SP和其會員之間的通信可遵守SP和其會員的任意排列組合。SP和其會員之間的通信鏈路的組織可以是連續(xù)的和/或分層的。SP和其會員之間的通信也可借助路由器實現,路由器在SP和其會員之間按規(guī)定路線發(fā)送消息。
加密方法是一個分為兩階段的密鑰交換-交易模式。第一個階段是密鑰交換階段。第二個階段是交易階段。在密鑰交換階段中,會員和服務提供商交換密鑰。會員把他們的密鑰發(fā)送給服務提供商,服務提供商使用這些密鑰向會員發(fā)送對話密鑰。對話密鑰保護持卡人和SP之間的,或者持卡人他們自己之間的其它消息交換。在交易階段中,SP可主導交易或者持卡人他們自己可實施交易。
圖1是表示根據本發(fā)明的一個例證實施例的系統(tǒng)的各個構成部分之間的關系的方框圖,它涉及一個持卡人,一個商家及一個服務提供商。
EC持卡人20可以經由網絡50實施交易,并且或者通過利用連接在發(fā)端計算機84上的EC讀/寫裝置82,或者通過利用在發(fā)端計算機90運行的EC等效軟件92和商家通信。
商家可通過利用網絡就緒的銷售點(POS)終端40,或者通過利用在商家裝置70上運行的EC等效軟件,經過網絡實施交易,從而經過諸如因特網之類的網絡50與選定的服務提供商60執(zhí)行電子交易。
一旦對EC卡的訪問條件被滿足,則持卡人可通過網絡50執(zhí)行與系統(tǒng)的其它參加者的金融或非金融交易。圖1中表示了可通過網絡執(zhí)行交易的三種不同方案。
(1)在POS交易中(圖1的左上方),持卡人20在商家店鋪內將EC刷過/插入商家的EC讀/寫卡器30。EC讀/寫卡器與網絡就緒的商家POS終端40相連。網絡就緒商家PSO終端40是一個防止篡改的可編程裝置,它包括諸如鍵盤之類的輸入裝置,顯示器,處理器和EC讀/寫卡器30(EC接口裝置)。POS終端40通常是一個小型計算機,例如裝有與開放式網絡的通信鏈路的PC。POS終端經過網絡50與SP通信。
(2)(圖1的右側)持卡人可通過把EC 20插入讀/寫裝置82,執(zhí)行與系統(tǒng)的其它參加者的交易,讀/寫裝置82與為發(fā)端計算機的持卡人的個人計算機84相連。發(fā)端計算機和網絡50相連,使EC能夠和商家計算機70通信。商家計算機70具有使商家能夠接收EC產生的消息,并產生組合EC信息和商家信息的消息的EC等效軟件72。隨后,組合的消息經過網絡被發(fā)送給SP。
(3)(圖1的下方)持卡人可通過利用用戶持卡人的個人計算機90上的EC等效軟件92,執(zhí)行與系統(tǒng)的其它參加者的交易。交易開始于發(fā)端計算機90,即,持卡人的個人計算機。持卡人通過網絡50實施交易,并與商家的計算機70通信,商家的計算機70再經過網絡50與SP 60通信。
在本發(fā)明的優(yōu)選實施例中,個人計算機被用于保持EC等效軟件,而在本發(fā)明的備選實施例中,其它電子裝置可用于保持EC等效軟件。
在本發(fā)明的優(yōu)選實施例中,用于使EC能夠和商家通信的網絡和用于使商家能夠與SP通信的網絡相同。在另一實施例中,用于使EC能夠與商家通信的網絡可以不同于用于使商家能夠與SP通信的網絡。在又一實施例中,用于使一個商家能夠與SP通信的網絡可不同于用于使另一商家能夠與該SP通信的網絡。在又一實施例中,用于使EC能夠與商家通信的網絡可不同于用于使另一EC能夠與另一商家通信的網絡。一個實施例可由多樣性的網絡組成,不同的交易各方借助這些網絡通信。
在本發(fā)明的優(yōu)選實施例中,交易被分為兩個階段密鑰交換階段和交易階段。圖2是一個特例,圖2圖解說明了SP主導交易階段的兩階段密鑰交換-交易模式。當SP主導交易時,交易參加者之間不存在任何敏感性信息的直接交換。
在交易階段位于持卡人他們自己之間,以及在SP主導交易階段的情況下,密鑰交換階段都是相同的。在交易階段位于持卡人他們自己之間的情況下,持卡人使用SP對話密鑰相互通信,并執(zhí)行交易。
圖2展示了SP主導交易階段的金融交易。所示的交易涉及三方EC(交易發(fā)起者)102,商家104和服務提供商(SP)106。發(fā)起方是作為顧客的EC持卡人,并由計算機102表示。計算機104代表商家。計算機106代表服務提供商。SP由EC和商家雙方選擇。
圖2表示了處理流程從EC到商家,再到SP的金融交易。加密方法的處理流程并不局限于商家和EC持卡人之間的任意特定順序。圖2僅僅是從EC至商家,再至服務提供商的特定交易的一個例子。處理流程也可從商家至EC,再到服務提供商。圖2展示了服務提供商會員(這種情況下,為EC持卡人和商家)是如何產生,附加及向服務提供商發(fā)送消息的。
圖2中編號為1-10的10個箭頭表示了在這兩個交易階段中,消息是如何在交易三方之間流動的。步驟1-4屬于密鑰交換階段,步驟5-10屬于交易階段。在圖2中,商家作為EC和SP之間的中介。在步驟1中,EC格式化產生密鑰交換請求,并把該請求發(fā)送給商家。在步驟2中,商家組合自己的密鑰交換消息和EC的密鑰交換消息,并把組合的密鑰交換消息發(fā)送給SP。在步驟3中,SP格式化產生一個給商家的密鑰交換響應,格式化產生一個給EC的密鑰交換響應,組合這兩個密鑰交換響應,從而形成組合的密鑰交換響應,并把組合的密鑰交換響應發(fā)送給商家。在步驟4,商家使發(fā)給商家的密鑰交換響應和發(fā)給EC的密鑰交換響應分開,并把EC的密鑰交換響應消息轉發(fā)回EC。步驟4終結密鑰交換階段中的主要活動。
交易階段開始于步驟5。在步驟5中,EC格式化產生其交易請求消息,并把該消息發(fā)送給商家。在步驟6中,商家組合接收的交易請求消息和它自己的交易請求消息,并把組合的交易請求消息發(fā)送給SP。在步驟7中,SP格式化產生一個給商家的交易響應消息,格式化產生一個給EC的交易響應消息,組合這兩個交易響應消息,并把組合的交易響應消息發(fā)送回商家。在步驟8中,商家使發(fā)給商家的交易響應消息和發(fā)給EC的交易響應消息分開,并把EC的交易響應消息轉發(fā)回EC。在步驟9中,EC格式化產生確認消息,并把確認消息發(fā)送給商家。在步驟10中,商家組合接收的確認消息和它自己的確認消息,并把組合的確認消息發(fā)送給SP。步驟10終結交易的交易階段。
雖然圖2展示了一個簡單的交易,但是一些交易可能涉及多個消息。在一些交易過程中,為了完成每個階段,可能需要一個以上的消息,即使是這種情況下,這些消息仍將遵守相同的組合規(guī)則和流程模式。例如,在交易階段中,SP可能要求EC和商家首先發(fā)送帳戶信息。如果帳戶信息被驗證為有效的,則SP在響應消息中發(fā)送帳戶信息的確認消息。一旦商家和EC接收該響應消息,則EC和商家在傳送給SP的下一消息中發(fā)送交易金額和其它與交易相關的信息。SP隨后批準或否決該交易。圖2中的步驟既適用于帳戶消息,又適用于交易消息。
如果交易的完成要求和諸如基于公鑰和數字憑證的系統(tǒng)108之類的外界系統(tǒng)的的交互作用,則SP將起EC和商家的憑證代理人的作用,并以EC和商家的名義與外界系統(tǒng)打交道。本發(fā)明的一個理想結果是使交易的所有參加者與外界系統(tǒng)隔絕,從而降低完成交易所需的信任關系的數目。如果交易的一個參加者具有本系統(tǒng)和外界系統(tǒng)的雙重會員身份,則他可以選擇充當本系統(tǒng)的會員或者充當外界系統(tǒng)的會員。在后一情況下,SP將利用外界系統(tǒng)的規(guī)則面接該參加者。例如,為了和基于公鑰和數字憑證或證書的外界系統(tǒng)打交道,SP在其所有物中具有滿足外界系統(tǒng)要求的信任關系的全部所需憑證或證書。為了SP和外界系統(tǒng)完成由EC和商家發(fā)起的交易,需要這樣的憑證。這種情況下,只有SP需要具有與外界系統(tǒng)的信任關系?;谶@種信任關系,單個的EC和商家能夠和假定的外界系統(tǒng)完成交易。
圖3表示了EC的一個優(yōu)選實施例。在本發(fā)明的一個優(yōu)選實施例中,EC在內部由圖3中所示的軟件/硬件部分構成。EC基于ISO 7816標準,并支持ISO 7816中規(guī)定的同類型的通信協(xié)議和命令。
EC具有管理EC內部資源的卡操作系統(tǒng)550??ㄉ系募用苎b置650可以軟件的形式實現,或者由加密協(xié)處理器(圖3中未表示),或者其它硬件解決方案,或者軟件和硬件混合物實現。
EC的一個獨有特征是EC存儲器中的服務提供商數據區(qū)(SPDA),該數據區(qū)含有服務提供商的帳戶和密鑰信息。服務提供商數據區(qū)(SPDA)700含有許多存儲槽。在優(yōu)選實施例中,SPDA含有預定確定數目(例如10個)的存儲槽-每個存儲槽用于一個可能的服務提供商。在另一實施例中,存儲槽的數目是可動態(tài)改變的。關于每個服務提供商的記錄可被放入一個空的存儲槽中。每個記錄含有特定服務提供商的帳號、公鑰、以及其它相關信息。
根據EC設計,SPDA可選擇性地允許每個SP包括一些管理其自己的卡上數據,并提供SP卡數據和主應用程序之間的接口的軟件(例如JAVA術語中的“小應用程序”)。換句話說,SPDA不僅可含有簡單的數據;SPDA可允許每個SP把自有的應用程序(例如小應用程序)放到EC上,以便向持卡人提供其所有的獨特服務。這種設計的優(yōu)點是現在使EC自身與它可提供的服務的類型分離開。每個SP可藉此實現其自身的服務能力。當另一SP替換卡上的SP時,不必對EC平臺作任何改變。只需簡單地把新的SP小應用程序載入卡中,新的SP小應用程序將執(zhí)行所設計的功能。
在SPDA中,每個服務提供商都分配有存儲公鑰的空間。在許多交易中,只使用一對密鑰,但是對于一些在線交易來說,需要兩對或更多對的密鑰。如果SP對于輸入的消息和輸出消息的簽名都使用相同的公共密鑰/專用密鑰對,則一個公共密鑰就足夠了。如果SP對于簽名使用不同的密鑰,則在SPDA中需要兩個SP公共密鑰(一個用于輸入消息,另一個用于輸出消息的簽名)。
在本發(fā)明的優(yōu)選實施例中,使用兩對公共密鑰/專用密鑰,而不是一對公共密鑰/專用密鑰,通過網絡與其它應用程序通信,因為使用兩對公共密鑰/專用密鑰比使用一對公共密鑰/專用密鑰的安全性更好。一對用于解密輸入的消息,即,發(fā)送者利用接收者的公共密鑰解密消息,接收者利用對應的專用密鑰解密消息。另一對用于發(fā)送者對他發(fā)送的消息進行數字簽名,接收者使用對應的發(fā)送者的公共密鑰驗證數字簽名。
每個服務提供商分配有用于由服務提供商使用的許多公用密鑰的空間。如果SP對于輸入的消息和輸出消息的簽名都使用相同的公共密鑰/專用密鑰對,則一個公共密鑰就足夠了。如果對于接收消息和對消息簽名,SP使用不同的密鑰對,則在SPDA中,兩種SP的公共密鑰都需要。
在本發(fā)明的一個備選實施例中,為了提供更高的交易安全性,服務提供商可能需要并使用兩對以上的公共密鑰/專用密鑰。
當EC持卡人接受一個新的金融或非金融工具時,發(fā)行機構或信任的第三方將把包含記錄的所需信息載入可用存儲槽中。當服務提供商帳戶被取消時,可消除該存儲槽中的信息。在交易過程中,存儲槽中的一些信息可被讀取并被修改,例如帳戶余額。諸如帳號之類的一些信息受到讀保護,但是可被讀取。諸如專用密鑰之類的一些信息即不能讀又不能寫。存取條件600含有諸如PIN,生物測量數據之類的安全信息,為了打開卡,以便使用或者可以獲得卡上存儲的信息,EC用戶必須提交這種安全信息。
傳統(tǒng)的個人身份識別碼(PIN)或者諸如生物測量數據之類的其它安全措施被用于保護EC。生物測定學涉及持卡人的生物特性,例如物體特征和行為特征的測量。生物測量系統(tǒng)可測量個人的指紋,手的幾何形狀,筆跡,面貌,語音,身體動作,擊鍵節(jié)奏,眼睛特征,呼吸,體味,DNA或者持卡人的任意其它身體屬性。只有在所有存取條件已被滿足之后,才可啟動EC提供的功能。駐留在卡上的每個服務提供商可隨意地實現其它存取條件。
圖4表示了本發(fā)明的優(yōu)選實施例的服務提供商數據區(qū)的格式。在表中,每個服務提供商的信息被分配一個表目,該表目可由附加的存取條件加以保護。PIN 712和雜項數據字段714允許服務提供商要它所支持的工具提供額外的保護或數據字段。名稱字段702含有服務提供商的名稱,在開始在線交易時,持卡人可使用服務提供商的名稱為交易選擇適當的服務提供商。密鑰類型字段704規(guī)定服務提供商選擇使用的密鑰的類型,保密密鑰,公共密鑰等等。密鑰值706和帳戶信息字段708含有每個服務提供商獨有的信息??愋妥侄?10規(guī)定服務提供商支持的工具的類型。
在本發(fā)明的優(yōu)選實施例中,卡上操作系統(tǒng)(COS)為持卡人提供一些基本服務。下面是可由COS執(zhí)行的大致功能的列表(1)諸如存儲器管理,任務管理之類的傳統(tǒng)OS功能。
(2)用戶數據的外部通信-讀/寫和通信協(xié)議處理。
(3)卡上持卡人信息的裝載和更新。
(4)用戶PIN改變。
(5)諸如單個服務提供商信息的裝載和更新之類的服務提供商數據區(qū)管理,SPDA存取控制等等。
COS還將在交易的各個階段內提供支持。例如,COS可在交易開始時處理SP選擇,并當交易完成時,把交易記錄到記錄文件中。本發(fā)明的一個實施例可實現關于COS的下述兩種設計途徑之一,或者這兩種設計途徑的混合。
(1)可把絕大多數情報放入COS中,COS借此支持絕大多數的EC功能。從而,每個卡上服務提供商區(qū)域依賴于COS執(zhí)行與商家和SP的交易。在這種途徑中,COS可為所有的卡上SP提供與外界的統(tǒng)一接口,并且一旦已選擇SP,能夠有效地執(zhí)行交易。
(2)或者,COS可以是每個卡上SP可使用的一般性服務組合。每個SP數據區(qū)可含有小應用程序,這些小應用程序具有執(zhí)行和商家及SP的交易所需的情報。在這種途徑中,當執(zhí)行交易時,SP具有更多的機會實現其自己的獨有特征。
圖5表示了在本發(fā)明的優(yōu)選實施例中,數據簽名是如何被使用的。消息的發(fā)送者首先準備消息M的數據部分900,并使其通過單向散列算法H(*)902。散列算法的輸出被稱為消息M的消息摘要MD 903。隨后利用發(fā)送者的專用密鑰(Pri)對MD加密,即數字簽名,E(*)904。結果被稱為消息M的數字簽名DS。隨后結合該DS和初始消息M 900,形成隨時可通過網絡50傳輸的完整消息906。
公共密鑰加密/解密函數可以是許多加密/解密函數中的任意加密/解密函數。其名字取自RSA開發(fā)者(Ronald Rivest,Adi Shamir和Len Adelman)姓的首個字母的RSA正是公共密鑰加密/解密方法的一個例子,該加密/解密方法可被用在本發(fā)明的一個實施例中。
當預期的接收者從網絡50收到消息時,他首先使消息M的數據部分900和與之相結合的數字簽名912分開。隨后,接收者使消息M的數據部分900通過相同的散列算法910,散列算法910用于對消息M的數據部分900編碼,從而得到消息M的消息摘要MD^911。接收者隨后利用發(fā)送者的公共密鑰,對源始消息中所含的數字簽名912解密,D(*)908,恢復初始的消息摘要,這里初始消息摘要被表示為MD 909。把MD 909和新計算的MD^911進行比較。如果兩者不相同,則初始消息已被破壞,并應被拒絕。
下面是圖5-11中使用的符號和縮寫的列表Acknowledgement DataEC=由EC回送給SP的一部分消息。它通知SP先前的消息已被成功地接收和處理。
Acknowledgement DataM=由商家回送給SP的一部分消息,它通知SP先前的消息已被成功地接收和處理。
AIEC=EC持卡人的帳戶信息。
AIM=商家的帳戶信息。
CRYPTO=密碼。
D=解密功能。
DSP-Private-key=利用SP的專用密鑰進行解密。
DS=數字簽名功能DSEC-Private-Key=由EC簽在消息上的數字簽名。
DSM-Private-Key=由商家簽在消息上的數字簽名。
DSSP-Private-Key=由SP簽在消息上的數字簽名。
E=加密功能。
E(Data)=使用數據加密密鑰進行的數據加密。
ESP-PK,ESP-Public-Key=由SP公共密鑰加密的數據。
ESkey-EC,DSkey-EC=利用SP為EC產生的對話密鑰的加密/解密。
ESkey-M,DSkey-M=利用SP為商家產生的對話密鑰的加密/解密。
EC=電子卡或電子卡等效軟件H(M)=對M應用單向散列算法。它產生M的消息摘要(MD)。
KE=密鑰交換階段。
M=商家MD=消息摘要MD^=由消息接受者利用剛接收的作為輸入數據的消息,產生的消息摘要
MDEC=從EC傳至SP的消息的消息摘要MDM=從商家傳至SP的消息的消息摘要。
MDSP-M=從SP傳至商家的消息的消息摘要。
MDSP-EC=從SP傳至EC的消息的消息摘要。該消息摘要由商家傳遞。
PLAIN TEXT明文,無需加密即可傳送出的交易數據。明文可因不同的消息和交易方而有所不同。
PLAIN TEXTECEC在其輸出消息中提供的部分交易數據。明文數據字段對安全性不敏感。于是,不需加密即可傳送。注意當用在不同的消息中時,該符號的內容可不同。
PLAIN TEXTM商家在其輸出消息中提供的部分交易數據。明文數據字段對安全性不敏感。于是,不需加密即可傳送。注意當用在不同的消息中時,該符號的內容可不同。
PLAIN TEXTSP-ECSP在其輸出消息中,僅僅提供給EC的交易數據的一部分。明文數據字段對安全性不敏感。于是,不需加密即可傳送。注意當用在不同的消息中時,該符號的內容可不同。
PLAIN TEXTSP-MSP在其輸出消息中,僅僅提供給商家的交易數據的一部分。明文數據字段對安全性不敏感。于是,不需加密即可傳送。注意當用在不同的消息中時,該符號的內容可不同。
STD=敏感的交易數據,在傳送過程中需要加密。
STDEC=由EC在其輸出消息是提供的敏感交易數字數據。注意當用在不同的消息中時,該符號的內容可不同。
STDM=由商家在其輸出消息中提供的敏感交易數字數據。注意當用在不同的消息中時,該符號的內容可不同。
PK=公共密鑰EC-PK,PKEC=電子卡的公共密鑰M-PK,PKM=商家的公共密鑰SP-PK,PKSP=選擇的服務提供商的公共密鑰ResPonse DataSP-EC=SP-EC交易響應數據在交易的交易階段中,由SP回送給EC的一部分消息。它可包括批準/否決數據和/或任意其它相關數據。
Response DataSP-M=SP-M交易響應數據在交易的交易階段中,由SP回送給商家的一部分消息。它可包括批準/否決數據和/或任意其它相關數據。
RN=隨機數RNEC=由EC產生的,并被發(fā)送給SP的隨機數。
RNSP-EC=由SP產生的,并被發(fā)送給EC的隨機數。
RNM=由商家產生的隨機數。
RNSP-M=由SP產生的,并被發(fā)送給M的隨機數。
SP=金融或非金融服務提供商。
TA=交易(貨幣)金額交易識別號SP-EC,TIDSP-EC(交易IDSP-EC)=在交易的密鑰交換階段中,其值由SP分配的數據字段。在同一交易過程中,EC將使用該值和SP通信。
交易識別號SP-M,TIDSP-M(交易IDSP-M)=在交易的密鑰交換階段中,其值由SP分配的數據字段。在同一交易過程中,商家將使用該值和SP通信。
*=在加密E或解密D中,數據的組合和級聯(lián)。
圖6A-6Q包括關于密碼系統(tǒng)和方法的優(yōu)選實施例的流程圖。為了簡化圖6A-6Q中所含的說明和符號表示,流程圖假定交易中所涉及的交易各方均使用一對密鑰。在本發(fā)明的另一實施例中,可使用兩對公共密鑰,在這種情況下,這兩對公共密鑰均需要被交換。
本發(fā)明的優(yōu)選實施例由不同的兩個階段組成密鑰交換階段和交易階段。
階段I密鑰交換階段(握手協(xié)商階段)EC持卡人把EC插入讀/寫卡器或者啟動EC等效軟件,并輸入PIN碼和/或滿足存取條件110,以便使用EC卡。把輸入的安全信息條件與卡上信息114進行比較112,以驗證用戶是否被授權使用該EC卡。如果安全信息和卡上的安全信息不匹配,則使用該EC卡的請求被拒絕116。否則,該EC卡就會被開啟118,以供使用。一旦卡被開啟,則用戶可請求可供選擇的卡上SP的列表,并通過向EC發(fā)出SP選擇命令做出選擇120。一旦SP被選擇,則EC進而開始與SP的密鑰交換(KE)。從EC的SPDA得到由符號SP-PK和PKSP代表的選擇的SP的公共密鑰,并用于對將發(fā)送給SP的消息加密。
KE的主要目的是向SP安全地發(fā)送持卡人的公共密鑰PKEC126和EC隨機數RNEC124。SP對EC的響應將向EC賦予對話密鑰和交易ID,它們將由EC使用,以便在余下的交易過程中和SP通信。為了格式化KE消息,EC產生隨機數RNEC124,使之與EC的公共密鑰PKEC126,以及與交易相關的和/或SP所要求的EC敏感交易數據STDEC128級聯(lián)。EC利用從SPDA 120得到的SP的公共密鑰PKSP對它們加密122。隨后把得到的EC密碼EES-PK(RNEC*PKEC*STDEC)和消息的明文部分PLAIN TEXTEC132(如果有的話)相結合130,形成EC組合消息,PLAIN TEXTEC*ESP-PK(RNEC*PKEC*STDEC)。當形成EC組合消息時,EC的公共密鑰PKEC126可被放入明文PLAINTEXTEC中,而不是被加密。
只有敏感數據才被加密。非敏感響應數據包括在明文中。只有SP才能夠讀取敏感數據。在多方交易中,SP具有對所有交易者的敏感信息的完全存取權。
隨后使得到的EC組合消息通過散列算法134,形成散列消息,該散列消息是EC消息摘要MDEC。EC 136利用EC專用密鑰138對EC消息摘要MDEC進行數字簽名,形成數字簽名消息DSEC-Private-Key。隨后命名數字簽名消息DSEC-Private-Key與EC組合消息結合140。明文PLAIN TEXTEC,密碼CRYPTOEC和數字簽名DSEC-Private-Key是來自于EC的KE消息,并通過網絡被發(fā)送給商家158。明文包括所有各種非敏感的交易數據字段,于是可以清晰可辨的形式被傳送;明文不需要加密。這些數據字段因各個消息而不同,并由交易各方確定。
為了和SP通信,商家格式化它自己與SP的KE消息所經歷的步驟和EC格式化自己的與商家的KE消息所經歷的步驟基本相同。持卡人和商家并不單獨與SP通信,而是通過組合消息與SP通信。從而,在持卡人和商家之間,不必交換任何機密的金融信息。商家準備好他自己的用于交易的裝置142,并從駐留在商家的裝置中的他自己的SPDA中,選擇和EC持卡人已為該交易挑選的同一個SP。從SP的SPDA中得到由符號SP-PK和PKSP代表的SP的公共密鑰,并用于對將發(fā)送給SP的消息加密。
為了格式化他自己的KE消息,商家產生隨機數RN148,使之與商家的公共密鑰PKM150和商家的敏感性交易數據STDM級聯(lián),該敏感性交易數據是和交易相關的和/或SP 152所要求的數據。商家利用服務提供商PKSP的公共密鑰,對組合數據加密146。隨后使得到的密碼與消息的明文部分PLAIN TEXTM156(如果有的話)組合154,形成商家組合消息。當形成商家組合消息PLAIN TEXTM*ESP-PK(RNM*PKM*STDM)時,商家的公共密鑰PKM150可放入明文PLAINTEXTM中,而不必被加密。
進一步使商家組合消息[PLAIN TEXTM*ESP-PK(RNM*PKM*STDM)]與EC的KE消息{[PLAIN TEXTEC*ESP-PK(RNEC*PKEC*STDEC)]*DSEC-Private-Key}組合158,形成用于商家和EC的KE消息的數據部分,即,EC-商家組合消息{[PLAINTEXTEC*ESP-PK(RNEC*PKEC*STDEC)]*DSEC-Private-Key}*[PLAINTEXTM*ESP-PK(RNM*PKM*STDM)]。使EC-商家組合消息通過散列算法160,形成散列消息,該散列消息是商家消息摘要MDM。商家利用商家的專用密鑰164對商家消息摘要MDM進行數字簽名162,形成商家數字簽名消息DSM-Private-Key。隨后使商家數字簽名消息DSM-Private-Key和消息的數據部分,即EC-商家組合消息組合166,形成商家和EC的密鑰交換請求消息<<{[PLAIN TEXTEC*ESP-PK(RNEC*PKEC*STDEC)]*DSEC-Private-Key}*[PLAIN TEXTM*ESP-PK(RNM*PKM*STDM)]>>*DSM-Private-Key。最后得到的消息通過網絡被發(fā)送給SP。圖7表示了從商家到SP的密鑰交換請求消息的最后格式和內容。
在本發(fā)明的優(yōu)選實施例中,商家并不檢查EC請求消息的MD,即MDEC,因為EC已對其公共密鑰進行了加密。但是,在備選實施例中,如果EC選擇不對其公共密鑰加密,則商家在把EC的MD傳給SP之前,可隨意地檢查EC的MD。在EC對其公共密鑰加密或者EC不對其公共密鑰加密的任一情況下,為了提高安全性,并防止商家可能發(fā)生的處理錯誤,SP仍然可以檢查EC的MD。當商家從SP收到發(fā)給他自己和EC的組合響應時,商家不必為EC檢查MD,因為該MD是由單個發(fā)起者-SP形成的整個消息的一部分。商家只需檢查他從SP收到的整個消息的MD。
當SP收到KE請求消息時,SP首先使KE請求消息的數據部分和DS分開168,并把KE請求消息的數據部分送入單向散列算法,以便重新計算消息摘要,該消息摘要變成MDM。隨后SP分離商家的明文PLAIN TEXTM,密碼CRYPTOM,數字簽名DSM-Private-Key和EC的KE請求消息PLAIN TEXTEC*CRYPTOEC*DSEC-Private-Key。通過利用其自己的專用密鑰,SP對商家的密碼170解密,并且除了其它信息之外還恢復商家的隨機數RNM148和商家的公共密鑰PKM150。隨后SP使用恢復的PKM對商家簽名的數字簽名DSM-Private-Key解密,并恢復商家的KE消息的MDM。SP把散列得到的新MD^M168和通過對DS解密,從原始的KE消息恢復的MDM170進行比較172。如果MD^M和MDM之間存在差異,則KE消息已被破壞,于是該KE消息被拒絕174。如果MD^M和MDM匹配,則SP使EC的KE請求消息的數據部分與DS分開,并把EC的KE請求消息的數據部分送入單向散列算法,以便重新計算消息摘要(MD^EC)。隨后在步驟176,SP分離EC的KE請求消息的數據部分中的EC的明文PLAIN TEXTEC(如果有的話),密碼CRYPTOEC,和數字簽名DSEC-Private-Key。通過利用其自己的專用密鑰,SP對EC的密碼解密,并且除了其它消息之外還恢復EC的隨機數RNEC和EC的公共密鑰PKEC。隨后SP利用恢復的PKEC對EC簽名的數字簽名解密,并恢復EC的KE消息的MDEC。在步驟718中,SP把散列得到的新MD^EC176和通過對DS解密,從原始的KE消息中恢復的MDEC進行比較。如果MD^EC和MDEC之間存在差異,則KE消息已被破壞,于是KE消息被拒絕180。否則,SP準備向商家和EC回送KE響應消息。
為了格式化給EC的KE響應消息,SP產生一個隨機數RNSP-EC184,和給EC的對話密鑰SkeyEC186,并使它們與EC產生的隨機數RNEC188,服務提供商敏感交易數據STDSP-EC190結合,并利用EC的公共密鑰PKEC對它們加密192。所得到的密碼EEC-PK(RNEC*RNSP-EC*SkeyEC*STDSP-EC)與SP分配給EC的交易識別號TIDSP-EC194,和明文PLAIN TEXTSP-EC195(如果有的話)組合196,形成發(fā)給EC的響應消息的數據部分。SP使該數據通過散列算法,以便計算消息摘要MDSP-EC198。通過利用其自己的專用密鑰202,SP通過對消息摘要MDSP-EC進行數字簽名,為響應消息產生數字簽名DSSP-Private-Key200。在使該消息的數據部分與計算得到的新的DSSP-Private-Key組合204之后,完成SP發(fā)給EC的KE響應消息[TIDSP-EC*PLAIN TEXTSP-EC* EEC-PK(RNEC*RNSP-EC*SkeyEC*STDSP-EC)]*DSSP-Private-Key。
為了格式化給商家的KE響應消息,SP產生隨機數RNSP-M208,和給商家的對話密鑰SkeyM210,并使它們與商家產生的隨機數RNM212,敏感交易數據STDSP-EC214結合,并利用在步驟170接收的商家的公共密鑰PKM對它們加密206。使所得到的密碼由與SP分配給商家的交易識別號TIDSP-M218,和明文PLAIN TEXTSP-M220(如果有的話)組合216,形成發(fā)給商家的響應消息的數據部分。所得到的組合消息TIDSP-M*PLAIN TEXTSP-M*EM-PK(RNSP-M*RNM*SkeyM*STDSP-M)進一步與發(fā)給EC的KE響應消息[TIDSP-EC*PLAIN TEXTSP-EC*EEC-PK(RNEC*RNSP-EC*SkeyEC*STDSP-EC)]*DSSP-Private-Key。組合222,形成SP的最終KE響應消息的數據部分,[TIDSP-EC*PLAIN TEXTSP-EC* EEC-PK(RNEC*RNSP-EC*SkeyEC*STDSP-EC)]*DSSP-Private-Key*[TIDSP-M*PLAIN TEXTSP-M*EM-PK(RNSP-M*RNM*SkeyM*STDSP-M)]。SP使該數據部分通過散列算法,以便計算消息摘要224。通過利用其自己的專用密鑰228,SP通過對該消息摘要進行數字簽名,為響應消息產生數字簽名DSSP-Private-Key226。在使該消息的數據部分與計算得到的新的DS 226組合230之后,完成發(fā)給EC和商家的KE響應消息。該響應消息<<{[TIDSP-EC* PLAIN TEXTSP-EC*(EEC-PK*RNEC*RNSP-EC*SkeyEC*STDSP-EC)]*DSSP-Private-Key}*[TIDSP-M*PLAIN TEXTSP-M*EM-PK(RNSP-M*RNM*SkeyM*STDSP-M)]>>DSSP-Private-Key通過網絡被回送給商家。圖8表示了從SP到商家的組合KE響應消息的最終格式和內容。
當商家收到KE響應消息232時,商家首先分離由SP簽名的DSSP-Private-Key,隨后把組合KE響應消息的數據部分送入單向散列算法,以便重新計算消息摘要MD^SP-M。隨后商家分離SP的KE響應消息的數據部分,即,TIDSP-M,PLAIN TEXTSP-M,CRYPTOSP-M,[(TIDSP-EC*PLAIN TEXTSP-EC*CRYPTOSP-EC)]*DSSP-Private-Key。商家使用SP的公共密鑰(選自144)對數字簽名DSSP-Private-Key解密,恢復消息摘要MDSP-M。商家把散列得到的新的MD^SP-M與MDEC進行比較234。如果在MD^SP-M和MDSP-M之間存在任何差異,則KE響應消息已被破壞,于是被拒絕236。如果MD^SP-M和MDSP-M匹配,則商家識別意欲發(fā)送給他的響應消息部分,并利用他自己的專用密鑰對密碼CRYPTOSP-M解密238。商家應能夠恢復他在KE請求消息中發(fā)送給SP的原始隨機數RNM(見步驟148)。在步驟240中,商家把恢復的隨機數RNM(步驟238)與原始的隨機數RNM進行比較。如果兩值不相等,則消息已被破壞,在步驟242拒絕該消息。由于隨機數RNM只有SP利用正確的SP專用密鑰才能恢復,因此確定消息的發(fā)送者真正地是所選的SP。隨后商家把EC的KE響應消息[(TIDSP-EC*PLAIN TEXTSP-EC*CRYPTOSP-EC)]*DSSP-Private-Key轉發(fā)給EC,并為交易的交易階段做準備。
當EC收到KE響應消息260時,EC首先分離由SP簽名的DSSP-Private-Key,隨后把給EC的KE響應消息的數據部分送入單向散列算法,產生MD^SP-EC。隨后EC分離該消息的數據部分,即,TIDSP-EC,PLAIN TEXTSP-EC,CRYPTOSP-EC,DSSP-Private-Key。EC使用SP的公共密鑰(在步驟120中選擇)對數字簽名DSSP-Private-Key消息解密,恢復消息摘要MDSP。EC把散列得到的新的MD^SP-EC(在步驟260中得到)與通過對DSSP-Private-Key解密,從給EC的KE響應消息中恢復的MDSP-EC進行比較262。如果在MD^SP-EC和MDSP-EC之間存在任何差異,則發(fā)給EC的KE響應消息已被破壞,于是在步驟264被拒絕。如果MD^SP-M和MDSP-M匹配,則EC識別意欲發(fā)送給他的響應消息部分,并利用他自己的專用密鑰對包含在該消息中的密碼CRYPTOSP-EC解密266。EC應能夠恢復在EC的KE請求消息中發(fā)送的原始隨機數RNEC(見步驟124)。在步驟268中,EC把恢復的隨機數RNEC(步驟266)與原始的隨機數RNEC(步驟124)進行比較。如果這兩個隨機數不相等,則消息已被破壞,在步驟270拒絕該消息。由于只有SP利用正確的SP專用密鑰才能夠恢復隨機數RNEC,因此這可確保消息的發(fā)送者真正地是所選的SP。EC為交易的交易階段做準備。
在EC和商家中將有一個預選確定的超時期。在交易中,如果在超時期內沒有收到響應消息,則EC和商家將認為該交易被放棄,并將進行重試或者啟動恢復進程。
在成功地完成KE消息交換之后,SP具有EC的公共密鑰和商家的公共密鑰。這時,EC和商家都具有來自于SP的隨機數,交易ID和對話密鑰。為了完成交易的密鑰交換階段,EC和商家必須把從KE響應消息恢復的這兩個隨機數回送給SP。這可以兩個方式實現??山柚鷣碜杂贓C和商家的確認消息回送隨機數?;蛘唠S機數可作為從EC和商家輸出的,傳到SP的下一消息,例如交易消息一部分被回送。第二種方法較簡單,并在下面的階段II中進行說明。為了確保SP和商家之間,以及SP和EC之間密鑰交換的正確性,隨機數只被使用一次。一旦已建立對話密鑰和交易識別號,就不再使用隨機數。
階段II交易階段在交易階段中,商家和EC均向SP發(fā)送他們自己的諸如帳號之類的帳戶信息,以及其它和交易相關的數據,例如交易金額,請求批準交易或者其它處理數據。同樣,EC和商家單獨地與SP商談,不過是通過組合消息與SP商談,商家負責組合消息,并把組合后的消息作為一個消息發(fā)送給SP。
EC首先通過使來自于SP的隨機數RNSP-EC274和與選擇的SP有關的EC帳戶信息,AIEC276,交易金額TA 280,以及與交易相關的和/或SP要求的任意其它敏感數據278級聯(lián),形成交易消息。EC利用SP分配的對話密鑰SkeyEC對它們加密。SkeyEC是保密密鑰,并使用和用于公共密鑰加密的加密算法不同的加密算法。隨后在步驟282,使所得到的密碼CRYPTOEC,即SkeyEC(RNSP-EC*STDEC*AIEC*TA)與交易ID TIDSP-EC284和明文PLAIN TEXTEC286(如果有的話)組合,形成EC的交易消息的數據部分,TIDSP-EC*PLAINTEXTEC*CRYPTOEC。數據部分282被輸入單向散列算法288,以便計算消息摘要MDEC,隨后利用EC的專用密鑰292對該消息摘要MDEC進行數字簽名290。在步驟294,使得到的數字簽名290與消息的數據部分(來自于步驟282)組合,形成EC的交易請求消息[TIDSP-EC*PLAIN TEXTEC*SkeyEC(RNSP-EC*STDEC*AIEC*TA)]*DSEC-Private-Key,隨后將其發(fā)送給商家。
商家經歷基本相同的步驟,形成他的交易消息。商家通過使來自于SP的隨機數RNSP-M246和與選擇的SP有關的商家?guī)粜畔?,AIM248,交易金額TA 252,以及與交易相關的和/或SP要求的任意其它敏感數據STDM250級聯(lián),形成他的交易消息。商家利用SP分配的對話密鑰SkeyM對它們加密244。對話密鑰SkeyEC是保密密鑰,并通過利用和用于公共密鑰加密的加密算法不同的加密算法,例如DES產生。對話密鑰SkeyM用于在此時執(zhí)行加密,以產生密碼CRYPTOM。隨后在步驟254,使所得到的密碼CRYPTOM,即SkeyM(RNSP-M*STDM*AIM*TA)與交易ID TIDSP-M256和明文PLAINTEXTM258(如果有的話)組合,形成商家的交易消息的數據部分,TIDSP-M*PLAIN TEXTM*CRYPTOM。在步驟296,使該數據與EC的交易請求組合,形成給SP的最終交易請求消息的數據部分,[TIDSP-EC*PLAIN TEXTEC*SkeyEC(RNSP-EC*STDEC*AIEC*TA)]*DSEC-Private-Key*[TIDSP-M*PLAINTEXTM*SkeyM(RNSP-M*STDM*AIM*TA)]。和前面一樣,商家把他的組合數據輸入單向散列算法298,以計算消息摘要MDM,隨后利用商家的專用密鑰302對該消息摘要MDM進行數字簽名300。在步驟304,使得到的數字簽名DSM-Private-Key300與消息的數據部分(來自于步驟296)組合,形成最終的交易請求消息{[TIDSP-EC*PLAINTEXTEC* SkeyEC(RNSP-EC*STDEC*AIEC*TA)]*DSEC-Private-Key*[TIDSP-M*PLAINTEXTM*SkeYM(RNSP-M*STDM*AIM*TA)]}*DSM-Private-Key,隨后將其發(fā)送給SP。圖9表示了交易請求消息的最終格式。
當SP收到交易請求消息時,SP首先檢查EC和商家發(fā)送的這兩個交易識別號,即,TIDSP-EC和TIDSP-M,確保它們是有效的。當在步驟306發(fā)現或者TIDSP-M(步驟210)或者TlDSP-EC(步驟186)無效時,則在步驟308拒絕該消息。如果交易識別號都有效,則SP著手使DSM-Private-Key和消息的數據部分分開,并把消息的數據部分,{[TIDSP-EC*PLAIN TEXTEC*SkeyEC(RNSP-EC*STDEC*AIEC*TA)]*DSEC-Private-Key*[TIDSP-M*PLAIN TEXTM* SkeyM(RNSP-M*STDM*AIM*TA)]}輸入單向散列算法,以計算該消息的消息摘要MD^M。SP分離消息的數據部分,即TIDSP-M,PLAIN TEXTM,CRYPTOM,DSM-Private-Key,(TIDSP-EC*PLAIN TEXTEC*CRYPTOEC)*DSEC-Private-Key。SP利用商家的公共密鑰對DSM-Private-Key加密310,并把新恢復的消息摘要MDM和剛計算的消息摘要MD^M(步驟306)進行比較。如果MD^M和MDM不等,則消息已被破壞,于是在步驟314被拒絕。如果MD^M和MDM匹配,則SP利用它在KE階段中分配給商家的對話密鑰SkeyM(步驟210)對消息的加密部分解密316,并恢復加密部分中所含的數據字段。在步驟318,SP把商家在消息中回送的隨機數RNSP-M和SP最初發(fā)送給商家的消息中的隨機數RNSP-M(見步驟208)進行比較。如果兩個隨機數不相等,則商家沒有通過相互的驗證測試,于是在步驟320,拒絕該消息。
另外,SP將驗證EC的帳戶信息AIEC和諸如交易金額TA之類的交易數據。如果AI不再有效,則在步驟320拒絕該消息。當來自EC的TA和來自商家的TA不相符時,該消息也將被拒絕。可具有使消息無效的其它條件。如果帳戶信息AIEC和交易數據是有效的,則SP繼續(xù)驗證消息的EC部分。
正如商家的消息的情況一樣,SP首先使DSEC-Private-Key和EC的消息分開322,并把EC的消息的數據部分(TIDSP-EC*PLAINTEXTEC*CRYPTOEC)輸入單向散列算法,以計算EC消息的消息摘要MD^EC。SP分離EC的交易請求的數據部分,TIDSP-EC,PLAINTEXTEC,CRYPTOEC,DSEC-Private-Key。SP利用EC的公共密鑰PKEC對DSEC-Private-Key解密324,并恢復MDEC。在步驟326,SP把恢復的MDEC和MD^EC進行比較。如果MD^EC和MDEC不等,則消息已被破壞,于是在步驟328拒絕該消息。如果MD^EC和MDEC相符,則SP利用它在KE階段中分配給EC的對話密鑰SkeyEC(步驟186),對EC消息的加密部分解密330,并恢復該加密部分中所含的數據字段。在步驟332,SP把EC在消息中回送的隨機數RNSP-EC和SP最初發(fā)送給EC的隨機數RNSP-EC(步驟184)進行比較。如果隨機數不等,則EC未能通過相互的驗證測試,于是在步驟334拒絕該消息。SP將驗證商家的帳戶信息AIM和諸如交易金額TA之類的交易數據,當帳戶信息無效,或者當交易數據不滿足SP的標準時,在步驟334將拒絕該消息。一旦已確立整個消息的完整性和真實性,則SP可處理消息中所含的數據,并回送響應消息。在該消息中回送的隨機數終結SP和商家之間的相互驗證,以及SP和EC之間的相互驗證。在該消息之后,不再需要執(zhí)行任何隨機數的交換。SP可選擇把隨機數用作交易識別號,在商家和EC發(fā)送給SP的所有后續(xù)消息中,商家和EC將使用該交易識別號。
和前面一樣,響應消息含有回復給EC和商家的信息。為了格式化回復給EC的交易響應消息,SP產生回復給EC的響應數據,Response DataSP-EC338,并利用分配給EC的對話密鑰SkeyEC對其加密336。只有敏感性數據才被加密。非敏感性響應數據包含在明文中。在步驟340,使密碼CRYPTOSP-EC,即ESkey-EC(Response DataSP-EC)和SP分配給EC的交易識別號TIDSP-EC342(步驟194),以及SP要回復給EC的明文PLAIN TEXTSP-EC344(如果有的話)結合,形成要回復給EC的響應消息的數據部分,即,TIDSP-EC*PLAIN TEXTSP-EC*ESkey-EC(Response DataSP-EC)。把該消息的數據部分輸入散列算法346,產生SP利用SP的專用密鑰350對其進行數字簽名348的MDSP-EC。在步驟352,使DSSP-Private-Key和響應消息的數據部分(步驟340)結合,形成要回復給EC的完整響應消息,[TIDSP-EC*PLAIN TEXTSP-EC*ESkey-EC(Response DataSP-EC)]*DSSP-Private-Key。
為了格式化要回復給商家的交易響應消息,SP產生要回復給商家的響應數據,Response DataSP-M356,并利用分配給商家的對話密鑰SkeyM(步驟210)對其加密354。在步驟358,使密碼CRYPTOSP-M與在步驟360分配給商家的交易識別號TIDSP-M(步驟218),以及SP要回復給商家的明文PLAIN TEXTSP-M(如果有的話)362結合,形成要回復給商家的響應消息的數據部分,TIDSP-M*PLAIN TEXTSP-M*CRYPTOSP-M。隨后在步驟364使該數據與要回復給EC的完整的響應消息結合,形成要回復給EC和商家的響應消息的數據部分,[TIDSP-EC*PLAIN TEXTSP-EC*ESkey-EC(Response DataSP-EC)]*DSSP-Private-Key*[TIDSP-M*PLAIN TEXTSP-M*ESkey-M(ResponseDataSP-M)]。
隨后把該數據輸入散列算法366,產生SP利用SP的專用密鑰370對其數字簽名368的MDSP-M。在步驟372,使DSSP-Private-Key和要回復給EC和商家的響應消息的數據部分結合,形成要回復給EC和商家的完整的響應消息,<<{[TIDSP-EC*PLAIN TEXTSP-EC*ESkey-EC(Response DataSP-EC)]*DSSP-Private-Key}*[TIDSP-M*PLAINTEXTSP-M*ESkey-M(Response DataSP-M)]>>DSSP-Private-Key。隨后SP把其響應消息回送給商家。圖10表示了交易響應消息的最終格式。
當商家收到該消息時,商家首先在步驟374檢查消息中的交易識別號TIDSP-M,并確保該交易識別號有效。如果交易識別號無效,則在步驟376拒絕該消息。如果TIDSP-M有效,則商家使被SP簽名的DSSP-Private-Key和該消息的數據部分分開,隨后把交易響應消息的數據部分<<{[TIDSP-EC*PLAIN TEXTSP-EC*ESkey-EC(ResponseDataSP-EC)]*DSSP-Private-Key}*[TIDSP-M*PLAIN TEXTSP-M*ESkey-M(Response DataSP-M)]>>輸入單向散列算法,產生MDSP-M。商家把消息的數據部分分離成不同的部分,TIDSP-M,PLAIN TEXTSP-M,CRYPTOSP-M,DSSP-Private-Key(TIDSP-EC*PLAIN TEXTSP-EC*CRYPTOSP-EC*DSSP-Private-Key),并準備把SP的交易響應消息傳發(fā)給EC。在步驟378,商家利用在KE階段中,由SP分配的對話密鑰SkeyM,對SP的消息的加密部分解密,并恢復其中所含的數據字段。隨后商家使用SP的公共密鑰,PKSP(步驟144),對數字簽名DSSP-Private-Key解密,以便恢復MDSP-M。在步驟380,商家把散列得到的新的MD^SP-M(步驟374)和恢復的MDSP-M進行比較。如果MD^SP-M和MDSP-M不符,則交易響應消息已被破壞,于是在步驟382拒絕該消息。如果這兩個消息摘要相符,則商家開始處理該消息。照常,把交易響應消息的EC部分(TIDSP-EC*PLAIN TEXTSP-EC*CRYPTOSP-EC*DSSP-Private-Key)傳給EC。
當EC收到交易響應消息時,EC首先在步驟394檢查消息中的交易識別號TIDSP-EC,并確保該交易識別號有效。如果交易識別號無效,則在步驟396拒絕該消息。如果交易識別號有效,則商家使被SP簽名的DSSP-Private-Key和交易響應消息的數據部分分開,隨后把EC交易響應消息的數據部分TIDSP-EC*PLAIN TEXTSP-EC*ESkey-EC(ResponseDataSP-EC)輸入單向散列算法,產生MD^SP-EC。EC把消息分離成不同的部分,TIDSP-EC,PLAIN TEXTSP-EC,CRYPTOSP-EC,DSSP-Private-Key。在步驟398,EC利用在KE階段中,由SP分配的對話密鑰Skey,對SP的消息的加密部分解密,并恢復其中所含的數據字段。EC使用SP的公共密鑰(步驟120)對數字簽名DSSP-Private-Key解密,以便恢復消息摘要MDSP-EC。在步驟400,商家把散列得到的新的MD^SP-EC394和恢復的MDSP-EC進行比較。如果MD^SP-EC和MDSP-EC不符,則交易響應消息已被破壞,于是在步驟402拒絕該消息。如果這兩個消息摘要相符,則EC開始處理該消息。
在交易的最后,如果SP要求的話,EC和商家可向SP發(fā)送確認消息,通知響應消息已被正確地接收和處理。如果在交易結束之前,在SP和商家及EC之間,將交換多個消息,則該確認數據可作為要發(fā)送給SP的下一消息的一部分。或者確認數據單獨成為一個消息。
為了格式化確認消息,EC首先在步驟404,利用對話密鑰SkeyEC對確認數據Acknowledgement DataEC406(如果有的話)的敏感部分加密,從而產生SkeyEC(Acknowledgement DataEC)。在步驟408,EC把得到的密碼和由SP分配的交易識別號TIDSP-EC410,以及明文PLAIN TEXTEC412(如果有的話)結合。形成EC的確認消息的數據部分,TIDSP-EC*PLAIN TEXTEC*SkeyEC(AcknowledgementDataEC)。隨后把該組合數據輸入單向散列算法414,產生MDEC。隨后EC利用EC的專用密鑰418對得到的MDEC進行數字簽名416,產生DSEC-Private-Key。在步驟420,使DSEC-Private-Key和消息的數據部分(來自于步驟408)結合,形成EC的完整的確認消息,[TIDSP-EC*PLAINTEXTEC*SkeyEC(Acknowledgement DataEC)]*DSEC-Private-Key。隨后把該確認消息發(fā)送給商家。
商家經歷相同的步驟,形成他自己的確認消息。為了格式化確認消息,商家首先利用SP分配給商家的對話密鑰SkeyM對確認數據Acknowledgement DataM386(如果有的話)的敏感部分加密,從而產生SkeyM(RNSP-M*Acknowledgement DataM)。在步驟388,商家把得到的密碼和SP分配的交易識別號TIDSP-M390,以及明文PLAINTEXTM(來自于步驟392)(如果有的話)結合。形成商家的確認消息的數據部分,TIDSP-M* PLAIN TEXTM* SkeyM(RNSP-M*Acknowledgement DataM)。在步驟422,使該數據部分進一步和從EC接收的確認消息結合,形成要發(fā)送給SP的組合確認消息的數據部分,{[TIDSP-EC*PLAIN TEXTEC*SkeyEC(AcknowledgementDataEC)]*DSEC-Private-Key}*[TIDSP-M* PLAIN TEXTM* SkeyM(Acknowledgement DataM)]。商家把要發(fā)送給SP的組合確認消息的數據部分輸入單向散列算法,產生消息摘要MDM。隨后商家利用商家的專用密鑰428對得到的MDM進行數字簽名,產生DSM-Private-Key426。在步驟430,使DSM-Private-Key和消息的數據部分(來自于步驟422)結合,形成要發(fā)送給SP的EC和商家的最終的組合確認消息,<<{[TIDSP-EC* PLAIN TEXTEC* SkeyEC(AcknowledgementDataEC)]*DSEC-Private-Key}*[TIDSP-M*PLAIN TEXTM*SkeyM(Acknowledgement DataM)]>>*DSM-Private-Key。隨后把該消息發(fā)送給SP。圖11表示了交易確認消息的最終格式。
TIDSP-M是SP分配給商家的交易識別號(來自于步驟218),TIDSP-EC是SP分配給EC的交易識別號(來自于步驟194)。當收到交易確認消息時,SP在步驟432檢查由EC和商家發(fā)送的這兩個交易識別號TIDSP-M和TIDSP-EC,并確保它們有效。當發(fā)現TIDSP-M或TIDSP-EC無效時,則在步驟434拒絕該消息。如果交易識別號都有效,則SP著手使DSM-Private-Key和組合的確認消息分開,并把組合的確認消息的數據部分<<{[TIDSP-EC* PLAIN TEXTEC* SkeyEC(Acknowledgement DataEC)]*DSEC-Private-Key}*[TIDSP-M*PLAINTEXTM*SkeyM(Acknowledgement DataM)]>>輸入單向散列算法,以便計算該消息的消息摘要MD^M。SP把消息的數據部分分離成TIDSP-M,PLAIN TEXTM,CRYPTOM,DSM-Private-Key,(TIDSP-EC*PLAIN TEXTEC*CRYPTOEC)*DSEC-Private-Key。在步驟436,SP利用商家的公共密鑰PKM對DSM-Private-Key解密,并把恢復的消息摘要MDM432和剛計算的消息摘要MD^M436進行比較。如果MD^M和MDM相符,則SP在步驟442,利用它在KE階段中,分配給商家的對話密鑰SkeyM(來自于步驟210),對商家的確認消息的加密部分解密,并恢復其中所含的確認數據。
在步驟444,SP使DSEC-Private-Key和EC的確認消息分開,并把EC的確認消息的數據部分TIDSP-EC*PLAIN TEXTEC*CRYPTOEC輸入單向散列算法,以計算該消息的消息摘要MD^EC。SP把EC的確認消息的數據部分分離成TIDSP-EC,PLAIN TEXTEC,CRYPTOEC,DSEC-Private-Key。在步驟446,SP利用EC的公共密鑰PKEC對DSEC-Private-Key解密,并在步驟448,把恢復的MDEC和剛計算的消息摘要MD^EC444進行比較。如果這兩個消息摘要相符,則SP在步驟452,利用它在KE階段中,分配給EC的對話密鑰SkeyEC(來自于步驟186),對該消息的加密部分解密,并恢復其中所含的確認數據。隨后在步驟454,結束交易的交易階段的處理。
在整個交易過程中,在優(yōu)選實施例中,EC使用由諸如MicrosoftExplorer或Netscape Navigator之類的因特網瀏覽器軟件提供的軟件。在一個典型的對話期中,持卡人使其瀏覽器指向商家的URL,并從商家定購貨物或服務。在支付費用時,瀏覽器將調用EC接口軟件,EC接口軟件可嵌入瀏覽器中,或者作為插入式可附加軟件成分包括于其中,并允許交易繼續(xù)進行。持卡人可把他的瀏覽器指向任意SP會員的URL。
上面在圖6A-6Q中描述的兩階段交易只是應用本發(fā)明的兩階段密鑰交換-交易模式的一個特例。在圖6A-6Q中描述的兩階段交易中,參加交易的交易者一共有三位EC,商家和SP。兩階段密鑰交換-交易模式類似地可適用于涉及的交易方的數目為二位到多位不等。在涉及的交易者多于三位的交易中,只有一方擔任SP的角色。所有其它各方使用選定的SP的公共密鑰執(zhí)行初始的密鑰交換,并使用SP分配的對話密鑰和交易ID進行交易。
兩階段密鑰交換-交易模式適用于組織方案,其中(1)交易參加者可被安排成和可能的多個路由器與服務提供商串聯(lián)排列;或者(2)交易參加者可和可能的路由器被安排在分層組織中。這些額外的組織方案可涉及把消息送到下一層次的路由器。分層結構中的一個層次可由任意數目的交易參加者和/或路由器組成。下一層次是在順序上或者層次上鄰接的下一交易參加者或路由器。在分層組織方案中,下一層次包括所有可能的下一交易參加者和路由器。對于分層組織方案來說,SP建立用于確定消息將被發(fā)送給它的下一交易參加者或路由器的準則。
路由器是網關/管道,它收集來自前一層次的消息,并按照諸如組合消息之類的SP要求,對消息進行某些處理,隨后把消息轉給SP。每個交易參加者只需形成他自己的消息(數據和數字簽名),并將其發(fā)送給下一層次。交易參加者把他接收的所有消息和他自己的消息結合起來,形成組合消息,并在將其發(fā)送給下一層次之前,對該組合消息進行數字簽名。在分層組織的最簡單形式中,只有一個消息路由器,該路由器收集來自于所有其它交易參加者的消息,并把組合消息發(fā)送給SP。
在串聯(lián)組織中,交易的發(fā)起者與路由器和/或交易參加者串聯(lián),路由器和/或交易參加者再與服務提供商60串聯(lián)。在本發(fā)明的一個優(yōu)選實施例中,圖12中所示的每個成分是一個交易參加者。在本發(fā)明的備選實施例中,交易發(fā)起者和SP之間的任何中間成分可以是路由器。
交易發(fā)起者與如圖12中所示的串聯(lián)排列的交易參加者1100,1120,1140和1160,以及服務提供商執(zhí)行交易。這類似于在圖6A-6Q中描述的三方方案,只是現在所涉及的交易方更多。注意交易參加者3,4,5,6...n-2是以串聯(lián)方式排列的。每個交易參加者準備好他自己的消息,把他自己的消息和從在前的交易參加者(如果有的話)收到的消息合并,對合并后的消息附加數字簽名,隨后將其發(fā)送給串聯(lián)路徑上的下一交易參加者。組合消息最終被發(fā)送給SP,SP據此形成響應消息,并通過初始的請求消息經過的同一路徑回送響應消息。
圖13表示了層次組織方案中布置的成分,這里每個成分X1,1到X1,n(n=1,2,3...)1200是一個交易參加者,而不是消息路由器,每個成分Xj,k(j=2,3,4,...;k=1,2,3,...,m;m是n類型的變量;對于層次結構的不同層次來說,m可以是不同的值)1210可以交易參加者,也可以是路由器。向上的粗體箭頭代表發(fā)送請求消息1220。向下的箭頭代表發(fā)送響應消息1230。
每個交易參加者收集來自于他所負責的多個參加者的消息,并在把收集的消息和他自己的消息合并,形成新的消息之后,把該新消息發(fā)送給下一層次。層次組織方案可以只包括一個交易參加者,也可包括所需的盡可能多的交易參加者(層次方案的最簡化的情況是一個交易參加者和一個服務提供商)。最后,在服務提供商之前的最后一個成分Xσ,1處,所有消息被組合成一個消息1240,σ是一個類型n,該消息1240隨后被發(fā)送給SP 60。同樣,SP形成響應消息,并通過相同的路線回送該響應消息。
在SP不主導交易的情況下,會員使用由SP產生的對話密鑰,在他們自己之間進行交易。交易可在兩個或多個會員之間發(fā)生。當交易中涉及的會員多于兩個時,消息可以任何順序從一個會員傳至另一會員。會員發(fā)送交易請求消息,并接收交易響應消息。會員不必從他向其發(fā)送交易請求消息的同一會員那里接收交易響應消息。例如,交易中的三個會員可被組織成環(huán)形,并圍繞該環(huán)發(fā)送消息。甲會員可向乙會員發(fā)送交易請求消息,乙會員再向丙會員發(fā)送交易請求消息和交易響應消息。丙會員向甲會員發(fā)送交易請求消息和交易響應消息,甲會員再向乙會員發(fā)送交易響應消息。接收交易請求消息的會員產生交易響應消息,該交易響應消息最終將被發(fā)送給發(fā)出交易請求消息的會員。
在密鑰交換階段,SP獲得所有參加交易會員的公共密鑰。在交易參加會員在他們之間進行交易之前,SP向每個交易參加會員發(fā)送其它會員的公共密鑰。交易請求消息和交易響應消息包括明文(如果有的話),密碼和發(fā)送方的數字簽名。
在當SP需要充當EC和/或商家的憑證代理人,以便和基于憑證的外界系統(tǒng)打交道的情況下,SP使EC和/或商家與外界接口的操作隔絕。SP只向EC和/或商家返回完成與EC和/或商家的交易所需的信息。
雖然這里已描述了本發(fā)明的優(yōu)選和例證實施例,不過對于本領域中的普通技術人員來說,本發(fā)明的其它修改將是顯而易見的。于是,需要在附加權利要求中保護落入本發(fā)明的精神和范圍內的所有這種修改和延伸。本發(fā)明將被解釋為包括落入附加權利要求的范圍內的本發(fā)明的所有實施例,并且本發(fā)明只應由下面的權利要求限定。另外,本領域中的普通技術人員將理解在不脫離本發(fā)明的精神和范圍的情況下,其它應用可用于代替這里陳述的那些應用。
權利要求
1.一種使用電子卡執(zhí)行電子交易的方法,該方法包括下述步驟在服務提供商處產生對話密鑰;通過從會員向服務提供商發(fā)送密鑰,并從服務提供商向該會員發(fā)送對話密鑰,交換密鑰;和利用該對話密鑰執(zhí)行交易。
2.按照權利要求1所述的方法,其中交易密鑰的步驟包括下述步驟從會員向服務提供商發(fā)送密鑰交易請求消息;和格式化包括發(fā)給會員的對話密鑰的密鑰交換響應,并把該密鑰交換響應發(fā)送給會員。
3.按照權利要求1所述的方法,其中利用對話密鑰執(zhí)行交易的步驟包括下述步驟利用對話密鑰格式化會員交易請求消息,并把會員交易請求消息發(fā)送給服務提供商;和在服務提供商處,格式化要發(fā)給會員的交易響應消息,并把該交易響應消息發(fā)送給該會員。
4.按照權利要求1所述的方法,其中使用對話密鑰執(zhí)行交易的步驟包括下述步驟第一會員利用對話密鑰格式化交易請求消息,并把交易請求消息發(fā)送給第二會員,交易請求消息包括第一會員的數字簽名;和第二會員利用對話密鑰格式化交易響應消息,并把交易響應消息發(fā)送給第一會員,交易響應消息包括第二會員的數字簽名。
5.按照權利要求1所述的方法,其中利用對話密鑰執(zhí)行交易的步驟包括下述步驟第一會員利用對話密鑰格式化交易請求消息,并把交易請求消息發(fā)送給中間會員,交易請求消息包括第一會員的數字簽名;中間會員利用對話密鑰格式化交易響應消息,并把交易響應消息發(fā)送給最后的會員,交易響應消息包括中間會員的數字簽名;最后的會員利用對話密鑰格式化交易響應消息,并把交易響應消息發(fā)送給第一會員,交易響應消息包括最后的會員的數字簽名。
6.按照權利要求1所述的方法,其中交換密鑰的步驟包括下述步驟從電子卡向商家終端發(fā)送密鑰交易請求消息;在商家終端,組合商家密鑰交易請求消息和電子卡的密鑰交換請求消息,并把組合的密鑰交換請求消息發(fā)送給服務提供商;格式化要發(fā)給商家終端的包括對話密鑰的密鑰交換響應,格式化要發(fā)給電子卡的包括對話密鑰的密鑰交換響應,把這兩個密鑰交換響應組合成一個組合密鑰交換響應,并把該組合密鑰交換響應發(fā)送給商家終端;在商家終端,使發(fā)給商家的密鑰交換響應和發(fā)給電子卡系統(tǒng)的密鑰交換響應分開,并把發(fā)給電子卡的密鑰交換響應轉發(fā)給電子卡。
7.按照權利要求1所述的方法,其中利用對話密鑰執(zhí)行交易的步驟包括下述步驟利用對話密鑰格式化電子卡的交易請求消息,并將其發(fā)送給商家終端;在商家終端,利用對話密鑰格式化商家交易請求消息,組合接收的交易請求消息和商家的交易請求消息,并把組合的交易請求消息發(fā)送給服務提供商;服務提供商利用對話密鑰格式化要發(fā)給商家的交易響應消息,及要發(fā)給電子卡系統(tǒng)的交易響應消息,把這兩個交易響應消息組合成一個組合交易響應消息,并把該組合交易響應消息發(fā)送給商家終端;和在商家終端,使發(fā)給商家的交易響應消息和發(fā)給電子卡的交易響應消息分開,并把發(fā)給電子卡系統(tǒng)的交易響應消息轉發(fā)給電子卡。
8.按照權利要求1所述的方法,其中當服務提供商主導交易時,只有服務提供商才能讀取會員發(fā)來的消息內的敏感交易數據。
9.按照權利要求1所述的方法,其中當服務提供商不主導交易時,只有服務提供商才能讀取在密鑰交換階段內,從會員處發(fā)來的消息內的敏感交易數據。
10.按照權利要求2所述的方法,其中密鑰交換響應還包括發(fā)給交易中涉及的每個會員的公共密鑰。
11.按照權利要求2所述的方法,其中密鑰交換請求消息包括位于密鑰交易消息的加密部分內的會員產生的隨機數。
12.按照權利要求2所述的方法,其中密鑰交易請求消息包括會員產生的數字簽名。
13.按照權利要求2所述的方法,其中來自會員的密鑰交換請求消息包括密碼,該密碼包括會員的隨機數;和會員的敏感數據。
14.按照權利要求3所述的方法,其中交易消息包括位于交易消息的加密部分內的隨機數。
15.按照權利要求3所述的方法,其中交易消息包括發(fā)送方的數字簽名。
16.按照權利要求3所述的方法,其中只有服務提供商才可讀取交易消息內的敏感交易數據。
17.按照權利要求3所述的方法,還包括下述步驟7在會員處,利用對話密鑰,格式化交易確認消息,并把該交易確認消息發(fā)送給服務提供商。
18.按照權利要求7所述的方法,還包括下述步驟在電子卡處,利用對話密鑰,格式化交易確認消息,并把該交易確認消息發(fā)送給商家;和在商家的終端處,利用對話密鑰,格式化商家交易確認消息,組合接收的交易確認消息和商家交易確認消息,并把組合的交易確認消息發(fā)送給服務提供商。
19.按照權利要求13所述的方法,其中密鑰交換請求消息還包括明文。
20.按照權利要求13所述的方法,其中密鑰交換請求消息還包括3會員的數字簽名。
21.按照權利要求13所述的方法,其中密碼還包括會員的公共密鑰。
22.按照權利要求14所述的方法,其中交易消息包括發(fā)送方的數字簽名。
23.一種發(fā)送密鑰交換消息的方法,包括下述步驟由電子卡持卡人滿足電子卡存取條件;由電子卡持卡人選擇服務提供商;由電子卡產生電子卡隨機數;電子卡利用服務提供商的公共密鑰對隨機數、電子卡公共密鑰和電子卡敏感交易數據加密,形成電子卡密碼;電子卡組合電子卡密碼和明文(如果有的話),形成電子卡組合消息;對電子卡組合消息應用散列算法,形成電子卡消息摘要;電子卡利用電子卡專用密鑰對電子卡消息摘要進行數字簽名,形成電子卡數字簽名消息;電子卡把電子卡組合消息和電子卡數字簽名消息結合在一起,形成來自于電子卡的密鑰交換消息;和通過網絡,把來自電子卡的電子卡密鑰交換消息發(fā)送給商家。
24.按照權利要求23所述的方法,還包括下述步驟商家裝置產生商家隨機數;商家裝置利用服務提供商(SP)的公共密鑰,對商家隨機數,商家公共密鑰和商家敏感數據加密,形成商家密碼;商家裝置組合商家密碼和明文(如果有的話),形成商家組合消息;商家裝置把電子卡(EC)密鑰交換消息和商家組合消息結合在一起,形成EC-商家組合消息;對EC-商家組合消息應用散列算法,形成商家消息摘要;商家裝置利用商家的專用密鑰,對商家消息摘要進行數字簽名,形成商家數字簽名消息;商家把EC-商家組合消息和商家數字簽名消息結合在一起,形成來自于商家的商家密鑰交換請求消息;和通過網絡,把商家密鑰交換請求消息從商家發(fā)送給服務提供商。
25.一種在串聯(lián)排列的多方之間執(zhí)行電子交易的方法,包括下述步驟從電子卡向第一方發(fā)送密鑰交換請求消息,這里第一方是消息路由器或交易參加者;如果第一方是路由器,則從第一方向下一方發(fā)送密鑰交換請求消息;如果第一方是交易參加者,則組合第一方的密鑰交換請求消息和電子卡的密鑰交換請求消息,并把組合的密鑰交換請求消息發(fā)送給下一方;如果當前一方是消息路由器,則把密鑰交換請求消息發(fā)送給下一方;如果當前一方是交易參加者,則組合當前一方的密鑰交換請求消息和上一方的密鑰交換請求消息,并把組合的密鑰交換請求消息發(fā)送給下一方;由服務提供商把發(fā)給每個交易參加者的密鑰交換響應格式化成一個消息,并沿著把密鑰交換請求消息發(fā)送給服務提供商的路徑的相反順序,發(fā)送該消息;每個交易參加者使發(fā)給它自己的密鑰交換響應和發(fā)給其它交易參加者的密鑰交換響應分開,并沿著把密鑰交換請求消息發(fā)送給服務提供商的路徑的相反順序,把剩余的密鑰交換響應轉發(fā)給其它交易參加者,直到電子卡收到它自己的密鑰交換響應為止。
26.一種在串聯(lián)排列的多個交易方之間執(zhí)行電子交易的方法,包括下述步驟從電子卡向第一方發(fā)送交易請求消息,這里第一方是消息路由器或交易參加者;如果第一方是路由器,則從第一方向下一方發(fā)送交易請求消息;如果第一方是交易參加者,則組合第一方的交易請求消息和電子卡的交易請求消息,并把組合的交易請求消息發(fā)送給下一方;如果當前一方是消息路由器,則把交易請求消息發(fā)送給下一方;如果當前一方是交易參加者,則組合當前一方的交易請求消息和上一方的交易請求消息,并把組合的交易請求消息發(fā)送給下一方;由服務提供商把發(fā)給每個交易參加者的交易響應格式化成一個消息,并沿著把交易請求消息發(fā)送給服務提供商的路徑的相反順序,發(fā)送該消息;每個交易參加者使發(fā)給它自己的交易響應和發(fā)給其它交易參加者的交易響應分開,并沿著把交易請求消息發(fā)送給服務提供商的路徑的相反順序,把剩余的交易響應轉發(fā)給其它交易參加者,直到電子卡收到它自己的交易響應為止。
27.一種在被安排成層次組織的多個交易方之間執(zhí)行電子交易的方法,包括下述步驟從電子卡向第一方發(fā)送密鑰交換請求消息,這里第一方是消息路由器或交易參加者;如果第一方是消息路由器,則把密鑰交換請求消息發(fā)送給下一方Xj,k(j=2,3,4,...;k=1,2,3,...,m;m是類型n的變量;n=1,2,3...;對于不同的j值來說,m可是不同的值);如果第一方是交易參加者,則組合第一方的密鑰交換請求消息和電子卡的密鑰交換請求消息,并把組合的密鑰交換請求消息發(fā)送給下一方Xj,k;如果當前一方Xj,k是消息路由器,則把密鑰交換請求消息發(fā)送給下一方Xj,k;如果當前一方Xj,k是交易參加者,則組合當前一方Xj,k的密鑰交換請求消息和上一方的密鑰交換請求消息,并把組合的密鑰交換請求消息發(fā)送給下一方Xj,k;由服務提供商把發(fā)給每個交易參加者的密鑰交換響應格式化成一個消息,并沿著把密鑰交換請求消息發(fā)送給服務提供商的路徑的相反順序,發(fā)送該消息;每個交易參加者使發(fā)給它自己的密鑰交換響應和發(fā)給其它交易參加者的密鑰交換響應分開,并沿著把密鑰交換請求消息發(fā)送給服務提供商的路徑的相反順序,把剩余的密鑰交換響應轉發(fā)給其它交易參加者,直到電子卡收到它自己的密鑰交換響應為止。
28.一種在被安排成層次組織的多個交易方之間執(zhí)行電子交易的方法,包括下述步驟從電子卡向第一方發(fā)送交易請求消息,這里第一方是消息路由器或交易參加者;如果第一方是消息路由器,則把交易請求消息發(fā)送給下一方Xj,k(j=2,3,4,...;k=1,2,3,...,m;m是類型n的變量;n=1,2,3...;對于不同的j值來說,m可是不同的值);如果第一方是交易參加者,則組合第一方的交易請求消息和電子卡的交易請求消息,并把組合的交易請求消息發(fā)送給下一方Xj,k;如果當前一方Xj,k是消息路由器,則把交易請求消息發(fā)送給下一方Xj,k;如果當前一方Xj,k是交易參加者,則組合當前一方Xj,k的交易請求消息和上一方的交易請求消息,并把組合的交易請求消息發(fā)送給下一方Xj,k;由服務提供商把發(fā)給每個交易參加者的密鑰交換響應格式化成一個消息,并沿著把密鑰交換請求消息發(fā)送給服務提供商的路徑的相反順序,發(fā)送該消息;每個交易參加者使發(fā)給它自己的交易響應和發(fā)給其它交易參加者的交易響應分開,并沿著把交易請求消息發(fā)送給服務提供商的路徑的相反順序,把剩余的交易響應轉發(fā)給其它交易參加者,直到電子卡收到它自己的交易響應為止。
全文摘要
一種電子交易系統(tǒng),該系統(tǒng)簡化了包括持卡人(20),商家(70)和服務提供商(SP)(60)的多個交易方之間的安全電子交易。該系統(tǒng)涉及通常被稱為智能卡的電子卡,以及它們的等效計算機軟件包。電子卡模仿真實的錢包,并含有諸如信用卡、支票簿或駕駛執(zhí)照之類的常見金融或非金融載具。交易受到混合密鑰加密系統(tǒng)的保護,并且通常在諸如因特網之類的公共網絡上執(zhí)行。數字簽名和隨機數被用于確保完整性和真實性。電子卡使用諸如由服務提供商(SP)分配的對話密鑰之類的保密密鑰,確保每項交易的保密性。SP獨自負責驗證每個交易參加者的敏感消息,并分配對話密鑰。交易中所需的唯一信任關系是單個交易參加者和SP之間所存在的那種信任關系。
文檔編號G06Q20/00GK101087189SQ200710006378
公開日2007年12月12日 申請日期1999年5月5日 優(yōu)先權日1998年5月5日
發(fā)明者杰伊·C·陳 申請人:杰伊·C·陳