亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于定制化安卓系統(tǒng)的應(yīng)用鑒權(quán)方法與流程

文檔序號(hào):11654759閱讀:317來(lái)源:國(guó)知局
基于定制化安卓系統(tǒng)的應(yīng)用鑒權(quán)方法與流程

本發(fā)明涉及一種基于定制化安卓系統(tǒng)的應(yīng)用鑒權(quán)方法。



背景技術(shù):

一般文件鑒權(quán)通常采用的是對(duì)文件進(jìn)行簽名和驗(yàn)簽的策略。而對(duì)于安卓系統(tǒng)的應(yīng)用包安裝,如果應(yīng)用在安裝后需要進(jìn)行更新,仍然需要再次對(duì)已更新的文件進(jìn)行簽名。本技術(shù)基于安卓原生應(yīng)用簽名,提取利用其簽名采用rsa2048算法非對(duì)稱密鑰進(jìn)行簽名的特性,提取公鑰特征碼(sha256)進(jìn)行管控,對(duì)于已經(jīng)安裝過(guò)一次的應(yīng)用可以配置無(wú)需對(duì)更新包進(jìn)行簽名,只需要android應(yīng)用原生簽名公鑰特征一致即可更新。本技術(shù)針對(duì)android應(yīng)用包結(jié)構(gòu)不會(huì)校驗(yàn)文件尾部附加數(shù)據(jù)的特點(diǎn),將簽名信息附加在文件尾部,采用rsa2048非對(duì)稱密鑰進(jìn)行簽名驗(yàn)簽,利用灌裝公鑰到定制化系統(tǒng)進(jìn)行驗(yàn)簽,使用私鑰對(duì)應(yīng)用包進(jìn)行簽名的方式進(jìn)行鑒權(quán)管控。

可信任應(yīng)用安裝一般通過(guò)應(yīng)用市場(chǎng)等安全途徑獲取應(yīng)用,但是一些用戶會(huì)允許非應(yīng)用市場(chǎng)的途徑安裝一些第三方應(yīng)用,此時(shí)需要更加安全的應(yīng)用授權(quán)方式。采用首次安裝應(yīng)用包需要簽名的機(jī)制,搭配可配置是否后續(xù)每次更新的應(yīng)用包都需要對(duì)應(yīng)簽名來(lái)進(jìn)行判斷,依靠android原生簽名的公私鑰對(duì)是不變的特性,加上程序包名的判斷來(lái)保證應(yīng)用不會(huì)被非法應(yīng)用包所更新。只需要在首次安裝時(shí)給應(yīng)用包做額外簽名,這為一些第三方可信任機(jī)構(gòu)開發(fā)的應(yīng)用自主更新提供了更加方便的途徑。

另一方面,現(xiàn)有的技術(shù)中對(duì)于多客戶的環(huán)境下,并不能滿足一些客戶要求定制的android終端不能安裝其他客戶的應(yīng)用,本技術(shù)采用簽名添加項(xiàng)目id域的方式,對(duì)不同項(xiàng)目進(jìn)行隔離,保證不同項(xiàng)目的定制終端相互之間系統(tǒng)相同但是應(yīng)用相互無(wú)法切機(jī)安裝。

已有技術(shù)中,大部分簽名方案的缺陷就是無(wú)法兼容其他系統(tǒng)開發(fā)商的簽名方案,而本技術(shù)采用了多廠商簽名設(shè)計(jì)方案,使得一套簽名可以同時(shí)簽下多個(gè)廠商的簽名信息,且相互直接不干擾。



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

本發(fā)明的目的在于提供一種基于定制化安卓系統(tǒng)的應(yīng)用鑒權(quán)方法,該方法不但簡(jiǎn)化了第三方應(yīng)用開發(fā)者的應(yīng)用更新流程,還能夠避免不同項(xiàng)目之間如果使用相同公鑰驗(yàn)簽而出現(xiàn)的應(yīng)用相互切機(jī)的情況。

為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種基于定制化安卓系統(tǒng)的應(yīng)用鑒權(quán)方法,包括如下步驟,

s1、設(shè)備安裝應(yīng)用安裝包文件時(shí),判斷該應(yīng)用是否已安裝過(guò),若是,執(zhí)行步驟s2;否則,執(zhí)行步驟s3;

s2、比對(duì)該安裝應(yīng)用安裝包文件在andoroid原生簽名里的公鑰是否與首次安裝的應(yīng)用安裝包文件版本在andoroid原生簽名里的公鑰一致,若否,則執(zhí)行步驟s3;若是,執(zhí)行步驟s4;

s3、進(jìn)行應(yīng)用安裝包文件的驗(yàn)簽,驗(yàn)簽通過(guò)后執(zhí)行步驟s4,若驗(yàn)簽不通過(guò),則終止流程;

s4、進(jìn)行應(yīng)用安裝包文件的安裝/更新,完成應(yīng)用安裝/更新。

在本發(fā)明一實(shí)施例中,在步驟s1之前,還包括對(duì)應(yīng)用安裝包文件簽名的過(guò)程,具體如下:

s01、簽名程序獲取待簽名的應(yīng)用安裝包文件、及與之對(duì)應(yīng)的項(xiàng)目id和簽名用的私鑰;

s02、簽名程序根據(jù)配置依次調(diào)用各個(gè)廠商提供的簽名接口,得到不同廠家的簽名數(shù)據(jù)塊,并依次追加寫入簽名數(shù)據(jù)塊到待簽名的應(yīng)用安裝包文件的末尾;

s03、簽名程序根據(jù)簽名的寫入偏移量、簽名數(shù)據(jù)塊大小和項(xiàng)目id生成簽名索引表,并將該簽名索引表也加入待簽名的應(yīng)用安裝包文件的末尾。

在本發(fā)明一實(shí)施例中,所述簽名索引表用來(lái)表述各個(gè)不同廠商的簽名數(shù)據(jù)塊在文件中的位置和大小。

在本發(fā)明一實(shí)施例中,所述步驟s3中,應(yīng)用安裝包文件的驗(yàn)簽方式具體如下:

s31、設(shè)備獲得待驗(yàn)簽的應(yīng)用安裝包文件和一用于驗(yàn)簽的公鑰;

s32、從待驗(yàn)簽的應(yīng)用安裝包文件末尾開始尋找簽名索引表,若無(wú),則終止流程,若是,執(zhí)行步驟s33;

s33、判斷簽名索引表是否損壞,若是,則終止流程,若否,則繼續(xù)判斷簽名索引表內(nèi)項(xiàng)目id是否與本設(shè)備匹配一致,若否,則終止流程;若是,則執(zhí)行步驟s34;

s34、根據(jù)簽名索引表查找本設(shè)備對(duì)應(yīng)廠商的簽名信息,并根據(jù)廠商自定義的簽名和公鑰進(jìn)行驗(yàn)簽比對(duì)簽名信息數(shù)據(jù)是否合法,若不合法,終止流程。

相較于現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:

1.應(yīng)用安裝包需要額外簽名的次數(shù)僅僅是首次安裝時(shí)應(yīng)用的簽名,根據(jù)配置可以啟用后續(xù)只要沒有變更android原生簽名密鑰則無(wú)需再次簽名更新安裝包,簡(jiǎn)化了第三方應(yīng)用開發(fā)者的應(yīng)用更新流程;

2.一個(gè)文件中可以帶有多個(gè)不同終端廠商的簽名信息,各家可以根據(jù)自行需求進(jìn)行驗(yàn)證;

3.對(duì)應(yīng)同一個(gè)廠商的不同項(xiàng)目,采用了簽名信息內(nèi)嵌項(xiàng)目id的方式進(jìn)行管控,避免不同項(xiàng)目之間如果使用相同公鑰驗(yàn)簽而出現(xiàn)的應(yīng)用相互切機(jī)的情況。

附圖說(shuō)明

圖1為已簽名文件的文件結(jié)構(gòu)。

圖2為本發(fā)明簽名工具框架圖。

圖3為本發(fā)明應(yīng)用安裝包文件尾部簽名數(shù)據(jù)塊的驗(yàn)簽流程圖。

圖4為本發(fā)明使用應(yīng)用安裝包文件安裝/更新應(yīng)用的流程圖。

圖5為本發(fā)明給應(yīng)用安裝包文件尾部簽名的流程圖。

具體實(shí)施方式

下面結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行具體說(shuō)明。

本發(fā)明的一種基于定制化安卓系統(tǒng)的應(yīng)用鑒權(quán)方法,包括如下步驟,

s1、設(shè)備安裝應(yīng)用安裝包文件時(shí),判斷該應(yīng)用是否已安裝過(guò),若是,執(zhí)行步驟s2;否則,執(zhí)行步驟s3;

s2、比對(duì)該安裝應(yīng)用安裝包文件在andoroid原生簽名里的公鑰是否與首次安裝的應(yīng)用安裝包文件版本在andoroid原生簽名里的公鑰一致,若否,則執(zhí)行步驟s3;若是,執(zhí)行步驟s4;

s3、進(jìn)行應(yīng)用安裝包文件的驗(yàn)簽,驗(yàn)簽通過(guò)后執(zhí)行步驟s4,若驗(yàn)簽不通過(guò),則終止流程;

s4、進(jìn)行應(yīng)用安裝包文件的安裝/更新,完成應(yīng)用安裝/更新。

在步驟s1之前,還包括對(duì)應(yīng)用安裝包文件簽名的過(guò)程,具體如下:

s01、簽名程序獲取待簽名的應(yīng)用安裝包文件、及與之對(duì)應(yīng)的項(xiàng)目id和簽名用的私鑰;

s02、簽名程序根據(jù)配置依次調(diào)用各個(gè)廠商提供的簽名接口,得到不同廠家的簽名數(shù)據(jù)塊,并依次追加寫入簽名數(shù)據(jù)塊到待簽名的應(yīng)用安裝包文件的末尾;

s03、簽名程序根據(jù)簽名的寫入偏移量、簽名數(shù)據(jù)塊大小和項(xiàng)目id生成簽名索引表,并將該簽名索引表也加入待簽名的應(yīng)用安裝包文件的末尾。

所述簽名索引表用來(lái)表述各個(gè)不同廠商的簽名數(shù)據(jù)塊在文件中的位置和大小。

所述步驟s3中,應(yīng)用安裝包文件的驗(yàn)簽方式具體如下:

s31、設(shè)備獲得待驗(yàn)簽的應(yīng)用安裝包文件和一用于驗(yàn)簽的公鑰;

s32、從待驗(yàn)簽的應(yīng)用安裝包文件末尾開始尋找簽名索引表,若無(wú),則終止流程,若是,執(zhí)行步驟s33;

s33、判斷簽名索引表是否損壞,若是,則終止流程,若否,則繼續(xù)判斷簽名索引表內(nèi)項(xiàng)目id是否與本設(shè)備匹配一致,若否,則終止流程;若是,則執(zhí)行步驟s34;

s34、根據(jù)簽名索引表查找本設(shè)備對(duì)應(yīng)廠商的簽名信息,并根據(jù)廠商自定義的簽名和公鑰進(jìn)行驗(yàn)簽比對(duì)簽名信息數(shù)據(jù)是否合法,若不合法,終止流程。

以下為本發(fā)明的具體實(shí)現(xiàn)過(guò)程。

本發(fā)明的基于定制化安卓系統(tǒng)的應(yīng)用鑒權(quán)方法,可以分為以下幾個(gè)部分:

1.簽名的機(jī)制(參見圖1)

a)針對(duì)之前未安裝過(guò)的應(yīng)用的應(yīng)用安裝包文件,通過(guò)文件尾部追加簽名數(shù)據(jù)塊實(shí)現(xiàn)的定制簽名驗(yàn)簽機(jī)制。其中這個(gè)簽名塊是由一個(gè)簽名索引表數(shù)據(jù)塊,和各個(gè)廠商對(duì)應(yīng)簽名數(shù)據(jù)塊組成的。

b)針對(duì)已經(jīng)安裝過(guò)的應(yīng)用,比對(duì)android原生簽名里的公鑰是否和首次安裝的版本的公鑰一致的機(jī)制。

c)針對(duì)不同終端供應(yīng)商不同的簽名無(wú)法兼容的問(wèn)題,通過(guò)配置一個(gè)簽名索引表,實(shí)現(xiàn)了多廠商簽名兼容的情況。

d)針對(duì)不同項(xiàng)目使用相同公鑰驗(yàn)簽的情況,采用簽名內(nèi)嵌一個(gè)項(xiàng)目id,對(duì)應(yīng)項(xiàng)目id固化一個(gè)項(xiàng)目id在系統(tǒng)里,在應(yīng)用首次安裝的時(shí)候針對(duì)項(xiàng)目id進(jìn)行比對(duì),不符合規(guī)則的也不允許所請(qǐng)求的應(yīng)用包執(zhí)行安裝步驟。

2.應(yīng)用安裝包文件的簽名工具(參見圖2)

采用模塊化接口,各個(gè)廠家只需要適配對(duì)應(yīng)的簽名接口并提供對(duì)應(yīng)動(dòng)態(tài)庫(kù),然后配置對(duì)應(yīng)配置項(xiàng)目到配置信息表,即可在目標(biāo)文件簽名區(qū)加入對(duì)應(yīng)廠家的自定義簽名

b)項(xiàng)目id也配置在配置信息表內(nèi)。

c)可以同時(shí)在一個(gè)文件中簽入多個(gè)廠家的簽名信息,互不沖突。

3.系統(tǒng)端的驗(yàn)簽?zāi)K(參見圖5)

a)通過(guò)索引表只查找本機(jī)器對(duì)應(yīng)的廠商的簽名并進(jìn)行驗(yàn)證,保證文件完整性的前提下進(jìn)行合法性校驗(yàn)。

b)對(duì)于已經(jīng)安裝過(guò)的應(yīng)用則還可以在驗(yàn)簽之前先行檢驗(yàn)是否和之前的應(yīng)用安裝包的android原生簽名的公鑰是一致的,一致則可以根據(jù)配置選擇是否跳過(guò)檢查文件合法性。

c)針對(duì)不同項(xiàng)目使用相同公鑰驗(yàn)簽的情況,采用簽名內(nèi)嵌一個(gè)項(xiàng)目id,對(duì)應(yīng)項(xiàng)目id固化一個(gè)項(xiàng)目id在系統(tǒng)里,在應(yīng)用首次安裝的時(shí)候針對(duì)項(xiàng)目id進(jìn)行比對(duì),不符合規(guī)則的也不允許所請(qǐng)求的應(yīng)用包執(zhí)行安裝步驟。

實(shí)現(xiàn)方式如下:

1.應(yīng)用安裝包文件尾部簽名數(shù)據(jù)塊的驗(yàn)簽流程(見圖3)

設(shè)備先得到一個(gè)待驗(yàn)簽的文件和一段用來(lái)驗(yàn)簽的公鑰數(shù)據(jù),從文件末尾開始尋找簽名索引表,廠商根據(jù)需要可以比對(duì)索引表內(nèi)的項(xiàng)目id是否和機(jī)器內(nèi)固化的項(xiàng)目id一致,不一致可以根據(jù)策略停止安裝流程,之后根據(jù)索引表查找設(shè)備對(duì)應(yīng)廠商的簽名信息,根據(jù)廠商自定義的簽名和公鑰進(jìn)行驗(yàn)簽比對(duì)簽名信息數(shù)據(jù)是否合法。這其中索引表對(duì)所有的廠商簽名數(shù)據(jù)塊都有做一層完整性校驗(yàn),而各個(gè)廠商的簽名數(shù)據(jù)塊則對(duì)原始文件完整性數(shù)據(jù)又進(jìn)行了一次校驗(yàn),因此可以保證原文件和簽名后的文件數(shù)據(jù)被篡改都能被檢測(cè)的出來(lái)。

2.使用應(yīng)用安裝包文件安裝/更新應(yīng)用的流程(見圖4)

設(shè)備先得到一個(gè)應(yīng)用安裝包文件,從中解析出程序包名,并判斷是否已經(jīng)在系統(tǒng)內(nèi)安裝過(guò)。如果沒有安裝過(guò)則直接執(zhí)行應(yīng)用安裝包文件尾部簽名數(shù)據(jù)塊的驗(yàn)簽流程。如果已經(jīng)安裝過(guò),則讀取配置查看是否只需要判斷android原生簽名公鑰是否合法,就能放行安裝步驟,否則仍然需要執(zhí)行應(yīng)用安裝包文件尾部簽名數(shù)據(jù)塊的驗(yàn)簽流程。

3.給應(yīng)用安裝包文件尾部簽名的流程(見圖5)

程序先獲得一個(gè)待簽名的安裝包文件、這次項(xiàng)目的項(xiàng)目id和對(duì)應(yīng)的私鑰(公鑰預(yù)置在目標(biāo)機(jī)器中用來(lái)驗(yàn)簽),根據(jù)配置依次調(diào)用各個(gè)廠商提供的簽名接口,得到不同廠家的簽名數(shù)據(jù)塊,依次追加寫入到待簽名文件的末尾,之后根據(jù)這些簽名的寫入偏移量、數(shù)據(jù)塊大小和項(xiàng)目id生成一個(gè)索引表,用來(lái)表述各個(gè)不同廠商的簽名數(shù)據(jù)塊在文件中的位置和大小,最后再把這個(gè)索引表也寫入文件末尾。

以上是本發(fā)明的較佳實(shí)施例,凡依本發(fā)明技術(shù)方案所作的改變,所產(chǎn)生的功能作用未超出本發(fā)明技術(shù)方案的范圍時(shí),均屬于本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1