相關(guān)申請的交叉引用
本申請要求于2014年12月29日提交的美國臨時專利申請?zhí)?2/097,234的優(yōu)先權(quán),其通過引用全部被并入本文中。
背景技術(shù):
黑客可能通過學(xué)習(xí)應(yīng)用的底層功能開發(fā)惡意代碼(例如惡意軟件、病毒等)以利用軟件應(yīng)用的弱點。這可能涉及對編譯的代碼進(jìn)行反向工程以獲得應(yīng)用的源代碼。應(yīng)對黑客的一種技術(shù)是監(jiān)測任何惡意代碼的發(fā)布,識別由惡意代碼利用的安全缺陷,并部署應(yīng)用的新版本以對安全缺陷打補(bǔ)丁。然而,這種技術(shù)采用被動的方法,在首先阻礙攻擊免于成功發(fā)生做得很少。
本發(fā)明的實施例分開和一起解決了這個問題及其它問題。
技術(shù)實現(xiàn)要素:
在一些實施例中,提供了一種便攜式通信裝置,所述便攜式通信裝置包括處理器;以及耦連至所述處理器的存儲器。所述存儲器存儲指令,所述指令在由所述處理器執(zhí)行時,使所述便攜式通信裝置執(zhí)行操作,包括:確定用于安裝在所述便攜式通信裝置上的移動應(yīng)用的私用部分的更新在服務(wù)器處是可用的;將對所述更新的請求發(fā)送至所述服務(wù)器,所述請求包括與安裝在所述便攜式通信裝置上的所述私用部分的當(dāng)前的版本關(guān)聯(lián)的當(dāng)前的私用部分標(biāo)識符;從所述服務(wù)器接收所述私用部分的更新的版本,所述更新的版本是使用嵌入安裝在所述便攜式通信裝置上的所述私用部分的當(dāng)前版本中的當(dāng)前的傳輸密鑰加密的;使用嵌入安裝在所述便攜式通信裝置上的所述私用部分的當(dāng)前的版本中的當(dāng)前的傳輸密鑰解密所述私用部分的更新的版本;以及安裝所述私用部分的更新的版本,不更新所述移動應(yīng)用的公用部分。
在一些實施例中,提供了一種用于更新安裝在便攜式通信裝置上的移動應(yīng)用的方法,其中,所述移動應(yīng)用包括公用部分和私用部分。所述方法可以包括:由所述移動應(yīng)用確定用于所述私用部分的更新在服務(wù)器處是可用的;將對所述更新的請求發(fā)送至所述服務(wù)器,所述請求包括與安裝在所述便攜式通信裝置上的所述私用部分的當(dāng)前的版本關(guān)聯(lián)的當(dāng)前的私用部分標(biāo)識符;從所述服務(wù)器接收所述私用部分的更新的版本,所述更新的版本是使用嵌入安裝在所述便攜式通信裝置上的所述私用部分的當(dāng)前的版本中的當(dāng)前的傳輸密鑰加密的;使用嵌入安裝在所述便攜式通信裝置上的所述私用部分的當(dāng)前的版本中的當(dāng)前的傳輸密鑰解密所述私用部分的更新的版本;以及在所述便攜式通信裝置上安裝所述私用部分的更新的版本,不更新所述公用部分。
在一些實施例中,提供了一種用于提供對安裝在便攜式通信裝置上的移動應(yīng)用的更新的服務(wù)器,其中,所述移動應(yīng)用包括公用部分和私用部分。所述服務(wù)器包括處理器;以及耦連至所述處理器的存儲器。所述存儲器存儲指令,所述指令在由所述處理器執(zhí)行時,使所述服務(wù)器執(zhí)行操作,包括:從所述便攜式通信裝置接收對所述移動應(yīng)用的私用部分的更新的請求,所述請求包括與安裝在所述便攜式通信裝置上的所述私用部分的當(dāng)前的版本關(guān)聯(lián)的當(dāng)前的私用部分標(biāo)識符;基于所述當(dāng)前的私用部分標(biāo)識符,確定與安裝在所述便攜式通信裝置上的所述私用部分的當(dāng)前的版本關(guān)聯(lián)的當(dāng)前的傳輸密鑰;使用所述當(dāng)前的傳輸密鑰加密所述私用部分的更新的版本;以及將所述私用部分的加密的更新的版本傳送至所述便攜式通信裝置,不傳送對所述移動應(yīng)用的公用部分的更新。
附圖說明
圖1圖解說明根據(jù)一些實施例用于更新安裝在便攜式通信裝置上的移動應(yīng)用的系統(tǒng)。
圖2圖解說明根據(jù)一些實施例的通信裝置的示例的框圖。
圖3圖解說明根據(jù)一些實施例的移動應(yīng)用服務(wù)器。
圖4圖解說明根據(jù)一些實施例用于更新安裝在便攜式通信裝置上的移動應(yīng)用的過程的流程圖。
圖5圖解說明根據(jù)一些實施例的交易系統(tǒng)的示例的框圖。
圖6圖解說明根據(jù)一些實施例的便攜式通信裝置。
圖7圖解說明根據(jù)一些實施例用于更新安裝在便攜式通信裝置上的移動應(yīng)用的過程的流程圖。
圖8圖解說明根據(jù)一些實施例的軟件環(huán)境的框圖。
圖9圖解說明根據(jù)一些實施例用于更新應(yīng)用的過程的流程圖。
具體實施方式
本發(fā)明的實施例提供用于增強(qiáng)通信裝置(例如便攜式通信裝置)的安全性、特別是用于增強(qiáng)安裝在通信裝置上的應(yīng)用的安全性的技術(shù)。黑客可能通過對應(yīng)用的編譯的代碼進(jìn)行反向工程并通過學(xué)習(xí)應(yīng)用的底層功能,開發(fā)惡意代碼(例如惡意軟件、病毒等)來利用軟件應(yīng)用的弱點。例如,黑客可能對使用并存儲安全敏感信息(諸如賬號)的交易應(yīng)用進(jìn)行反向工程,并將惡意代碼嵌入交易應(yīng)用中,以實現(xiàn)將賬戶憑證的副本發(fā)送至遠(yuǎn)程站點的中繼攻擊。然而,黑客進(jìn)行反向工程并學(xué)習(xí)軟件應(yīng)用需要花費時間。因此,在這些攻擊發(fā)生之前阻止攻擊的一種方式是在黑客可能對應(yīng)用的特定版本進(jìn)行反向工程花費的時間內(nèi)頻繁地發(fā)布應(yīng)用的新版本。例如,假設(shè)黑客對應(yīng)用的版本進(jìn)行反向工程要花費一個月。在這種情形中,應(yīng)用提供者可以每三個星期發(fā)布應(yīng)用的新版本,使得到黑客對一種版本進(jìn)行反向工程的時間時,應(yīng)用的較新版本已經(jīng)被部署。調(diào)整為利用應(yīng)用的舊版本的任何惡意代碼可能變得對應(yīng)用的新版本是無用的,原因是應(yīng)用的每個版本使用不同的源代碼基(codebase)。
在更新安裝在便攜式通信裝置(例如移動裝置,諸如智能電話、平板電腦等)上的移動應(yīng)用的背景下,更新移動應(yīng)用的傳統(tǒng)方式是應(yīng)用提供者將整個應(yīng)用的新版本上傳至應(yīng)用商店(例如googleplaystore、appleappstore等)。用戶然后可以在應(yīng)用商店查看移動應(yīng)用的新版本,下載,并將移動應(yīng)用的更新的版本安裝到便攜式通信裝置上。然而,由于需要無線(例如經(jīng)由無線連接)下載的數(shù)據(jù)量,在便攜式通信裝置上更新整個移動應(yīng)用可能是耗時的。此更新過程還可能要求用戶手工地查看應(yīng)用商店尋找更新,并在移動應(yīng)用可以被更新之前,手工地提供用戶批準(zhǔn)。因此,例如,如果用戶沒能在新版本變得可用時立即查看應(yīng)用商店,則安裝在便攜式通信裝置上的移動應(yīng)用可能不總是最新的。
在一些實施例中,為了降低每次更新移動應(yīng)用時需要下載的數(shù)據(jù)量,移動應(yīng)用可以被分割到多個軟件層中。例如,移動應(yīng)用可以被分割到兩個軟件層中,諸如公用部分和私用部分。私用部分可以是本地庫,其用來執(zhí)行安全敏感功能(例如諸如令牌請求、賬戶參數(shù)補(bǔ)充等的功能),并且可以用低級編程語言諸如c或c++編寫。私用部分可以被頻繁地更新以緩解黑客攻擊。公用部分可以是軟件開發(fā)套件(sdk),其提供用來執(zhí)行非安全功能(例如用戶接口相關(guān)功能,外部通信功能等)的一組公用api,并且可以用較高級編程語言諸如java編寫。因為在移動應(yīng)用的公用部分中不執(zhí)行安全敏感功能,所以破壞的公用部分可能對黑客價值不大。因此,公用部分可以不象私用部分那樣頻繁地更新,或者根本不更新。結(jié)果,可以通過只是下載并更新私用部分且不下載或修改公用部分,執(zhí)行出現(xiàn)的大多數(shù)如果不是所有的頻繁的移動應(yīng)用更新。因此,可以降低用于每個更新需要下載的數(shù)據(jù)量。
在一些實施例中,為了幫助確保移動應(yīng)用的私用部分是最新的,移動應(yīng)用的sdk可以定期地或周期性地聯(lián)系駐存移動應(yīng)用更新的網(wǎng)絡(luò)服務(wù)(例如服務(wù)器)。在適當(dāng)時,網(wǎng)絡(luò)服務(wù)可以無線地將移動應(yīng)用的新的私用部分發(fā)布到便攜式通信裝置。如果網(wǎng)絡(luò)服務(wù)確定是時候發(fā)布新私用部分了,則移動應(yīng)用的sdk下載新的私用部分到便攜式通信裝置的本地存儲器,并動態(tài)地加載新的私用部分以更新移動應(yīng)用。以此方式,可以將移動應(yīng)用的無線更新部署到便攜式通信裝置,不必等待用戶手工地訪問應(yīng)用商店和/或手工地接受更新。
為了進(jìn)一步增強(qiáng)更新過程的安全性,并防止惡意代碼從服務(wù)器獲得敏感信息,應(yīng)用的私用部分的每個版本(例如本地庫的每個版本)可以被綁定到唯一的私用部分標(biāo)識符(id)和與私用部分id關(guān)聯(lián)的傳輸密鑰。當(dāng)應(yīng)用的私用部分與服務(wù)器通信時(例如以獲得應(yīng)用更新或執(zhí)行安全敏感功能,諸如令牌請求或賬戶參數(shù)補(bǔ)充)時,應(yīng)用可以給服務(wù)器提供私用部分id。服務(wù)器然后可以驗證接收的私用部分id,查找與私用部分id關(guān)聯(lián)的傳輸密鑰,并使用傳輸密鑰加密發(fā)送至應(yīng)用的信息。黑客攻擊的應(yīng)用不可能具有有效的私用部分id,不可能具有對有效的傳輸密鑰的訪問以解密從服務(wù)器接收的信息。
在討論本發(fā)明的一些實施例的細(xì)節(jié)之前,描述一些術(shù)語可能對理解各個實施例是有幫助的。
“通信裝置”可以是包括能夠與另一裝置通信的一個或多個電子部件(例如集成芯片)的裝置。例如,通信裝置可以是包括至少一個處理器的計算裝置,至少一個處理器耦連至存儲用于由處理器執(zhí)行的指令或代碼的存儲器?!氨銛y式通信裝置”可以是一種通信裝置,其可以由用戶攜帶和操作,并且可以包括一個或多個電子部件(例如集成芯片)。便攜式通信裝置可以提供對網(wǎng)絡(luò)的遠(yuǎn)程通信能力。便攜式通信裝置可以被配置成與其它裝置往返傳送和接收數(shù)據(jù)或通信。便攜式通信裝置可以是移動裝置的形式,諸如移動電話(例如智能手機(jī)、蜂窩電話等)、平板電腦、便攜式媒體播放器、個人數(shù)字助理裝置(pda)、可穿戴計算裝置(例如手表、健康監(jiān)測裝置,諸如健身跟蹤器等)、電子閱讀器裝置、膝上型計算機(jī)、上網(wǎng)本、超級本等或者是卡(例如智能卡)或表鏈等的形式。便攜式通信裝置的示例還可以包括便攜式計算裝置(例如膝上型計算機(jī)、上網(wǎng)本、超級本等)。便攜式通信裝置還可以是車輛(例如汽車)的形式或者可以集成作為車輛的一部分(例如車輛的信息系統(tǒng))。
“服務(wù)器計算機(jī)”可以包括功能強(qiáng)大的計算機(jī)或計算機(jī)集群。例如,服務(wù)器計算機(jī)可以是大的主機(jī)、小型計算機(jī)集群或像一個單元一樣工作的一組服務(wù)器。在一個示例中,服務(wù)器計算機(jī)可以是耦連至網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù)庫服務(wù)器。服務(wù)器計算機(jī)可以耦連至數(shù)據(jù)庫,并且可以包括任何硬件、軟件、其它邏輯或前述的組合,以服務(wù)于來自一個或多個客戶端計算機(jī)的請求。服務(wù)器計算機(jī)可以包括一個或多個計算設(shè)備,并且可以使用各種計算結(jié)構(gòu)、布置和編譯中的任何一種,以服務(wù)于來自一個或多個客戶端計算機(jī)的請求。
“發(fā)行方(issuer)”通??梢灾妇S護(hù)用戶的與便攜式通信裝置關(guān)聯(lián)的賬戶(諸如在安裝在便攜式通信裝置上的移動應(yīng)用中注冊的賬戶)的商業(yè)實體(例如銀行)。發(fā)行方還可以將與賬戶關(guān)聯(lián)的賬戶參數(shù)發(fā)行至便攜式通信裝置。發(fā)行方可以與代表發(fā)行方執(zhí)行發(fā)行方的一些或所有功能的主機(jī)系統(tǒng)關(guān)聯(lián)。
“商家”通??梢允菂⑴c交易并且能夠出售商品或服務(wù)或者提供對商品或服務(wù)的訪問的實體。
“收單方(acquirer)”通??梢允桥c特定商家或其它實體具有商業(yè)關(guān)系的商業(yè)實體(例如商業(yè)銀行)。一些實體能夠既執(zhí)行發(fā)行方功能也執(zhí)行收單方功能。一些實施例可以包括這種單實體的發(fā)行方-收單方。
“訪問裝置”可以是用于與商家計算機(jī)或交易處理網(wǎng)絡(luò)通信并且用于與交易裝置(例如支付裝置)、用戶計算機(jī)設(shè)備和/或用戶移動裝置交互的任何適當(dāng)?shù)难b置。訪問裝置通??梢晕挥谌魏芜m當(dāng)?shù)姆轿?,諸如在商家的方位處。訪問裝置可以是任何適當(dāng)?shù)男问?。訪問裝置的一些示例包括pos裝置、蜂窩電話、pda、個人計算機(jī)(pc)、平板pc、手持專用閱讀器、機(jī)頂盒、電子出納機(jī)(ecr)、自動柜員機(jī)(atm)、虛擬出納機(jī)(vcr)、營業(yè)廳(kiosk)、安全系統(tǒng)、訪問系統(tǒng)、網(wǎng)站等等。訪問裝置可以使用任何適當(dāng)?shù)慕佑|或非接觸操作模式以將數(shù)據(jù)發(fā)送至便攜式通信裝置或從便攜式通信裝置接收數(shù)據(jù),或者發(fā)送或接收與便攜式通信裝置關(guān)聯(lián)的數(shù)據(jù)。在一些實施例中,在訪問裝置可以包括pos終端時,可以使用任何適當(dāng)?shù)膒os終端,并且可以包括閱讀器、處理器和計算機(jī)可讀介質(zhì)。閱讀器可以包括任何適當(dāng)?shù)慕佑|或非接觸操作模式。例如,示例性的讀卡器可以包括射頻(rf)天線、光學(xué)掃描器、條形碼閱讀器或磁條閱讀器以與便攜式通信裝置交互。
“授權(quán)請求消息”可以是被發(fā)送以請求對交易授權(quán)的電子消息。授權(quán)請求消息可以被發(fā)送至交易處理網(wǎng)絡(luò)和/或交易卡(例如支付卡)的發(fā)行方。根據(jù)一些實施例的授權(quán)請求消息可以遵守iso8583,iso8583是交換與用戶使用交易裝置或交易賬戶進(jìn)行的交易關(guān)聯(lián)的電子交易信息的系統(tǒng)的標(biāo)準(zhǔn)。授權(quán)請求消息可以包括可以用來識別賬戶的信息。授權(quán)請求消息還可以包括附加數(shù)據(jù)元素,諸如以下的一個或多個:服務(wù)代碼、到期日期等。授權(quán)請求消息還可以包括交易信息,諸如與當(dāng)前交易關(guān)聯(lián)的任何信息,諸如交易金額、商家標(biāo)識符、商家方位等以及可以用來確定是否識別和/或授權(quán)交易的任何其它信息。授權(quán)請求消息還可以包括其它信息,諸如識別生成授權(quán)請求消息的訪問裝置的信息,關(guān)于訪問裝置的方位的信息等。
“授權(quán)響應(yīng)消息”可以是對于授權(quán)請求消息的電子消息應(yīng)答。授權(quán)響應(yīng)消息可以由發(fā)行金融機(jī)構(gòu)或交易處理網(wǎng)絡(luò)生成。授權(quán)響應(yīng)消息可以包括(只作為示例)以下狀態(tài)指示符中的一個或多個:批準(zhǔn)-交易被批準(zhǔn);拒絕-交易不被批準(zhǔn);或呼叫中心-響應(yīng)未決的更多信息,商家必須呼叫免費授權(quán)電話號碼。授權(quán)響應(yīng)消息還可以包括授權(quán)代碼,其可以是信用卡發(fā)行銀行響應(yīng)于電子消息中的授權(quán)請求消息(直接地或者通過交易處理網(wǎng)絡(luò))返回商家計算機(jī)的指示交易被批準(zhǔn)的代碼。代碼可以用作授權(quán)的證據(jù)。如上文指出的,在一些實施例中,交易處理網(wǎng)絡(luò)可以生成授權(quán)響應(yīng)消息或?qū)⑹跈?quán)響應(yīng)消息轉(zhuǎn)發(fā)至商家。
“令牌”可以包括用于一些信息的替代性標(biāo)識符。例如,交易令牌可以包括用于交易賬戶的標(biāo)識符,其是賬戶標(biāo)識符的替代,諸如主賬號(pan)。例如,令牌可以包括可以用作用于原始賬戶標(biāo)識符的替代的一連串字母數(shù)字字符。例如,令牌“4900000000000001”可以代替pan“4147090000001234”使用。在一些實施例中,令牌可以是“保留格式的”,可以具有與現(xiàn)有的交易處理網(wǎng)絡(luò)中使用的賬戶標(biāo)識符一致的數(shù)字格式(例如,iso8583金融交易消息格式)。在一些實施例中,令牌可以代替pan使用,以發(fā)起、授權(quán)、結(jié)算或完成支付交易。在通常提供原始憑證的其它系統(tǒng)中,令牌還可以用來表示原始憑證。在一些實施例中,可以生成令牌值,使得由令牌值恢復(fù)原始pan或其它賬戶標(biāo)識符不可以由計算導(dǎo)出。進(jìn)一步地,在一些實施例中,令牌格式可以被配置成允許接收令牌的實體將其識別為令牌,并識別發(fā)行令牌的實體。
“真實賬戶標(biāo)識符”可以包括與賬戶關(guān)聯(lián)的原始賬戶標(biāo)識符。例如,真實賬戶標(biāo)識符可以是由發(fā)行方為卡賬戶(例如信用卡、借記卡等)發(fā)行的主賬號(pan)。例如,在一些實施例中,真實賬戶標(biāo)識符可以包括16位數(shù)字值,諸如“4147090000001234”。真實賬戶標(biāo)識符的前六位(例如“414709”)可以代表真實的發(fā)行方標(biāo)識符(bin),其可以識別與真實賬戶標(biāo)識符關(guān)聯(lián)的發(fā)行方。
“賬戶參數(shù)”可以指與賬戶有關(guān)的可以用來對賬戶進(jìn)行交易的信息。賬戶參數(shù)的示例可以包括可以用來識別用戶的賬戶的信息(例如真實賬戶標(biāo)識符、替代性賬戶標(biāo)識符、令牌等)、與賬戶的狀態(tài)有關(guān)的數(shù)據(jù)或信息、用來生成密碼信息的一個或多個密鑰、與一個或多個密鑰有關(guān)的數(shù)據(jù)或信息等。賬戶參數(shù)可以是半靜態(tài)的或動態(tài)的。動態(tài)賬戶參數(shù)可以是具有有限壽命的賬戶參數(shù),一旦到期,不再能夠用來進(jìn)行交易,直到賬戶參數(shù)被補(bǔ)充、刷新或更新。動態(tài)賬戶參數(shù)可以在賬戶的生命期中被經(jīng)常補(bǔ)充。半靜態(tài)賬戶參數(shù)可以是具有比動態(tài)賬戶參數(shù)更長的延長的壽命的賬戶參數(shù),并且在賬戶的壽命中可以不如動態(tài)賬戶參數(shù)那樣頻繁地補(bǔ)充或根本不補(bǔ)充。
“密鑰”可以指用在密碼算法中將輸入數(shù)據(jù)轉(zhuǎn)換成另一種表示的一條信息。密碼算法可以是將原始數(shù)據(jù)轉(zhuǎn)換成替代性表示的加密算法或?qū)⒓用苄畔⑥D(zhuǎn)換回原始數(shù)據(jù)的解密算法。密碼算法的示例可以包括三重數(shù)據(jù)加密標(biāo)準(zhǔn)(tdes)、數(shù)據(jù)加密標(biāo)準(zhǔn)(des)、高級加密標(biāo)準(zhǔn)(aes)等。
“限制使用密鑰”或“l(fā)uk”可以指可以只用于有限次數(shù)或有限數(shù)目的交易的密鑰,并且當(dāng)限制使用已經(jīng)被用盡時可能需要被續(xù)訂或補(bǔ)充。luk可以與限制luk的使用的一個或多個限制使用閾值的集合關(guān)聯(lián),其中,一旦luk的使用已經(jīng)用盡或超過一個或多個限制使用閾值的集合,則即便底層的賬戶仍是良好狀態(tài),使用該luk進(jìn)行的另外的交易會被拒絕。一個或多個限制使用閾值的集合可以包括以下的至少一個:luk可以用于的交易的數(shù)目,指示luk有效的時間段的生存時間和/或指示對luk有效的一個或多個交易求和的總交易金額的累積交易金額或其任意組合。
“限制使用閾值”可以指限制一條信息的使用的條件。限制使用閾值在底層條件滿足時,可以被超過或用盡。例如,限制使用閾值可以包括指示一條信息有效的時間量的生存時間,一旦該時間量逝去,限制使用閾值被超過或用盡,該條信息可變成無效的,不再可以被使用。舉另一示例,限制使用閾值可以包括一條信息可以被使用的次數(shù),一旦該條信息已經(jīng)被使用該次數(shù),則限制使用閾值被超過或用盡,該條信息可變成無效,不再可以被使用。
“交易處理網(wǎng)絡(luò)”可以包括能夠處理和路由交易請求消息的網(wǎng)絡(luò)。示例性交易處理網(wǎng)絡(luò)可以包括數(shù)據(jù)處理子系統(tǒng)、網(wǎng)絡(luò)和用來支持和傳送授權(quán)服務(wù)、異常文件服務(wù)、交易評分服務(wù)以及清算和結(jié)算服務(wù)的操作。示例性交易處理網(wǎng)絡(luò)可以包括visanettm。諸如visanettm之類的交易處理網(wǎng)絡(luò)能夠處理信用卡交易、借記卡交易和其它類型的商業(yè)交易。visanettm具體可以包括處理授權(quán)請求的vip系統(tǒng)(visa集成支付系統(tǒng))和執(zhí)行清算和結(jié)算服務(wù)的baseii系統(tǒng)。
現(xiàn)在來描述本發(fā)明的一些實施例的細(xì)節(jié)。
圖1圖解說明根據(jù)一些實施例用于更新安裝在通信裝置上的應(yīng)用的系統(tǒng)100。系統(tǒng)100包括例如經(jīng)由通信網(wǎng)絡(luò)182相互通信的應(yīng)用服務(wù)器102和便攜式通信裝置120(例如移動裝置,諸如移動電話)。在本文中進(jìn)一步參照圖2和圖6描述根據(jù)一些實施例的通信裝置。在本文中進(jìn)一步參照圖3描述根據(jù)一些實施例的應(yīng)用服務(wù)器。
任何適當(dāng)數(shù)目或類型的通信網(wǎng)絡(luò)可以存在于便攜式通信裝置120和應(yīng)用服務(wù)器102之間,以及在圖1中的實體的任何其它適當(dāng)?shù)慕M合之間。通信網(wǎng)絡(luò)諸如通信網(wǎng)絡(luò)182可以是以下的任何一個和/或組合:直接互連;互聯(lián)網(wǎng);局域網(wǎng)(lan);城域網(wǎng)(man);作為互聯(lián)網(wǎng)上的節(jié)點的操作任務(wù)(omni);安全定制連接;廣域網(wǎng)(wan);無線網(wǎng)絡(luò)(例如使用諸如但不限于無線應(yīng)用協(xié)議(wap)、i-模式等等的協(xié)議);等等。
注意,圖1中圖示的部件或元件出于示意目的,在本發(fā)明的其它實施例中,某些塊可以被組合或者功能可以分割到其它運算部件中。
圖2圖解說明根據(jù)一些實施例的通信裝置200。通信裝置200可以包括裝置硬件204(諸如一個或多個處理器)、操作系統(tǒng)214和在通信裝置200上運行的應(yīng)用212。在一些實施例中,應(yīng)用212可以在應(yīng)用環(huán)境210(諸如虛擬機(jī))內(nèi)執(zhí)行。
應(yīng)用212可以包括多個軟件層或軟件庫。例如,應(yīng)用212可以包括公用部分220和私用部分230。公用部分220和私用部分230可以由相同的開發(fā)者提供或者由不同的實體提供。在一些實施例中,可以用相同的或不同的編程語言編寫公用部分220和私用部分230。例如,可以用高級編程語言編寫公用部分220??梢杂玫图壘幊陶Z言編寫私用部分230。在一些實施例中,私用部分230可以是本地庫,其可以由在應(yīng)用環(huán)境210中執(zhí)行的各個應(yīng)用之間共享。在一些實施例中,私用部分230可以綁定到公用部分220,并且只可由公用部分220訪問。公用部分220可以與私用部分230經(jīng)由兩個軟件層之間的接口通信以交換數(shù)據(jù),并調(diào)用在私用部分230中實現(xiàn)的函數(shù),反之亦然。
在一些實施例中,操作系統(tǒng)214可以是移動操作系統(tǒng),諸如android。公用部分220可以用java編寫,私用部分230可以用c或c++編寫。在這些實施例中,公用部分220和私用部分230之間的接口可以是java本地接口(jni)。在應(yīng)用212的編譯期間,可以使用java編譯器,諸如javac將公用部分220源代碼編譯成java類文件??梢杂深^文件生成器,諸如javah生成允許公用部分220調(diào)用私用部分230中的函數(shù)的c或c++代碼頭部。本地c或c++私用部分230源代碼可以被編譯并鏈接至頭文件以形成共享對象(.so)動態(tài)庫文件。java類文件和動態(tài)庫文件可以被打包并壓縮成應(yīng)用包文件(例如android應(yīng)用包(.apk)文件)。此應(yīng)用包文件可以從應(yīng)用商店下載到便攜式通信裝置200上,開始使用以將應(yīng)用212安裝到便攜式通信裝置200上。在一些實施例中,安裝應(yīng)用212將實例化應(yīng)用212會執(zhí)行的虛擬機(jī)實例,諸如dalvik虛擬機(jī)實例。
在一些實施例中,應(yīng)用212可以是使用或處理敏感數(shù)據(jù)的應(yīng)用。例如,應(yīng)用212可以使用某些敏感數(shù)據(jù)資產(chǎn),諸如加密密鑰,以執(zhí)行密碼操作,或者可以訪問或使用敏感信息,諸如個人或金融信息(例如賬戶憑證)。可以在應(yīng)用212的私用部分230中實現(xiàn)與敏感數(shù)據(jù)的處理有關(guān)的功能(可以稱作安全敏感功能),而可以在應(yīng)用212的公用部分220中實現(xiàn)基本功能,諸如用戶接口和外部通信(例如聯(lián)網(wǎng))功能。由于應(yīng)用212的模塊化本質(zhì),不具有適當(dāng)?shù)姆雷o(hù),實現(xiàn)安全敏感功能的私用部分230可能易受尋求損壞底層的敏感信息的黑客攻擊影響。例如,可以從應(yīng)用包文件或者從裝置上安裝的應(yīng)用212的版本直接地提取實現(xiàn)私用部分230的共享對象(.so)動態(tài)庫文件。動態(tài)庫文件然后可以被反匯編,以對代碼進(jìn)行反向工程,可能創(chuàng)建利用代碼的弱點的惡意應(yīng)用。例如,惡意應(yīng)用可能部署在不令人懷疑的裝置上,并且可以被執(zhí)行以訪問敏感數(shù)據(jù)并執(zhí)行安全敏感功能,以將敏感信息發(fā)送至未授權(quán)方。
圖3圖解說明根據(jù)一些實施例的應(yīng)用服務(wù)器370的一些部件的框圖。應(yīng)用服務(wù)器370可以包括處理器375,其操作耦連至存儲器372和i/o接口379。存儲器372可以存儲代碼驗證模塊395,并且還可以保存代碼基380。應(yīng)當(dāng)注意,在一些實施例中,不是在存儲器372內(nèi)本地保存代碼基380,應(yīng)用服務(wù)器370可以耦連至保存這種代碼基的單獨的數(shù)據(jù)庫。代碼驗證模塊395可以被配置成例如通過比較從通信裝置上安裝的應(yīng)用接收的私用部分id與代碼基380中最新發(fā)布的二進(jìn)制文件的私用部分id比較,驗證安裝在通信裝置中的應(yīng)用的私用部分是否是最新的。
代碼基380可以包括與應(yīng)用的私用部分的不同版本對應(yīng)的一堆構(gòu)建二進(jìn)制文件390-1到390-n,并且可以包括已經(jīng)發(fā)布的任何數(shù)目的二進(jìn)制文件和等待發(fā)布的任何數(shù)目的二進(jìn)制文件。與應(yīng)用服務(wù)器372關(guān)聯(lián)的應(yīng)用提供者可以決定何時發(fā)布二進(jìn)制文件的每個版本。在一些實施例中,可以周期性地執(zhí)行不同版本的發(fā)布(例如,每兩個星期、每個月、每季度等,或者以某時間間隔發(fā)布新版本,該時間間隔具有少于對應(yīng)用的私用部分的二進(jìn)制文件進(jìn)行反向工程花費的估計時間量的持續(xù)時間)。
在一些實施例中,可以用不同的模糊化種子構(gòu)建二進(jìn)制文件390-1到390-n中的每一個,以模糊化源代碼,使得即便黑客能夠?qū)σ粋€二進(jìn)制文件進(jìn)行反向工程,在攻擊不同的二進(jìn)制文件時黑客必須再次啟動反向工程過程。可以應(yīng)用各種模糊化技術(shù)以模糊化源代碼,使得即便由代碼實現(xiàn)的底層功能是相同的也沒有兩個代碼版本看上去是相同的。例如,可以用隨機(jī)字符替代源代碼中的變量名稱,可以將空格加入到源代碼中,以隱藏底層代碼結(jié)構(gòu),代碼部分可以被重新排列,可以引入虛代碼,或者可以使用這些技術(shù)的任意組合??梢允褂媚:N子以指導(dǎo)用哪個隨機(jī)字符代替哪個字符,其中,在源代碼中在哪引入空格,代碼部分如何重新排列,和/或在哪注入虛代碼。還可以使用模糊化種子以指導(dǎo)模糊化方案的哪種組合用于特定的版本。通過對每個代碼版本使用不同的模糊化種子,相同的底層源代碼可以產(chǎn)生任何數(shù)目的不同的模糊化代碼,其可以隨時間發(fā)布以阻礙反向工程攻擊。因此,在一些實施例中,可以使用第一模糊化種子模糊化當(dāng)前安裝在通信裝置上的應(yīng)用的私用部分的當(dāng)前的版本,而可以使用與第一模糊化種子不同的第二模糊化種子模糊化私用部分的下一發(fā)布或更新的版本。這還可以阻止黑客對應(yīng)用的私用部分進(jìn)行反向工程。
二進(jìn)制文件390-1到390-n中的每一個可以與其自己的唯一的私用部分id392和被綁定到二進(jìn)制文件的特定版本的傳輸密鑰393關(guān)聯(lián)。私用部分id392和傳輸密鑰393可以嵌入二進(jìn)制文件中,并在通信裝置下載二進(jìn)制文件時提供至通信裝置。在一些實施例中,不同的版本可以在二進(jìn)制文件中的不同方位嵌入傳輸密鑰393。類似地,不同的版本還可以在二進(jìn)制文件中的不同方位嵌入私用部分id392。可以使用傳輸密鑰393加密應(yīng)用服務(wù)器370和安裝在通信裝置上的私用部分二進(jìn)制文件的特定版本之間的通信。應(yīng)用服務(wù)器370可以保存每個私用部分id392和其關(guān)聯(lián)的傳輸密鑰393之間的映射,使得應(yīng)用服務(wù)器370可以在與安裝在便攜式通信裝置上的應(yīng)用通信時基于從通信裝置接收的私用部分id檢索適當(dāng)?shù)膫鬏斆荑€393。
圖4圖解說明根據(jù)一些實施例更新安裝在通信裝置420上的應(yīng)用的可以在通信裝置420和服務(wù)器402之間執(zhí)行的過程的流程圖。在可選的步驟401a,通信裝置420可以聯(lián)系服務(wù)器402以查詢安裝在通信裝置420上的當(dāng)前的應(yīng)用是否是最新的。通信裝置420例如可以周期性地聯(lián)系服務(wù)器402。在步驟401b,服務(wù)器402將消息發(fā)送至通信裝置420,通知通信裝置420用于應(yīng)用的私用部分的更新是可用的。在一些實施例中,步驟401b中的通知可以響應(yīng)于接收步驟401a的查詢發(fā)送。在一些實施例中,步驟401b中的通知可以是在更新變成可用的并準(zhǔn)備好發(fā)布時發(fā)送的推送通知。在這些實施例中,可以在沒有接收到來自通信裝置420的查詢的情況下發(fā)送推送通知。
在步驟404,響應(yīng)于接收步驟401b中的通知,通信裝置420將對更新的請求發(fā)送至服務(wù)器402。請求可以包括與安裝在通信裝置420上的私用部分的當(dāng)前的版本關(guān)聯(lián)的當(dāng)前的私用部分標(biāo)識符(id)。在步驟407,服務(wù)器402基于從通信裝置420接收的當(dāng)前的私用部分id確定與安裝在通信裝置420上的私用部分的當(dāng)前的版本關(guān)聯(lián)的當(dāng)前的傳輸密鑰,并使用當(dāng)前的傳輸密鑰加密私用部分的更新的版本。例如,服務(wù)器402可以查詢在服務(wù)器的代碼基中的接收的私用部分id,以識別當(dāng)前安裝在通信裝置420上的代碼版本,并檢索與該代碼版本關(guān)聯(lián)的傳輸密鑰。在步驟410,服務(wù)器402將私用部分的加密的更新的版本傳送至通信裝置420??梢詡魉退接貌糠值母碌陌姹?,不傳送應(yīng)用的公用部分。
在步驟413,通信裝置420使用嵌入安裝在通信裝置420上的私用部分的當(dāng)前的版本中的當(dāng)前的傳輸密鑰解密私用部分的更新的版本。在步驟416,通信裝置420將私用部分的更新的版本安裝在通信裝置420上,不更新應(yīng)用的公用部分。
在步驟419,在安裝私用部分的更新的版本之后,通信裝置420可以將對敏感數(shù)據(jù)的請求發(fā)送至服務(wù)器402。請求可以包括與安裝在通信裝置420上的私用部分的更新的版本關(guān)聯(lián)的更新的私用部分標(biāo)識符。在步驟422,服務(wù)器402可以基于接收的更新的私用部分標(biāo)識符查詢與安裝在通信裝置420上的私用部分的更新的版本關(guān)聯(lián)的更新的傳輸密鑰,并使用更新的傳輸密鑰加密敏感數(shù)據(jù)。在步驟425,服務(wù)器402將加密的敏感數(shù)據(jù)傳送至通信裝置420。在步驟428,通信裝置420使用嵌入安裝在通信裝置420上的應(yīng)用的私用部分中的更新的傳輸密鑰解密敏感數(shù)據(jù)。
在一些實施例中,不是用更新的傳輸密鑰直接加密敏感數(shù)據(jù),可以使用從傳輸密鑰生成的一次性密鑰加密敏感數(shù)據(jù)。例如,敏感數(shù)據(jù)可以在包括頭部和包含敏感數(shù)據(jù)的有效載荷的消息中傳送至通信裝置420,敏感數(shù)據(jù)可以由服務(wù)器402使用一次性密鑰加密,該一次性密鑰是通過用更新的傳輸密鑰加密頭部或其一部分生成的。在這些實施例中,當(dāng)通信裝置420接收消息時,通信裝置420可以通過用更新的傳輸密鑰加密頭部生成其自己的一次性密鑰副本,然后用該一次性密鑰解密敏感數(shù)據(jù)。
在一些實施例中,可以使用導(dǎo)出密鑰加密敏感數(shù)據(jù),導(dǎo)出密鑰是從更新的傳輸密鑰和密鑰導(dǎo)出種子導(dǎo)出的。例如,在應(yīng)用或更新的私用部分被下載到通信裝置420時,服務(wù)器402可以將密鑰導(dǎo)出種子提供至通信裝置420。服務(wù)器402可以保存密鑰導(dǎo)出種子的副本。當(dāng)服務(wù)器402將敏感數(shù)據(jù)發(fā)送至通信裝置420時,服務(wù)器402可以使用更新的傳輸密鑰和密鑰導(dǎo)出種子生成導(dǎo)出密鑰??梢酝ㄟ^將密鑰導(dǎo)出種子與密鑰導(dǎo)出函數(shù)中的更新的傳輸密鑰組合,生成導(dǎo)出密鑰。例如,密鑰導(dǎo)出函數(shù)可以是數(shù)學(xué)(例如加法、乘法等)或邏輯(例如xor、xnor等)運算,其取密鑰導(dǎo)出種子和更新的傳輸密鑰為算子,生成導(dǎo)出密鑰。舉另一示例,密鑰導(dǎo)出函數(shù)可以是散列算法,其對作為輸入數(shù)據(jù)的更新的傳輸密鑰進(jìn)行計算,密鑰導(dǎo)出種子可以用作散列算法的混淆值(saltvalue)(或反之)以生成導(dǎo)出密鑰。舉又一示例,密鑰導(dǎo)出函數(shù)可以是加密算法,其使用更新的傳輸密鑰作為加密密鑰(或反之)加密密鑰導(dǎo)出種子以生成導(dǎo)出密鑰。在一些實施例中,密鑰導(dǎo)出函數(shù)可以是一個或多個數(shù)學(xué)或邏輯運算、散列算法和/或加密算法的組合。例如,密鑰導(dǎo)出函數(shù)可以是加密算法,其被應(yīng)用到將邏輯運算應(yīng)用到密鑰導(dǎo)出種子和更新的傳輸密鑰的結(jié)果。當(dāng)通信裝置420接收加密的敏感數(shù)據(jù)時,通信裝置420可以使用更新的傳輸密鑰和之前從服務(wù)器402接收的密鑰導(dǎo)出種子生成其自己的導(dǎo)出密鑰的副本,然后用導(dǎo)出密鑰解密敏感數(shù)據(jù)。
應(yīng)當(dāng)理解,有了私用部分的每個新的更新,可以使用嵌入私用部分的每個更新中的最新的傳輸密鑰加密/解密服務(wù)器和通信裝置之間的通信。以此方式,即便與私用部分的一個版本關(guān)聯(lián)的傳輸密鑰被破壞,一旦部署私用部分的新版本,則被破壞的傳輸密鑰就不能夠被使用。
還應(yīng)當(dāng)理解,盡管本文中提供的描述特別指更新應(yīng)用的私用部分,但可以使用相同的技術(shù)更新應(yīng)用的公用部分,或者可以被單獨更新的應(yīng)用的任何軟件層(例如軟件庫)。
圖5圖解說明根據(jù)一些實施例的可以使用本文中描述的技術(shù)的示例性系統(tǒng)500的框圖。系統(tǒng)500可以是例如用于執(zhí)行基于云的交易的基于云的交易系統(tǒng)。系統(tǒng)500包括便攜式通信裝置510(例如移動裝置)、基于云的交易平臺(cbp)580和移動應(yīng)用平臺(map)570??梢允褂靡粋€或多個計算裝置(例如計算機(jī)、服務(wù)器)實現(xiàn)cbp580,并且cbp580可以與發(fā)行方、交易處理器和/或其它適當(dāng)?shù)膶嶓w關(guān)聯(lián)或由上述這些操作。cbp580實現(xiàn)一組功能,包括賬戶管理以及賬戶參數(shù)生成和補(bǔ)充,以使得能夠經(jīng)由便攜式通信裝置510執(zhí)行基于云的交易。使用map570來促進(jìn)在cbp580和便攜式通信裝置510中的移動應(yīng)用514(例如交易應(yīng)用)之間的通信。可以使用一個或多個計算裝置(例如計算機(jī)、服務(wù)器)實現(xiàn)map570,并且可以將map570與移動應(yīng)用514(例如移動軟件應(yīng)用)的服務(wù)提供者,諸如發(fā)行方、移動錢包提供者、商家和/或其它適當(dāng)實體關(guān)聯(lián)或由上述這些操作。在一些實施例中,map570可以與和cbp580相同的實體關(guān)聯(lián),或由其操作,或者他們可以是分開的。使用map570在移動應(yīng)用514和cbp580之間調(diào)解請求,并確保一旦經(jīng)由例如通信網(wǎng)絡(luò)582(例如互聯(lián)網(wǎng)、移動或蜂窩網(wǎng)絡(luò)等)建立與便攜式通信裝置510的連接,則實現(xiàn)由任一方發(fā)起的請求和響應(yīng)。應(yīng)當(dāng)理解,在一些實施例中,cbp580、map570和/或發(fā)行方或主機(jī)處理系統(tǒng)572的一個或多個功能可以集成到同一計算裝置或不同的計算裝置中。
可以使用便攜式通信裝置510執(zhí)行由cbp580和/或map570促進(jìn)的基于云的交易。便攜式通信裝置510包括裝置硬件532、移動操作系統(tǒng)(os)522和應(yīng)用環(huán)境512。裝置硬件532包括非接觸接口534,其能夠?qū)⑿畔⒎墙佑|地通信或者以其他方式呈現(xiàn)至另一裝置,諸如訪問裝置560的非接觸閱讀器562。非接觸接口534的示例可以包括近場通信(nfc)接口,其能夠使用射頻或其它無線通信協(xié)議(諸如藍(lán)牙、藍(lán)牙低能量(ble)、wi-fi等)發(fā)送并接收通信。非接觸接口534的示例還可以包括光學(xué)接口,諸如呈現(xiàn)信息(諸如快速響應(yīng)(qr)代碼、條形碼等)的顯示器。
便攜式通信裝置510的應(yīng)用環(huán)境512可以包括移動應(yīng)用514,諸如由服務(wù)提供者提供的交易應(yīng)用。例如,如果移動應(yīng)用514的服務(wù)提供者是發(fā)行方,則實現(xiàn)交易應(yīng)用的移動應(yīng)用514可以是移動銀行應(yīng)用或移動支付應(yīng)用。如果服務(wù)提供者是移動錢包提供者,諸如支持多個發(fā)行方的移動網(wǎng)絡(luò)運營商或第三方錢包提供者,則實現(xiàn)交易應(yīng)用的移動應(yīng)用514可以是移動錢包應(yīng)用。對于商家,移動應(yīng)用514可以是消費者可以從其執(zhí)行電子商務(wù)或銷售點交易的商家自己的交易應(yīng)用,或者是支持多個商家的移動錢包應(yīng)用。
在一些實施例中,移動應(yīng)用514可以包括集成到移動應(yīng)用514中的裝置上基于云的交易邏輯,以支持基于云的交易。裝置上基于云的交易邏輯執(zhí)行促進(jìn)基于云的交易的功能,諸如獲取提供用在交易中的賬戶參數(shù),并將賬戶參數(shù)傳送至移動操作系統(tǒng)522以通過非接觸接口534傳送。例如,裝置上基于云的交易邏輯可以使用從cbp580儲備的密碼密鑰(例如限制使用密鑰)生成交易密碼,交易密碼通過非接觸接口傳送至訪問裝置560以執(zhí)行交易。交易密碼可以通過交易處理網(wǎng)絡(luò)584發(fā)送以獲得對交易的授權(quán)。裝置上基于云的交易邏輯還管理在已經(jīng)儲備賬戶之后提供的初始服務(wù)資料參數(shù),以確保發(fā)起對賬戶參數(shù)補(bǔ)充的請求和其它賬戶參數(shù)管理活動。
為了對于基于云的交易儲備便攜式通信裝置510,可以使用cbp580配置與發(fā)行方關(guān)聯(lián)的賬戶組合,并給便攜式通信裝置510提供賬戶參數(shù)以在執(zhí)行基于云的交易時使用。由cbp580建立的賬戶組合可以包括諸如風(fēng)險參數(shù)(例如速度控制)的特性,其管理被儲備的裝置上的賬戶參數(shù)何時需要對于每個組合中的賬戶被刷新的觸發(fā)器。為了確保一致的性能和可用性,可以由cbp580實現(xiàn)服務(wù)資料中可配置的一組最小參數(shù)。為了確保根據(jù)用于賬戶組合的服務(wù)資料中指定的規(guī)則處理基于云的交易,cbp580在已經(jīng)被啟用的賬戶的生命周期中執(zhí)行各種核心功能。這些功能可以包括儲備、有效賬戶管理、針對交易的驗證、交易處理、生命周期管理和交易后。
cbp580可以在賬戶作為基于云的賬戶被儲備之前為組合創(chuàng)建服務(wù)資料。儲備可以包括獲取注冊賬戶,創(chuàng)建賬戶信息,諸如替代性主賬號(pan)或充當(dāng)pan替代的令牌,并且繼承已經(jīng)為組合建立的服務(wù)資料。一旦賬戶被儲備,相關(guān)服務(wù)資料細(xì)節(jié)與交易處理和裝置上基于云的交易邏輯共享,以便確保在交易處理時并且在由消費者的移動應(yīng)用使用期間可以完成決策制定。
一旦賬戶被儲備,可以由cbp580執(zhí)行有效賬戶管理??梢詮慕灰滋幚砘顒踊蛘邚囊苿討?yīng)用活動發(fā)起有效賬戶管理。在賬戶已經(jīng)被儲備之后,有效賬戶管理能力生成要部署到便攜式通信裝置510的賬戶參數(shù)的初始集合。賬戶參數(shù)可以包括在儲備期間生成的賬戶信息(例如替代性pan或令牌)以及動態(tài)信息以確保賬戶參數(shù)的集合一旦傳送至裝置,則只有有限的使用。動態(tài)信息可以包括限制使用密碼密鑰或取決于支持哪種類型的交易的動態(tài)數(shù)據(jù)。例如,動態(tài)信息可以包括計算密碼的限制使用密碼密鑰,以及支持遺產(chǎn)動態(tài)卡驗證值或基于代碼的實現(xiàn)的限制使用動態(tài)數(shù)據(jù)。
在交易處理期間,如果由cbp580保存的特定賬戶的服務(wù)資料參數(shù)指示需要代替便攜式通信裝置510上的賬戶參數(shù),則cbp580的有效賬戶管理能力可以經(jīng)由map570連接至便攜式通信裝置510以補(bǔ)充賬戶參數(shù)。同樣,如果存儲在便攜式通信裝置510上的裝置上服務(wù)資料參數(shù)指示需要或?qū)⑿枰?即通過監(jiān)測賬戶參數(shù)閾值)賬戶參數(shù)補(bǔ)充,則移動應(yīng)用514可以對cbp580做出對賬戶參數(shù)補(bǔ)充的請求。
一旦便攜式通信裝置510已經(jīng)被儲備以執(zhí)行基于云的交易,可以經(jīng)由便攜式通信裝置510通過與訪問裝置560(例如在商家方位處)的非接觸閱讀器562交互執(zhí)行交易。訪問裝置560的部件可以包括銷售點(pos)終端564和/或電子出納機(jī)566。訪問裝置560可以耦連至收單方574(例如經(jīng)由商家計算機(jī),未顯示)。收單方574可以經(jīng)由交易處理網(wǎng)絡(luò)584連接至發(fā)行方或主機(jī)處理系統(tǒng)572。交易處理網(wǎng)絡(luò)584可以包括一個或多個服務(wù)器計算機(jī)。服務(wù)器計算機(jī)通常是功能強(qiáng)大的計算機(jī)或計算機(jī)集群。例如,服務(wù)器計算機(jī)可以是大的主機(jī)、小型計算機(jī)集群或像一個單元一樣工作的一組服務(wù)器。在一個示例中,服務(wù)器計算機(jī)可以是耦連至網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù)庫服務(wù)器。交易處理網(wǎng)絡(luò)584可以使用任何適當(dāng)?shù)挠芯€或無線網(wǎng)絡(luò),包括互聯(lián)網(wǎng)。
交易處理網(wǎng)絡(luò)584可以包括數(shù)據(jù)處理子系統(tǒng)、網(wǎng)絡(luò)和用來支持和傳送授權(quán)服務(wù)、異常文件服務(wù)、交易評分服務(wù)以及清算和結(jié)算服務(wù)的操作。示例性交易處理網(wǎng)絡(luò)可以包括visanettm。諸如visanettm之類的交易處理網(wǎng)絡(luò)能夠處理信用卡交易、借記卡交易和其它類型的商業(yè)交易。visanettm具體包括處理授權(quán)請求的vip系統(tǒng)(visa集成支付系統(tǒng))以及執(zhí)行清算和結(jié)算服務(wù)的baseii系統(tǒng)。
每個實體(例如收單方574、交易處理網(wǎng)絡(luò)584、發(fā)行方或主機(jī)處理系統(tǒng)572)可以包括一個或多個計算機(jī)或服務(wù)器以實現(xiàn)通信,或者執(zhí)行本文中描述的一個或多個功能。
為了執(zhí)行基于云的交易,便攜式通信裝置510的用戶可以對著訪問裝置560的非接觸閱讀器562(例如經(jīng)由nfc)輕點便攜式通信裝置510,或者在便攜式通信裝置510的屏幕上顯示能夠由訪問裝置560的非接觸閱讀器562(例如光學(xué)掃描器或閱讀器)掃描的圖像,諸如條形碼或qr代碼。在一些實施例中,便攜式通信裝置510可以給訪問裝置560提供賬戶標(biāo)識符(例如替代性pan、令牌等)和附加信息,諸如限制使用賬戶參數(shù)或從限制使用賬戶參數(shù)導(dǎo)出的信息。例如,可以將賬戶標(biāo)識符和/或附加信息(例如交易密碼)編碼在由訪問裝置560掃描的條形碼或qr代碼中,或者賬戶標(biāo)識符和/或附加信息可以經(jīng)由nfc傳送至訪問裝置560。在一些實施例中,限制使用賬戶參數(shù)可以包括交易密碼。
訪問裝置560或耦連至訪問裝置560的商家計算機(jī)可以生成包括賬戶標(biāo)識符和附加信息(例如限制使用賬戶參數(shù)或從限制使用賬戶參數(shù)導(dǎo)出的信息)的授權(quán)請求消息,并將授權(quán)請求消息轉(zhuǎn)發(fā)至收單方574。授權(quán)請求消息然后發(fā)送至交易處理網(wǎng)絡(luò)584。交易處理網(wǎng)絡(luò)584然后將授權(quán)請求消息轉(zhuǎn)發(fā)至相應(yīng)的發(fā)行方或與便攜式通信裝置510關(guān)聯(lián)的賬戶的發(fā)行方所關(guān)聯(lián)的主機(jī)處理系統(tǒng)572。
在發(fā)行方或主機(jī)處理系統(tǒng)572接收授權(quán)請求消息之后,授權(quán)請求消息可以被解析,授權(quán)請求消息中的信息可以被發(fā)送至cbp580以用于驗證。授權(quán)響應(yīng)消息然后被發(fā)送回交易處理網(wǎng)絡(luò)584以指示是否授權(quán)(或不授權(quán))當(dāng)前交易。交易處理網(wǎng)絡(luò)584然后將授權(quán)響應(yīng)消息轉(zhuǎn)發(fā)回收單方574。在一些實施例中,即便發(fā)行方或主機(jī)處理系統(tǒng)572已經(jīng)授權(quán)交易,交易處理網(wǎng)絡(luò)584例如取決于欺詐風(fēng)險分?jǐn)?shù)的值或取決于cbp580是否驗證限制使用賬戶參數(shù),可以拒絕交易。收單方574然后將授權(quán)響應(yīng)消息發(fā)送至商家計算機(jī)和/或訪問裝置560。授權(quán)響應(yīng)結(jié)果可以由訪問裝置560顯示,或者可以在物理收條上打印出來。替代性地,如果交易是在線交易,則商家可以提供網(wǎng)頁或授權(quán)響應(yīng)消息的其它指示,作為虛擬收條。收條可以包括用于交易的交易數(shù)據(jù)。
在一天結(jié)束時,可以由交易處理網(wǎng)絡(luò)584執(zhí)行常規(guī)的結(jié)算和清算過程。清算過程是在收單方和發(fā)行方之間交換金融細(xì)節(jié)以促進(jìn)發(fā)布到客戶的交易賬戶以及用戶的結(jié)算位置的對賬的過程。
圖6圖解說明根據(jù)一些實施例的便攜式通信裝置601的框圖。便攜式通信裝置601可以包括耦連至存儲器602的裝置硬件604。裝置硬件604可以包括處理器605、通信子系統(tǒng)609、用戶接口606、顯示器607(其可以是用戶接口606的一部分)以及非接觸接口608??梢砸砸粋€或多個集成電路(例如一個或多個單核或多核微處理器和/或微控制器)實現(xiàn)處理器605,并使用處理器605控制便攜式通信裝置601的操作。處理器605可以響應(yīng)于存儲在存儲器602中的程序代碼或計算機(jī)可讀代碼執(zhí)行各種程序,并且可以維持多個同時執(zhí)行的程序或過程。通信子系統(tǒng)609可以包括一個或多個rf收發(fā)器和/或連接器,便攜式通信裝置601可以使用一個或多個rf收發(fā)器和/或連接器與其它裝置通信和/或與外部網(wǎng)絡(luò)(例如通信網(wǎng)絡(luò)182)連接。用戶接口606可以包括輸入和輸出元件的任何組合,以允許用戶與便攜式通信裝置601的功能交互并調(diào)用這些功能。在一些實施例中,顯示器607可以是用戶接口606的一部分。
非接觸接口608可以包括與訪問裝置的非接觸閱讀器交互以執(zhí)行交易(例如支付交易、訪問交易、信息交換等)的一個或多個rf收發(fā)器。在基于安全元件的實施方式中,只有安全元件(未顯示)可以具有對非接觸接口608的訪問。在一些實施例中,非接觸接口608可以由移動os614使用卡模擬api616訪問,不要求使用安全元件。在一些實施例中,顯示器607還可以是非接觸接口608的一部分,并用來例如使用qr代碼、條形碼等執(zhí)行交易。
可以使用任何數(shù)量的非易失性存儲器(例如閃存)和易失性存儲器(例如dram、sram)的任何組合或任何其它非瞬態(tài)存儲介質(zhì)或之前介質(zhì)的組合實現(xiàn)存儲器602。存儲器602可以存儲移動os614和移動應(yīng)用環(huán)境610,一個或多個移動應(yīng)用駐存在此環(huán)境中,包括由處理器605執(zhí)行的移動應(yīng)用612(例如支付應(yīng)用,諸如移動錢包應(yīng)用、商家應(yīng)用等)。在一些實施例中,移動os614可以實現(xiàn)一組卡模擬api616,其能夠由移動應(yīng)用612調(diào)用以訪問非接觸接口608來與訪問裝置交互。
根據(jù)一些實施例,移動應(yīng)用612可以被分割成頻繁更新的私用部分630(例如本地或私用庫)和相對私用部分不那么頻繁更新或根本不更新的公用部分620(例如提供公用api的軟件開發(fā)套件(sdk))。公用部分620可以包括一組公用api,其用來實現(xiàn)非安全敏感功能,諸如用戶接口功能以及可以調(diào)用在私用部分630中實現(xiàn)的安全敏感功能的功能??梢杂酶呒壘幊陶Z言,諸如java編寫公用部分620。私用部分630可以包括實現(xiàn)安全敏感功能諸如令牌請求634、賬戶參數(shù)補(bǔ)充636等的本地庫??梢杂玫图壘幊陶Z言(諸如c或c++)編寫私用部分630。私用部分630的源代碼可以被模糊化以掩蓋在私用部分630中實現(xiàn)的源代碼和底層功能。
在一些實施例中,可以用移動應(yīng)用612的私用部分630執(zhí)行移動應(yīng)用612和移動應(yīng)用服務(wù)器之間的安全敏感通信(例如以獲得軟件更新、請求令牌、請求賬戶參數(shù)補(bǔ)充等)。為了進(jìn)一步提高移動應(yīng)用612的安全性,移動應(yīng)用612的私用部分630可以包括綁定到私用部分630的特定版本的唯一的私用部分id632和與私用部分id632關(guān)聯(lián)的傳輸密鑰633。私用部分id632和傳輸密鑰633可以嵌入私用部分630的二進(jìn)制代碼中。無論何時移動應(yīng)用612與移動應(yīng)用服務(wù)器通信時(例如以從移動應(yīng)用服務(wù)器請求敏感信息,諸如令牌或賬戶參數(shù)),移動應(yīng)用可以將私用部分id632從私用部分630發(fā)送至移動應(yīng)用服務(wù)器以用于驗證。私用部分id632可以由移動應(yīng)用服務(wù)器驗證,可以使用與私用部分id632關(guān)聯(lián)的傳輸密鑰633加密移動應(yīng)用612和移動應(yīng)用服務(wù)器之間的通信。
可以實現(xiàn)使用傳輸密鑰633的各種類型的加密。在一些實施例中,可以由傳輸密鑰633本身加密移動應(yīng)用612和移動應(yīng)用服務(wù)器之間的通信。在一些實施例中,在每個通信會話開始時,可以通過使用傳輸密鑰633加密消息的第一字節(jié)(例如可以是消息的頭部的一部分)生成一次性密鑰,可以通過此一次性密鑰加密消息的數(shù)據(jù)部分。在一些實施例中,密鑰導(dǎo)出種子可以與傳輸密鑰633組合,以生成導(dǎo)出密鑰,可以由此生成的導(dǎo)出密鑰加密通信。
圖7圖解說明根據(jù)一些實施例用于在交易背景中更新安裝在便攜式通信裝置720上的移動應(yīng)用的過程的流程圖。在可選的步驟701a,便攜式通信裝置720聯(lián)系服務(wù)器702以驗證安裝在便攜式通信裝置720上的當(dāng)前的移動應(yīng)用是否是最新的。便攜式通信裝置720可以例如周期性地聯(lián)系服務(wù)器702。在步驟701b,服務(wù)器702將通知消息發(fā)送至便攜式通信裝置720,通知便攜式通信裝置720用于移動應(yīng)用的本地庫的更新是可用的。在一些實施例中,通知消息可以是當(dāng)新的更新可用于下載時服務(wù)器702發(fā)送的推送通知。
在步驟704,便攜式通信裝置720將對更新的請求發(fā)送至服務(wù)器702。請求包括與安裝在便攜式通信裝置720上的本地庫的當(dāng)前的版本關(guān)聯(lián)的當(dāng)前的私用部分標(biāo)識符。在步驟707,服務(wù)器702基于當(dāng)前的私用部分標(biāo)識符確定與安裝在便攜式通信裝置720上的本地庫的當(dāng)前的版本關(guān)聯(lián)的當(dāng)前的傳輸密鑰,并使用當(dāng)前的傳輸密鑰加密本地庫的更新的版本。在步驟710,服務(wù)器702將本地庫的加密的更新的版本傳送至便攜式通信裝置720,不傳送對移動應(yīng)用的sdk的更新。
在步驟713,便攜式通信裝置720使用嵌入安裝在便攜式通信裝置720上的本地庫的當(dāng)前的版本中的當(dāng)前的傳輸密鑰解密本地庫的更新的版本。在步驟716,便攜式通信裝置720在便攜式通信裝置720上安裝本地庫的更新的版本,不更新移動應(yīng)用的sdk。
在步驟719,在安裝本地庫的更新的版本之后,便攜式通信裝置720可以將對令牌或限制使用密鑰(luk)的請求發(fā)送至服務(wù)器702。令牌和luk由移動應(yīng)用使用來執(zhí)行交易。例如,令牌可以被用作賬戶標(biāo)識符的替代,luk可以用來加密從訪問裝置接收的交易數(shù)據(jù),以生成交易密碼。在一些實施例中,luk只可以用于有限次的交易或者有限的時間量,一旦luk到期或者即將到期,便攜式通信裝置720可以將補(bǔ)充luk的請求發(fā)送至服務(wù)器702??梢栽谝苿討?yīng)用的儲備期間或者當(dāng)期望續(xù)訂令牌時發(fā)送對令牌的請求。在步驟719的請求可以包括與本地庫的更新的版本關(guān)聯(lián)的更新的本地庫標(biāo)識符。在步驟722,服務(wù)器702使用嵌入本地庫的更新的版本中的更新的傳輸密鑰加密令牌或luk。在步驟725,服務(wù)器702將加密的令牌或luk數(shù)據(jù)傳送至便攜式通信裝置720。在步驟728,便攜式通信裝置720使用更新的傳輸密鑰解密令牌或luk,并存儲請求的令牌或luk以在未來的交易中使用。
在一些實施例中,代替使用傳輸密鑰直接地加密/解密令牌或luk,可以代替使用如本文中描述的從傳輸密鑰生成的一次性密鑰或?qū)С雒荑€。
在一些實施例中,可以使用將傳輸密鑰與一件軟件(例如軟件庫)綁定的構(gòu)思來促進(jìn)對生產(chǎn)前(pre-production)軟件的測試。圖8圖解說明根據(jù)一些實施例的軟件環(huán)境的框圖。軟件環(huán)境可以包括:基于云的交易平臺876,其促進(jìn)針對便攜式通信裝置的基于云的交易服務(wù);以及與基于云的交易平臺876關(guān)聯(lián)的發(fā)行方或移動應(yīng)用平臺872。軟件環(huán)境還可以包括非生產(chǎn)基于云的交易平臺875(例如開發(fā)沙盒),其用于執(zhí)行移動應(yīng)用的生產(chǎn)前軟件測試。
可以以java庫812實現(xiàn)生產(chǎn)前軟件,java庫812被部署到選擇數(shù)目的便攜式通信裝置,以用于測試目的。在一些實施例中,java庫812可能缺少二進(jìn)制保護(hù),允許調(diào)試java庫812。java庫812可以包括非生產(chǎn)傳輸密鑰813,其用來加密java庫812和非生產(chǎn)基于云的交易平臺875之間的通信,非生產(chǎn)基于云的交易平臺875具有其自己的非生產(chǎn)傳輸密鑰873。
當(dāng)java庫812準(zhǔn)備好生產(chǎn)時,可以部署實現(xiàn)與java庫812相同功能的生產(chǎn)本地庫822。生產(chǎn)本地庫822可以包括非生產(chǎn)傳輸密鑰823以及用來加密與生產(chǎn)基于云的交易平臺876的通信的生產(chǎn)傳輸密鑰824。本地庫822的二進(jìn)制文件可以被完全保護(hù),可以不允許本地庫822的調(diào)試。在一些實施例中,發(fā)行方還可以保存具有與本地庫822相同功能和特權(quán)的發(fā)行方庫832。
在這種軟件環(huán)境中,包含惡意代碼的被破壞庫842可能沒有任何傳輸密鑰(生產(chǎn)或非生產(chǎn)),因此被破壞庫842不能夠解密從發(fā)行方、移動應(yīng)用平臺或基于云的交易平臺接收的加密信息。
圖9圖解說明根據(jù)一些實施例用于更新安裝在通信裝置上的應(yīng)用的過程900的流程圖。在一些實施例中,應(yīng)用被分割成公用部分和私用部分。在塊902,過程900確定對安裝在計算裝置(例如便攜式通信裝置)上的應(yīng)用(例如移動應(yīng)用)的私用部分的更新是可用的。這例如可以通過以下實現(xiàn):由通信裝置周期性地聯(lián)系服務(wù)器(例如移動應(yīng)用服務(wù)器)以驗證安裝在通信裝置上的應(yīng)用是否是最新的或者由服務(wù)器將通知消息推送至通信裝置以通知應(yīng)用的私用部分的新版本是可用的。
在塊904,通信裝置可以將應(yīng)用更新請求發(fā)送至駐存應(yīng)用更新的服務(wù)器。應(yīng)用更新請求可以包括與當(dāng)前安裝在通信裝置上的應(yīng)用的私用部分關(guān)聯(lián)的私用部分標(biāo)識符。私用部分標(biāo)識符可以由服務(wù)器使用以在將任何更新發(fā)送至通信裝置之前,驗證有效的應(yīng)用目前安裝在計算裝置上。私用部分標(biāo)識符還可以與傳輸密鑰關(guān)聯(lián),服務(wù)器可以使用傳輸密鑰加密發(fā)送至通信裝置的信息。如果通信裝置被惡意代碼破壞,則惡意代碼不可能具有有效的私用部分標(biāo)識符或者具有對有效的傳輸密鑰的訪問以解密從服務(wù)器發(fā)送的信息。
在塊906,通信裝置從服務(wù)器接收應(yīng)用的更新的私用部分??梢杂煞?wù)器使用與私用部分標(biāo)識符關(guān)聯(lián)的傳輸密鑰加密更新的私用部分。在塊908,通信裝置可以使用當(dāng)前在通信裝置處安裝的應(yīng)用的私用部分的傳輸密鑰解密接收的應(yīng)用的更新的私用部分。在一些實施例中,更新的私用部分可以在服務(wù)器處由傳輸密鑰本身加密,通信裝置可以使用其自己的傳輸密鑰解密更新的私用部分。在一些實施例中,來自服務(wù)器的消息的頭部可以由傳輸密鑰加密以生成一次性密鑰,可以由此一次性密鑰加密應(yīng)用的更新的私用部分。在一些實施例中,服務(wù)器可以將密鑰導(dǎo)出種子與傳輸密鑰組合生成導(dǎo)出密鑰,應(yīng)用的更新的私用部分可以由此生成的導(dǎo)出密鑰加密。密鑰導(dǎo)出種子可以與通信裝置共享以允許通信裝置生成其自己的導(dǎo)出密鑰來解密接收的應(yīng)用的更新的私用部分。
在塊910,在通信裝置已經(jīng)適當(dāng)?shù)亟饷芙邮盏母碌乃接貌糠种?,通信裝置可以將更新的私用部分安裝到通信裝置上??梢詧?zhí)行此安裝,不更新應(yīng)用的公用部分,因此,不必下載并更新整個應(yīng)用,應(yīng)用可以被更新。
在一些實施例中,當(dāng)通信裝置與服務(wù)器經(jīng)由應(yīng)用通信時,可以使用嵌入當(dāng)前安裝在通信裝置上的應(yīng)用的私用部分中的最新的傳輸密鑰加密通信(例如以交換敏感數(shù)據(jù),諸如令牌或luk)。在更新私用部分時,傳輸密鑰也可以被更新。以此方式,一旦對私用部分的新的更新發(fā)布,則被破壞的傳輸密鑰會變成無用的。
應(yīng)當(dāng)注意,盡管參照更新應(yīng)用的私用部分描述了本文中描述的技術(shù),但也可以使用本文中描述的技術(shù)更新應(yīng)用的任何部分(例如本地庫、java庫等),不必更新整個應(yīng)用。
可以使用耦連至存儲代碼或指令的存儲器的一個或多個處理器實現(xiàn)本文中描述的計算裝置、通信裝置、計算機(jī)、服務(wù)器等中的任何,代碼或指令在由一個或多個處理器執(zhí)行時使裝置執(zhí)行本文中描述的一個或多個方法和過程。用于包含本文中描述的代碼或代碼部分的存儲器、存儲介質(zhì)和計算機(jī)可讀介質(zhì)可以包括本領(lǐng)域已知或使用的任何適當(dāng)?shù)慕橘|(zhì),包括存儲介質(zhì)和通信介質(zhì),諸如但不限于以用于存儲和/或傳輸信息(諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù))的任何方法或技術(shù)實現(xiàn)的易失性和非易失性,可移動和不可移動介質(zhì),包括ram、rom、eeprom、閃存或其它存儲器技術(shù)、cd-rom、數(shù)字通用盤(dvd)或其它光存儲、磁帶盒、磁帶、磁盤存儲或其它磁存儲裝置、數(shù)據(jù)信號、數(shù)據(jù)傳輸或可以用來存儲或傳送期望信息并且可以由計算機(jī)訪問的任何其它介質(zhì)。基于本公開和本文中提供的教導(dǎo),本領(lǐng)域普通技術(shù)人員會認(rèn)識到實現(xiàn)各個實施例的其它方式和/或方法。
本發(fā)明的實施例不局限于上述的實施例。例如,盡管針對發(fā)行方、交易處理網(wǎng)絡(luò)和收單方示出了分開的功能塊,但一些實體可以執(zhí)行這些功能的組合或全部,并且可以包括在一些實施例中。
上面提供了關(guān)于上述的方面中的一些的特定細(xì)節(jié)。在不偏離本發(fā)明的實施例的精神和范圍下可以以任何適當(dāng)?shù)姆绞浇M合特定方面的特定細(xì)節(jié)。例如,在本發(fā)明的一些實施例中,可以組合后端處理、數(shù)據(jù)分析、數(shù)據(jù)采集和其它交易全部。不過,本發(fā)明的其它實施例可以涉及關(guān)于每個個別方面的特定實施例或者這些個別方面的特定組合。
本文中描述的方法和過程本質(zhì)上是示例性的,根據(jù)一些實施例的方法和過程可以以與本文中描述的次序不同的次序執(zhí)行一個或多個步驟,包括沒有明確描述的一個或多個附加步驟,省略一個或多個步驟,將一個或多個步驟組合成單個步驟,將一個或多個步驟分割成多個步驟,和/或其任意組合。
應(yīng)當(dāng)理解,可以以控制邏輯的形式使用計算機(jī)軟件(存儲在有形物理介質(zhì)中的)以模塊化或集成方式實現(xiàn)如上文描述的本發(fā)明。基于本公開和本文中提供的教導(dǎo),本領(lǐng)域普通技術(shù)人員會知道并認(rèn)識到使用硬件以及硬件和軟件的組合實現(xiàn)本發(fā)明的其它方式和/或方法。
本申請中描述的任何軟件組件或功能可以實現(xiàn)為使用任何適當(dāng)計算機(jī)語言(比方說例如java、c++或perl),使用例如傳統(tǒng)的或面向?qū)ο蟮募夹g(shù)由處理器執(zhí)行的軟件代碼。軟件代碼可以存儲為計算機(jī)可讀介質(zhì)上的一系列指令或命令,計算機(jī)可讀介質(zhì)諸如隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、磁介質(zhì)(諸如硬盤或軟盤)或光介質(zhì)(諸如cd-rom)。任何這種計算機(jī)可讀介質(zhì)可以駐存在單個計算設(shè)備上或駐存在單個計算設(shè)備內(nèi),可以位于系統(tǒng)或網(wǎng)絡(luò)內(nèi)的不同計算設(shè)備上或不同計算設(shè)備內(nèi)。
上文的描述是示意性的不是限制性的。在查看本公開后本領(lǐng)域技術(shù)人員會明白本發(fā)明的許多變形。因此,本發(fā)明的范圍不應(yīng)當(dāng)參照上文的描述確定,而是應(yīng)當(dāng)參照未決的權(quán)利要求連同其全部范圍或等同物確定。
在不偏離本發(fā)明的范圍下,來自任何實施例的一個或多個特征可以與其它任何實施例的一個或多個特征組合。
除非明確指示有相反的意思,“一(a)”、“一(an)”、“所述/該(the)”的敘述旨在表示“一個或多個”。
上文提到的所有專利、專利申請、公開和描述出于所有目的通過引用被全部并入本文中。不承認(rèn)他們?yōu)楝F(xiàn)有技術(shù)。