国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      對應(yīng)用程序庫的授權(quán)訪問的制作方法

      文檔序號:11290895閱讀:266來源:國知局
      對應(yīng)用程序庫的授權(quán)訪問的制造方法與工藝

      相關(guān)申請交叉引用

      本申請要求于2014年12月29日提交的美國臨時申請?zhí)?2/097,267的優(yōu)先權(quán),該臨時申請的整個內(nèi)容據(jù)此出于所有目的以引用方式并入。



      背景技術(shù):

      黑客可以利用軟件應(yīng)用程序的一種方式是將惡意代碼嵌入應(yīng)用程序中。如果該應(yīng)用程序可以訪問諸如賬戶憑證的安全敏感信息,則惡意代碼可以調(diào)用該應(yīng)用程序中的函數(shù)來獲得對敏感信息的訪問。然后,惡意代碼可以通過將敏感信息發(fā)送到未經(jīng)授權(quán)的遠程站點來實施中繼攻擊。

      本發(fā)明的實施例單獨地或共同地解決了這個和其他問題。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的實施例提供了用于增強計算裝置(例如,便攜式通信裝置)的安全性,特別地用于增強安裝在計算裝置上的應(yīng)用程序的安全性的技術(shù)。在一些實施例中,應(yīng)用程序可以被劃分為公共部分和私有部分。私有部分可以是用于實現(xiàn)安全敏感函數(shù)(例如,諸如令牌請求、賬戶參數(shù)補充等的函數(shù))的本地庫。公共部分可以是用于實現(xiàn)非安全敏感函數(shù)(例如,用戶界面相關(guān)函數(shù)、網(wǎng)絡(luò)函數(shù)等)以及調(diào)用私有部分的安全敏感函數(shù)的函數(shù)的一組公共應(yīng)用程序接口(api)。為了防止惡意代碼訪問在應(yīng)用程序的私有部分中實現(xiàn)的安全敏感函數(shù),使用在應(yīng)用程序內(nèi)在公共部分和私有部分之間建立的安全會話來執(zhí)行對私有部分的訪問。公共部分和私有部分之間可以共享授權(quán)密鑰。當公共部分嘗試調(diào)用在私有部分中實現(xiàn)的函數(shù)時,通過以下方式建立安全會話:生成會話id,在密鑰派生函數(shù)中組合會話id和授權(quán)密鑰以生成會話密鑰,以及使用會話密鑰加密來自公共部分的函數(shù)調(diào)用。私有部分然后可以解密被正確加密的函數(shù)調(diào)用并調(diào)用合適的函數(shù)。

      在一些實施例中,便攜式通信裝置可以包括一個或多個處理器,以及耦接到該一個或多個處理器并存儲計算機可讀代碼的存儲器,該計算機可讀代碼當由該一個或多個處理器執(zhí)行時,實現(xiàn)具有公共部分和私有部分的應(yīng)用程序。公共部分可以被配置為向私有部分發(fā)送開始會話請求,從私有部分接收會話標識符(id),以及使用會話id和密鑰派生函數(shù)來生成會話密鑰。公共部分還可以被配置為使用該會話密鑰加密函數(shù)調(diào)用請求的有效負載,其中有效負載表示對在私有部分中實現(xiàn)的函數(shù)的函數(shù)調(diào)用,并且公共部分還可以被配置為將包括加密的有效負載的函數(shù)調(diào)用請求發(fā)送到私有部分。私有部分可以配置為執(zhí)行正在函數(shù)調(diào)用請求中被調(diào)用的函數(shù)。

      在一些實施例中,在具有公共部分和私有部分的應(yīng)用程序中控制訪問的過程可以包括由應(yīng)用程序的公共部分向應(yīng)用程序的私有部分發(fā)送開始會話請求,并且由公共部分從私有部分接收會話標識符(id)。公共部分可以使用會話id和密鑰派生函數(shù)來生成會話密鑰,并且使用會話密鑰來加密函數(shù)調(diào)用請求的有效負載,其中有效負載表示對在私有部分中實現(xiàn)的函數(shù)的函數(shù)調(diào)用。公共部分然后可以將包括加密的有效負載的函數(shù)調(diào)用請求發(fā)送到私有部分以調(diào)用該函數(shù)。

      在一些實施例中,在具有公共部分和私有部分的應(yīng)用程序中控制訪問的過程可以包括由應(yīng)用程序的私有部分從應(yīng)用程序的公共部分接收開始會話請求;以及響應(yīng)于開始會話請求由私有部分生成會話id。私有部分可以將會話id發(fā)送到公共部分,并且使用會話id和密鑰派生函數(shù)來生成會話密鑰。私有部分可以從公共部分接收包括加密的有效負載的函數(shù)調(diào)用請求,該有效負載表示對在私有部分中實現(xiàn)的函數(shù)的函數(shù)調(diào)用。私有部分可以使用會話密鑰來解密加密的有效負載以取回該函數(shù)調(diào)用,并且執(zhí)行該函數(shù)調(diào)用的函數(shù)。

      附圖說明

      圖1示出根據(jù)一些實施例的通信裝置的框圖。

      圖2示出根據(jù)一些實施例的用于控制對應(yīng)用程序中的函數(shù)的訪問的過程的流程圖。

      圖3示出根據(jù)一些實施例的應(yīng)用程序的概念框圖。

      圖4示出根據(jù)一些實施例的系統(tǒng)的框圖。

      圖5示出根據(jù)一些實施例的便攜式通信裝置的框圖。

      圖6示出根據(jù)一些實施例的交易應(yīng)用程序的概念框圖。

      圖7示出根據(jù)一些實施例的在具有公共部分和私有部分的應(yīng)用程序中控制訪問的過程的流程圖。

      圖8示出根據(jù)一些實施例的在具有公共部分和私有部分的應(yīng)用程序中控制訪問的過程的另一流程圖。

      具體實施方式

      本發(fā)明的實施例提供了用于增強計算裝置(例如,便攜式通信裝置)的安全性,特別地用于增強安裝在計算裝置上的應(yīng)用程序的安全性的技術(shù)。在一些實施例中,應(yīng)用程序可以被劃分為公共部分和私有部分。私有部分可以是用于實現(xiàn)安全敏感函數(shù)(例如,諸如令牌請求、賬戶參數(shù)補充等的函數(shù))的本地庫。公共部分可以是用于實現(xiàn)非安全敏感函數(shù)(例如,用戶界面相關(guān)函數(shù)、網(wǎng)絡(luò)函數(shù)等)以及調(diào)用私有部分的安全敏感函數(shù)的函數(shù)的一組公共應(yīng)用程序接口(api)。

      根據(jù)一些實施例,為了防止惡意代碼訪問在應(yīng)用程序的私有部分中實現(xiàn)的安全敏感函數(shù),使用在應(yīng)用程序內(nèi)在公共部分和私有部分之間建立的安全會話來執(zhí)行對私有部分的訪問。公共部分和私有部分之間可以共享授權(quán)密鑰。當公共部分嘗試調(diào)用在私有部分中實現(xiàn)的函數(shù)時,通過以下方式建立安全會話:生成會話id,在密鑰派生函數(shù)中組合會話id和授權(quán)密鑰以生成會話密鑰,以及使用會話密鑰加密來自公共部分的函數(shù)調(diào)用。私有部分然后可以解密被正確加密的函數(shù)調(diào)用并調(diào)用合適的函數(shù)。嘗試訪問私有部分中的函數(shù)的惡意代碼不太可能具有有效的授權(quán)密鑰來生成有效的會話密鑰以正確地加密函數(shù)調(diào)用。因此,私有部分將無法識別函數(shù)調(diào)用,并且會忽略惡意代碼的那些訪問嘗試。

      在討論本發(fā)明的一些實施例的細節(jié)之前,對一些術(shù)語的描述可以有助于理解各個實施例。

      “通信裝置”可以是包括可以與另一裝置通信的一個或多個電子部件(例如,集成芯片)的裝置。例如,通信裝置可以是包括耦接到存儲器的至少一個處理器的計算裝置,存儲器存儲用于由處理器執(zhí)行的指令或代碼?!氨銛y式通信裝置”可以是可以由用戶搬運和操作的通信裝置,并且可以包括一個或多個電子部件(例如,集成芯片)。便攜式通信裝置可以提供對網(wǎng)絡(luò)的遠程通信能力。便攜式通信裝置可以被配置為向或從其他裝置發(fā)送和接收數(shù)據(jù)或通信。便攜式通信裝置可以是移動裝置的形式,例如移動電話(例如,智能電話、蜂窩電話等)、平板電腦、便攜式媒體播放器、個人數(shù)字助理裝置(pda)、可穿戴裝置(例如,手表、諸如健身追蹤器的健康監(jiān)測裝置等)、電子閱讀器裝置等,或是卡(例如,智能卡)或表鏈等的形式。便攜式通信裝置的示例還可以包括便攜式計算裝置(例如,筆記本電腦、上網(wǎng)本、超級本等)。便攜式通信裝置也可以是車輛(例如,汽車)的形式,或者被集成為車輛的一部分(例如,車輛的信息系統(tǒng))。

      “服務(wù)器計算機”可以包括功能強大的計算機或計算機集群。例如,服務(wù)器計算機可以是大的主機、小型計算機集群或像一個單元一樣工作的一組服務(wù)器。在一個示例中,服務(wù)器計算機可以是耦連至網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù)庫服務(wù)器。服務(wù)器計算機可以耦連到數(shù)據(jù)庫并且可以包括用于服務(wù)于來自一個或多個客戶端計算機的請求的任何硬件、軟件、其他邏輯、或前述內(nèi)容的組合。服務(wù)器計算機可以包括一個或多個計算裝置并且可以使用各種計算結(jié)構(gòu)、排列和編譯中的任何一種來服務(wù)于來自一個或多個客戶端計算機的請求。

      “發(fā)行方”通??梢灾妇S持與便攜式通信裝置相關(guān)聯(lián)的用戶的賬戶的業(yè)務(wù)實體(例如銀行),所述賬戶例如為登記在安裝在便攜式通信裝置上的移動應(yīng)用程序中的賬戶。發(fā)行方還可以向便攜式通信裝置發(fā)出與賬戶相關(guān)聯(lián)的賬戶參數(shù)。發(fā)行方可以與代表發(fā)行方執(zhí)行發(fā)行方的一些或全部功能的主機系統(tǒng)相關(guān)聯(lián)。

      “商家”通??梢允菂⑴c交易并且能夠出售商品或服務(wù)或提供對商品或服務(wù)的訪問的實體。

      “收單方”通??梢允桥c特定商家或其他實體有商業(yè)關(guān)系的商業(yè)實體(例如商業(yè)銀行)。一些實體可執(zhí)行發(fā)行方和收單方功能。一些實施例可以涵蓋這種單實體發(fā)行方-收單方。

      “訪問裝置”可以是用于與商家計算機或交易處理網(wǎng)絡(luò)進行通信,以及用于與交易裝置(例如,支付裝置)、用戶計算機設(shè)備和/或用戶移動裝置交互的任何合適的裝置。訪問裝置通??梢晕挥谌魏芜m當?shù)奈恢茫T如在商家所在的位置。訪問裝置可以是任何適當?shù)男问?。訪問裝置的一些示例包括pos裝置、蜂窩電話、pda、個人計算機(pc)、平板pc、手持專用閱讀器、機頂盒、電子現(xiàn)金出納機(ecr)、自動柜員機(atm)、虛擬現(xiàn)金出納機(vcr)、營業(yè)亭、安全系統(tǒng)、訪問系統(tǒng)、網(wǎng)站等等。訪問裝置可以使用任何適當?shù)慕佑|或非接觸操作模式以向便攜式裝置發(fā)送或從其接收數(shù)據(jù)或與便攜式裝置關(guān)聯(lián)。在訪問裝置可以包括pos終端的一些實施例中,任何適當?shù)膒os終端可以被使用,并且其可以包括閱讀器、處理器和計算機可讀介質(zhì)。閱讀器可以包括任何適當?shù)慕佑|或非接觸操作模式。例如,示例性讀卡器可以包括與便攜式通信裝置交互的射頻(rf)天線、光學(xué)掃描器、條形碼閱讀器或磁條閱讀器。

      “授權(quán)請求消息”可以是被發(fā)送以請求交易授權(quán)的電子消息。授權(quán)請求消息可以被發(fā)送到交易處理網(wǎng)絡(luò)和/或交易卡(例如,支付卡)的發(fā)行方。根據(jù)一些實施例的授權(quán)請求消息可以符合iso8583,iso8583是用于交換與用戶使用交易裝置或交易賬戶進行的交易相關(guān)聯(lián)的電子交易信息的系統(tǒng)的標準。授權(quán)請求消息可以包括可用于識別賬戶的信息。授權(quán)請求消息還可以包括附加數(shù)據(jù)元素,例如服務(wù)代碼、到期日期等中的一個或多個。授權(quán)請求消息還可以包括交易信息,諸如與當前交易關(guān)聯(lián)的任何信息,諸如交易金額、商家標識符、商家位置等,以及可以用來確定是否識別和/或授權(quán)交易的任何其他信息。授權(quán)請求消息還可以包括其他信息,諸如識別生成授權(quán)請求消息的訪問裝置的信息,關(guān)于訪問裝置的位置的信息等。

      “授權(quán)響應(yīng)消息”可以是對授權(quán)請求消息的電子消息回復(fù)。授權(quán)響應(yīng)消息可以由發(fā)行金融機構(gòu)或交易處理網(wǎng)絡(luò)生成。授權(quán)響應(yīng)消息可以包括(只作為示例)以下狀態(tài)指示符中的一個或多個:批準-交易被批準;拒絕-交易不被批準;或呼叫中心-響應(yīng)未決的更多信息,商家必須呼叫免費授權(quán)電話號碼。授權(quán)響應(yīng)消息還可以包括授權(quán)代碼,其可以是信用卡發(fā)行銀行響應(yīng)于電子消息中的授權(quán)請求消息(直接地或者通過交易處理網(wǎng)絡(luò))返回商家計算機的指示交易被批準的代碼。代碼可以用作授權(quán)的證據(jù)。如上文指出的,在一些實施例中,交易處理網(wǎng)絡(luò)可以生成或向商家轉(zhuǎn)發(fā)授權(quán)響應(yīng)消息。

      “令牌”可以包括某一信息的替代標識符。例如,交易令牌可以包括交易賬戶的標識符,其是賬戶標識符的替代,諸如主賬號(pan)。例如,令牌可以包括可以用作原始賬戶標識符的替代的一連串字母數(shù)字字符。例如,令牌“4900000000000001”可以代替pan“4147090000001234”使用。在一些實施例中,令牌可以是“保留格式的”,可以有與現(xiàn)有的交易處理網(wǎng)絡(luò)中使用的賬戶標識符一致的數(shù)字格式(例如,iso8583金融交易消息格式)。在一些實施例中,令牌可以代替pan使用,以發(fā)起、授權(quán)、結(jié)算或完成交易。在通常提供原始證書的其他系統(tǒng)中,令牌還可以用來表示原始證書。在一些實施例中,可以生成令牌值,使得由令牌值恢復(fù)原始pan或其他賬戶標識符不可以由計算得到。進一步地,在一些實施例中,令牌格式可以被配置成使接收令牌的實體將其識別為令牌,并識別發(fā)行令牌的實體。

      “真實賬戶標識符”可以包括與賬戶相關(guān)聯(lián)的原始賬戶標識符。例如,真實賬戶標識符可以是由卡賬戶(例如,信用卡、借記卡等)的發(fā)行者發(fā)行的主賬號(pan)。例如,在一些實施例中,真實賬戶標識符可以包括十六位數(shù)值,例如“4147090000001234”。真實賬戶標識符的前六位數(shù)字(例如“414709”)可以表示可以識別與真實賬戶標識符相關(guān)聯(lián)的發(fā)行方的真實發(fā)行方標識符(bin)。

      “賬戶參數(shù)”可以指與可用于在該賬戶上進行交易的賬戶有關(guān)的信息。賬戶參數(shù)的示例可以包括可以用于識別用戶的賬戶的信息(例如,真實賬戶標識符、備用賬戶標識符、令牌等)、與賬戶狀態(tài)有關(guān)的數(shù)據(jù)或信息、用于生成密碼信息的一個或多個密鑰、與一個或多個密鑰相關(guān)的數(shù)據(jù)或信息等。賬戶參數(shù)可以是半靜態(tài)或動態(tài)的。動態(tài)賬戶參數(shù)可以是具有有限壽命的賬戶參數(shù),并且其一旦到期,就不能再用于進行交易,直到賬戶參數(shù)被補充、刷新或更新為止。在賬戶的生命周期內(nèi),可以頻繁地補充動態(tài)賬戶參數(shù)。半靜態(tài)賬戶參數(shù)可以是具有比動態(tài)賬戶參數(shù)更長的擴展生命周期的賬戶參數(shù),并且在賬戶的生命周期內(nèi)可以比動態(tài)賬戶參數(shù)不那么頻繁地補充,或者根本不補充。

      “密鑰”可以指在密碼算法中使用的一條信息,以將輸入數(shù)據(jù)轉(zhuǎn)換成另一種表示形式。密碼算法可以是將原始數(shù)據(jù)轉(zhuǎn)換為替代表示形式的加密算法,或?qū)⒓用苄畔⑥D(zhuǎn)換回原始數(shù)據(jù)的解密算法。密碼算法的示例可以包括三重數(shù)據(jù)加密標準(tdes)、數(shù)據(jù)加密標準(des)、高級加密標準(aes)等。

      “有限使用密鑰”或“l(fā)uk”可以指僅可用于有限時間或有限交易次數(shù)的密鑰,并且在有限使用已經(jīng)耗盡時可能需要更新或補充。luk可以與限制使用luk的一個或多個有限使用閾值的集合相關(guān)聯(lián),其中一旦luk的使用已經(jīng)耗盡或超過了一個或多個有限使用閾值的集合,則使用該luk進行的進一步交易將被拒絕,即使基礎(chǔ)賬戶仍然處于良好狀態(tài)。一個或多個有限使用閾值的集合可以包括可以使用luk的多個交易中的至少一個,指示luk有效的持續(xù)時間的存活時間,和/或表示在luk有效的一個或多個交易中相加的總交易金額的累計交易金額,或其任何組合。

      有限使用閾值可以指限制一條信息的使用的條件。當滿足基本條件時,可能會超出或耗盡有限使用閾值。例如,有限使用閾值可以包括指示一條信息有效的時長的存活時間,并且一旦經(jīng)過了該時長,則超過或耗盡有限使用閾值,并且該條信息可能變得無效并且可能不再被使用。作為另一示例,有限使用閾值可以包括可以使用一條信息的次數(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ā)明的一些實施例的細節(jié)。

      圖1示出根據(jù)一些實施例的通信裝置100。通信裝置100可以是計算裝置,并且在一些實現(xiàn)方式中,可以是諸如移動裝置的便攜式通信裝置。通信裝置100可以包括諸如一個或多個處理器的裝置硬件104、操作系統(tǒng)114和在通信裝置100上運行的應(yīng)用程序112。在一些實施例中,應(yīng)用程序122可以在諸如虛擬機110的應(yīng)用程序環(huán)境110內(nèi)執(zhí)行。

      應(yīng)用程序112可以被劃分成多個部分(例如,多個軟件層或軟件庫)。例如,應(yīng)用程序122可以包括作為第一軟件層的公共部分120和作為第二軟件層的私有部分130。公共部分120和私有部分130可以由相同的開發(fā)者提供或由不同的實體提供。在一些實施例中,公共部分120和私有部分130可以用相同或不同的編程語言編寫。例如,公共部分120可以用高級編程語言編寫,并且可以被實現(xiàn)為軟件開發(fā)工具包(sdk)。私有部分130可以是諸如本地開發(fā)工具包(ndk)的本地庫,并且可以用低級編程語言編寫。在一些實施例中,私有部分130可以是可以在應(yīng)用程序環(huán)境110中執(zhí)行的各種應(yīng)用程序之間共享的本地庫。公共部分120可以經(jīng)由兩個軟件層之間的接口與私有部分130通信以交換數(shù)據(jù)并且調(diào)用在私有部分130中實現(xiàn)的函數(shù),和/或反之亦然。

      在一些實施例中,操作系統(tǒng)114可以是諸如android的移動操作系統(tǒng)。公共部分120可以用java編寫,私有部分130可以用c或c++編寫。在這樣的實施例中,公共部分120和私有部分130之間的接口可以是java本地接口(jni)。在應(yīng)用程序112的編譯期間,java公共部分120的源代碼可以使用諸如javac的java編譯器被編譯成java類文件。允許公共部分120調(diào)用私有部分130中的函數(shù)的c或c++代碼頭可以由諸如javah的頭文件生成器生成。本地c或c++私有部分130的源代碼可以被編譯并鏈接到該頭文件以形成共享對象(.so)動態(tài)庫文件。java類文件和動態(tài)庫文件可以被打包并壓縮到應(yīng)用程序包文件(例如,android應(yīng)用程序包(.apk)文件)中。該應(yīng)用程序包文件可以從應(yīng)用程序商店下載到通信裝置100上,并且用于將應(yīng)用程序112安裝到通信裝置100上。在一些實施例中,安裝應(yīng)用程序112將實例化虛擬機實例,例如應(yīng)用程序112將在其中運行的dalvik虛擬機實例。

      在一些實施例中,應(yīng)用程序112可以是訪問和使用或處理敏感信息的應(yīng)用程序。例如,應(yīng)用程序112可以使用諸如加密密鑰的某些敏感數(shù)據(jù)資產(chǎn)來執(zhí)行密碼操作,或者可以訪問或使用諸如個人或財務(wù)信息的敏感信息??梢栽谒接胁糠?30中實現(xiàn)與敏感信息的處理相關(guān)的函數(shù)(可以稱為安全敏感函數(shù)),而可以在公共部分120中實現(xiàn)諸如用戶界面和外部通信(例如,網(wǎng)絡(luò))函數(shù)的基本函數(shù)。由于應(yīng)用程序112的模塊化特性,沒有適當?shù)谋Wo措施,實施安全敏感函數(shù)的私有部分130可能容易受到尋求包括底層敏感信息的黑客攻擊的影響。

      還應(yīng)注意,公共部分120和私有部分130是一個應(yīng)用程序112的部分。因此,例如,包括公共部分120和私有部分130的應(yīng)用程序112可以作為單個應(yīng)用程序包首先從應(yīng)用程序商店下載,并且作為單個應(yīng)用程序安裝在通信裝置100上。包括公共部分120和私有部分130的應(yīng)用程序112可以被表示為通信裝置100的用戶界面上的一個圖標,并且包括公共部分120和私有部分130的應(yīng)用程序112被操作系統(tǒng)114視為一個應(yīng)用程序。

      圖2示出根據(jù)一些實施例的用于控制對具有多個層或部分的應(yīng)用程序中實現(xiàn)的函數(shù)的訪問的過程200的流程圖。例如,過程200可以用于控制對在應(yīng)用程序的私有部分中實現(xiàn)的安全敏感函數(shù)的訪問。在方框202,嘗試訪問在應(yīng)用程序的目標層(例如,私有部分)中實現(xiàn)的函數(shù)的應(yīng)用程序的調(diào)用層(例如,公共部分)可以獲得會話標識符(id)以發(fā)起在應(yīng)用程序的兩層之間的會話。會話id可以由應(yīng)用程序的目標層、或應(yīng)用程序的另一層、另一應(yīng)用程序或另一個實體(例如,操作系統(tǒng)))生成。

      在方框204,可以使用會話id來生成會話密鑰。例如,在一些實施例中,會話id可被加密以產(chǎn)生會話密鑰。在一些實施例中,會話id可以用作密鑰派生算法的輸入種子(例如,鹽值)以生成會話密鑰。應(yīng)用程序的調(diào)用層和目標層都可以基于會話id單獨生成會話密鑰。會話密鑰可以是用于加密和解密數(shù)據(jù)的對稱密鑰。

      在框206,當調(diào)用層想要調(diào)用在應(yīng)用程序的目標層中實現(xiàn)的函數(shù)時,調(diào)用層可以使用會話密鑰對函數(shù)調(diào)用進行加密。已經(jīng)基于相同的會話id生成會話密鑰的目標層可以使用其自身的會話密鑰副本來正確地解密該函數(shù)調(diào)用。然后,目標層可以繼續(xù)執(zhí)行被調(diào)用的函數(shù)。

      在一些實施例中,目標層可被配置為忽略除了開始會話請求(請求會話id)和函數(shù)調(diào)用請求之外的任何傳入請求。因此,在函數(shù)調(diào)用請求的加密有效負載中接收到對目標層的函數(shù)調(diào)用。沒有使用正確的會話密鑰加密的函數(shù)調(diào)用,或者沒有作為函數(shù)調(diào)用請求的有效負載被接收的函數(shù)調(diào)用可以被目標層忽略。

      圖3示出根據(jù)一些實施例的移動應(yīng)用程序312的一些部件的框圖。移動應(yīng)用程序312可以包括公共部分320(例如,軟件開發(fā)工具包sdk)和私有部分330(例如,本地庫ndk)。公共部分320可以用諸如java的第一編程語言編寫,私有部分330可以用諸如c或c++的第二編程語言編寫。在編譯時,在公共部分320和私有部分330之間生成并共享唯一的加密密鑰。唯一的加密密鑰可以是例如128位密鑰、256位密鑰或其他長度的密鑰,并且可以是隨機或偽隨機數(shù)。該唯一的加密密鑰可以作為授權(quán)密鑰321嵌入到公共部分320中,并作為授權(quán)密鑰331嵌入到私有部分330中。

      公共部分320可以包括在運行期間由公共部分320用來生成對話密鑰323的密鑰派生函數(shù)(kdf)322。公共部分320還可以包括由公共部分320用來調(diào)用在私有部分330中實現(xiàn)的函數(shù)的函數(shù)調(diào)用接口325。

      私有部分330可以包括會話id生成器334,其生成會話id304以在公共部分320和私有部分330之間建立會話。私有部分330還可以包括對應(yīng)于kdf322的密鑰派生函數(shù)(kdf)332。私有部分330在運行期間使用kdf332為私有部分330生成相應(yīng)的會話密鑰333。私有部分330還可以包括函數(shù)調(diào)用接口335,其為公共部分320調(diào)用在私有部分330中實現(xiàn)的函數(shù)336。

      當公共部分320被初始化或者當私有部分330中實現(xiàn)的函數(shù)336由公共部分320需要時,公共部分320可以向私有部分330(例如,向私有部分330的會話id生成器334)發(fā)送開始會話請求302。在一些實施例中,每次應(yīng)用程序312被啟動或開始時,每次應(yīng)用程序312被選擇或被帶到用戶界面的前臺時,和/或每次應(yīng)用程序312用于啟動或執(zhí)行特定操作時,公共部分320可以發(fā)送開始會話請求302。響應(yīng)于接收到開始會話請求302,會話id生成器334可以生成會話id304。在一些實施例中,會話id生成器334可以是生成作為會話id304的隨機數(shù)的隨機數(shù)生成器,生成作為會話id304的偽隨機數(shù)的偽隨機數(shù)生成器,生成作為會話id334的計數(shù)值的計數(shù)器,或根據(jù)特定序列或模式生成會話id304的序列或模式生成器。盡管會話id生成器334被顯示為私有部分330的一部分,但是在一些實施例中,會話id生成器334可以是應(yīng)用程序312的不同部分的一部分、另一應(yīng)用程序的一部分或通信裝置的另一部件的一部分(例如,操作系統(tǒng))。

      在會話id生成器334生成了會話id334之后,會話id334被提供給公共部分320的密鑰派生函數(shù)(kdf)322和私有部分330的密鑰派生函數(shù)(kdf)332。私有部分330的kdf332將會話id304與授權(quán)密鑰331組合以生成會話密鑰333。例如,kdf332可以是將會話id304和授權(quán)密鑰331作為操作數(shù)來生成會話密鑰333的數(shù)學(xué)運算(例如,相加、乘法等)或邏輯運算(例如,xor、xnor等)。作為另一示例,kdf332可以是以授權(quán)密鑰321作為輸入數(shù)據(jù)進行計算的散列算法,并且會話id304可以用作散列算法的鹽值(或反之亦然)以生成會話密鑰333。作為另一示例,kdf332可以是使用授權(quán)密鑰331作為加密密鑰(或反之亦然)加密會話id304以生成會話密鑰333的加密算法。在一些實施例中,kdf332可以是一個或多個數(shù)學(xué)或邏輯運算、散列算法和/或加密算法的組合。例如,kdf332可以是應(yīng)用于向會話id304和授權(quán)密鑰331應(yīng)用邏輯運算的結(jié)果的加密算法。

      公共部分320的kdf322采用與私有部分330的kdf332相同的算法和/或運算。在從會話id生成器334接收到會話id304時,公共部分320使用kdf322將授權(quán)密鑰321與會話id304組合以派生會話密鑰323。在一些實施例中,當私有部分330響應(yīng)于開始會話請求302時,公共部分320使用的kdf322可以由私有部分330提供給公共部分320。

      在一些實施例中,kdf322和kdf332可以是動態(tài)的,并且可以從一個會話改變到另一個會話。例如,對于每個新會話,可以通過將動態(tài)種子應(yīng)用于基本密鑰派生函數(shù)來派生kdf332作為基本密鑰派生函數(shù)的變體。動態(tài)種子可以是例如對在公共部分320和私有部分330之間建立的先前會話進行計數(shù)的會話計數(shù)器。在一些實施例中,私有部分330可以包括一組密鑰派生函數(shù),并且可以從該組密鑰派生函數(shù)中選擇用于特定會話的kdf332(例如,通過每當在公共部分320和私有部分330之間建立新的會話時旋轉(zhuǎn)kdf)。公共部分320使用的kdf322可以以相同的方式獲得。在一些實施例中,如果公共部分320包含要從中選擇的一組密鑰派生函數(shù),則可以由私有部分330基于私有部分330為特定會話所使用的特定kdf332來選擇kdf322。

      為了調(diào)用在私有部分330中實現(xiàn)的函數(shù),公共部分320將生成的會話密鑰323提供給函數(shù)調(diào)用接口325。函數(shù)調(diào)用接口325可以使用會話密鑰323對正被調(diào)用的函數(shù)的函數(shù)調(diào)用及其相關(guān)參數(shù)進行加密,并且將加密的信息打包為函數(shù)調(diào)用請求306的有效負載。公共部分320然后將具有加密的有效負載的函數(shù)調(diào)用請求306發(fā)送到私有部分330的函數(shù)調(diào)用接口335。當私有部分330接收到函數(shù)調(diào)用請求306時,函數(shù)調(diào)用接口335解密函數(shù)調(diào)用請求306的有效負載以取回函數(shù)調(diào)用及其相關(guān)參數(shù)。在正確地解密函數(shù)調(diào)用之后,識別對應(yīng)的函數(shù)336,私有部分330執(zhí)行函數(shù)調(diào)用請求306的底層函數(shù)336。在一些實施例中,如果函數(shù)336涉及將數(shù)據(jù)或信息從私有部分330返回給公共部分320,則在被發(fā)送到公共部分320之前,返回數(shù)據(jù)或信息可以由會話密鑰333加密。公共部分320可以使用會話密鑰323解密該加密的返回數(shù)據(jù)和信息。

      在一些實施例中,在預(yù)定時間段和/或一定數(shù)量的函數(shù)調(diào)用之后,私有部分330可以終止當前會話,并迫使公共部分320協(xié)商新的會話id并獲得用于從公共部分320任何進一步的函數(shù)調(diào)用的新會話密鑰。例如,在公共部分320和私有部分330之間建立的會話可以在生成對應(yīng)的會話id之后經(jīng)過2分鐘、5分鐘或10分鐘等等之后終止,或者在應(yīng)用程序312已經(jīng)空閑1分鐘、2分鐘、5分鐘、或者10分鐘后終止。作為另一示例,在公共部分320和私有部分330之間建立的會話可以在私有部分從公共部分320接收1、2或5個函數(shù)調(diào)用請求之后終止。在一些實施例中,預(yù)定時間段或函數(shù)調(diào)用的數(shù)量可以由應(yīng)用程序提供方或用戶可配置。

      如上所述,僅需要兩種類型的通信從應(yīng)用程序312的公共部分320調(diào)用在私有部分330中實現(xiàn)的任何函數(shù),即開始會話請求302和函數(shù)調(diào)用請求306。因此,在一些實施例中,為了進一步保護私有部分330不被惡意代碼訪問,私有部分330可被配置為忽略來自公共部分320的既不是開始會話請求也不是函數(shù)調(diào)用請求的通信或請求。

      在一些實施例中,應(yīng)用程序312可以包括在公共部分320和私有部分330之間接口的本地接口(未示出),例如java本地接口(jni)。本文描述的由私有部分330執(zhí)行的用于建立與公共部分320的會話的一些或全部函數(shù)可以在本地接口中實現(xiàn)。

      圖4示出根據(jù)一些實施例的可以使用本文描述的訪問控制技術(shù)的示例性系統(tǒng)500的框圖。系統(tǒng)400可以是例如用于進行基于云的交易的基于云的交易系統(tǒng)。系統(tǒng)400包括便攜式通信裝置410(例如,移動裝置)、基于云的交易平臺(cbp)480和移動應(yīng)用平臺(map)470。cbp480可以使用一個或多個計算裝置來實現(xiàn),并且可以與發(fā)行方、交易處理器和/或其他合適的實體相關(guān)聯(lián)或由發(fā)行方、交易處理器和/或其他合適的實體來操作。cbp480實現(xiàn)一系列功能,包括賬戶管理以及賬戶參數(shù)的生成和補充,以便經(jīng)由便攜式通信裝置410進行基于云的交易。

      map470用于促進便攜式通信裝置410中的cbp480與移動應(yīng)用程序514(例如,交易應(yīng)用程序)之間的通信。map470可以使用一個或多個計算裝置來實現(xiàn),并且可以與移動應(yīng)用程序414(例如,移動軟件應(yīng)用程序)的服務(wù)提供方(例如發(fā)行方、移動錢包提供方、商家和/或其他合適的實體)相關(guān)聯(lián)或由其操作。在一些實施例中,map470可以與cbp480相同的實體關(guān)聯(lián)或由其操作,或者它們可以是分開的。map470用于在移動應(yīng)用程序414和cbp480之間的中介請求,并且確保一旦建立了與便攜式通信裝置410的連接,例如經(jīng)由通信網(wǎng)絡(luò)482(例如,互聯(lián)網(wǎng),移動或蜂窩網(wǎng)絡(luò)等),任何一方發(fā)起的請求和響應(yīng)都得到滿足。應(yīng)當理解,在一些實施例中,cbp480、map470和/或發(fā)行方或主機處理系統(tǒng)472的一個或多個功能可以集成到相同的計算系統(tǒng)或不同的計算系統(tǒng)中。

      便攜式通信裝置410可用于進行由cbp480和/或map470促成的基于云的交易(例如,支付交易)。便攜式通信裝置410包括裝置硬件432、移動操作系統(tǒng)(os)422和應(yīng)用程序環(huán)境412。裝置硬件432包括非接觸式接口434,其可以與另一裝置非接觸地通信或以其他方式呈現(xiàn)信息,例如存取裝置460的非接觸式讀取器462。非接觸式接口434的示例可以包括可以使用無線電頻率發(fā)送和接收通信的近場通信(nfc)接口,或其他無線通信協(xié)議(例如藍牙、低功耗藍牙(ble)、wi-fi等)。非接觸式接口534的示例還可以包括諸如顯示器的光學(xué)接口,以呈現(xiàn)例如快速響應(yīng)(qr)代碼、條形碼等信息。

      便攜式通信裝置410的應(yīng)用程序環(huán)境412可以包括移動應(yīng)用程序414,諸如由服務(wù)提供方提供的交易應(yīng)用程序。例如,如果移動應(yīng)用程序414的服務(wù)提供方是發(fā)行方,則移動應(yīng)用程序414可以是移動銀行應(yīng)用程序或移動支付應(yīng)用程序。如果服務(wù)提供方是諸如支持多個發(fā)行方的移動網(wǎng)絡(luò)運營商或第三方錢包提供方的移動錢包提供方,則移動應(yīng)用程序414可以是移動錢包應(yīng)用程序。對于商家,移動應(yīng)用程序414可以是商家自身的交易應(yīng)用程序(消費者可以從該交易應(yīng)用程序進行電子商務(wù)或銷售點交易)或支持多個商家的移動錢包應(yīng)用程序。

      在一些實施例中,移動應(yīng)用程序414可以包括集成到移動應(yīng)用程序414中的裝置上的基于云的交易邏輯,以支持基于云的交易。裝置上的基于云的交易邏輯執(zhí)行各種功能以促進基于云的交易,例如獲取在支付交易中使用的賬戶參數(shù),并將其傳送到移動操作系統(tǒng)422以通過非接觸式接口434進行傳輸。例如,裝置上的基于云的交易邏輯可以使用從cbp480配置的密碼密鑰(例如,有限使用密鑰)來生成通過非接觸式接口傳送到訪問裝置460以進行支付交易的交易密碼。交易密碼可以被發(fā)送到交易處理網(wǎng)絡(luò)484以獲得對支付交易的授權(quán)。裝置上的基于云的交易邏輯還管理在已經(jīng)配置賬戶之后提供的初始服務(wù)配置文件參數(shù),以確保啟動對賬戶參數(shù)補充和其他賬戶參數(shù)管理活動的請求。

      為了為基于云的支付交易配置便攜式通信裝置410,可以使用cbp480來配置與發(fā)行方相關(guān)聯(lián)的賬戶組合,并且向便攜式通信裝置410提供用于在進行基于云的交易時使用的賬戶參數(shù)。由cbp480建立的賬戶組合可以包括諸如風險參數(shù)(例如,速度控制)之類的特征,其管理為每個組合中的賬戶在需要刷新所提供的裝置上的賬戶參數(shù)時的觸發(fā)。為了確保一致的性能和可用性,可以通過cbp480實現(xiàn)可在服務(wù)配置文件中配置的一組最小參數(shù)。為了確保根據(jù)賬戶組合的服務(wù)配置文件中指定的規(guī)則處理基于云的支付交易,cbp480在已啟用賬戶的生命周期內(nèi)執(zhí)行各種核心功能。這些功能可以包括配置、主動賬戶管理、支付驗證、交易處理、生命周期管理和后付款。

      在將賬戶配置為基于云的交易賬戶之前,cbp480可以為組合創(chuàng)建服務(wù)配置文件。配置可以包括獲得注冊賬戶,創(chuàng)建賬戶信息(例如備用賬戶標識符(例如備用主賬號(pan)))或作為可以用于代替真實賬戶標識符(例如,真正的pan)進行交易的賬戶標識符替代的令牌,并為組合建立了繼承服務(wù)配置文件。一旦配置了賬戶,相關(guān)的服務(wù)配置文件的詳細信息便與交易處理和裝置上的基于云的交易邏輯共享,以確保在交易處理時和用戶使用移動應(yīng)用程序期間做出決策。

      一旦配置了賬戶,主動賬戶管理便可以由cbp480執(zhí)行。主動賬戶管理可以從交易處理活動或移動應(yīng)用程序活動啟動。在配置賬戶之后,主動賬戶管理功能生成要部署到便攜式通信裝置410的初始賬戶參數(shù)集合。賬戶參數(shù)可以包括在配置期間生成的賬戶信息(例如,備用賬戶標識符或令牌)以及動態(tài)信息,以確保賬戶參數(shù)集合在被傳送到裝置之后僅具有有限的使用或有限的壽命。取決于正在支持的交易類型,動態(tài)信息可包括有限使用的密碼密鑰或動態(tài)數(shù)據(jù)。例如,動態(tài)信息可以包括用于計算密碼的有限使用密鑰(luk)以及有限使用動態(tài)數(shù)據(jù)以支持傳統(tǒng)動態(tài)卡驗證值或基于代碼的實現(xiàn)。

      在交易處理期間,如果由cbp480維護的用于特定賬戶的服務(wù)配置文件參數(shù)指示便攜式通信裝置410上的賬戶參數(shù)需要被替換,則cbp480的主動賬戶管理功能可以經(jīng)由map470連接到便攜式通信裝置410以補充賬戶參數(shù)。類似地,如果存儲在便攜式通信裝置410上的裝置上服務(wù)配置文件參數(shù)指示需要或接近需要補充賬戶參數(shù)(即,通過監(jiān)測賬戶參數(shù)閾值),則移動應(yīng)用程序414可以向cbp480請求賬戶參數(shù)補充。

      一旦便攜式通信裝置410被配置用于進行基于云的交易,則可以經(jīng)由便攜式通信裝置410通過與訪問裝置460的非接觸式讀取器462(例如,在商家位置)交互來進行交易。訪問裝置460的部件可以包括銷售點(pos)終端464和/或電子收款機466。訪問裝置460可以耦接到收單方474(例如,經(jīng)由未示出的商家計算機)。收單方474可以經(jīng)由交易處理網(wǎng)絡(luò)484連接到發(fā)行方或主機處理系統(tǒng)472。交易處理網(wǎng)絡(luò)484可以包括一個或多個服務(wù)器計算機。服務(wù)器計算機通常是功能強大的計算機或計算機集群。例如,服務(wù)器計算機可以是大的主機、小型計算機集群或像一個單元一樣工作的一組服務(wù)器。在一個示例中,服務(wù)器計算機可以是耦連至網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù)庫服務(wù)器。交易處理網(wǎng)絡(luò)584可以使用任何適當?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)。

      實體中的每一個(例如,收單方474、交易處理網(wǎng)絡(luò)484、發(fā)行方或主機處理系統(tǒng)472)可以包括一個或多個計算機以實現(xiàn)通信,或者執(zhí)行本文所述的一個或多個功能。

      為了進行基于云的交易,便攜式通信裝置410的用戶可以對著訪問裝置460的非接觸式讀取器462(例如,經(jīng)由nfc)輕觸便攜式通信裝置410,或者在便攜式通信裝置410的屏幕上顯示諸如條形碼或qr碼之類的圖像,其可以由訪問裝置460的非接觸式讀取器462(例如,光學(xué)掃描器或讀取器)掃描。在一些實施例中,便攜式通信裝置410可以向訪問裝置460提供賬戶標識符(例如,備用賬戶標識符、令牌等)以及附加信息,例如有限使用賬戶參數(shù)或從有限使用賬戶參數(shù)導(dǎo)出的信息。例如,賬戶標識符或令牌和/或附加信息(例如,交易密碼)可以被編碼成由訪問裝置460掃描的條形碼或qr碼;或者賬戶標識符或令牌和/或附加信息可以經(jīng)由nfc被發(fā)送到訪問裝置460。在一些實施例中,有限使用的賬戶參數(shù)可以包括交易密碼。

      訪問裝置460或耦接到訪問裝置460的商家計算機可以生成包括賬戶標識符和附加信息(例如,有限使用賬戶參數(shù)或從有限使用賬戶參數(shù)導(dǎo)出的信息)的授權(quán)請求消息,并且將該授權(quán)請求消息轉(zhuǎn)發(fā)給收單方474。授權(quán)請求消息然后被發(fā)送到事務(wù)處理網(wǎng)絡(luò)484。交易處理網(wǎng)絡(luò)484然后將授權(quán)請求消息轉(zhuǎn)發(fā)到與與便攜式通信裝置410相關(guān)聯(lián)的賬戶的發(fā)行方相關(guān)聯(lián)的對應(yīng)的發(fā)行方或主機處理系統(tǒng)472。

      在發(fā)行方或主機處理系統(tǒng)472接收到授權(quán)請求消息之后,可以解析授權(quán)請求消息,并將授權(quán)請求消息中的信息發(fā)送到cbp480進行驗證。然后將授權(quán)響應(yīng)消息發(fā)送回交易處理網(wǎng)絡(luò)484以指示當前交易是否被授權(quán)(或未被授權(quán))。交易處理網(wǎng)絡(luò)484然后將授權(quán)響應(yīng)消息轉(zhuǎn)發(fā)回收單方474。在一些實施例中,即便發(fā)行方或主機處理系統(tǒng)472已經(jīng)授權(quán)交易,交易處理網(wǎng)絡(luò)484也可以拒絕交易,例如根據(jù)欺詐風險分數(shù)的值或根據(jù)有限使用的賬戶參數(shù)是否由cbp480驗證。收單方474然后將授權(quán)響應(yīng)消息發(fā)送到商家計算機和/或訪問裝置460。授權(quán)響應(yīng)結(jié)果可以由訪問裝置460顯示,或者可以在物理收條上打印輸出。替代性地,如果交易是在線交易,則商家可以提供網(wǎng)頁或授權(quán)響應(yīng)消息的其他指示,作為虛擬收條。收條可以包括交易的交易數(shù)據(jù)。

      在一天結(jié)束時,常規(guī)的清算和結(jié)算處理可以由交易處理網(wǎng)絡(luò)484進行。清算過程是在收單方和發(fā)行方之間交換財務(wù)細節(jié)的過程,以利于發(fā)布到顧客的支付賬戶,并核對用戶的結(jié)算位置。

      圖5示出了便攜式通信裝置501(例如,實現(xiàn)便攜式通信裝置備410)的框圖,其中可以實現(xiàn)本文描述的過程的一些實施例。便攜式通信裝置501可以包括耦接到存儲器502的裝置硬件504。裝置硬件504可以包括處理器505、通信子系統(tǒng)509、用戶接口506、顯示屏幕507(其可以是用戶接口506的一部分)和非接觸式接口508。處理器505可以被實現(xiàn)為一個或多個集成電路(例如,一個或多個單核或多核微處理器和/或微控制器),并且被用于控制便攜式通信裝置501的操作。處理器505可以響應(yīng)于存儲在存儲器502中的程序代碼或計算機可讀代碼執(zhí)行多種程序,并且可以維護多個同時執(zhí)行的程序或進程。通信子系統(tǒng)506可以包括一個或多個rf收發(fā)器和/或連接器,其可由便攜式通信裝置501使用以便與其他裝置進行通信和/或與外部網(wǎng)絡(luò)連接。用戶接口506可以包括輸入元件和輸出元件的任何組合,以便允許用戶與便攜式通信裝置501交互并且調(diào)用該便攜式通信裝置的功能。在一些實施例中,顯示屏幕507可以是用戶接口506的一部分。

      非接觸式接口508可以包括一個或多個rf收發(fā)器,以便與訪問裝置的非接觸式讀取器交互以進行交易(例如,支付交易、接入交易、信息交換等)。在一些實施例中,移動os514可以使用卡仿真api516來訪問非接觸式接口608,而不需要使用安全元件。在一些實施例中,顯示器507也可以是非接觸式接口508的一部分,并且例如用于使用qr碼、條形碼等來執(zhí)行交易。

      存儲器502可以使用任何數(shù)量的非易失性存儲器(例如,閃速存儲器)和易失性存儲器(例如,dram、sram)的任何組合、或任何其他非暫時性存儲介質(zhì)、或其組合介質(zhì)來實現(xiàn)。存儲器502可以存儲移動os514和移動應(yīng)用程序環(huán)境510,其中一個或多個移動應(yīng)用程序駐留,包括要被處理器505執(zhí)行的交易應(yīng)用程序512(例如,移動錢包應(yīng)用程序、移動銀行應(yīng)用程序、移動支付應(yīng)用程序、商家應(yīng)用程序等)。在一些實施例中,移動os514可以實現(xiàn)一組卡仿真api516,其可由交易應(yīng)用程序512調(diào)用以便訪問非接觸式接口508來與訪問裝置交互。

      根據(jù)一些實施例,交易應(yīng)用程序512可以包括多個軟件層。例如,交易應(yīng)用程序512可以包括公共部分520(例如,sdk)和私有部分530(例如,ndk)。公共部分520可以包括一組用于實現(xiàn)非安全敏感函數(shù)的公共api集合,例如用戶接口函數(shù)、網(wǎng)絡(luò)或通信函數(shù),以及可以調(diào)用在私有部分530中實現(xiàn)的安全敏感函數(shù)的函數(shù)。公共部分520可以用諸如java的高級編程語言編寫。私有部分630可以包括用于實現(xiàn)安全敏感函數(shù)的本地庫,例如令牌請求函數(shù)534,賬戶參數(shù)補充函數(shù)536,密碼生成函數(shù)538等。私有部分630可以用諸如c或c++的低級編程語言編寫。

      可以調(diào)用令牌請求函數(shù)534以從遠程服務(wù)器(例如,cbp或發(fā)行方或主機處理系統(tǒng))請求令牌。令牌可以用作真實賬戶標識符的替代進行交易,例如通過將令牌發(fā)送到訪問裝置。使用令牌而不是真實賬戶標識符可以更安全,因為在進行交易時不會傳送真實賬戶標識符。令牌請求函數(shù)534可以例如在注冊時被調(diào)用以請求初始令牌,或者當當前令牌的壽命已過期時。

      賬戶參數(shù)補充函數(shù)536可以被調(diào)用以補充或更新賬戶參數(shù),例如來自從遠程服務(wù)器(例如,cbp或發(fā)行方或主機處理系統(tǒng))的有限使用密鑰。在交易時,有限使用密鑰用于生成提供給訪問裝置進行交易的交易密碼。有限使用密鑰可以與一組或一個或多個有限使用的閾值(例如,對于預(yù)定時間段、預(yù)定次數(shù)的交易和/或預(yù)定累積交易金額有效)相關(guān)聯(lián),以限制luk的使用。當luk的一個或多個有限使用的閾值已經(jīng)過期或即將到期時,可以調(diào)用賬戶參數(shù)補充函數(shù)536來請求新的luk。

      在密碼生成函數(shù)538可以在交易時被調(diào)用以生成提供給訪問裝置進行交易的交易密碼??梢酝ㄟ^從訪問裝置接收動態(tài)交易數(shù)據(jù)(例如,交易金額、交易日期、不可預(yù)知的數(shù)字等)以及用luk加密該動態(tài)交易數(shù)據(jù)來生成交易密碼。在一些實施例中,可以通過加密靜態(tài)字符串來生成交易密碼而不使用luk(例如,如果訪問裝置不支持將動態(tài)數(shù)據(jù)傳輸?shù)奖銛y式通信裝置)。

      根據(jù)一些實施例,使用本文描述的訪問控制技術(shù)可以保護在私有部分530中實現(xiàn)的安全敏感函數(shù)免受惡意代碼危害。圖6示出了根據(jù)一些實施例的交易應(yīng)用程序612(例如,交易應(yīng)用程序512)的一些部件的框圖。包括請求會話id的請求和生成會話密鑰的各種部件的各種功能類似于關(guān)于圖3所討論的那些,因此不必重復(fù)其詳細描述。

      在編譯時,在公共部分620和私有部分630之間生成并共享唯一的加密密鑰。該唯一的加密密鑰作為授權(quán)密鑰621嵌入到公共部分620中,并作為授權(quán)密鑰631嵌入到私有部分630中。唯一的加密密鑰可以例如由交易應(yīng)用程序612、cbp或發(fā)行方或主機處理系統(tǒng)的應(yīng)用程序提供方生成。

      當公共部分620訪問私有部分630(例如,為了調(diào)用令牌請求函數(shù)、賬戶參數(shù)補充函數(shù)或密碼生成函數(shù))時,公共部分620向會話id生成器634發(fā)送開始會話請求602。例如,每當交易應(yīng)用程序612被啟動或開始時,每當交易應(yīng)用程序612被選擇或被帶到用戶接口的前臺時,每當交易應(yīng)用程序312被用于調(diào)用令牌請求函數(shù)或賬戶參數(shù)補充函數(shù)時,和/或每當交易應(yīng)用程序612用于通過調(diào)用密碼生成功函數(shù)行交易時,公共部分620可以發(fā)送開始會話請求602。會話id生成器634生成會話id604,并用會話id604響應(yīng)公共部分620。私有部分630使用kdf632將授權(quán)密鑰631與生成的會話id604組合以得到會話密鑰633。在接收到會話id604時,公共部分620使用kdf622將授權(quán)密鑰621與生成的會話id604組合以得到會話密鑰623。會話密鑰623和633可以是對稱密鑰。

      為了調(diào)用在私有部分630中實現(xiàn)的函數(shù),公共部分620使用該會話密鑰623加密函數(shù)調(diào)用及其相關(guān)聯(lián)的參數(shù),并且將加密的信息打包為函數(shù)調(diào)用請求606的有效負載。例如,如圖所示,公共部分620的函數(shù)調(diào)用接口625可以調(diào)用在私有部分630中實現(xiàn)的密碼生成函數(shù),以生成交易密碼進行交易。公共部分620的函數(shù)調(diào)用接口625可以將函數(shù)調(diào)用“gencrypto”和從訪問裝置接收到的動態(tài)交易數(shù)據(jù)加密為函數(shù)調(diào)用的參數(shù)以生成加密的有效負載,并將帶有加密的有效負載的函數(shù)調(diào)用請求606發(fā)送到私有部分630。

      當私有部分630接收到函數(shù)調(diào)用請求606時,私有部分630的函數(shù)調(diào)用接口635使用會話密鑰633解密函數(shù)調(diào)用請求606的有效負載以取回函數(shù)調(diào)用及其相關(guān)參數(shù)。如果使用有效的會話密鑰623正確地加密了函數(shù)調(diào)用,則函數(shù)調(diào)用接口625可以將函數(shù)調(diào)用識別為密碼生成函數(shù)調(diào)用。私有部分630然后向密碼生成器636提供函數(shù)調(diào)用的參數(shù)(例如,動態(tài)交易數(shù)據(jù)),密碼生成器然后執(zhí)行密碼生成函數(shù),以使用luk來加密動態(tài)交易數(shù)據(jù)以生成交易密碼608。所生成的交易密碼608然后被發(fā)送回公共部分620,并且公共部分620然后可以向訪問裝置(例如,經(jīng)由非接觸式接口)提供交易密碼608以進行交易。在一些實施例中,交易密碼608可以在被發(fā)送到公共部分620之前使用會話密鑰633由私有部分630加密,并且公共部分620可以在將其提供給訪問裝置之前使用會話密鑰623解密交易密碼608。在一些實施例中,公共部分620可以不直接訪問令牌,并且可以由公共部分620使用類似技術(shù)從私有部分630取回該令牌。所取回的令牌和交易密碼可以由公共部分620提供給訪問裝置以進行交易。私有部分630中實現(xiàn)的其他安全敏感函數(shù)(例如,令牌請求函數(shù)、賬戶參數(shù)補充函數(shù))可以由公共部分620使用類似的技術(shù)來調(diào)用。

      圖7示出根據(jù)一些實施例的在具有公共部分和私有部分的應(yīng)用程序中控制訪問的過程700的流程圖。過程700可以由應(yīng)用程序的公共部分執(zhí)行,以調(diào)用在同一應(yīng)用程序的私有部分中實現(xiàn)的函數(shù)。在一些實施例中,公共部分可以以第一編程語言編寫,并且私有部分可以以與第一編程語言不同的第二編程語言編寫。在方框702,公共部分向同一應(yīng)用程序內(nèi)的私有部分發(fā)送開始會話請求,以建立與私有部分的會話。例如,每次啟動應(yīng)用程序時,或每次應(yīng)用程序被用于啟動交易時等等,可以發(fā)送開始會話請求。在方框704,公共部分從私有部分接收會話id。在方框706,公共部分使用該會話id和密鑰派生函數(shù)來生成會話密鑰。例如,公共部分可以使用密鑰派生函數(shù)將會話id與授權(quán)密鑰組合以生成會話密鑰。授權(quán)密鑰可以是公共部分和私有部分之間的共享秘密。在方框708,公共部分加密表示對由公共部分調(diào)用的在私有部分中實現(xiàn)的函數(shù)的函數(shù)調(diào)用的有效載荷和任何相關(guān)聯(lián)的參數(shù)。在方框710,公共部分將包括加密的有效負載的函數(shù)調(diào)用請求發(fā)送到私有部分以調(diào)用該函數(shù)。被調(diào)用并在私有部分中實現(xiàn)的函數(shù)可以是例如令牌請求函數(shù)、賬戶參數(shù)補充函數(shù)和密碼生成函數(shù)中的一個。

      圖8示出根據(jù)一些實施例的在具有公共部分和私有部分的應(yīng)用程序中控制訪問的過程800的流程圖。過程800可以由應(yīng)用程序的私有部分執(zhí)行,以控制對在應(yīng)用程序的私有部分中實現(xiàn)的函數(shù)的訪問。在方框802,應(yīng)用程序的私有部分從同一應(yīng)用程序的公共部分接收開始會話請求。例如,每次啟動應(yīng)用程序時,或每次應(yīng)用程序被用于啟動交易時等等,可以接收開始會話請求。在方框804,私有部分生成會話id。在方框806,私有部分將生成的會話id發(fā)送到公共部分。在方框808,私有部分使用該會話id和密鑰派生函數(shù)來生成會話密鑰。例如,私有部分可以使用密鑰派生函數(shù)將會話id與授權(quán)密鑰組合以生成會話密鑰。授權(quán)密鑰可以是公共部分和私有部分之間的共享秘密。在方框810,私有部分接收包括表示對在私有部分中實現(xiàn)的函數(shù)的函數(shù)調(diào)用的加密有效載荷和任何相關(guān)參數(shù)的函數(shù)調(diào)用請求。在方框812,私有部分使用會話密鑰解密經(jīng)加密的有效負載以取回該函數(shù)調(diào)用。在方框814,私有部分執(zhí)行函數(shù)調(diào)用的函數(shù)。被執(zhí)行并在私有部分中實現(xiàn)的函數(shù)可以是例如令牌請求函數(shù)、賬戶參數(shù)補充函數(shù)和密碼生成函數(shù)中的一個。在一些實施例中,私有部分可以忽略來自公共部分的不是開始會話請求、且不是函數(shù)調(diào)用請求的任何通信或請求。在一些實施例中,公共部分可以以第一編程語言編寫,并且私有部分可以以與第一編程語言不同的第二編程語言編寫。

      盡管上述描述可能已經(jīng)描述了在具有私有部分和公共部分的應(yīng)用程序中使用的訪問控制技術(shù),但是應(yīng)當理解,該技術(shù)可以用于保護在應(yīng)用程序的任何軟件層中實現(xiàn)的函數(shù)。此外,應(yīng)用程序不限于僅具有兩個軟件層并且可以具有任何數(shù)量的軟件層(例如,三個或更多個軟件層、部分或庫)。

      可以使用耦接到存儲代碼或指令的存儲器的一個或多個處理器來實現(xiàn)本文所述的任何計算裝置、通信裝置、計算機、服務(wù)器等,上述代碼或指令其當由一個或多個處理器執(zhí)行時,使得裝置執(zhí)行本文所述的方法和過程中的一個或多個。用于包含本文所述的代碼或代碼部分的存儲器、存儲介質(zhì)和計算機可讀介質(zhì)可以包括本領(lǐng)域已知或使用的任何適當介質(zhì),包括存儲介質(zhì)和通信介質(zhì),諸如但不限于在用于存儲和/或傳輸信息(諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù))的任何方法或技術(shù)中實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì),包括ram、rom、eeprom、閃存或其他存儲器技術(shù)、cd-rom、數(shù)字通用盤(dvd)或其他光存儲、磁帶盒、磁帶、磁盤存儲或其他磁存儲裝置、數(shù)據(jù)信號、數(shù)據(jù)傳輸或可以用來存儲或傳送期望信息并且可以由計算機訪問的任何其他介質(zhì)?;诒疚闹刑峁┑墓_和教導(dǎo),本領(lǐng)域技術(shù)人員會認識到實現(xiàn)各實施例的其他方式和/或方法。

      以上描述是示意性的不是限制性的。本領(lǐng)域技術(shù)人員在閱讀本公開后,會明白各個實施例的許多變形。因此,本發(fā)明的范圍可以不參照上文的描述確定,而是可以參照所附權(quán)利要求連同其全部范圍或等同物確定。

      本文描述的方法和過程本質(zhì)上是示例性的,并且根據(jù)一些實施例的方法和過程可以以與本文所描述的不同的順序執(zhí)行一個或多個步驟,包括一個或多個未特別描述的附加步驟,省略一個或多個步驟,將一個或多個步驟組合成單個步驟,將一個或多個步驟分成多個步驟,和/或其任何組合。

      應(yīng)當理解,如上文描述的一些實施例可以用控制邏輯的形式以模塊化或集成方式使用計算機軟件來實現(xiàn)?;诒疚闹刑峁┑墓_內(nèi)容和教導(dǎo),本領(lǐng)域的普通技術(shù)人員可以知道并意識到使用硬件及硬件和軟件的組合實現(xiàn)本發(fā)明的其他方式和/或方法。

      本申請中描述的任何軟件組件或功能可以實現(xiàn)為使用任何適當計算機語言(比方說例如java,c++或perl),使用例如傳統(tǒng)的或面向?qū)ο蟮募夹g(shù)由處理器執(zhí)行的軟件代碼。軟件代碼可以存儲為計算機可讀介質(zhì)(諸如隨機存取存儲器(ram)、只讀存儲器(rom)、磁介質(zhì)(諸如硬盤或軟盤)或光介質(zhì)(諸如cd-rom))上的一系列指令或命令。任何這種計算機可讀介質(zhì)還可以駐存在單個運算設(shè)備上或駐存在單個運算設(shè)備內(nèi),并且可以位于系統(tǒng)或網(wǎng)絡(luò)中的不同運算設(shè)備或在系統(tǒng)或網(wǎng)絡(luò)中的不同運算設(shè)備上。

      在不偏離本發(fā)明的范圍下,任何實施例的一個或多個特征可以與任何其他實施例的一個或多個特征組合。

      除非明確指示有相反的意思,否則“一個/種”或“該/所述”的敘述旨在表示“一個/種或多個/種”。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1