專利名稱:一種實現(xiàn)應用程序間虛擬物品安全共享的系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及計算機應用程序領域,具體涉及一種實現(xiàn)應用程序間虛擬物品安全共享的系統(tǒng)。
背景技術:
一些計算機應用程序中會涉及到虛擬物品,比如,常見的即時通信應用程序(包括但不限于騰訊QQ、飛信、微信等)會涉及“道具”、“裝備”、“皮膚”、“頭像”、“QQ幣”等,而且在游戲類應用程序中也常常涉及不同的虛擬物品。
此外,對于游戲類應用程序而言,游戲間相似虛擬物品的共享可極大增加游戲的趣味性。如農(nóng)場經(jīng)營游戲和餐廳經(jīng)營游戲中都有“水果”、“蔬菜”等虛擬物品,農(nóng)場經(jīng)營游戲“出產(chǎn)”的“水果”、“蔬菜”可以作為“原料”供應給餐廳經(jīng)營游戲。又如不同游戲間的虛擬貨幣也可共享。目前,網(wǎng)絡游戲中已出現(xiàn)游戲間相似虛擬物品共享的實例,但數(shù)量還很少,且一般是同一開發(fā)商或運營商擁有的游戲之間共享,不同開發(fā)商或運營商之間很難實現(xiàn)共享。究其原因,一是沒有相應的技術手段,二是不同開發(fā)商或運營商之間難以互相信任,開放虛擬物品共孚存在風險。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出了一種安全地進行應用程序間虛擬物品共享的系統(tǒng),提供共享虛擬物品的注冊,授權應用程序?qū)蚕砦锲返脑L問。系統(tǒng)對應用程序進行身份驗證,防止未授權的應用程序非法訪問共享物品。根據(jù)本發(fā)明,提供一種在應用程序之間安全共享虛擬物品的系統(tǒng),所述系統(tǒng)包括
數(shù)據(jù)存儲模塊,用于存儲所述虛擬物品,所述虛擬物品包括虛擬物品數(shù)據(jù)和虛擬物品接口 ;
虛擬物品注冊模塊,用于提供注冊接口及注冊虛擬物品;
驗證模塊,用于驗證申請使用所述虛擬物品的應用程序的授權;
執(zhí)行模塊,用于通過調(diào)用所述虛擬物品接口實現(xiàn)應用程序?qū)λ鎏摂M物品的使用;
應用程序請求處理模塊,用于接收應用程序使用所述虛擬物品的請求,通知或直接調(diào)用所述驗證模塊和所述執(zhí)行模塊,并向應用程序返回結果。根據(jù)本發(fā)明的一個方面,所述數(shù)據(jù)存儲模塊存儲的虛擬物品數(shù)據(jù)至少包括應用程序原版校驗碼、共享接口數(shù)據(jù)、共享接口授權信息;
根據(jù)本發(fā)明的一個方面,共享接口數(shù)據(jù)進一步包括共享接口 ID、共享接口、文字說明;共享接口授權信息進一步包括接口 ID、允許使用所述接口的使用者ID。根據(jù)本發(fā)明的一個方面,所述虛擬物品注冊模塊進一步用于注冊應用程序;其中,所述虛擬物品注冊模塊接到注冊請求后將應用程序ID及相關數(shù)據(jù)存入所述數(shù)據(jù)存儲模塊;
根據(jù)本發(fā)明的一個方面,所述虛擬物品注冊模塊進一步用于提交原版校驗碼;其中,所述虛擬物品注冊模塊接到提交原版校驗碼請求后,將應用程序ID及其原版校驗碼存入所述數(shù)據(jù)存儲模塊。根據(jù)本發(fā)明的一個方面,所述虛擬物品注冊模塊進一步用于上傳所述虛擬物品的數(shù)據(jù)或共享接口 ;所述虛擬物品注冊模塊接到上傳共享接口請求后將數(shù)據(jù)存入所述數(shù)據(jù)存儲模塊;
根據(jù)本發(fā)明的一個方面,所述虛擬物品注冊模塊進一步用于設定共享接口授權信息;其中,所述虛擬物品注冊模塊接到設定共享接口權限請求后將授權信息存入所述數(shù)據(jù)存儲模塊。根據(jù)本發(fā)明的一個方面,所述驗證模塊進行驗證的過程包括以下步驟 對應用程序的可執(zhí)行文件進行校驗碼計算;
查詢原版校驗碼;
將計算所得校驗碼與原版校驗碼作對比,二者相同則通過驗證,二者不同則不能通過驗證。根據(jù)本發(fā)明的一個方面,所述執(zhí)行模塊進一步用于執(zhí)行共享接口,包括
創(chuàng)建共享接口的運行時環(huán)境;
執(zhí)行共享接口,返回處理結果;
銷毀運行時環(huán)境。
圖I是根據(jù)本發(fā)明一個實施例的系統(tǒng)結構示意 圖2是根據(jù)本發(fā)明一個實施例的服務端共享接口調(diào)用過程流程 圖3是根據(jù)本發(fā)明一個實施例的游戲身份驗證過程流程 圖4是根據(jù)本發(fā)明一個實施例的共享接口權限驗證過程流程 圖5是根據(jù)本發(fā)明一個實施例的一個虛擬物品共享實例的流程圖。
具體實施例方式本發(fā)明的系統(tǒng)包括以下模塊
I)數(shù)據(jù)存儲模塊用于存儲共享物品,包含共享物品的數(shù)據(jù)和接口。2)共享物品注冊模塊提供注冊接口,用于注冊共享物品,即注冊可共享給別的應用程序的物品,包括共享物品的數(shù)據(jù)和接口。3)驗證模塊用于驗證申請使用共享物品的應用程序的授權。授權中包含應用程序的身份信息。4)執(zhí)行模塊用于執(zhí)行共享物品的接口。即實現(xiàn)應用程序?qū)蚕砦锲返氖褂谩?)應用程序請求處理模塊接收應用程序使用共享物品的請求,通知或直接調(diào)用驗證模塊和執(zhí)行模塊,并向應用程序返回結果。
當應用程序A共享應用程序B中的物品時,應用程序A為使用者,應用程序B為提供者。系統(tǒng)接到使用者的共享請求時,由驗證模塊驗證使用者身份和共享接口權限,如果驗證通過,則由執(zhí)行模塊執(zhí)行共享接口,否則拒絕執(zhí)行;執(zhí)行結果將返回給使用者。其中根據(jù)本發(fā)明的一個具體實施例,首先驗證使用者身份(使用者為一個游戲類應用程序),如果通過游戲身份驗證后,則驗證接口權限;如果未通過游戲身份驗證,則結束。驗證接口權限時,如果通過接口權限驗證,則執(zhí)行接口 ;否則結束。具體驗證流程如圖2所示。數(shù)據(jù)存儲模塊存儲的數(shù)據(jù)包括應用程序原版校驗碼、共享接口數(shù)據(jù)、共享接口授權信息;還可進一步包括應用程序自身數(shù)據(jù),如應用程序ID、應用程序文字描述、自定義數(shù)據(jù)、備注等。共享接口數(shù)據(jù)可進一步包括共享接口 ID、共享接口(根據(jù)本發(fā)明的一個實施例,共享接口本身是Java中的class文件)、文字說明等,由提供者存入數(shù)據(jù)存儲模塊。共享接口授權信息可進一步包括接口 ID、允許使用該接口的使用者ID。共享物品注冊模塊(下文有時簡稱為注冊模塊,二者同義)提供以下服務 (1)注冊應用程序,注冊模塊接到注冊請求后將應用程序ID及相關數(shù)據(jù)存入數(shù)據(jù)存儲模塊,相關數(shù)據(jù)包括應用程序名稱、應用程序描述、密碼;
(2)提交原版校驗碼。如果注冊的應用程序需共享其他應用程序的虛擬物品則須提交校驗碼。提交者對應用程序的可執(zhí)行程序文件按特定算法計算即得到校驗碼,提交的校驗碼作為驗證應用程序的標準,稱之為原版校驗碼。注冊模塊接到提交原版校驗碼請求后,將應用程序ID及其原版校驗碼存入數(shù)據(jù)存儲模塊;
(3)上傳共享物品的數(shù)據(jù)或共享接口。如果應用程序向其他應用程序開放物品共享則須上傳共享物品的數(shù)據(jù)和共享接口。注冊模塊接到上傳共享接口請求后將數(shù)據(jù)存入數(shù)據(jù)存儲模塊;
(4)設定共享接口授權信息。如果應用程序向其他應用程序開放物品共享則須設定共享接口授權信息。注冊模塊接到設定共享接口權限請求后將授權信息存入數(shù)據(jù)存儲模塊。驗證模塊對應用程序身份進行驗證的過程包括以下步驟(I)對應用程序的可執(zhí)行文件進行校驗碼計算;(2)查詢原版校驗碼;(3)將計算所得校驗碼與原版校驗碼作對t匕,二者相同則通過驗證,二者不同則不能通過驗證。具體流程參見圖3。驗證模塊對共享接口權限進行驗證的過程包括(I)根據(jù)共享接口 ID查詢該共享接口 ;(2)如果該接口不存在則驗證未通過;如果存在,則查詢授權信息;(3)如果正確查到授權信息,則驗證通過,否則驗證未通過。具體流程參見圖4。執(zhí)行模塊執(zhí)行共享接口的過程包括創(chuàng)建共享接口的運行時環(huán)境;執(zhí)行共享接口,返回處理結果;銷毀運行時環(huán)境。應用程序請求處理模塊用于接收身份驗證請求、共享接口權限驗證請求和共享接口執(zhí)行請求。應用程序請求處理模塊接收到身份驗證請求和共享接口權限驗證請求后交由驗證模塊處理。接收到共享接口執(zhí)行請求后,向驗證模塊求證身份驗證請求和共享接口權限驗證請求結果,如已通過身份和權限驗證,則交由執(zhí)行模塊執(zhí)行共享接口,返回執(zhí)行結果;如未通過身份或權限驗證則返回錯誤碼??傊?,本發(fā)明系統(tǒng)對應用程序身份和訪問權限進行驗證,防止惡意程序非法訪問共享接口。利用本系統(tǒng),應用程序開發(fā)者可通過設定各接口的權限、部分開放或關閉對其他應用程序的共享,可通過更改共享接口的具體實現(xiàn)對共享過程實施干預或做出限制,保護應用程序中虛擬物品的共享安全。由于本發(fā)明適用于各種應用程序之間的虛擬物品共享,為了簡明起見,下文所舉的實施例中僅針對游戲類應用程序。本領域的技術人員完全能夠?qū)⒈景l(fā)明所揭示的方法應用于其他類型的應用程序。因此不再贅述。實施例I :
該實施例用于游戲類應用程序。如圖I所述,該系統(tǒng)包括以下模塊
數(shù)據(jù)存儲模塊,其中存儲了游戲A、游戲B,以及轉換接口 II、12,還存儲了用于在游戲A、B之間共享的物品(圖I中未顯示)以及接口 Il對游戲A的權限和接口 12對游戲A的權限。共享物品注冊模塊(即圖I中的注冊模塊),用于注冊共享物品,即注冊可共享給別的應用程序的物品,包括共享物品的數(shù)據(jù)和接口。·驗證模塊,用于驗證申請使用共享物品的游戲A、B的授權。授權中包含游戲A、B的身份信息。執(zhí)行模塊,用于執(zhí)行共享物品的接口,即實現(xiàn)游戲A、B對共享物品的使用。游戲請求處理模塊,用于接收游戲A、B使用共享物品的請求,調(diào)用驗證模塊和執(zhí)行模塊,并向游戲A、B返回結果。根據(jù)本發(fā)明的一個實施例,游戲A需要共享游戲B中的虛擬物品,操作系統(tǒng)為安卓系統(tǒng)(Android)。游戲A、B的相關信息通過共享物品注冊模塊存入游戲數(shù)據(jù)存儲模塊,包括游戲A和B的ID、游戲A的原版校驗碼、游戲B對游戲A開放的共享接口。根據(jù)本發(fā)明的一個實施例,游戲B以Java Class文件形式提供以下接口
轉換接口 II。其用于讀取物品列表,輸入?yún)?shù)無,輸出參數(shù)包括物品列表;
轉換接口 12。其用于執(zhí)行共享操作,輸入?yún)?shù)包括物品ID、物品數(shù)量;輸出參數(shù)包括是否正確執(zhí)行(正確執(zhí)行標識或錯誤碼)、剩余物品數(shù)量。轉換接口 12執(zhí)行時,對比要求共享的物品數(shù)量與現(xiàn)有物品的數(shù)量,前者小于或等于后者才能執(zhí)行,否則返回錯誤碼;執(zhí)行后將共享的物品刪除;累計共享物品的數(shù)量,一定時間段內(nèi)的累計數(shù)量不得超過限定值,否則返回錯誤碼。該實施例中的一個典型共享過程主要包括以下步驟
I.游戲A向游戲請求處理模塊發(fā)出共享請求,參數(shù)包括游戲A的ID、游戲B的ID。2.游戲請求處理模塊交由驗證模塊對游戲A進行身份驗證。根據(jù)本發(fā)明的一個實施例,驗證過程包括(I)對游戲A的dex文件通過MD5算法進行校驗碼計算;(2)服務端根據(jù)游戲ID查詢數(shù)據(jù)存儲模塊中游戲A的原版校驗碼,如未查到則不能通過認證;其中,根據(jù)本發(fā)明的一個實施方式,服務端可在遠程服務器運行,也可在本地運行;(3)如查到數(shù)據(jù)存儲模塊中存儲的原版校驗碼,將之與計算所得的校驗碼對比,相同則同通過認證,不同則不能通過。3.游戲A向游戲請求處理模塊發(fā)出請求調(diào)用Il接口,該請求中包括接口 ID、游戲A的ID、游戲B的ID、接口要求的參數(shù)。4.游戲請求處理模塊交由驗證模塊驗證該接口權限,驗證過程包括(I)根據(jù)接口 ID和游戲B的ID在數(shù)據(jù)存儲模塊查詢該接口,如果未查到則驗證未通過;(2)查詢允許使用該接口的使用者ID,如果未查到游戲A的ID則驗證未通過,如果查到則驗證通過。5.如果身份驗證和接口權限驗證都通過,則執(zhí)行共享接口并向游戲A發(fā)送執(zhí)行結果,包括是否正確執(zhí)行及物品列表;如果未通過身份驗證或接口權限驗證,則返回失敗信息并結束。6.如果游戲A接到的結果為未正確執(zhí)行,則結束本次共享過程,否則游戲A向用戶(即游戲玩家)展示物品列表以待選擇。7.用戶(玩家)指定要共享的物品01及數(shù)量Cl后,游戲A發(fā)送調(diào)用12接口請求,該請求的參數(shù)包括12接口 ID、游戲A的ID、游戲B的ID、物品01的ID、數(shù)量Cl等。8.驗證該接口權限,包括(I)根據(jù)接口 ID和游戲B的ID查詢接口,如果未查到則驗證未通過(2)查詢允許使用該接口的使用者ID,如果未查到A的ID則驗證未通過,如果查到則驗證通過。 9.如果身份驗證和接口權限驗證都通過,則以物品01的ID、數(shù)量Cl為參數(shù)執(zhí)行共享接口 12,返回執(zhí)行結果,包括是否正確執(zhí)行及剩余物品數(shù)量。10.如果游戲A接到正確結果,則增加物品01在本游戲中對應的物品,;如果失敗則結束本次過程。上述過程參見圖5。實施例2
設有游戲C需要共享游戲D中的虛擬物品,操作系統(tǒng)為Windows。本系統(tǒng)利用非對稱加密方式發(fā)送授權信息,游戲D將其授權信息用公鑰加密后授予游戲C。當游戲C向服務端申請共享游戲D中的虛擬物品時,將其獲得的游戲D的授權信息密文發(fā)送給服務端,服務端利用私鑰解密得到授權信息明文。授權信息包括游戲D的數(shù)字簽名、游戲C的原版校驗碼、游戲C的ID、允許使用的接口 ID。驗證模塊利用解密后的授權信息進行驗證。游戲D以JavaClass文件形式提供以下接口
13.讀取物品列表,輸入?yún)?shù)無,輸出參數(shù)包括物品列表;
14.執(zhí)行共享操作,輸入?yún)?shù)包括物品ID、物品數(shù)量;輸出參數(shù)包括是否正確執(zhí)行(錯誤碼)、剩余物品數(shù)量。游戲D中物品可被標記為“未共享”和“已共享”兩種狀態(tài),該接口執(zhí)行時,對比要求共享的物品數(shù)量與“未共享”物品的數(shù)量,前者小于或等于后者才能執(zhí)行,否則返回錯誤碼;執(zhí)行后將共享的物品標記為“已共享”;累計共享物品的數(shù)量,一定時間段內(nèi)的累計數(shù)量不得超過限定值,否則返回錯誤碼。該實施例中的一個典型共享過程主要包括以下步驟
I.游戲C向游戲請求處理模塊發(fā)出共享請求,參數(shù)包括授權信息、游戲C的ID、游戲D 的 ID。2.游戲請求處理模塊交由驗證模塊對游戲C進行身份驗證。驗證過程包括
(1)利用私鑰對授權信息進行解密,得到游戲D的數(shù)字簽名、原版校驗碼、共享接口ID及權限;
(2)驗證游戲D的數(shù)字簽名,如果無效則返回錯誤碼,結束此次共享過程;(3)對游戲C的.exe文件通過SHAl算法進行校驗碼計算;
(4)將計算所得校驗碼與接收的原版校驗碼對比,相同則同通過認證,不同則不能通過。如果驗證未通過,則結束此次共享過程。
3.游戲C向游戲請求處理模塊發(fā)出請求調(diào)用13接口,包括接口 ID、游戲C的ID、游戲D的ID等、接口要求的參數(shù)。4.游戲請求處理模塊交由驗證模塊驗證該接口權限,驗證過程包括
(O根據(jù)接口 ID和游戲D的ID在數(shù)據(jù)存儲模塊查詢該接口,如果未查到則驗證未通
過;
(2)查詢步驟2中的允許游戲C使用的接口 ID,如果未查到則驗證未通過,如果查到則驗證通過。5.如果身份驗證和接口權限驗證都通過,則執(zhí)行共享接口并向游戲C發(fā)送執(zhí)行結果,包括是否正確執(zhí)行及物品列表;如果未通過則返回失敗信息并結束。6.如果游戲C接到的結果為未正確執(zhí)行,則結束本次共享過程,否則游戲C向用戶 展示物品列表以待選擇。7.游戲玩家指定要共享的物品02及數(shù)量C2后,游戲C發(fā)送調(diào)用14接口請求,參數(shù)包括14接口 ID、游戲C的ID、游戲D的ID、物品02的ID、數(shù)量C2等。8.游戲請求處理模塊交由驗證模塊驗證該接口權限,驗證過程包括(I)根據(jù)接口 ID和游戲D的ID在數(shù)據(jù)存儲模塊查詢該接口,如果未查到則驗證未通過;(2)查詢步驟2中的允許游戲C使用的接口 ID,如果未查到則驗證未通過,如果查到則驗證通過。9.如果通過驗證,則以物品02的ID、數(shù)量C2為參數(shù)執(zhí)行共享接口 14,返回執(zhí)行結果O10.游戲C如果接到正確結果,則增加物品02在本游戲中對應的物品;如果失敗則結束本次過程。以上所述僅為本發(fā)明的較佳實施方式,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換以及改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種在應用程序之間安全共享虛擬物品的系統(tǒng),其特征在于,所述系統(tǒng)包括 數(shù)據(jù)存儲模塊,用于存儲所述虛擬物品,所述虛擬物品包括虛擬物品數(shù)據(jù)和虛擬物品接口 ; 虛擬物品注冊模塊,用于提供注冊接口及注冊虛擬物品; 驗證模塊,用于驗證申請使用所述虛擬物品的應用程序的授權; 執(zhí)行模塊,用于通過調(diào)用所述虛擬物品接口實現(xiàn)應用程序?qū)λ鎏摂M物品的使用; 應用程序請求處理模塊,用于接收應用程序使用所述虛擬物品的請求,通知或直接調(diào)用所述驗證模塊和所述執(zhí)行模塊,并向應用程序返回結果。
2.根據(jù)權利要求I所述的系統(tǒng),其特征在于,所述數(shù)據(jù)存儲模塊存儲的虛擬物品數(shù)據(jù)至少包括應用程序原版校驗碼、共享接口數(shù)據(jù)、共享接口授權信息。
3.根據(jù)權利要求2所述的系統(tǒng),其特征在于,共享接口數(shù)據(jù)進一步包括共享接口ID、共享接口、文字說明;共享接口授權信息進一步包括接口 ID、允許使用所述接口的使用者ID0
4.根據(jù)權利要求I所述的系統(tǒng),其特征在于,所述虛擬物品注冊模塊進一步用于注冊應用程序;其中,所述虛擬物品注冊模塊接到注冊請求后將應用程序ID及相關數(shù)據(jù)存入所述數(shù)據(jù)存儲模塊。
5.根據(jù)權利要求I所述的系統(tǒng),其特征在于,所述虛擬物品注冊模塊進一步用于提交原版校驗碼;其中,所述虛擬物品注冊模塊接到提交原版校驗碼請求后,將應用程序ID及其原版校驗碼存入所述數(shù)據(jù)存儲模塊。
6.根據(jù)權利要求I所述的系統(tǒng),其特征在于,所述虛擬物品注冊模塊進一步用于上傳所述虛擬物品的數(shù)據(jù)或共享接口 ;所述虛擬物品注冊模塊接到上傳共享接口請求后將數(shù)據(jù)存入所述數(shù)據(jù)存儲模塊。
7.根據(jù)權利要求I所述的系統(tǒng),其特征在于,所述虛擬物品注冊模塊進一步用于設定共享接口授權信息;其中,所述虛擬物品注冊模塊接到設定共享接口權限請求后將授權信息存入所述數(shù)據(jù)存儲模塊。
8.根據(jù)權利要求5所述的系統(tǒng),其特征在于,所述驗證模塊進行驗證的過程包括以下步驟 對應用程序的可執(zhí)行文件進行校驗碼計算; 查詢原版校驗碼; 將計算所得校驗碼與原版校驗碼作對比,二者相同則通過驗證,二者不同則不能通過驗證。 根據(jù)權利要求I所述的系統(tǒng),其特征在于,所述執(zhí)行模塊進一步用于執(zhí)行共享接口,包括 創(chuàng)建共享接口的運行時環(huán)境; 執(zhí)行共享接口,返回處理結果; 銷毀運行時環(huán)境。
全文摘要
本發(fā)明提出一種應用程序間虛擬物品安全共享的系統(tǒng),包括數(shù)據(jù)存儲模塊、共享物品注冊模塊、驗證模塊、執(zhí)行模塊和應用程序請求處理模塊。利用本發(fā)明,開發(fā)者可通過共享接口授權和更改接口實現(xiàn)對共享過程實施管理,可防止未授權的應用程序非法訪問共享接口,從而保護自身虛擬物品體系的安全。
文檔編號G06F9/44GK102915416SQ20121034480
公開日2013年2月6日 申請日期2012年9月18日 優(yōu)先權日2012年9月18日
發(fā)明者不公告發(fā)明人 申請人:北京深思洛克軟件技術股份有限公司