欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

密碼程序多樣化的制作方法

文檔序號(hào):11657206閱讀:254來(lái)源:國(guó)知局
密碼程序多樣化的制造方法與工藝

本公開涉及數(shù)據(jù)處理系統(tǒng)。更具體地,本公開涉及利用密碼程序(cryptographicprogram)執(zhí)行一個(gè)或多個(gè)密碼操作的數(shù)據(jù)處理系統(tǒng)。



背景技術(shù):

已經(jīng)知道向數(shù)據(jù)處理系統(tǒng)提供密碼程序以執(zhí)行一個(gè)或多個(gè)密碼操作,如加密數(shù)據(jù)、解密數(shù)據(jù)、操縱密碼鑰。生成抗惡意修改和/或反向工程分析的密碼程序可能會(huì)使用相當(dāng)多的資源。對(duì)系統(tǒng)完整性的一種形式的攻擊可能是將在一個(gè)設(shè)備上部署的密碼程序復(fù)制到另一設(shè)備,從而使得該密碼程序在該另一設(shè)備上可能不適當(dāng)?shù)乇挥糜趫?zhí)行密碼操作。因此,可能希望形成一種密碼程序,這種密碼程序被綁定到個(gè)體設(shè)備上運(yùn)行并且如果被復(fù)制到另一個(gè)設(shè)備則不能運(yùn)作。然而,生成抗濫用和反向工程并捆綁到個(gè)體設(shè)備的適當(dāng)混淆的密碼程序所需時(shí)間和資源在所耗資源、時(shí)間以及費(fèi)用方面是不利的。



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

本公開的至少一些實(shí)施例提供一種操作數(shù)據(jù)處理裝置的方法,該方法包括:在所述數(shù)據(jù)處理裝置處接收個(gè)性化程序;運(yùn)行所述個(gè)性化程序以讀取表征所述數(shù)據(jù)處理裝置的多個(gè)變量的值作為個(gè)性化輸入,并且根據(jù)所述個(gè)性化輸入生成多樣化值;將所述多樣化值作為多樣化輸入提供給密碼程序;并且運(yùn)行所述密碼程序以執(zhí)行依據(jù)所述多樣化值的密碼操作。

本公開提供了一種以抗惡意干擾的方式將密碼程序捆綁到個(gè)體設(shè)備的技術(shù)。具體地,個(gè)性化程序被提供給設(shè)備并且用于依據(jù)從個(gè)體設(shè)備讀出的表征個(gè)體設(shè)備的多個(gè)變量生成多樣化輸入。密碼程序然后執(zhí)行依賴于所接收的多樣化值的密碼操作。本技術(shù)認(rèn)識(shí)到希望使用密碼程序的個(gè)體設(shè)備將在適當(dāng)選擇的表征這些設(shè)備的變量方面表現(xiàn)出很大差異,從而個(gè)性化程序?qū)⑨槍?duì)這些設(shè)備接收不同的個(gè)性化輸入,并且不同的多樣化值可通過個(gè)性化程序生成并被提供給密碼程序以更改其執(zhí)行的密碼操作。因此,從一個(gè)設(shè)備實(shí)例復(fù)制到另一設(shè)備實(shí)例的密碼程序?qū)⒃谀切┎煌膶?shí)例中接收不同的多樣化值并因此執(zhí)行不同的密碼操作,從而如果希望在不同的設(shè)備中執(zhí)行相同的密碼操作的話,則不能簡(jiǎn)單地將密碼程序復(fù)制到不同的設(shè)備,因?yàn)樗鶊?zhí)行的密碼操作將依賴于將由此不同設(shè)備中的個(gè)性化程序生成的不同的多樣化值。因此,密碼程序及其相關(guān)聯(lián)的密碼操作被安全地捆綁到個(gè)體設(shè)備,而無(wú)需為每個(gè)設(shè)備提供單獨(dú)的密碼程序。

將會(huì)認(rèn)識(shí)到,表征個(gè)體數(shù)據(jù)處理裝置(設(shè)備)的多個(gè)變量可以采用多種不同的形式??晒﹤€(gè)性化程序容易訪問的一種便捷形式的變量是表征數(shù)據(jù)處理裝置的運(yùn)行環(huán)境的配置的變量。例如,這些變量可包括數(shù)據(jù)處理裝置的硬件屬性(如,imei值、存儲(chǔ)器大小、序列號(hào)、mac地址)和/或靜態(tài)軟件配置變量(如,/etc目錄內(nèi)的條目、windows注冊(cè)表?xiàng)l目,等)中的一個(gè)或多個(gè)。

數(shù)據(jù)處理裝置的特征變量(可形成個(gè)性化輸入的部分)的另一示例是通過對(duì)數(shù)據(jù)處理裝置的動(dòng)態(tài)變量應(yīng)用處理操作而確定的結(jié)果值,其中,指定要應(yīng)用的處理操作的數(shù)據(jù)被存儲(chǔ)在安全存儲(chǔ)區(qū)內(nèi)以使得該數(shù)據(jù)保持是秘密的。與設(shè)備相關(guān)聯(lián)的某些動(dòng)態(tài)變量可能具有可預(yù)測(cè)的屬性,如設(shè)備的電池的充電周期計(jì)數(shù)通常僅增加。因此,對(duì)個(gè)性化程序的個(gè)性化輸入可以是指示與電池的充電周期計(jì)數(shù)相對(duì)應(yīng)的動(dòng)態(tài)變量保持不變或者已經(jīng)按照預(yù)期方式增加的標(biāo)志。如果密碼程序和應(yīng)用于動(dòng)態(tài)變量的安全存儲(chǔ)的處理操作被復(fù)制到另一設(shè)備,則該另一設(shè)備上的動(dòng)態(tài)變量的不同值很可能根據(jù)所述處理操作產(chǎn)生不同的結(jié)果,從而導(dǎo)致對(duì)于個(gè)性化程序的不同個(gè)性化輸入。在一些實(shí)施例中,指定要被應(yīng)用于動(dòng)態(tài)變量的數(shù)據(jù)處理操作的數(shù)據(jù)本身可被嵌入在密碼程序中,該密碼程序利用其自己的依據(jù)所涉數(shù)據(jù)處理裝置的靜態(tài)變量的多樣化值被多樣化。

當(dāng)個(gè)性化程序在隔離的運(yùn)行環(huán)境中運(yùn)行而使得把個(gè)性化值結(jié)合到針對(duì)密碼操作的輸入的算法可以秘密運(yùn)行時(shí),系統(tǒng)的安全性得以改善。提供這種秘密性的此隔離的運(yùn)行環(huán)境可采取各種不同的形式。在一些實(shí)施例中,硬件可提供可運(yùn)行個(gè)性化程序的信任的運(yùn)行環(huán)境(例如,arm處理器的配有信任區(qū)(trustzone)架構(gòu)的處理器的安全域)。隔離的運(yùn)行環(huán)境的其他形式可以是,例如需要物理鑰(例如usb軟件狗)允許個(gè)性化程序運(yùn)行來(lái)生成多樣化值。針對(duì)個(gè)性化程序的隔離的運(yùn)行環(huán)境的另一種形式可以通過個(gè)性化程序的混淆來(lái)提供,藉此,部署的/安裝的個(gè)性化程序通過使得源程序(例如,個(gè)性化程序的源代碼版本)經(jīng)受代碼混淆處理(例如,代碼扁平化、代碼重排序、變量碎片化)而形成。

多樣化值控制(至少部分控制)個(gè)體數(shù)據(jù)處理裝置(設(shè)備)的密碼程序所執(zhí)行的密碼操作。為了服務(wù)器可以適當(dāng)?shù)嘏c個(gè)體設(shè)備上的密碼程序交互,一些實(shí)施例可把指定多樣化值的數(shù)據(jù)發(fā)送給服務(wù)器。服務(wù)器于是可以利用提供給設(shè)備的相同的密碼程序并依據(jù)其所接收的多樣化值來(lái)加密被保護(hù)數(shù)據(jù),并將此發(fā)送給所涉數(shù)據(jù)處理裝置(設(shè)備)。依據(jù)被目標(biāo)數(shù)據(jù)處理裝置(目標(biāo)設(shè)備)處的密碼程序利用的相同的多樣化值對(duì)被保護(hù)數(shù)據(jù)進(jìn)行加密具有如下效果:在目標(biāo)數(shù)據(jù)處理裝置處執(zhí)行用于對(duì)經(jīng)加密的被保護(hù)數(shù)據(jù)進(jìn)行解密的密碼操作可以正確地執(zhí)行并恢復(fù)出被保護(hù)數(shù)據(jù)。然而,對(duì)相同的密碼程序使用不同的多樣化值的另一設(shè)備如果接收到經(jīng)加密的被保護(hù)數(shù)據(jù),則因?yàn)槠鋵⒈惶峁┎煌亩鄻踊刀沟闷涿艽a程序?qū)?zhí)行不同的密碼操作,從而該設(shè)備不能對(duì)經(jīng)加密的被保護(hù)數(shù)據(jù)進(jìn)行解密。

當(dāng)指定設(shè)備使用的多樣化值的數(shù)據(jù)被返回服務(wù)器時(shí),這可以以多種不同方式來(lái)完成。在一些示例實(shí)施例中,多樣化值可以按照加密形式的多樣化值而被傳送。另一種可能方式是通過發(fā)送生成多樣化值的個(gè)性化輸入的加密形式(例如,利用公鑰/私鑰加密)來(lái)傳送多樣化值,從而使得接收服務(wù)器能夠利用其發(fā)送給所涉及的數(shù)據(jù)處理裝置(設(shè)備)的個(gè)性化程序來(lái)自己從已經(jīng)發(fā)送給該服務(wù)器的個(gè)性化輸入(具有加密形式)生成相同的多樣化值。可以通過使得個(gè)性化程序包括至少一個(gè)嵌入變量并且由個(gè)性化程序生成的多樣化值作為此嵌入變量的函數(shù)來(lái)為系統(tǒng)添加進(jìn)一步安全性。因此,可以利用不同的嵌入變量生成個(gè)性化程序的不同實(shí)例,從而這些實(shí)例可以從相同的個(gè)性化輸入生成不同的多樣化值。這使得更難以發(fā)現(xiàn)個(gè)性化輸入和由個(gè)性化程序產(chǎn)生的多樣化值之間的關(guān)系。密碼程序可以在使用密碼程序的設(shè)備的許多實(shí)例上是相同的(例如,從應(yīng)用商店下載的相同的二進(jìn)制程序),但是個(gè)性化程序應(yīng)用本地多樣化來(lái)實(shí)現(xiàn)所期望的設(shè)備特定的密碼操作。

本公開的技術(shù)在無(wú)線移動(dòng)設(shè)備領(lǐng)域特別具有實(shí)用性,其中作為系統(tǒng)的初始化/安裝(包括密碼程序的使用)的部分,無(wú)線移動(dòng)設(shè)備可以無(wú)線下載個(gè)性化程序。然而,本公開的技術(shù)還可被用于無(wú)線移動(dòng)設(shè)備領(lǐng)域以外。

本公開的至少一些另外的實(shí)施例提供了一種數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置包括程序控制的處理電路,程序控制的處理電路被配置為執(zhí)行如下步驟:在所述數(shù)據(jù)處理裝置處接收個(gè)性化程序;運(yùn)行所述個(gè)性化程序以讀取表征所述數(shù)據(jù)處理裝置的多個(gè)變量的值作為個(gè)性化輸入,并且根據(jù)所述個(gè)性化輸入生成多樣化值;將所述多樣化值作為多樣化輸入提供給密碼程序;并且運(yùn)行所述密碼程序以執(zhí)行依據(jù)所述多樣化值的密碼操作。

本公開的至少一些實(shí)施例提供了一種配置數(shù)據(jù)處理裝置的方法,該方法包括:從所述數(shù)據(jù)處理裝置的變量集中選擇一適當(dāng)子集,所述適當(dāng)子集的值用作表征所述數(shù)據(jù)處理裝置的多個(gè)變量的值;生成個(gè)性化程序,所述個(gè)性化程序用于控制所述數(shù)據(jù)處理裝置讀取表征所述數(shù)據(jù)處理裝置的所述多個(gè)變量的值作為個(gè)性化輸入以及根據(jù)所述個(gè)性化輸入生成針對(duì)密碼程序的多樣化值;并且將所述個(gè)性化程序發(fā)送給所述數(shù)據(jù)處理裝置。

除了先前討論的在使用密碼程序的數(shù)據(jù)處理裝置(設(shè)備)處的行為,本公開的技術(shù)還關(guān)于對(duì)數(shù)據(jù)處理裝置(設(shè)備)進(jìn)行配置并與數(shù)據(jù)處理裝置(設(shè)備)通信的(一個(gè)或多個(gè))系統(tǒng)(例如,向數(shù)據(jù)處理裝置提供個(gè)性化程序的服務(wù)器)的行為顯示出補(bǔ)充方面。具體地,提供給不同數(shù)據(jù)處理裝置的個(gè)性化程序可以通過從數(shù)據(jù)處理裝置的變量集選擇適當(dāng)子集(其中,適當(dāng)子集的值然后用作要被正生成的個(gè)性化程序利用的、表征數(shù)據(jù)處理裝置的多個(gè)變量的值)來(lái)變化。因此,利用特定的所選適當(dāng)子集的特征變量生成的個(gè)性化程序?qū)⒈话l(fā)送給目標(biāo)數(shù)據(jù)處理裝置,然后在目標(biāo)數(shù)據(jù)處理裝置處生成適當(dāng)?shù)亩鄻踊怠a槍?duì)相應(yīng)的所生成的個(gè)性化程序的適當(dāng)子集選擇的變化有助于抵抗攻擊者獲得對(duì)個(gè)性化程序的操作的理解而可能視圖規(guī)避它們的使用所提供的額外的安全性。

如前所討論的,提供個(gè)性化程序的服務(wù)器(或者與提供的服務(wù)器適當(dāng)相關(guān)聯(lián)的另一服務(wù)器)可以從已經(jīng)安裝個(gè)性化程序的數(shù)據(jù)處理裝置接收指定多樣化值的數(shù)據(jù),并且然后利用此多樣化值形成經(jīng)加密的被保護(hù)數(shù)據(jù),此經(jīng)加密的被保護(hù)數(shù)據(jù)要被安全地發(fā)送給數(shù)據(jù)處理裝置從而該數(shù)據(jù)可以在目標(biāo)接收者數(shù)據(jù)處理裝置處利用相同的多樣化值作為本地設(shè)備安裝的密碼程序的輸入而被解密。

在一些實(shí)施例中,除了個(gè)性化程序被發(fā)送給目標(biāo)數(shù)據(jù)處理裝置以外,密碼程序本身也可以被發(fā)送給目標(biāo)數(shù)據(jù)處理裝置。在其他實(shí)施例中,密碼程序可以經(jīng)由不同的信道單獨(dú)下載/安裝,然后通過適當(dāng)個(gè)性化程序的下載被授權(quán)/配置以供使用。

本公開的至少一些實(shí)施例還提供了一種數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置包括程序控制的處理電路,所述程序控制的處理電路被配置為執(zhí)行如下步驟:從所述數(shù)據(jù)處理裝置的變量集中選擇一適當(dāng)子集,所述適當(dāng)子集的值用作表征所述數(shù)據(jù)處理裝置的多個(gè)變量的值;生成個(gè)性化程序,所述個(gè)性化程序用于控制所述數(shù)據(jù)處理裝置讀取表征所述數(shù)據(jù)處理裝置的所述多個(gè)變量的值作為個(gè)性化輸入以及根據(jù)所述個(gè)性化輸入生成針對(duì)密碼程序的多樣化值;并且將所述個(gè)性化程序發(fā)送給所述數(shù)據(jù)處理裝置。

本公開技術(shù)的其他方面、特征和優(yōu)點(diǎn)將從下面結(jié)合附圖閱讀的對(duì)于示例的描述而變得顯而易見。

附圖說明

圖1示意性示出服務(wù)器與多個(gè)移動(dòng)設(shè)備無(wú)線通信;

圖2示意性示出向移動(dòng)設(shè)備提供個(gè)性化程序和密碼程序以及在移動(dòng)設(shè)備處利用個(gè)性化程序生成多樣化值,其中,密碼程序根據(jù)多樣化值執(zhí)行密碼操作;

圖3是示意性示出服務(wù)器處與向新設(shè)備安裝密碼功能相關(guān)聯(lián)的動(dòng)作的流程圖;

圖4是示意性示出在設(shè)備處與向此新設(shè)備安裝密碼功能相關(guān)聯(lián)的動(dòng)作的流程圖;

圖5是示意性示出服務(wù)器向設(shè)備發(fā)送被保護(hù)數(shù)據(jù)的流程圖;以及

圖6是示意性示出設(shè)備處執(zhí)行密碼操作的流程圖。

具體實(shí)施方式

圖1示意性示出數(shù)據(jù)處理系統(tǒng)2,該數(shù)據(jù)處理系統(tǒng)包括服務(wù)器4,服務(wù)器4經(jīng)由無(wú)線發(fā)送器6被鏈接到多個(gè)無(wú)線移動(dòng)設(shè)備8、10、12。無(wú)線移動(dòng)設(shè)備8、10、12例如可以采取智能電話8、平板電腦10和智能手表12的形式。還將認(rèn)識(shí)到所公開的技術(shù)還可以被應(yīng)用于無(wú)線移動(dòng)設(shè)備以外的設(shè)備,例如個(gè)人計(jì)算機(jī)、物聯(lián)網(wǎng)(iot)設(shè)備,等等。

可能希望在無(wú)線移動(dòng)設(shè)備8、10、12中使用密碼程序。例如,無(wú)線移動(dòng)設(shè)備可以使用與銀行賬戶交互的安全應(yīng)用。這種安全應(yīng)用可以包括用于執(zhí)行密碼操作(如加密、解密、密碼鑰操縱)的密碼程序。密碼程序可能是以相當(dāng)多的努力產(chǎn)生/生成的,以針對(duì)所涉安全應(yīng)用具有獨(dú)特形式,并且加密程序可以被一定程度混淆以使得難以進(jìn)行對(duì)密碼程序的行為的反向工程,難以執(zhí)行對(duì)任何密碼鑰或者其他秘密信息(例如,密碼算法的行為)的提取。然而,對(duì)密碼程序的一種形式的濫用將是把密碼程序的實(shí)例從無(wú)線移動(dòng)設(shè)備之一(如智能電話8)復(fù)制到這些無(wú)線設(shè)備中的另一者(如平板電腦10),然后試圖運(yùn)行該密碼程序以執(zhí)行未經(jīng)授權(quán)的密碼操作,諸如對(duì)被保護(hù)數(shù)據(jù)進(jìn)行解密。本公開的技術(shù)用于通過利用個(gè)性化程序的使用來(lái)把密碼程序捆綁到了移動(dòng)設(shè)備8、10、12,該個(gè)性化程序響應(yīng)于個(gè)性化輸入來(lái)生成被提供給密碼程序的多樣化值并且密碼程序根據(jù)多樣化值執(zhí)行密碼操作。

圖2示意性示出利用本技術(shù)的一個(gè)示例。密碼程序生成器14生成要被分發(fā)到多個(gè)移動(dòng)設(shè)備8、10、12的密碼程序16。密碼程序16可以采取“密鑰盒”程序的形式,其包含經(jīng)混淆的安全形式的秘密密碼算法和秘密密碼鑰二者。如果密碼程序16從一個(gè)設(shè)備被復(fù)制到另一設(shè)備,則密碼算法和密碼鑰也在那些設(shè)備之間被拷貝,但是這二者設(shè)備的用戶不能檢查那些密碼鑰和密碼算法的細(xì)節(jié),而是他們被提供了調(diào)用密碼程序16所提供的密碼功能的能力。

在個(gè)體移動(dòng)設(shè)備的情形中,當(dāng)希望向移動(dòng)設(shè)備添加安全處理應(yīng)用時(shí),密碼程序16的拷貝從保持密碼程序16的服務(wù)器被安裝到移動(dòng)設(shè)備,以在移動(dòng)設(shè)備處形成安裝的密碼程序18。同時(shí)或者也可以在不同時(shí)間,該服務(wù)器或者也可以是不同的服務(wù)器利用個(gè)性化程序生成器20響應(yīng)于指定特征變量選擇、函數(shù)選擇以及(一個(gè)或多個(gè))嵌入變量的輸入生成要被安裝到移動(dòng)設(shè)備以供安裝的密碼程序18使用的個(gè)性化程序22的實(shí)例。個(gè)性化程序生成器20利用特征變量選擇輸入從設(shè)備的可能特征變量超集選擇一適當(dāng)子集。所選適當(dāng)子集被將要生成的個(gè)性化程序22的實(shí)例用作對(duì)該個(gè)性化程序的個(gè)性化輸入。類似地,對(duì)個(gè)性化程序生成器20的函數(shù)選擇用于從個(gè)性化程序22可應(yīng)用于個(gè)性化輸入的多個(gè)可能函數(shù)選擇要被將要生成的個(gè)性化程序22應(yīng)用的特定函數(shù)。將認(rèn)識(shí)到,函數(shù)選擇可選擇邏輯運(yùn)算符、操作數(shù)排序等的不同組合,形成個(gè)性化輸入的所選擇的不同特征值藉由這些不同組合可被邏輯結(jié)合以生成將要被提供給安裝的密碼程序18的多樣化值。個(gè)性化程序生成器20還可以接收一個(gè)或多個(gè)嵌入變量,這些嵌入變量將被嵌入個(gè)性化程序中,并且從個(gè)性化輸入生成多樣化值依據(jù)這些嵌入變量。這樣的(一個(gè)或多個(gè))嵌入變量可以是嵌入個(gè)性化程序22的一個(gè)或多個(gè)字面變量(literalvariable)。

個(gè)性化程序22可以由個(gè)性化程序生成器20生成為源程序(例如,具有源代碼形式),并且然后經(jīng)受混淆步驟24,在步驟24中個(gè)性化程序被混淆,例如通過代碼扁平化、代碼重排、變量碎片化以及其他技術(shù),以便形成抗反向工程的經(jīng)混淆的個(gè)性化程序,從而使得個(gè)性化輸入和所生成的相關(guān)聯(lián)多樣化值之間的映射更難理解。

在步驟24處生成的經(jīng)混淆的個(gè)性化程序被安裝以在移動(dòng)設(shè)備中提供安裝的個(gè)性化程序26。一旦安裝,或者每當(dāng)安全應(yīng)用要被使用時(shí),安裝的個(gè)性化程序26用于讀取表征設(shè)備的變量的值作為對(duì)于安裝的個(gè)性化程序26的個(gè)性化輸入。這些表征設(shè)備的變量可采用很廣的多種不同形式,諸如硬件屬性、靜態(tài)軟件配置屬性、對(duì)動(dòng)態(tài)變量執(zhí)行秘密處理操作以核查它們具有預(yù)期值的結(jié)果,等等。安裝的個(gè)性化程序26對(duì)于個(gè)性化輸入以及當(dāng)個(gè)性化程序生成器20生成個(gè)性化程序22時(shí)所選擇的函數(shù)指定的任何嵌入變量執(zhí)行所選擇的處理函數(shù),以生成多樣化值。

多樣化值被安全地發(fā)送回提供安裝的密碼程序18的服務(wù)器。密碼程序18根據(jù)提供給它的多樣化值執(zhí)行其密碼操作。個(gè)性化輸入針對(duì)不同移動(dòng)設(shè)備具有不同值。個(gè)性化輸入可表征設(shè)備提供的運(yùn)行環(huán)境。這些通常在那些設(shè)備的實(shí)例之間不同,諸如,安裝的存儲(chǔ)器大小、imei值、mac地址、處理器類型、緩存存儲(chǔ)器大小,等等。此外,個(gè)體設(shè)備的靜態(tài)軟件配置也將不同,諸如固件版本、注冊(cè)表值、/etc目錄條目,等等。因此,安裝的個(gè)性化程序26“監(jiān)聽”安裝該程序的設(shè)備,以讀取該設(shè)備的特征變量以用作該設(shè)備的“指紋”,從而生成多樣化值,該多樣化值在即使相同的個(gè)性化程序26在不同的設(shè)備上運(yùn)行的情況中也會(huì)在不同設(shè)備之間不同。因此,安裝的密碼程序18及其相關(guān)聯(lián)多樣化值被捆綁到移動(dòng)設(shè)備的個(gè)體實(shí)例(或至少將會(huì)產(chǎn)生相同個(gè)性化輸入的那些實(shí)例一很少有兩個(gè)設(shè)備將會(huì)生成相同的個(gè)性化輸入)。此外,安裝的個(gè)性化程序26的經(jīng)混淆的本質(zhì)使得攻擊者難以理解個(gè)性化程序可以如何被修改以當(dāng)個(gè)性化程序被安裝到不同設(shè)備上時(shí)從一組不同的個(gè)性化輸入生成所希望的多樣化。

以加密形式被返回到服務(wù)器的多樣化值在服務(wù)器中被解密并存儲(chǔ),使得其實(shí)質(zhì)上可被用作對(duì)于服務(wù)器處密碼程序16的相應(yīng)實(shí)例的輸入,從而能夠執(zhí)行密碼操作以把被保護(hù)數(shù)據(jù)發(fā)送給具有安裝的密碼程序18并且利用相同的多樣化值的移動(dòng)設(shè)備。因此,當(dāng)服務(wù)器和設(shè)備二者利用相同的密碼程序16、18以及相同的多樣化值(密碼程序16、18基于多樣化值執(zhí)行密碼操作)時(shí),在服務(wù)器和設(shè)備之間提供了安全通信信道。

如上所述,對(duì)于安裝的個(gè)性化程序26的個(gè)性化輸入可包括來(lái)自對(duì)設(shè)備的動(dòng)態(tài)變量進(jìn)行處理的結(jié)果值。此結(jié)果可以從對(duì)動(dòng)態(tài)變量執(zhí)行秘密處理操作而得出。秘密處理操作可以通過存儲(chǔ)在安全存儲(chǔ)器中被保護(hù),或者可以作為已安裝在移動(dòng)設(shè)備上的另外單獨(dú)的密碼程序的部分而被保護(hù)。如果動(dòng)態(tài)變量具有匹配預(yù)期特征的特征,例如,動(dòng)態(tài)變量是僅被預(yù)期增加的計(jì)數(shù)器并且處理操作核查該計(jì)數(shù)器已按照與持續(xù)被安裝在它們初始被安裝的相同設(shè)備實(shí)例上的密碼程序和個(gè)性化程序一致的方式增加(即它們未被拷貝到不同設(shè)備),則結(jié)果值將具有特定形式。

在上述示例中,個(gè)性化程序生成器20生成源代碼形式的個(gè)性化程序22。還可以是,個(gè)性化程序22可被形成為不同的形式,如經(jīng)編譯的形式。不論如何,個(gè)性化程序22可被認(rèn)為是源程序,其然后經(jīng)受步驟24的混淆以生成要被作為安裝的個(gè)性化程序26安裝在移動(dòng)設(shè)備中的一種形式的個(gè)性化程序。所應(yīng)用的混淆可以按照抵抗反向工程的方式而在個(gè)性化程序的實(shí)例間變化。多樣化程序?qū)Χ鄻踊斎胫邓鶓?yīng)用的多樣化函數(shù)(算法)和/或?qū)σ褂玫亩鄻踊斎胫档倪x擇可以頻繁改變,以使攻擊者更難破壞安全性。所有用戶下載多樣化程序,但是多樣性可以容易或定期改變。更一般地,可以考慮為個(gè)性化程序提供隔離的運(yùn)行環(huán)境,以保護(hù)個(gè)性化程序的安全性。此隔離的運(yùn)行環(huán)境可以通過混淆手段或其他手段(諸如由移動(dòng)設(shè)備支持的安全運(yùn)行域(例如,信任的運(yùn)行環(huán)境))來(lái)提供。個(gè)性化程序的實(shí)例使用的個(gè)性化輸入值可以是從所有可能個(gè)性化輸入值的超集中選擇的一適當(dāng)子集。這使得攻擊者在未對(duì)大量設(shè)備進(jìn)行分析的情況下難以識(shí)別出超集。

為了促進(jìn)服務(wù)器和移動(dòng)設(shè)備之間的通信而由移動(dòng)設(shè)備返回服務(wù)器的多樣化值可以多種形式被傳送。一種形式可以是作為移動(dòng)設(shè)備使用的經(jīng)加密的個(gè)性化輸入,從而使得多樣化值可以在服務(wù)器側(cè)重新生成,因?yàn)榉?wù)器有權(quán)接入正被移動(dòng)設(shè)備使用的相同的個(gè)性化程序并因此可以通過將相同的個(gè)性化輸入應(yīng)用于該個(gè)性化程序而生成多樣化值。另一示例形式將是作為經(jīng)加密的多樣化值(例如利用公鑰/私鑰加密)來(lái)傳送多樣化值。

圖3是示意性示出當(dāng)期望在新設(shè)備處安裝密碼功能時(shí)在服務(wù)器處執(zhí)行的動(dòng)作的流程圖。在步驟28,處理等待,直到檢測(cè)到向新設(shè)備安裝密碼功能的要求為止。步驟30用于選擇表征作為安裝目標(biāo)的設(shè)備的運(yùn)行環(huán)境的可能變量的適當(dāng)子集,該適當(dāng)子集要被用作對(duì)于個(gè)性化程序的個(gè)性化輸入的部分。這些變量例如可采取硬件屬性、靜態(tài)軟件配置屬性、對(duì)動(dòng)態(tài)變量執(zhí)行預(yù)定處理操作的結(jié)果、以及在識(shí)別個(gè)體設(shè)備提供的特定運(yùn)行環(huán)境中有用的特征。步驟32生成一個(gè)或多個(gè)嵌入變量,這一個(gè)或多個(gè)嵌入變量要被用于控制將要生成的個(gè)性化程序的操作。步驟34選擇要被個(gè)性化程序應(yīng)用以根據(jù)提供給個(gè)性化程序的個(gè)性化輸入生成多樣化值的特定函數(shù)。步驟36利用來(lái)自步驟30的所選變量、來(lái)自步驟32的嵌入變量以及來(lái)自步驟34的所選函數(shù)來(lái)生成個(gè)性化程序。個(gè)性化程序被生成為源程序形式。步驟38對(duì)步驟36生成的個(gè)性化程序執(zhí)行混淆,諸如,通過代碼扁平化、代碼重排、變量碎片化,等等。步驟40將經(jīng)混淆的個(gè)性化程序發(fā)送給目標(biāo)設(shè)備。

如果將要結(jié)合個(gè)性化程序使用的密碼程序尚未發(fā)送給目標(biāo)設(shè)備或者安裝在目標(biāo)設(shè)備處,則步驟42用于將密碼程序發(fā)送給目標(biāo)設(shè)備。

在步驟44,處理等待,直到從目標(biāo)設(shè)備接收到經(jīng)加密的多樣化值。當(dāng)從目標(biāo)設(shè)備接收到經(jīng)加密的多樣化值時(shí),步驟46用于對(duì)此多樣化進(jìn)行解密并存儲(chǔ),以供服務(wù)器隨后聯(lián)合關(guān)于已經(jīng)在設(shè)備處安裝的密碼程序的其自己版本使用,從而提供了與目標(biāo)設(shè)備交換被保護(hù)數(shù)據(jù)的安全通信信道。

圖4是示意性示出當(dāng)要在目標(biāo)設(shè)備上安裝密碼功能時(shí)在目標(biāo)設(shè)備處的動(dòng)作的流程圖。在步驟48,處理等待,知道確定要安裝密碼功能為止。步驟50用于從服務(wù)器接收經(jīng)混淆的個(gè)性化程序26。可選地,密碼程序18也可以在此時(shí)接收。還可以是,密碼程序可以已在之前單獨(dú)地被安裝,圖4示出的處理與激活該密碼程序而非其初始安裝相關(guān)聯(lián)。

在步驟52,經(jīng)混淆的個(gè)性化程序被設(shè)備運(yùn)行,以將個(gè)性化輸入讀入經(jīng)混淆的個(gè)性化程序并生成對(duì)于該設(shè)備唯一(或準(zhǔn)唯一)的多樣化值。在步驟54,在步驟52生成的多樣化值被加密(例如,利用服務(wù)器的公鑰)并被發(fā)送回之前提到的服務(wù)器。在步驟52生成的多樣化值也可以被提供到設(shè)備處安裝的密碼程序18并用于控制密碼程序18依據(jù)該多樣化值執(zhí)行密碼操作。

圖5示意性示出服務(wù)器處想要向設(shè)備發(fā)送被保護(hù)數(shù)據(jù)的操作。在步驟56,處理等待,直到有要發(fā)送的數(shù)據(jù)為止。當(dāng)有要發(fā)送的數(shù)據(jù)時(shí),步驟58用于利用與在所涉設(shè)備上安裝的相同的密碼程序16以及所存儲(chǔ)的從目標(biāo)設(shè)備返回的并表示該個(gè)體目標(biāo)設(shè)備的運(yùn)行環(huán)境的多樣化值對(duì)數(shù)據(jù)進(jìn)行加密。在步驟60,在步驟58生成的經(jīng)加密的數(shù)據(jù)被發(fā)送到目標(biāo)設(shè)備。正確的目標(biāo)設(shè)備將利用相同的密碼程序和相同的多樣化值,從而能夠?qū)Πl(fā)送給它的經(jīng)加密的數(shù)據(jù)進(jìn)行解密。接收到此經(jīng)加密的數(shù)據(jù)的不同(未授權(quán)的)設(shè)備可能具有相同的密碼程序16和個(gè)性化程序,但是將不會(huì)根據(jù)其自己擁有的個(gè)性化程序?qū)嵗上嗤亩鄻踊?,因此將不能?duì)其接收的經(jīng)加密的數(shù)據(jù)執(zhí)行適當(dāng)?shù)慕饷堋?/p>

圖6示意性示出當(dāng)設(shè)備希望執(zhí)行密碼操作時(shí)在設(shè)備上執(zhí)行的處理操作。在步驟62,處理等待,直到確定設(shè)備要執(zhí)行密碼操作為止。處理進(jìn)行到步驟64,此處安裝在所涉設(shè)備上的個(gè)性化程序26讀取設(shè)備的特征變量的值以形成對(duì)于該設(shè)備的個(gè)性化程序26的個(gè)性化輸入。在步驟66,設(shè)備處經(jīng)混淆的個(gè)性化程序26利用所讀取的特征變量的值(即,個(gè)性化輸入)以對(duì)個(gè)性化輸入(以及個(gè)性化程序內(nèi)的任何嵌入變量)執(zhí)行預(yù)先選定的函數(shù),以形成多樣化值。在步驟68,在步驟66生成的多樣化值被提供給設(shè)備處安裝的密碼程序18的實(shí)例。步驟70依據(jù)所接收的多樣化值執(zhí)行所希望的密碼操作。

在本申請(qǐng)中,術(shù)語(yǔ)“被配置為”用于指裝置的元件具有能夠執(zhí)行所定義的操作的配置。在該上下文下,“配置”指硬件或軟件的互連的方式或布置。例如,裝置可以具有提供所定義的操作的專用硬件,或者處理器或其他處理設(shè)備可以被編程以執(zhí)行相應(yīng)功能。“被配置為”并不暗指裝置元件為了提供所定義的操作而需要以任何方式更改。

雖然在此已經(jīng)參考附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行了詳細(xì)描述,但是應(yīng)當(dāng)理解,本發(fā)明并不限于這些精確的實(shí)施例,并且本領(lǐng)域技術(shù)人員能夠在不脫離如所附權(quán)利要求定義的本發(fā)明的精神和范圍內(nèi)實(shí)現(xiàn)各種變化和更改。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宁波市| 靖远县| 体育| 城口县| 新蔡县| 灵璧县| 出国| 德昌县| 康保县| 玉环县| 烟台市| 双桥区| 庆城县| 海淀区| 新宾| 达尔| 松滋市| 古田县| 巴林左旗| 嘉善县| 神池县| 库车县| 政和县| 长海县| 西和县| 镶黄旗| 南阳市| 峨山| 浦城县| 大邑县| 张北县| 贡山| 革吉县| 彭阳县| 洛浦县| 黄梅县| 石屏县| 铜山县| 宜城市| 都安| 汝州市|