国产精品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>

      一種多方授權(quán)的apk簽名方法及系統(tǒng)的制作方法

      文檔序號:7801986閱讀:192來源:國知局
      一種多方授權(quán)的apk簽名方法及系統(tǒng)的制作方法
      【專利摘要】本發(fā)明提供一種多方授權(quán)的APK簽名方法及系統(tǒng),包括不同終端設(shè)備廠商簽名服務(wù)器用各自的工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)進行簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù),將廠商工作公鑰證書放入終端設(shè)備廠商簽名數(shù)據(jù)中或預(yù)裝在終端設(shè)備中;收單機構(gòu)簽名服務(wù)器將不同終端設(shè)備廠商簽名數(shù)據(jù)按照簽名時間的先后順序采用DER格式組成已簽名APK文件;已簽名APK文件包括原始APK文件和簽名文件頭,簽名文件頭包括用于標識文件已經(jīng)過簽名操作和標識終端設(shè)備廠商簽名數(shù)據(jù)的個數(shù)及所述簽名數(shù)據(jù)在已簽名APK文件中的具體位置;終端設(shè)備獲取已簽名APK文件并判斷已簽名APK文件中有對應(yīng)的終端設(shè)備廠商簽名數(shù)據(jù)后定位終端設(shè)備廠商簽名數(shù)據(jù)并驗證,驗證通過后允許安裝及運行。
      【專利說明】—種多方授權(quán)的APK簽名方法及系統(tǒng)
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及APK簽名認證領(lǐng)域,尤其涉及一種多方授權(quán)的APK簽名方法及系統(tǒng)?!颈尘凹夹g(shù)】
      [0002]銀行卡(BANK Card)作為支付工具越來越普及,通常的銀行卡支付系統(tǒng)包括銷售點終端(Point Of Sale, POS)、POS收單系統(tǒng)(POSP)、密碼鍵盤(PIN PAD)和硬件加密機(Hardware and Security Module, HSM)。其中POS終端能夠接受銀行卡信息,具有通訊功能,并接受柜員的指令完成金融交易信息和有關(guān)信息交換的設(shè)備;P0S收單系統(tǒng)對POS終端進行集中管理,包括參數(shù)下載,密鑰下載,接受、處理或轉(zhuǎn)發(fā)POS終端的交易請求,并向POS終端回送交易結(jié)果信息,是集中管理和交易處理的系統(tǒng);收單系統(tǒng)中的POS上的程序是由收單機構(gòu)下載和更新。由于Android系統(tǒng)的通用性,收單機構(gòu)開始采購Android系統(tǒng)的POS終端設(shè)備。Android系統(tǒng)安裝程序包稱為APK, Android Package的縮寫。
      [0003]但由于POS終端設(shè)備廠商很多,每個廠商為提高POS終端設(shè)備的安全性,都會對下載后需要在POS中安裝運行的程序進行簽名驗證,只有合法的簽名的程序才允許安裝或運行。并且由于廠商實現(xiàn)機制不同,造成原本可以下載安裝到不同廠商Android系統(tǒng)POS終端的APK,簽名后的文件格式都不一致,導致收單機構(gòu)采購不同廠商的Android系統(tǒng)POS終端設(shè)備,需要同時維護不同的簽名工具Android系統(tǒng)和和對同一個APK維護不同版本的已簽名APK文件,給收單機構(gòu)帶來繁瑣的維護工作和極大的維護成本,因此有必要提出一種APK簽名的方案,降低收單機構(gòu)的對APK簽名的維護成本。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明的目的在于提供一種方便收單機構(gòu)統(tǒng)一管理不同廠商的Android系統(tǒng)終端設(shè)備的簽名,縮減維護成本的一種多方授權(quán)的APK簽名方法及系統(tǒng)。
      [0005]為實現(xiàn)上述發(fā)明目的,本發(fā)明采用的一個技術(shù)方案是:
      [0006]一種多方授權(quán)的APK簽名方法,包括:
      [0007]S1:不同終端設(shè)備廠商CA服務(wù)器各自生成廠商根公私鑰對,將廠商根公鑰生成廠商根公鑰證書;不同終端設(shè)備廠商簽名服務(wù)器各自生成廠商工作公私鑰對,將工作公鑰分發(fā)至各自的廠商CA服務(wù)器,廠商CA服務(wù)器使用廠商根私鑰對廠商工作公鑰簽名生成廠商工作公鑰證書;
      [0008]S2:不同終端設(shè)備廠商簽名服務(wù)器使用各自的廠商工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù),根據(jù)不同終端設(shè)備廠商的驗簽機制將各自的廠商工作公鑰證書放入各自生成的廠商簽名數(shù)據(jù)中或預(yù)裝在終端設(shè)備中;不同終端設(shè)備廠商將各自的廠商根公鑰證書預(yù)裝在各自的終端設(shè)備中;
      [0009]S3:收單機構(gòu)簽名服務(wù)器將不同終端設(shè)備廠商簽名服務(wù)器生成的不同廠商簽名數(shù)據(jù)按照簽名時間的先后順序采用DER格式組成已簽名APK文件;其中,所述已簽名APK文件包括原始APK文件和簽名文件頭,所述簽名文件頭包括基礎(chǔ)文件和擴展文件,所述基礎(chǔ)文件用于標識文件已經(jīng)過簽名操作;所述擴展文件用于標識不同終端設(shè)備各自的廠商簽名數(shù)據(jù)的個數(shù)及不同終端設(shè)備各自的廠商簽名數(shù)據(jù)在已簽名APK文件中的具體位置;
      [0010]S4:終端設(shè)備從所述收單機構(gòu)簽名服務(wù)器獲取已簽名APK文件,判斷已簽名APK文件中是否有與所述終端設(shè)備對應(yīng)的終端設(shè)備廠商生成的廠商簽名數(shù)據(jù),當判定有對應(yīng)的廠商簽名數(shù)據(jù)后,終端設(shè)備通過所述已簽名APK文件的文件頭定位所述廠商簽名數(shù)據(jù);
      [0011]S5:終端設(shè)備獲取廠商根公鑰證書后使用廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性,驗證合法后終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù),驗證通過后允許安裝或運行。
      [0012]本發(fā)明提供的另一種技術(shù)方案為:
      [0013]一種多方授權(quán)的APK簽名系統(tǒng),其特征在于,包括終端設(shè)備廠商服務(wù)器、收單機構(gòu)服務(wù)器和終端設(shè)備服務(wù)器;
      [0014]所述終端設(shè)備廠商服務(wù)器包括第一生成模塊、第二生成模塊和第一簽名模塊;
      [0015]所述第一生成模塊,用于不同終端設(shè)備廠商CA服務(wù)器各自生成廠商根公私鑰對,將廠商根公鑰生成廠商根公鑰證書和使用廠商根私鑰對廠商工作公鑰簽名生成廠商工作公鑰證書;
      [0016]所述第二生成模塊,用于不同終端設(shè)備廠商簽名服務(wù)器各自生成廠商工作公私鑰對,將工作公鑰分發(fā)至各自的廠商CA服務(wù)器;
      [0017]所述第一簽名模塊,用于不同終端設(shè)備廠商簽名服務(wù)器使用各自的廠商工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù),根據(jù)不同終端設(shè)備廠商的驗簽機制將各自的廠商工作公鑰證書放入各自生成的廠商簽名數(shù)據(jù)中或預(yù)裝在終端設(shè)備中;不同終端設(shè)備廠商將各自的廠商根公鑰證書預(yù)裝在各自的終端設(shè)備中;
      [0018]所述收單機構(gòu)服務(wù)器包括第二簽名模塊;
      [0019]所述第二簽名模塊,用于收單機構(gòu)簽名服務(wù)器將不同終端設(shè)備廠商簽名服務(wù)器生成的不同廠商簽名數(shù)據(jù)按照簽名時間的先后順序采用DER格式組成已簽名APK文件;其中,所述已簽名APK文件包括原始APK文件和簽名文件頭,所述簽名文件頭包括基礎(chǔ)文件和擴展文件,所述基礎(chǔ)文件用于標識文件已經(jīng)過簽名操作;所述擴展文件用于標識不同終端設(shè)備各自的廠商簽名數(shù)據(jù)的個數(shù)及不同終端設(shè)備各自的廠商簽名數(shù)據(jù)在已簽名APK文件中的具體位置;
      [0020]所述終端設(shè)備服務(wù)器包括第一判斷模塊、定位模塊、第一驗證模塊和第二驗證模塊;
      [0021]所述第一判斷模塊,用于終端設(shè)備從所述收單機構(gòu)簽名服務(wù)器獲取已簽名APK文件,判斷已簽名APK文件中是否有與所述終端設(shè)備對應(yīng)的終端設(shè)備廠商生成的廠商簽名數(shù)據(jù);
      [0022]所述定位模塊,用于終端設(shè)備判定有對應(yīng)的廠商簽名數(shù)據(jù)后通過所述已簽名APK文件的文件頭定位所述廠商簽名數(shù)據(jù);
      [0023]所述第一驗證模塊,用于終端設(shè)備使用廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性;
      [0024]所述第二驗證模塊,用于終端設(shè)備成功驗證廠商工作公鑰證書的合法性后,終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù),驗證通過后允許安裝或運行。[0025]本發(fā)明的有益效果在于:本發(fā)明的一種多方授權(quán)的APK簽名方法及系統(tǒng),通過不同終端設(shè)備的簽名服務(wù)器對包括APK文件的被簽名數(shù)據(jù)各自進行簽名操作生成各自的簽名數(shù)據(jù)后由收單機構(gòu)按順序采用DER格式組成已簽名APK文件,已簽名APK文件中包括用于識別已接受過簽名操作的終端設(shè)備和各終端設(shè)備廠商簽名數(shù)據(jù)的個數(shù)及在已簽名APK文件所在位置的文件頭,用于不同終端設(shè)備在獲取已簽名APK文件后提取自身終端設(shè)備需要進行驗簽的對應(yīng)簽名數(shù)據(jù)進行驗證合法性,驗證通過后方可進行APK的安裝或運行。
      [0026]通過本發(fā)明,實現(xiàn)了終端設(shè)備在下載所需APK的過程中,只需識別有經(jīng)過自身終端設(shè)備簽名過的已簽名APK文件,并在定位自身終端設(shè)備的簽名數(shù)據(jù)后運用自身的驗簽機制進行驗證合法性,驗證通過后便可允許APK安裝或運行。本發(fā)明即保證簽名后APK在傳輸過程后的完整性和合法性,又能實現(xiàn)不同廠商的終端設(shè)備只需維護自身的簽名驗簽機制,大大縮減了客戶的維護成本。
      【專利附圖】

      【附圖說明】
      [0027]圖1為本發(fā)明一種多方授權(quán)的APK簽名方法的流程框圖;
      [0028]圖2為本發(fā)明一種多方授權(quán)的APK簽名方法中步驟5的具體流程框圖;
      [0029]圖3為本發(fā)明一種多方授權(quán)的APK簽名系統(tǒng)的組成框圖;
      [0030]圖4為本發(fā)明一種多方授權(quán)的APK簽名系統(tǒng)中收單機構(gòu)服務(wù)器的組成框圖;
      [0031]圖5為本發(fā)明一種多方授權(quán)的APK簽名系統(tǒng)中第一驗證模塊的組成框圖;
      [0032]圖6為本發(fā)明一種多方授權(quán)的APK簽名系統(tǒng)中第二驗證模塊的組成框圖。
      [0033]主要組成符號說明:
      [0034]終端設(shè)備廠商服務(wù)器I ;收單機構(gòu)服務(wù)器2 ;終端設(shè)備服務(wù)器3
      [0035]第一生成模塊010;第二生成模塊011;第一簽名模塊012 ;
      [0036]第二簽名模塊020 ;第一判斷模塊030 ;定位模塊031 ;
      [0037]第一驗證模塊032;第二驗證模塊033;第三簽名模塊021 ;
      [0038]寫入模塊022 ;第二判斷模塊023 ;第二判斷單元0321 ;
      [0039]第三判斷單元0322;第一運算單元0331;第三判斷單元0332。
      【具體實施方式】
      [0040]不同廠商的終端設(shè)備對被簽名數(shù)據(jù)各自進行簽名操作后生成廠商簽名數(shù)據(jù),之后將廠商簽名數(shù)據(jù)發(fā)給收單機構(gòu)簽名服務(wù)器,由收單機構(gòu)簽名服務(wù)器采用DER格式組成已簽名APK文件,廠商的終端設(shè)備安裝或運行已簽名APK文件時,定位獲取終端設(shè)備對應(yīng)的廠商簽名數(shù)據(jù)進行驗簽,驗簽通過后安裝或運行APK文件,本發(fā)明采用方便擴展的DER格式編碼存放不同廠商簽名數(shù)據(jù),終端設(shè)備僅需獲取并驗簽自身對應(yīng)的廠商簽名的數(shù)據(jù),實現(xiàn)針對不同廠商驗簽機制的Android終端設(shè)備,只需維護一套簽名實現(xiàn)機制,減免收單機構(gòu)需要同時維護不同終端設(shè)備廠商不同的簽名驗簽機制的成本。
      [0041]為詳細說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合附圖詳予說明。
      [0042]請參閱圖1為本發(fā)明一種多方授權(quán)的APK簽名方法的流程框圖。
      [0043] 本方案所述一種多方授權(quán)的APK簽名方法,包括:[0044]S1:不同終端設(shè)備廠商CA服務(wù)器各自生成廠商根公私鑰對,將廠商根公鑰生成廠商根公鑰證書;不同終端設(shè)備廠商簽名服務(wù)器各自生成廠商工作公私鑰對,將工作公鑰分發(fā)至各自的廠商CA服務(wù)器,廠商CA服務(wù)器使用廠商根私鑰對廠商工作公鑰簽名生成廠商工作公鑰證書;
      [0045]S2:不同終端設(shè)備廠商簽名服務(wù)器使用各自的廠商工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù),根據(jù)不同終端設(shè)備廠商的驗簽機制將各自的廠商工作公鑰證書放入各自生成的廠商簽名數(shù)據(jù)中或預(yù)裝在終端設(shè)備中;不同終端設(shè)備廠商將各自的廠商根公鑰證書預(yù)裝在各自的終端設(shè)備中;
      [0046]S3:收單機構(gòu)簽名服務(wù)器將不同終端設(shè)備廠商簽名服務(wù)器生成的不同廠商簽名數(shù)據(jù)按照簽名時間的先后順序采用DER格式組成已簽名APK文件;其中,所述已簽名APK文件包括原始APK文件和簽名文件頭,所述簽名文件頭包括基礎(chǔ)文件和擴展文件,所述基礎(chǔ)文件用于標識文件已經(jīng)過簽名操作;所述擴展文件用于標識不同終端設(shè)備各自的廠商簽名數(shù)據(jù)的個數(shù)及不同終端設(shè)備各自的廠商簽名數(shù)據(jù)在已簽名APK文件中的具體位置;
      [0047]S4:終端設(shè)備從所述收單機構(gòu)簽名服務(wù)器獲取已簽名APK文件,判斷已簽名APK文件中是否有與所述終端設(shè)備對應(yīng)的終端設(shè)備廠商生成的廠商簽名數(shù)據(jù),當判定有對應(yīng)的廠商簽名數(shù)據(jù)后,終端設(shè)備通過所述已簽名APK文件的文件頭定位所述廠商簽名數(shù)據(jù);
      [0048]S5:終端設(shè)備獲取廠商根公鑰證書后使用廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性,驗證合法后終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù),驗證通過后允許安裝或運行。
      [0049]本方案采用DER格式編碼不同廠商的終端設(shè)備進行各自簽名操作后的簽名數(shù)據(jù),并按照簽名的時間順序進行排序,采用DER格式進行編碼方便進行擴展,能很好的容納不同終端設(shè)備廠商的廠商簽名數(shù)據(jù),且各自獨立。本方案所述簽名文件頭標識了已簽名APK文件的類型和經(jīng)過不同廠商簽名后數(shù)據(jù)的偏移和偏移的長度,用于在下載到不同廠商的終端設(shè)備后由判斷是否有經(jīng)過自身終端設(shè)備簽名操作過的簽名數(shù)據(jù);簽名文件頭還用于定位簽名數(shù)據(jù)在已簽名APK文件已簽名APK文件中的具體位置,方便不同廠商的終端設(shè)備獲取各自的簽名數(shù)據(jù)進行各自的驗簽。在進行不同廠商的終端設(shè)備各自的簽名操作過程中,不同的廠商會根據(jù)自身的需要,將各自的廠商工作公鑰證書放入各自生成的廠商簽名數(shù)據(jù)中或預(yù)裝在終端設(shè)備中,在后續(xù)終端設(shè)備進行驗簽時,預(yù)裝在廠商的終端設(shè)備中的廠商工作公鑰無需再驗證合法性,直接用于驗簽,而存放在終端設(shè)備廠商簽名數(shù)據(jù)中的廠商工作公鑰證書需要用預(yù)裝的廠商根公鑰證書驗證其合法性,通過驗證后才能繼續(xù)后續(xù)的驗證步驟,否則判定簽名數(shù)據(jù)不合法。
      [0050]本方案實現(xiàn)了終端設(shè)備在下載APK文件時,只需在識別到已簽名APK文件中有經(jīng)過自身終端設(shè)備簽名過的簽名數(shù)據(jù)后定位獲取對應(yīng)簽名數(shù)據(jù),運用自身的驗簽機制進行驗證合法性,通過驗證后便可運行APK安裝或運行的方法,通過本方案不僅能快速驗證簽名后的APK在經(jīng)過傳輸后的完整性和合法性,又能實現(xiàn)購買不同廠商終端設(shè)備的客戶不再需要同時維護多個不同廠商的終端設(shè)備不同的簽名驗簽機制,大大的縮減客戶的維護成本。
      [0051]實施方式一:
      [0052]在上述方案的基礎(chǔ)上,本實施方式還包括步驟SI之前包括以下步驟:
      [0053]收單機構(gòu)簽名服務(wù)器將原始APK文件尾填充0x00四字節(jié)補齊,確保原始APK文件尾以O(shè)xOO結(jié)尾后作為被簽名數(shù)據(jù);
      [0054]步驟S3還包括:
      [0055]S31:收單機構(gòu)簽名服務(wù)器將被簽名數(shù)據(jù)的標識、版本和原始APK文件的長度及校驗值與入所述基礎(chǔ)文件中;
      [0056]步驟S4中所述“判斷已簽名APK文件中是否有與所述終端設(shè)備對應(yīng)的終端設(shè)備廠商簽名數(shù)據(jù)”具體為:
      [0057]根據(jù)已簽名APK文件中簽名文件頭的基礎(chǔ)文件中不同被簽名數(shù)據(jù)的標識、版本判斷是否有屬于自身終端設(shè)備的簽名數(shù)據(jù)。
      [0058]本實施方式在實現(xiàn)不同廠商的終端設(shè)備各自進行驗簽獲取APK的同時,具體的執(zhí)行步驟還包括在步驟SI之前收單機構(gòu)的簽名服務(wù)器將原始APK文件進行四字節(jié)對其,不足位用0x00填充,并在末尾補4個0x00以確保被原始文件APK的末尾為0x00,方便后續(xù)進行編碼。在步驟S2還包括收單機構(gòu)簽名服務(wù)器將被簽名數(shù)據(jù)的標識、版本和原始APK文件的長度及校驗值寫入所述基礎(chǔ)文件中,用于步驟S3中下載到不同的終端設(shè)備中時終端設(shè)備通過基礎(chǔ)文件中的被簽名數(shù)據(jù)的標識、版本和校驗值進行判斷是否經(jīng)過自身終端設(shè)備的簽名操作。
      [0059]實施方式二:
      [0060]在上述方案的基礎(chǔ)上,本實施方式還包括步驟SI中所述“不同終端設(shè)備廠商簽名服務(wù)器使用各自的廠商工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù)”具體包括:
      [0061]不同終端設(shè)備廠商簽名服務(wù)器將包括原始APK文件的被簽名數(shù)據(jù)計算哈希得到哈希值HASHl ;將哈希值HASHl按照一定簽名填充方式進行填充后得到被簽名APK文件;將被簽名APK文件使用終端設(shè)備廠商簽名服務(wù)器各自的工作私鑰進行簽名操作生成不同終端設(shè)備廠商簽名數(shù)據(jù)。
      [0062]本實施方式實現(xiàn)不同廠商的終端設(shè)備各自進行驗簽獲取APK的同時,還包括具體的不同終端設(shè)備廠商簽名服務(wù)器用各自的工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)進行簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù)的具體過程,通過對被簽名數(shù)據(jù)進行計算哈希得到哈希值HASHl,并將哈希值HASHl按照PKCS#1_V1.5的簽名填充方式進行填充,得到被簽名文件,并將被簽名文件使用私鑰進行簽名操作生成終端設(shè)備廠商簽名數(shù)據(jù),加入到采用DER方式編碼的已簽名APK文件中,同時修改已簽名APK文件的文件頭,將當前新增加的廠商終端設(shè)備廠商簽名數(shù)據(jù)的偏移和長度添加進文件頭的對應(yīng)擴展域中。按照該方式將不同的廠商終端設(shè)備簽名后的簽名數(shù)據(jù)按照DER編碼格式進行排放,方便擴展數(shù)據(jù)的同時便于驗簽時獲取不同廠商終端設(shè)備相應(yīng)的簽名數(shù)據(jù)。
      [0063]請參閱圖2,為本發(fā)明一種多方授權(quán)的APK簽名方法中步驟5的具體流程框圖。
      [0064]實施方式三:
      [0065]在上述方案的基礎(chǔ)上,本實施方式還包括在步驟S5中具體包括:
      [0066]S51:判斷廠商工作公鑰證書是否預(yù)裝在終端設(shè)備中,若是,獲取廠商工作公鑰證書,并進入步驟S53 ;若否,通過所述已簽名APK文件的文件頭定位并獲取設(shè)備終端對應(yīng)的廠商簽名數(shù)據(jù);
      [0067]S52:獲取廠商簽名數(shù)據(jù)中的廠商工作公鑰證書;終端設(shè)備使用預(yù)裝的廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性,驗證通過后進入步驟S53 ;
      [0068]S53:終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù)并計算哈希,得到哈希值HASH2 ;判斷哈希值HASHl和哈希值HASH2是否一致,若是,則判定已簽名APK文件合法,允許APK安裝;若否,則判定已簽名APK文件不合法,不允許APK安裝。
      [0069]本實施方式具體的包括在判斷有經(jīng)過自身終端設(shè)備簽名操作后的簽名文件后進行獲取合法工作公鑰的步驟,具體的,先判斷設(shè)備終端中是否有預(yù)裝的合法工作公鑰,若有,便直接獲取合法的工作公鑰進入定位獲取簽名數(shù)據(jù)步驟進行解密簽名數(shù)據(jù);若否,則從獲取的簽名數(shù)據(jù)中提取終端設(shè)備工作公鑰證書,并使用預(yù)裝在終端設(shè)備的廠商根公鑰證書驗證終端設(shè)備工作公鑰證書的合法性,驗證通過后再利用工作公鑰證書中的公鑰解密簽名數(shù)據(jù)。通過再次對獲取到的簽名數(shù)據(jù)進行計算哈希得到哈希值HASH2,對比簽名數(shù)據(jù)在進行傳輸之前的哈希值HASHl判斷簽名數(shù)據(jù)的合法性和完整性,確保簽名文件在傳輸過程中未經(jīng)篡改。
      [0070]請參閱圖3為本發(fā)明一種多方授權(quán)的APK簽名系統(tǒng)的組成框圖。
      [0071]本發(fā)明采用的另一個技術(shù)方案為:
      [0072]—種多方授權(quán)的APK簽名系統(tǒng),包括終端設(shè)備廠商服務(wù)器1、收單機構(gòu)服務(wù)器2和終端設(shè)備服務(wù)器3 ;
      [0073]所述終端設(shè)備廠商服務(wù)器I包括第一生成模塊010、第二生成模塊011和第一簽名模塊012 ;
      [0074]所述第一生成模塊010,用于不同終端設(shè)備廠商CA服務(wù)器各自生成廠商根公私鑰對,將廠商根公鑰生成廠商根公鑰證書和使用廠商根私鑰對廠商工作公鑰簽名生成廠商工作公鑰證書;
      [0075]所述第二生成模塊011,用于不同終端設(shè)備廠商簽名服務(wù)器各自生成廠商工作公私鑰對,將工作公鑰分發(fā)至各自的廠商CA服務(wù)器;
      [0076]所述第一簽名模塊012,用于不同終端設(shè)備廠商簽名服務(wù)器使用各自的廠商工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù),根據(jù)不同終端設(shè)備廠商的驗簽機制將各自的廠商工作公鑰證書放入各自生成的廠商簽名數(shù)據(jù)中或預(yù)裝在終端設(shè)備中;不同終端設(shè)備廠商將各自的廠商根公鑰證書預(yù)裝在各自的終端設(shè)備中;
      [0077]所述收單機構(gòu)服務(wù)器2包括第二簽名模塊020 ;
      [0078]所述第二簽名模塊020,用于收單機構(gòu)簽名服務(wù)器將不同終端設(shè)備廠商簽名服務(wù)器生成的不同廠商簽名數(shù)據(jù)按照簽名時間的先后順序采用DER格式組成已簽名APK文件;其中,所述已簽名APK文件包括原始APK文件和簽名文件頭,所述簽名文件頭包括基礎(chǔ)文件和擴展文件,所述基礎(chǔ)文件用于標識文件已經(jīng)過簽名操作;所述擴展文件用于標識不同終端設(shè)備各自的廠商簽名數(shù)據(jù)的個數(shù)及不同終端設(shè)備各自的廠商簽名數(shù)據(jù)在已簽名APK文件中的具體位置;
      [0079]所述終端設(shè)備服務(wù)器3包括第一判斷模塊030、定位模塊031、第一驗證模塊032和第二驗證模塊033 ;
      [0080]所述第一判斷模塊030,用于終端設(shè)備從所述收單機構(gòu)簽名服務(wù)器獲取已簽名APK文件,判斷已簽名APK文件中是否有與所述終端設(shè)備對應(yīng)的終端設(shè)備廠商生成的廠商簽名數(shù)據(jù);[0081]所述定位模塊031,用于終端設(shè)備判定有對應(yīng)的廠商簽名數(shù)據(jù)后通過所述已簽名APK文件的文件頭定位所述廠商簽名數(shù)據(jù);
      [0082]所述第一驗證模塊032,用于終端設(shè)備使用廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性;
      [0083]所述第二驗證模塊033,用于終端設(shè)備成功驗證廠商工作公鑰證書的合法性后,終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù),驗證通過后允許安裝或運行。
      [0084]請參閱圖4,為本發(fā)明一種多方授權(quán)的APK簽名系統(tǒng)中收單機構(gòu)服務(wù)器2的組成框圖。
      [0085]實施方式四:
      [0086]在上述方案的基礎(chǔ)上,本實施方式所述收單機構(gòu)還包括第三簽名模塊021、寫入模塊022和第二判斷模塊023 ;
      [0087]所述第三簽名模塊021,用于收單機構(gòu)簽名服務(wù)器將原始APK文件尾填充0x00四字節(jié)補齊,確保原始APK文件尾以0x00結(jié)尾后作為被簽名數(shù)據(jù);
      [0088]所述寫入模塊022,用于收單機構(gòu)簽名服務(wù)器將被簽名數(shù)據(jù)的標識、版本和原始APK文件的長度及校驗值寫入所述基礎(chǔ)文件中;
      [0089]所述第二判斷模塊023,用于收單機構(gòu)簽名服務(wù)器判斷是否還有不同的終端設(shè)備廠商需要進行簽名操作,若是,則不同終端設(shè)備廠商調(diào)用各自的廠商簽名服務(wù)器進行簽名操作,修改所述簽名文件頭;若否,則結(jié)束。
      [0090]本實施方式中所述修改所述簽名文件頭具體包括修改文件頭中基礎(chǔ)文件中的文件體長度、擴展文件中加入新的終端設(shè)備廠商簽名操作后的簽名數(shù)據(jù)內(nèi)容。
      [0091]實施方式五:
      [0092]在上述方案的基礎(chǔ)上,本實施方式所述第一簽名模塊012包括簽名單元;
      [0093]所述簽名單元,用于不同終端設(shè)備廠商簽名服務(wù)器將包括原始APK文件的被簽名數(shù)據(jù)計算哈希得到哈希值HASHl ;將哈希值HASHl按照一定簽名填充方式進行填充后得到被簽名APK文件;將被簽名APK文件使用終端設(shè)備廠商簽名服務(wù)器各自的工作私鑰進行簽名操作生成不同終端設(shè)備廠商簽名數(shù)據(jù)。
      [0094]請參閱圖5-圖6,分別為本發(fā)明一種多方授權(quán)的APK簽名系統(tǒng)中第一驗證模塊032的組成框圖和本發(fā)明一種多方授權(quán)的APK簽名系統(tǒng)中第二驗證模塊033的組成框圖。
      [0095]實施方式六:
      [0096]在上述方案的基礎(chǔ)上,本實施方式所述第一驗證模塊032包括第二判斷單元0321和第三驗證單元;所述第二驗證模塊033包括第一運算單元0331和第三判斷單元03320322 ;
      [0097]所述第二判斷單元0321,用于判斷廠商工作公鑰證書是否預(yù)裝在終端設(shè)備中,若是,獲取廠商工作公鑰證書;若否,通過所述已簽名APK文件的文件頭定位并獲取設(shè)備終端對應(yīng)的廠商簽名數(shù)據(jù);
      [0098]所述第三驗證單元,用于終端設(shè)備獲取廠商簽名數(shù)據(jù)中的廠商工作公鑰證書;終端設(shè)備使用預(yù)裝的廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性;
      [0099]所述第一運算單元0331,用于終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù)并計算哈希,得到哈希值HASH2 ;[0100]所述第三判斷單元03320322,用于終端設(shè)備判斷哈希值HASHl和哈希值HASH2是否一致,若是,則判定已簽名APK文件合法,允許APK安裝;若否,則判定已簽名APK文件不合法,不允許APK安裝。
      [0101]本發(fā)明提供的一種多方授權(quán)的APK簽名方法及其系統(tǒng),采用方便擴展的DER編碼不同終端設(shè)備廠商經(jīng)過各自簽名操作后生成的廠商簽名數(shù)據(jù),不同終端設(shè)備在下載所需APK的過程中,只需識別有經(jīng)過自身終端設(shè)備簽名過的簽名文件,并在定位自身終端設(shè)備的簽名數(shù)據(jù)后運用自身的驗簽機制進行驗證合法性,驗證通過后便可允許APK安裝或運行。本發(fā)明即確保簽名后的APK經(jīng)過傳輸后的完整性合法性,又省去了以往需費時同時驗簽多家廠商終端設(shè)備的疊加簽名后的簽名數(shù)據(jù),進一步的,大大縮減了客戶的維護成本,客戶只需維護廠商終端設(shè)備自身的簽名驗簽機制。
      [0102]以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
      【權(quán)利要求】
      1.一種多方授權(quán)的APK簽名方法,其特征在于,包括: 51:不同終端設(shè)備廠商CA服務(wù)器各自生成廠商根公私鑰對,將廠商根公鑰生成廠商根公鑰證書;不同終端設(shè)備廠商簽名服務(wù)器各自生成廠商工作公私鑰對,將工作公鑰分發(fā)至各自的廠商CA服務(wù)器,廠商CA服務(wù)器使用廠商根私鑰對廠商工作公鑰簽名生成廠商工作公鑰證書; 52:不同終端設(shè)備廠商簽名服務(wù)器使用各自的廠商工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù),根據(jù)不同終端設(shè)備廠商的驗簽機制將各自的廠商工作公鑰證書放入各自生成的廠商簽名數(shù)據(jù)中或預(yù)裝在終端設(shè)備中;不同終端設(shè)備廠商將各自的廠商根公鑰證書預(yù)裝在各自的終端設(shè)備中; S3:收單機構(gòu)簽名服務(wù)器將不同終端設(shè)備廠商簽名服務(wù)器生成的不同廠商簽名數(shù)據(jù)按照簽名時間的先后順序采用DER格式組成已簽名APK文件;其中,所述已簽名APK文件包括原始APK文件和簽名文件頭,所述簽名文件頭包括基礎(chǔ)文件和擴展文件,所述基礎(chǔ)文件用于標識文件已經(jīng)過簽名操作;所述擴展文件用于標識不同終端設(shè)備各自的廠商簽名數(shù)據(jù)的個數(shù)及不同終端設(shè)備各自的廠商簽名 數(shù)據(jù)在已簽名APK文件中的具體位置; 54:終端設(shè)備從所述收單機構(gòu)簽名服務(wù)器獲取已簽名APK文件,判斷已簽名APK文件中是否有與所述終端設(shè)備對應(yīng)的終端設(shè)備廠商生成的廠商簽名數(shù)據(jù),當判定有對應(yīng)的廠商簽名數(shù)據(jù)后,終端設(shè)備通過所述已簽名APK文件的文件頭定位所述廠商簽名數(shù)據(jù); 55:終端設(shè)備獲取廠商根公鑰證書后使用廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性,驗證合法后終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù),驗證通過后允許安裝或運行。
      2.根據(jù)權(quán)利要求1所述的一種多方授權(quán)的APK簽名方法,其特征在于,步驟SI之前還包括: 收單機構(gòu)簽名服務(wù)器將原始APK文件尾填充OxOO四字節(jié)補齊,確保原始APK文件尾以0x00結(jié)尾后作為被簽名數(shù)據(jù); 步驟S3還包括: S31:收單機構(gòu)簽名服務(wù)器將被簽名數(shù)據(jù)的標識、版本和原始APK文件的長度及校驗值與入所述基礎(chǔ)文件中; 步驟S4中所述“判斷已簽名APK文件中是否有與所述終端設(shè)備對應(yīng)的終端設(shè)備廠商簽名數(shù)據(jù)”具體為: 根據(jù)已簽名APK文件中簽名文件頭的基礎(chǔ)文件中不同被簽名數(shù)據(jù)的標識、版本判斷是否有屬于自身終端設(shè)備的簽名數(shù)據(jù)。
      3.根據(jù)權(quán)利要求1所述的一種多方授權(quán)的APK簽名方法,其特征在于,步驟S2中所述“不同終端設(shè)備廠商簽名服務(wù)器使用各自的廠商工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù)”具體包括: 不同終端設(shè)備廠商簽名服務(wù)器將包括原始APK文件的被簽名數(shù)據(jù)計算哈希得到哈希值HASHl ;將哈希值HASHl按照一定簽名填充方式進行填充后得到被簽名APK文件;將被簽名APK文件使用終端設(shè)備廠商簽名服務(wù)器各自的工作私鑰進行簽名操作生成不同終端設(shè)備廠商簽名數(shù)據(jù)。
      4.根據(jù)權(quán)利要求3所述的一種多方授權(quán)的APK簽名方法,其特征在于,步驟S5具體包括: S51:判斷廠商工作公鑰證書是否預(yù)裝在終端設(shè)備中,若是,獲取廠商工作公鑰證書,并進入步驟S53;若否,通過所述已簽名APK文件的文件頭定位并獲取設(shè)備終端對應(yīng)的廠商簽名數(shù)據(jù); S52:獲取廠商簽名數(shù)據(jù)中的廠商工作公鑰證書;終端設(shè)備使用預(yù)裝的廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性,驗證通過后進入步驟S53 ; S53:終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù)并計算哈希,得到哈希值HASH2 ;判斷哈希值HASHl和哈希值HASH2是否一致,若是,則判定已簽名APK文件合法,允許APK安裝;若否,則判定已簽名APK文件不合法,不允許APK安裝。
      5.一種多方授權(quán)的APK簽名系統(tǒng),其特征在于,包括終端設(shè)備廠商服務(wù)器、收單機構(gòu)服務(wù)器和終端設(shè)備服務(wù)器; 所述終端設(shè)備廠商服務(wù)器包括第一生成模塊、第二生成模塊和第一簽名模塊; 所述第一生成模塊,用于不同終端設(shè)備廠商CA服務(wù)器各自生成廠商根公私鑰對,將廠商根公鑰生成廠商根公鑰證書和使用廠商根私鑰對廠商工作公鑰簽名生成廠商工作公鑰證書; 所述第二生成模塊,用于不同終端設(shè)備廠商簽名服務(wù)器各自生成廠商工作公私鑰對,將工作公鑰分發(fā)至各自的廠商CA服務(wù)器; 所述第一簽名模塊,用于不同終端設(shè)備廠商簽名服務(wù)器使用各自的廠商工作私鑰對包括原始APK文件的被簽名數(shù)據(jù)簽名生成不同終端設(shè)備廠商簽名數(shù)據(jù),根據(jù)不同終端設(shè)備廠商的驗簽機制將各自的廠商工作公鑰證書放入各自生成的廠商簽名數(shù)據(jù)中或預(yù)裝在終端設(shè)備中;不同終端設(shè)備廠商將各自的廠商根公鑰證書預(yù)裝在各自的終端設(shè)備中; 所述收單機構(gòu)服務(wù)器包括第二簽名模塊; 所述第二簽名模塊,用于收單機構(gòu)簽名服務(wù)器將不同終端設(shè)備廠商簽名服務(wù)器生成的不同廠商簽名數(shù)據(jù)按照簽名時間的先后順序采用DER格式組成已簽名APK文件;其中,所述已簽名APK文件包括原始APK文件和簽名文件頭,所述簽名文件頭包括基礎(chǔ)文件和擴展文件,所述基礎(chǔ)文件用于標識文件已經(jīng)過簽名操作;所述擴展文件用于標識不同終端設(shè)備各自的廠商簽名數(shù)據(jù)的個數(shù)及不同終端設(shè)備各自的廠商簽名數(shù)據(jù)在已簽名APK文件中的具體位置; 所述終端設(shè)備服務(wù)器包括第一判斷模塊、定位模塊、第一驗證模塊和第二驗證模塊; 所述第一判斷模塊,用于終端設(shè)備從所述收單機構(gòu)簽名服務(wù)器獲取已簽名APK文件,判斷已簽名APK文件中是否有與所述終端設(shè)備對應(yīng)的終端設(shè)備廠商生成的廠商簽名數(shù)據(jù); 所述定位模塊,用于終端設(shè)備判定有對應(yīng)的廠商簽名數(shù)據(jù)后通過所述已簽名APK文件的文件頭定位所述廠商簽名數(shù)據(jù); 所述第一驗證模塊,用于終端設(shè)備使用廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性; 所述第二驗證模塊,用于終端設(shè)備成功驗證廠商工作公鑰證書的合法性后,終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù),驗證通過后允許安裝或運行。
      6.根據(jù)權(quán)利要求5所述的一種多方授權(quán)的APK簽名系統(tǒng),其特征在于,所述收單機構(gòu)還包括第三簽名模塊、寫入模塊和第二判斷模塊;所述第三簽名模塊,用于收單機構(gòu)簽名服務(wù)器將原始APK文件尾填充OxOO四字節(jié)補齊,確保原始APK文件尾以0x00結(jié)尾后作為被簽名數(shù)據(jù); 所述寫入模塊,用于收單機構(gòu)簽名服務(wù)器將被簽名數(shù)據(jù)的標識、版本和原始APK文件的長度及校驗值寫入所述基礎(chǔ)文件中; 所述第二判斷模塊,用于收單機構(gòu)簽名服務(wù)器判斷是否還有不同的終端設(shè)備廠商需要進行簽名操作,若是,則不同終端設(shè)備廠商調(diào)用各自的廠商簽名服務(wù)器進行簽名操作,修改所述簽名文件頭;若否,則結(jié)束。
      7.根據(jù)權(quán)利要求5所述的一種多方授權(quán)的APK簽名系統(tǒng),其特征在于,所述第一簽名模塊包括簽名單元; 所述簽名單元,用于不同終端設(shè)備廠商簽名服務(wù)器將包括原始APK文件的被簽名數(shù)據(jù)計算哈希得到哈希值HASHl ;將哈希值HASHl按照一定簽名填充方式進行填充后得到被簽名APK文件;將被簽名APK文件使用終端設(shè)備廠商簽名服務(wù)器各自的工作私鑰進行簽名操作生成不同終端設(shè)備廠商簽名數(shù)據(jù)。
      8.根據(jù)權(quán)利要求5所述的一種多方授權(quán)的APK簽名系統(tǒng),其特征在于,所述第一驗證模塊包括第二判斷單元和第三驗證單元;所述第二驗證模塊包括第一運算單元和第三判斷單元; 所述第二判斷單元,用于判斷廠商工作公鑰證書是否預(yù)裝在終端設(shè)備中,若是,獲取廠商工作公鑰證書;若 否,通過所述已簽名APK文件的文件頭定位并獲取設(shè)備終端對應(yīng)的廠商簽名數(shù)據(jù); 所述第三驗證單元,用于終端設(shè)備獲取廠商簽名數(shù)據(jù)中的廠商工作公鑰證書;終端設(shè)備使用預(yù)裝的廠商根公鑰證書驗證廠商簽名數(shù)據(jù)中廠商工作公鑰證書的合法性; 所述第一運算單元,用于終端設(shè)備提取廠商工作公鑰證書中的工作公鑰驗證簽名數(shù)據(jù)并計算哈希,得到哈希值HASH2 ; 所述第三判斷單元,用于終端設(shè)備判斷哈希值HASHl和哈希值HASH2是否一致,若是,則判定已簽名APK文件合法,允許APK安裝及運行;若否,則判定已簽名APK文件不合法,不允許APK安裝或運行。
      【文檔編號】H04L29/06GK103944903SQ201410165106
      【公開日】2014年7月23日 申請日期:2014年4月23日 優(yōu)先權(quán)日:2014年4月23日
      【發(fā)明者】蘇文龍, 孟陸強, 陳菲菲 申請人:福建聯(lián)迪商用設(shè)備有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1