應(yīng)用程序的驗(yàn)證方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種應(yīng)用程序的驗(yàn)證方法和裝置。其中,該應(yīng)用程序的驗(yàn)證方法包括:讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書,其中,輔助文件夾為存儲(chǔ)應(yīng)用程序的標(biāo)準(zhǔn)驗(yàn)證證書的文件;提取時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記;計(jì)算應(yīng)用程序的驗(yàn)證標(biāo)記;判斷時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與應(yīng)用程序的驗(yàn)證標(biāo)記是否相同;以及如果相同,則通過驗(yàn)證以指示應(yīng)用程序沒有被修改。通過本發(fā)明,解決了現(xiàn)有技術(shù)中無法驗(yàn)證應(yīng)用程序的安全性的問題,進(jìn)而達(dá)到了驗(yàn)證應(yīng)用程序的安全性的效果。
【專利說明】應(yīng)用程序的驗(yàn)證方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)安全認(rèn)證領(lǐng)域,具體而言,涉及一種應(yīng)用程序的驗(yàn)證方法和裝 置。
【背景技術(shù)】
[0002] 安卓(Android)應(yīng)用隨著基于安卓系統(tǒng)的手機(jī)的普及呈現(xiàn)爆炸式增長,Google公 司在推出安卓系統(tǒng)時(shí),為了最大化兼容性,爭取最多的開發(fā)者和用戶,對(duì)安卓應(yīng)用的安全認(rèn) 證機(jī)制只設(shè)置了最低限度的要求,即對(duì)于一款安卓應(yīng)用,只需要存在簽名文件,就可以讓此 安卓應(yīng)用在系統(tǒng)中運(yùn)行。由于簽名文件可以由任何人生成,原始開發(fā)者的簽名文件可被替 換掉,從而無法驗(yàn)證安卓應(yīng)用的原始性,無法保護(hù)原始開發(fā)者的版權(quán)。另外,在目前的安全 認(rèn)證機(jī)制下,也無法驗(yàn)證安卓應(yīng)用是否已被修改,對(duì)安卓應(yīng)用修改后重新打包就能發(fā)布安 卓病毒,導(dǎo)致安卓應(yīng)用程序不安全。
[0003] 安卓應(yīng)用可以采用自簽名方案,應(yīng)用開發(fā)者可以對(duì)自己開發(fā)的安卓應(yīng)用進(jìn)行簽 名;但是沒有對(duì)簽名的統(tǒng)一管理,無法驗(yàn)證某款安卓應(yīng)用的簽名是否為原始作者簽發(fā),同時(shí) 也無法驗(yàn)證某款安卓應(yīng)用是否安全。
[0004] 各安卓應(yīng)用商城在后臺(tái)提供了病毒掃描功能,對(duì)安全的安卓應(yīng)用會(huì)在頁面上明示 其是安全的,但如果某款安卓應(yīng)用被下載后更改再發(fā)送給其他安卓平臺(tái),就無法對(duì)其安全 性進(jìn)行驗(yàn)證。
[0005] 針對(duì)現(xiàn)有技術(shù)中無法驗(yàn)證應(yīng)用程序的安全性的問題,目前尚未提出有效的解決方 案。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的主要目的在于提供一種應(yīng)用程序的驗(yàn)證方法和裝置,以解決現(xiàn)有技術(shù)中 無法驗(yàn)證應(yīng)用程序的安全性的問題。
[0007] 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種應(yīng)用程序的驗(yàn)證方法。根 據(jù)本發(fā)明的應(yīng)用程序的驗(yàn)證方法包括:讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書,其 中,所述輔助文件夾為存儲(chǔ)所述應(yīng)用程序的標(biāo)準(zhǔn)驗(yàn)證證書的文件夾;提取所述時(shí)間戳簽名 證書中的驗(yàn)證標(biāo)記;計(jì)算所述應(yīng)用程序的驗(yàn)證標(biāo)記;判斷所述時(shí)間戳簽名證書中的驗(yàn)證標(biāo) 記與所述應(yīng)用程序的驗(yàn)證標(biāo)記是否相同;以及如果相同,則通過驗(yàn)證以表示所述應(yīng)用程序 沒有被修改。
[0008] 進(jìn)一步地,在讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書之前,所述驗(yàn)證方法 還包括:從所述應(yīng)用程序中提取驗(yàn)證摘要信息,其中,所述驗(yàn)證摘要信息包含所述應(yīng)用程序 的驗(yàn)證標(biāo)記;獲取所述應(yīng)用程序的時(shí)間信息,其中,所述時(shí)間信息用于記錄所述應(yīng)用程序的 形成時(shí)間;利用私鑰對(duì)所述驗(yàn)證摘要信息和所述時(shí)間信息加密,得到加密后的時(shí)間戳;以 及將所述加密后的時(shí)間戳和與所述私鑰配對(duì)的公鑰作為所述時(shí)間戳簽名證書存儲(chǔ)在所述 輔助文件夾中。
[0009] 進(jìn)一步地,提取所述時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記包括:從所述時(shí)間戳簽名證書 中提取所述公鑰;利用所述公鑰對(duì)所述加密后的時(shí)間戳進(jìn)行解密,得到所述驗(yàn)證摘要信息; 以及提取所述驗(yàn)證摘要信息中的驗(yàn)證標(biāo)記。
[0010] 進(jìn)一步地,在利用所述公鑰對(duì)所述加密后的時(shí)間戳進(jìn)行解密,得到所述驗(yàn)證摘要 信息之前,所述驗(yàn)證方法還包括:判斷是否能夠利用所述公鑰對(duì)所述加密后的時(shí)間戳進(jìn)行 解密;如果利用所述公鑰成功對(duì)所述加密后的時(shí)間戳解密,則通過驗(yàn)證以表示所述應(yīng)用程 序沒有被修改;如果利用所述公鑰無法對(duì)所述加密后的時(shí)間戳解密,則確定所述應(yīng)用程序 被修改。
[0011] 進(jìn)一步地,在讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書之前,所述驗(yàn)證方法 還包括:獲取所述應(yīng)用程序的黑名單;判斷所述應(yīng)用程序是否在所述黑名單中;以及如果 所述應(yīng)用程序在所述黑名單中,則確定所述應(yīng)用程序?yàn)椴话踩膽?yīng)用程序,其中,在確定所 述應(yīng)用程序?yàn)椴话踩膽?yīng)用程序之后,不再驗(yàn)證所述應(yīng)用程序是否被修改。
[0012] 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種應(yīng)用程序的驗(yàn)證裝置。根 據(jù)本發(fā)明的應(yīng)用程序的驗(yàn)證裝置包括:讀取單元,用于讀取應(yīng)用程序的輔助文件夾中時(shí)間 戳簽名證書,其中,所述輔助文件夾為存儲(chǔ)所述應(yīng)用程序的標(biāo)準(zhǔn)驗(yàn)證證書的文件夾;第一提 取單元,用于提取所述時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記;計(jì)算單元,用于計(jì)算所述應(yīng)用程序的 驗(yàn)證標(biāo)記;判斷單元,用于判斷所述時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與所述應(yīng)用程序的驗(yàn)證 標(biāo)記是否相同;以及驗(yàn)證單元,用于在相同時(shí),通過驗(yàn)證以表示所述應(yīng)用程序沒有被修改。
[0013] 進(jìn)一步地,所述驗(yàn)證裝置還包括:第二提取單元,用于在讀取所述應(yīng)用程序的輔助 文件夾中時(shí)間戳簽名證書之前,從所述應(yīng)用程序中提取驗(yàn)證摘要信息,其中,所述驗(yàn)證摘要 信息包含所述應(yīng)用程序的驗(yàn)證標(biāo)記;第一獲取單元,用于獲取所述應(yīng)用程序的時(shí)間信息,其 中,所述時(shí)間信息用于記錄所述應(yīng)用程序的形成時(shí)間;加密單元,用于利用私鑰對(duì)所述驗(yàn)證 摘要信息和所述時(shí)間信息加密,得到加密后的時(shí)間戳;以及存儲(chǔ)單元,用于將所述加密后的 時(shí)間戳和與所述私鑰配對(duì)的公鑰作為所述時(shí)間戳簽名證書存儲(chǔ)在所述輔助文件夾中。
[0014] 進(jìn)一步地,所述第一提取單元包括:第一提取模塊,用于從所述時(shí)間戳簽名證書中 提取所述公鑰;解密模塊,用于利用所述公鑰對(duì)所述加密后的時(shí)間戳進(jìn)行解密,得到所述驗(yàn) 證摘要信息;以及第二提取模塊,用于提取所述驗(yàn)證摘要信息中的驗(yàn)證標(biāo)記。
[0015] 進(jìn)一步地,所述第一提取單元還包括:判斷模塊,用于在利用所述公鑰對(duì)所述加密 后的時(shí)間戳進(jìn)行解密,得到所述驗(yàn)證摘要信息之前,判斷是否能夠利用所述公鑰對(duì)所述加 密后的時(shí)間戳進(jìn)行解密;第一驗(yàn)證模塊,用于在利用所述公鑰成功對(duì)所述加密后的時(shí)間戳 解密時(shí),通過驗(yàn)證以表示所述應(yīng)用程序沒有被修改;第二驗(yàn)證模塊,用于在利用所述公鑰無 法對(duì)所述加密后的時(shí)間戳解密時(shí),確定所述應(yīng)用程序被修改。
[0016] 進(jìn)一步地,所述驗(yàn)證裝置還包括:第二獲取單元,用于在讀取所述應(yīng)用程序的輔助 文件夾中時(shí)間戳簽名證書之前,獲取所述應(yīng)用程序的黑名單;判斷單元,用于判斷所述應(yīng)用 程序是否在所述黑名單中;以及確定單元,用于在所述應(yīng)用程序在所述黑名單中時(shí),確定所 述應(yīng)用程序?yàn)椴话踩膽?yīng)用程序。
[0017] 通過本發(fā)明,采用讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書,其中,輔助文件 夾為存儲(chǔ)應(yīng)用程序的標(biāo)準(zhǔn)驗(yàn)證證書的文件夾;提取時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記;計(jì)算應(yīng) 用程序的驗(yàn)證標(biāo)記;判斷時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與應(yīng)用程序的驗(yàn)證標(biāo)記是否相同; 以及如果相同,則通過應(yīng)用程序沒有被修改的驗(yàn)證的方法,由于應(yīng)用程序中存儲(chǔ)了用于驗(yàn) 證應(yīng)用程序是否被修改的簽名證書,則無論該應(yīng)用程序處于什么裝置中,都可以利用應(yīng)用 程序自身攜帶的簽名證書進(jìn)行安全驗(yàn)證,而無需依賴于應(yīng)用商城提供的安全掃描功能,解 決了現(xiàn)有技術(shù)中無法驗(yàn)證應(yīng)用程序的安全性的問題,進(jìn)而達(dá)到了驗(yàn)證應(yīng)用程序的安全性的 效果。
【專利附圖】
【附圖說明】
[0018] 構(gòu)成本申請(qǐng)的一部分的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí) 施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0019] 圖1是根據(jù)本發(fā)明實(shí)施例的應(yīng)用程序的驗(yàn)證方法的流程圖;
[0020] 圖2是根據(jù)本發(fā)明實(shí)施例應(yīng)用程序的驗(yàn)證方法的硬件示意圖;
[0021] 圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的應(yīng)用程序的驗(yàn)證方法的流程圖;
[0022] 圖4是根據(jù)本發(fā)明實(shí)施例的在客戶端上驗(yàn)證應(yīng)用程序的硬件示意圖;
[0023] 圖5是根據(jù)本發(fā)明實(shí)施例的在服務(wù)器上驗(yàn)證應(yīng)用程序的硬件示意圖;
[0024] 圖6是根據(jù)本發(fā)明實(shí)施例的應(yīng)用程序的驗(yàn)證裝置的示意圖;以及
[0025] 圖7是根據(jù)本發(fā)明實(shí)施例優(yōu)選實(shí)施例的應(yīng)用程序的驗(yàn)證裝置的示意圖。
【具體實(shí)施方式】
[0026] 需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相 互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
[0027] 為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的 附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是 本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù) 人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范 圍。
[0028] 需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語"第一"、"第 二"等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使 用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例。此外,術(shù)語"包括"和 "具有"以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元 的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有 清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0029] 本發(fā)明實(shí)施例提供了 一種應(yīng)用程序的驗(yàn)證方法。
[0030] 圖1是根據(jù)本發(fā)明實(shí)施例的應(yīng)用程序的驗(yàn)證方法的流程圖。如圖1所示,該應(yīng)用 程序的驗(yàn)證方法包括步驟如下:
[0031] 步驟S102,讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書,其中,輔助文件夾為存 儲(chǔ)應(yīng)用程序的標(biāo)準(zhǔn)驗(yàn)證證書的文件夾。
[0032] 步驟S104,提取時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記;
[0033] 步驟S106,計(jì)算應(yīng)用程序的驗(yàn)證標(biāo)記。
[0034] 步驟S108,判斷時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與應(yīng)用程序的驗(yàn)證標(biāo)記是否相同。
[0035] 步驟S110,如果相同,則通過驗(yàn)證以表示應(yīng)用程序沒有被修改。
[0036] 安卓應(yīng)用程序通常是標(biāo)準(zhǔn)的ZIP格式壓縮文件,通常具有輔助文件夾META-INF, 在ΜΕΤΑ-INF文件夾下存在安卓應(yīng)用程序的三個(gè)標(biāo)準(zhǔn)驗(yàn)證文件:MANIFEST. MF,CERT. SF, CERT. RSA。應(yīng)用程序在安裝、升級(jí)的過程中,都會(huì)對(duì)輔助文件夾下的標(biāo)準(zhǔn)驗(yàn)證文件進(jìn)行驗(yàn)證 操作,在該目錄下的其他文件只是作為驗(yàn)證參考,并不作為驗(yàn)證目標(biāo),因此,在此目錄下可 以添加任意文件,并且添加的文件并不會(huì)影響該應(yīng)用程序的安裝和升級(jí)。因此,本實(shí)施例中 的時(shí)間戳簽名證書就存儲(chǔ)在輔助文件夾中,該時(shí)間戳簽名證書能夠驗(yàn)證該應(yīng)用程序是否為 被修改過的應(yīng)用程序,同時(shí),該時(shí)間戳簽名證書存在于輔助文件夾中,又不會(huì)影響應(yīng)用程序 的安裝和升級(jí)。
[0037] 時(shí)間戳簽名證書中包含有驗(yàn)證標(biāo)記,而通過應(yīng)用程序本身可以計(jì)算得到一個(gè)驗(yàn)證 標(biāo)記,如果應(yīng)用程序被修改,該應(yīng)用程序的驗(yàn)證標(biāo)記也會(huì)改變,但是即使應(yīng)用程序被修改, 時(shí)間戳簽名證書也不會(huì)被修改,因此,通過判斷時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記和應(yīng)用程序 中的驗(yàn)證標(biāo)記是否相同來判斷該應(yīng)用程序是否被修改。即,通過計(jì)算得到的應(yīng)用程序的驗(yàn) 證標(biāo)記與時(shí)間戳簽名證書的驗(yàn)證標(biāo)記不同時(shí),該應(yīng)用程序被修改,通過計(jì)算得到的應(yīng)用程 序的驗(yàn)證標(biāo)記與時(shí)間戳簽名證書的驗(yàn)證標(biāo)記相同時(shí),該應(yīng)用程序沒有被修改。
[0038] 驗(yàn)證標(biāo)記可以是哈希值,從時(shí)間戳簽名證書中解析出哈希值,計(jì)算應(yīng)用程序的哈 希值,如果比較出時(shí)間戳證書中的哈希值與計(jì)算出的應(yīng)用程序的哈希值相同,則確定應(yīng)用 程序沒有被修改。計(jì)算的應(yīng)用程序的哈希值可以通過標(biāo)準(zhǔn)驗(yàn)證文件中的CERT. SF計(jì)算得 至IJ。當(dāng)然,除了標(biāo)準(zhǔn)驗(yàn)證文件中的CERT. SF,還可以通過應(yīng)用程序中的其他數(shù)據(jù)提取應(yīng)用程 序的驗(yàn)證標(biāo)記,只要這些數(shù)據(jù)能夠體現(xiàn)該應(yīng)用程序沒有被修改的驗(yàn)證要求。
[0039] 通過上述實(shí)施例,在輔助文件夾中存儲(chǔ)由時(shí)間戳簽名證書,時(shí)間戳簽名證書用來 驗(yàn)證應(yīng)用程序是否被修改過,當(dāng)時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與對(duì)應(yīng)用程序計(jì)算得到的驗(yàn) 證標(biāo)記相同時(shí),確定應(yīng)用程序沒有被修改過,當(dāng)時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與計(jì)算得到 的驗(yàn)證標(biāo)記不同時(shí),確定應(yīng)用程序被修改過。由于應(yīng)用程序中存儲(chǔ)了用于驗(yàn)證應(yīng)用程序是 否被修改的簽名證書,則無論該應(yīng)用程序處于什么裝置中,都可以利用應(yīng)用程序自身攜帶 的簽名證書進(jìn)行安全驗(yàn)證,而無需依賴于應(yīng)用商城提供的安全掃描功能,從而解決了現(xiàn)有 技術(shù)無法驗(yàn)證應(yīng)用程序的安全性的問題,進(jìn)而達(dá)到了提高應(yīng)用程序的安全性的效果。
[0040] 參考圖2所示的應(yīng)用程序的驗(yàn)證方法的硬件示意圖。如圖所示,在確定需要添加 時(shí)間戳簽名證書的應(yīng)用程序之后,首先進(jìn)行病毒掃描,當(dāng)確定為沒有病毒的應(yīng)用程序后,在 對(duì)該應(yīng)用程序生成時(shí)間戳簽名證書。時(shí)間戳簽名證書的生成可以是在證書發(fā)放服務(wù)器上進(jìn) 行,然后存儲(chǔ)認(rèn)證信息,并將生成的時(shí)間戳簽名證書存儲(chǔ)在應(yīng)用程序的輔助文件夾中。
[0041] 圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的應(yīng)用程序的驗(yàn)證方法的流程圖。如圖3所示,在 讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書之前,該應(yīng)用程序的驗(yàn)證方法還包括如下步 驟:
[0042] 步驟S302,從應(yīng)用程序中提取驗(yàn)證摘要信息,其中,驗(yàn)證摘要信息包含應(yīng)用程序的 驗(yàn)證標(biāo)記;
[0043] 步驟S304,獲取應(yīng)用程序的時(shí)間信息,其中,所述時(shí)間信息用于記錄所述應(yīng)用程序 的形成時(shí)間;
[0044] 步驟S306,利用私鑰對(duì)驗(yàn)證摘要信息和時(shí)間信息加密,得到加密后的時(shí)間戳;
[0045] 步驟S308,將加密后的時(shí)間戳和與私鑰配對(duì)的公鑰作為時(shí)間戳簽名證書存儲(chǔ)在輔 助文件夾中。
[0046] 在應(yīng)用程序中提取驗(yàn)證摘要信息,驗(yàn)證摘要信息可以從CERT. SF中提取,但是不 限于從CERT. SF中提取,可以通過應(yīng)用程序中的任意滿足完整性驗(yàn)證要求的數(shù)據(jù)來提取驗(yàn) 證摘要信息。驗(yàn)證摘要信息中包含用來驗(yàn)證應(yīng)用程序的安全性的驗(yàn)證標(biāo)記。
[0047] 生成時(shí)間戳簽名證書還需要生成證書的時(shí)間信息和公鑰,利用私鑰對(duì)驗(yàn)證摘要信 息和時(shí)間信息進(jìn)行加密,得到加密后的時(shí)間戳。將公鑰和加密后的時(shí)間戳作為時(shí)間戳簽名 證書存儲(chǔ)在輔助文件夾中。
[0048] 在該時(shí)間戳簽名證書中存儲(chǔ)由驗(yàn)證標(biāo)記、時(shí)間信息和公鑰,在進(jìn)行安全性驗(yàn)證時(shí), 可以利用公鑰解密得到被私鑰加密的驗(yàn)證標(biāo)記和時(shí)間信息。通過比較被私鑰加密的驗(yàn)證標(biāo) 記和計(jì)算的應(yīng)用程序的驗(yàn)證標(biāo)記是否相同來判斷應(yīng)用程序是否被修改過。另外,由于時(shí)間 信息也被私鑰加密,該時(shí)間信息是應(yīng)用程序生成的時(shí)間,一旦該時(shí)間信息被私鑰加密作為 時(shí)間戳簽名證書保存在應(yīng)用程序的輔助文件夾中,就不會(huì)被隨意更改,因此,通過時(shí)間信息 可以保證應(yīng)用程序的原始性。
[0049] 例如,時(shí)間信息為20140804,當(dāng)該時(shí)間信息被保存在應(yīng)用程序的輔助文件夾中時(shí), 由于只能從時(shí)間戳簽名證書中獲得公鑰,不能獲得私鑰,更改了時(shí)間信息后再加密時(shí),無法 使用原有公鑰提取驗(yàn)證標(biāo)記,從而無法進(jìn)行安全驗(yàn)證,此時(shí)認(rèn)為應(yīng)用程序被破壞,是不安全 的應(yīng)用程序。因此,只要能夠從時(shí)間戳簽名證書中提取出時(shí)間信息,則該時(shí)間信息則為應(yīng)用 程序的生成時(shí)間,正是由于時(shí)間戳簽名證書中信息的不可修改的特性,應(yīng)用程序隨身攜帶 其作者信息等可以保護(hù)作者的權(quán)益。
[0050] 另外,當(dāng)應(yīng)用程序被修改時(shí),計(jì)算得到的應(yīng)用程序的驗(yàn)證標(biāo)記與時(shí)間戳簽名證書 中的驗(yàn)證標(biāo)記就不同了,因此,即時(shí)沒有修改時(shí)間戳簽名證書中的時(shí)間信息等,企圖將應(yīng)用 程序生成時(shí)的時(shí)間信息作為修改后的應(yīng)用程序的時(shí)間信息的方法也是不可行的,在驗(yàn)證的 過程中會(huì)由于計(jì)算得到的驗(yàn)證標(biāo)記與時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記不同而被認(rèn)證為不安 全的應(yīng)用程序。
[0051] 通過上述實(shí)施例,能夠?qū)?yīng)用程序自身的驗(yàn)證標(biāo)記和時(shí)間信息通過私鑰進(jìn)行加 密,并與公鑰一起作為時(shí)間戳簽名證書存儲(chǔ)在應(yīng)用程序的輔助文件夾MATE-INF中。無論是 企圖更改應(yīng)用程序還是更改時(shí)間戳簽名證書,都會(huì)導(dǎo)致認(rèn)證失敗,即應(yīng)用程序被認(rèn)證為不 安全的程序,因此,通過上述實(shí)施例能夠解決現(xiàn)有技術(shù)中無法驗(yàn)證應(yīng)用程序的安全性的問 題,進(jìn)而達(dá)到了提高應(yīng)用程序的安全性的效果。
[0052] 優(yōu)選地,提取時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記包括:從時(shí)間戳簽名證書中提取公鑰; 利用公鑰對(duì)加密后的時(shí)間戳進(jìn)行解密,得到驗(yàn)證摘要信息;以及提取驗(yàn)證摘要信息中的驗(yàn) 證標(biāo)記。
[0053] 驗(yàn)證標(biāo)記被私鑰加密存儲(chǔ),在提取驗(yàn)證標(biāo)記時(shí),可以首先利用存儲(chǔ)在時(shí)間戳簽名 證書中的公鑰進(jìn)行解密,得到驗(yàn)證摘要信息。在該驗(yàn)證摘要信息中又存儲(chǔ)有驗(yàn)證標(biāo)記,則通 過公鑰解密可以得到應(yīng)用程序的驗(yàn)證標(biāo)記,從而便于對(duì)應(yīng)用程序的安全性進(jìn)行驗(yàn)證。
[0054] 優(yōu)選地,在利用公鑰對(duì)加密后的時(shí)間戳進(jìn)行解密,得到驗(yàn)證摘要信息之前,驗(yàn)證方 法還包括:判斷是否能夠利用公鑰對(duì)加密后的時(shí)間戳進(jìn)行解密;如果利用公鑰成功對(duì)加密 后的時(shí)間戳解密,則通過驗(yàn)證以表示應(yīng)用程序沒有被修改;如果利用公鑰無法對(duì)加密后的 時(shí)間戳解密,則確定應(yīng)用程序被修改。
[0055] 通過上述實(shí)施例,除了比較驗(yàn)證標(biāo)記來判斷應(yīng)用程序是否安全以外,還可以在比 較驗(yàn)證標(biāo)記之前,判斷公鑰是否能夠通過解密得到驗(yàn)證摘要信息,如果不能解密得到驗(yàn)證 摘要信息,則可以直接確定該應(yīng)用程序被修改過,為不安全的應(yīng)用程序。
[0056] 優(yōu)選地,在讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書之前,驗(yàn)證方法還包括: 獲取應(yīng)用程序的黑名單;判斷應(yīng)用程序是否在黑名單中;以及如果應(yīng)用程序在黑名單中, 則確定應(yīng)用程序?yàn)椴话踩膽?yīng)用程序,其中,在確定應(yīng)用程序?yàn)椴话踩膽?yīng)用程序之后,不 再驗(yàn)證應(yīng)用程序是否被修改。
[0057] 在驗(yàn)證應(yīng)用程序的安全性時(shí),不僅可以在客戶端進(jìn)行驗(yàn)證(如圖4),還可以通過 服務(wù)器進(jìn)行驗(yàn)證(如圖5)。在利用客戶端進(jìn)行驗(yàn)證時(shí),可以按照本地存儲(chǔ)的黑名單或者云 端黑名單判斷帶時(shí)間戳的應(yīng)用程序是否在黑名單中,如果在黑名單中直接確認(rèn)該帶時(shí)間戳 的應(yīng)用程序攜帶病毒為不安全的應(yīng)用程序,不再進(jìn)行是否被修改的驗(yàn)證,如果不在黑名單 中,則判斷該應(yīng)用程序是否被修改過,如果修改過,則提示該應(yīng)用程序危險(xiǎn),如果沒有被修 改過,則該應(yīng)用程序?yàn)榘踩膽?yīng)用程序,通過驗(yàn)證。在利用服務(wù)器進(jìn)行驗(yàn)證時(shí),可以將應(yīng)用 程序提交到服務(wù)器上,并首先通過病毒掃描服務(wù)器進(jìn)行病毒掃描,當(dāng)發(fā)現(xiàn)該應(yīng)用程序在病 毒黑名單中時(shí),則發(fā)出該應(yīng)用程序?yàn)椴话踩膽?yīng)用程序的提醒,并且不再進(jìn)行應(yīng)用程序是 否被修改的驗(yàn)證;如果發(fā)現(xiàn)該應(yīng)用程序沒有病毒,則提取時(shí)間戳簽名證書并進(jìn)行安全性的 驗(yàn)證,經(jīng)過驗(yàn)證的應(yīng)用程序可以輸出三種結(jié)果,即通過驗(yàn)證、危險(xiǎn)和病毒,其中,通過驗(yàn)證說 明該應(yīng)用程序是原始應(yīng)用程序,沒有被修改;危險(xiǎn)說明該應(yīng)用程序沒有通過驗(yàn)證,是被修改 過的應(yīng)用程序;病毒說明該應(yīng)用程序攜帶病毒,并且在確定應(yīng)用程序攜帶病毒之后,無需再 進(jìn)行是否被修改的驗(yàn)證。在驗(yàn)證結(jié)束后發(fā)出不同的提示信息,以提示該應(yīng)用程序是否安全。
[0058] 通過上述實(shí)施例可以有效的實(shí)現(xiàn)度安卓應(yīng)用程序的原始性驗(yàn)證和安全性驗(yàn)證,原 始性的驗(yàn)證即確定該應(yīng)用程序的版權(quán)所有人,安全性驗(yàn)證即確定該應(yīng)用程序是否被更改或 者是否有病毒,從而既對(duì)數(shù)字版權(quán)保護(hù)提供有力支持,也會(huì)極大地制止病毒的產(chǎn)生和傳播。
[0059] 本發(fā)明實(shí)施例還提供了一種應(yīng)用程序驗(yàn)證裝置。本發(fā)明實(shí)施例的應(yīng)用程序驗(yàn)證裝 置可以用于執(zhí)行本發(fā)明實(shí)施例所提供的應(yīng)用程序方法,本發(fā)明實(shí)施例的應(yīng)用程序驗(yàn)證方法 也可以通過本發(fā)明實(shí)施例所提供的應(yīng)用程序驗(yàn)證裝置來執(zhí)行。
[0060] 圖6是根據(jù)本發(fā)明實(shí)施例的應(yīng)用程序的驗(yàn)證裝置的示意圖。如圖6所示,應(yīng)用程 序的驗(yàn)證裝置包括:讀取單元10、第一提取單元20、計(jì)算單元30、判斷單元40和驗(yàn)證單元 50 〇
[0061] 讀取單元10用于讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書,其中,輔助文件 夾同時(shí)也存儲(chǔ)應(yīng)用程序的標(biāo)準(zhǔn)驗(yàn)證證書的文件夾;
[0062] 第一提取單元20用于提取時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記;
[0063] 計(jì)算單元30用于計(jì)算應(yīng)用程序的驗(yàn)證標(biāo)記;
[0064] 判斷單元40用于判斷時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與應(yīng)用程序的驗(yàn)證標(biāo)記是否 相同;以及
[0065] 驗(yàn)證單元50用于在相同時(shí),通過驗(yàn)證以表示應(yīng)用程序沒有被修改。
[0066] 安卓應(yīng)用程序通常是標(biāo)準(zhǔn)的ZIP格式壓縮文件,通常具有輔助文件夾META-INF, 在ΜΕΤΑ-INF文件夾下存在安卓應(yīng)用程序的三個(gè)標(biāo)準(zhǔn)驗(yàn)證文件:MANIFEST. MF,CERT. SF, CERT. RSA。應(yīng)用程序在安裝、升級(jí)的過程中,都會(huì)對(duì)輔助文件夾下的標(biāo)準(zhǔn)驗(yàn)證文件進(jìn)行驗(yàn)證 操作,在該目錄下的其他文件只是作為驗(yàn)證參考,并不作為驗(yàn)證目標(biāo),因此,在此目錄下可 以添加任意文件,并且添加的文件并不會(huì)影響該應(yīng)用程序的安裝和升級(jí)。因此,本實(shí)施例中 的時(shí)間戳簽名證書就存儲(chǔ)在輔助文件夾中,該時(shí)間戳簽名證書能夠驗(yàn)證該應(yīng)用程序是否為 被修改過的應(yīng)用程序,同時(shí),該時(shí)間戳簽名證書存在于輔助文件夾中,又不會(huì)影響應(yīng)用程序 的安裝和升級(jí)。
[0067] 時(shí)間戳簽名證書中包含有驗(yàn)證標(biāo)記,而通過應(yīng)用程序本身可以計(jì)算得到一個(gè)驗(yàn)證 標(biāo)記,如果應(yīng)用程序被修改,該應(yīng)用程序的驗(yàn)證標(biāo)記也會(huì)改變,但是即時(shí)應(yīng)用程序被修改, 時(shí)間戳簽名證書也不會(huì)被修改,因此,通過判斷時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記和應(yīng)用程序 中的驗(yàn)證標(biāo)記是否相同來判斷該應(yīng)用程序是否被修改。即,通過計(jì)算得到的應(yīng)用程序的驗(yàn) 證標(biāo)記與時(shí)間戳簽名證書的驗(yàn)證標(biāo)記不同時(shí),該應(yīng)用程序被修改,通過計(jì)算得到的應(yīng)用程 序的驗(yàn)證標(biāo)記與時(shí)間戳簽名證書的驗(yàn)證標(biāo)記相同時(shí),該應(yīng)用程序沒有被修改。
[0068] 驗(yàn)證標(biāo)記可以是哈希值,從時(shí)間戳簽名證書中解析出哈希值,計(jì)算應(yīng)用程序的哈 希值,如果比較出時(shí)間戳證書中的哈希值與計(jì)算出的應(yīng)用程序的哈希值相同,則確定應(yīng)用 程序沒有被修改。計(jì)算的應(yīng)用程序的哈希值可以通過標(biāo)準(zhǔn)驗(yàn)證文件中的CERT. SF計(jì)算得 至IJ。當(dāng)然,除了標(biāo)準(zhǔn)驗(yàn)證文件中的CERT. SF,還可以通過應(yīng)用程序中的其他數(shù)據(jù)提取應(yīng)用程 序的驗(yàn)證標(biāo)記,只要這些數(shù)據(jù)能夠體現(xiàn)該應(yīng)用程序沒有被修改的驗(yàn)證要求。
[0069] 通過上述實(shí)施例,在輔助文件夾中存儲(chǔ)由時(shí)間戳簽名證書,時(shí)間戳簽名證書用來 驗(yàn)證應(yīng)用程序是否被修改過,當(dāng)時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與對(duì)應(yīng)用程序計(jì)算得到的驗(yàn) 證標(biāo)記相同時(shí),確定應(yīng)用程序沒有被修改過,當(dāng)時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與計(jì)算得到 的驗(yàn)證標(biāo)記不同時(shí),確定應(yīng)用程序被修改過。由于應(yīng)用程序中存儲(chǔ)了用于驗(yàn)證應(yīng)用程序是 否被修改的簽名證書,則無論該應(yīng)用程序處于什么裝置中,都可以利用應(yīng)用程序自身攜帶 的簽名證書進(jìn)行安全驗(yàn)證,而無需依賴于應(yīng)用商城提供的安全掃描功能,從而解決了現(xiàn)有 技術(shù)無法驗(yàn)證應(yīng)用程序的安全性的問題,進(jìn)而達(dá)到了提高應(yīng)用程序的安全性的效果。
[0070] 參考圖2所示的應(yīng)用程序的驗(yàn)證方法的硬件示意圖。如圖所示,在確定需要添加 時(shí)間戳簽名證書的應(yīng)用程序之后,首先進(jìn)行病毒掃描,當(dāng)確定為沒有病毒的應(yīng)用程序后,在 對(duì)該應(yīng)用程序生成時(shí)間戳簽名證書。時(shí)間戳簽名證書的生成可以是在證書發(fā)放服務(wù)器上進(jìn) 行,然后存儲(chǔ)認(rèn)證信息,并將生成的時(shí)間戳簽名證書存儲(chǔ)在應(yīng)用程序的輔助文件夾中。
[0071] 生成時(shí)間戳簽名證書可以通過包括圖7所示單元的如下裝置實(shí)現(xiàn):
[0072] 第二提取單元11用于在讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書之前,從 應(yīng)用程序中提取驗(yàn)證摘要信息,其中,驗(yàn)證摘要信息包含應(yīng)用程序的驗(yàn)證標(biāo)記;
[0073] 第一獲取單元22用于獲取應(yīng)用程序的時(shí)間信息,其中,時(shí)間信息用于記錄應(yīng)用程 序的形成時(shí)間;
[0074] 加密單元33用于利用私鑰對(duì)驗(yàn)證摘要信息和時(shí)間信息加密,得到加密后的時(shí)間 戳;以及
[0075] 存儲(chǔ)單元44用于將加密后的時(shí)間戳和與私鑰配對(duì)的公鑰作為時(shí)間戳簽名證書存 儲(chǔ)在輔助文件夾中。
[0076] 在應(yīng)用程序中提取驗(yàn)證摘要信息,驗(yàn)證摘要信息可以從CERT. SF中提取,但是不 限于從CERT. SF中提取,可以通過應(yīng)用程序中的任意滿足完整性驗(yàn)證要求的數(shù)據(jù)來提取驗(yàn) 證摘要信息。驗(yàn)證摘要信息中包含用來驗(yàn)證應(yīng)用程序的安全性的驗(yàn)證標(biāo)記。
[0077] 生成時(shí)間戳簽名證書還需要生成證書的時(shí)間信息和公鑰,利用私鑰對(duì)驗(yàn)證摘要信 息和時(shí)間信息進(jìn)行加密,得到加密后的時(shí)間戳。將公鑰和加密后的時(shí)間戳作為時(shí)間戳簽名 證書存儲(chǔ)在輔助文件夾中。
[0078] 在該時(shí)間戳簽名證書中存儲(chǔ)由驗(yàn)證標(biāo)記、時(shí)間信息和公鑰,在進(jìn)行安全性驗(yàn)證時(shí), 可以利用公鑰解密得到被私鑰加密的驗(yàn)證標(biāo)記和時(shí)間信息。通過比較被私鑰加密的驗(yàn)證標(biāo) 記和計(jì)算的應(yīng)用程序的驗(yàn)證標(biāo)記是否相同來判斷應(yīng)用程序是否被修改過。另外,由于時(shí)間 信息也被私鑰加密,該時(shí)間信息是應(yīng)用程序生成的時(shí)間,一旦該時(shí)間信息被私鑰加密作為 時(shí)間戳簽名證書保存在應(yīng)用程序的輔助文件夾中,就不會(huì)被隨意更改,因此,通過時(shí)間信息 可以保證應(yīng)用程序的原始性。
[0079] 例如,時(shí)間信息為20140804,當(dāng)該時(shí)間信息被保存在應(yīng)用程序的輔助文件夾中時(shí), 由于只能從時(shí)間戳簽名證書中獲得公鑰,不能獲得私鑰,更改了時(shí)間信息后再加密時(shí),他 人的私鑰加密就無法使用原有公鑰提取驗(yàn)證標(biāo)記,從而無法進(jìn)行安全驗(yàn)證,此時(shí)認(rèn)為應(yīng)用 程序被破壞,是不安全的應(yīng)用程序。因此,只要能夠從時(shí)間戳簽名證書中提取出時(shí)間信息, 則該時(shí)間信息則為應(yīng)用程序的生成時(shí)間,正是由于時(shí)間戳簽名證書中信息的不可修改的特 性,應(yīng)用程序隨身攜帶其作者信息等可以保護(hù)作者的權(quán)益。
[0080] 另外,當(dāng)應(yīng)用程序被修改時(shí),計(jì)算得到的應(yīng)用程序的驗(yàn)證標(biāo)記與時(shí)間戳簽名證書 中的驗(yàn)證標(biāo)記就不同了,因此,即時(shí)沒有修改時(shí)間戳簽名證書中的時(shí)間信息等,企圖將應(yīng)用 程序生成時(shí)的時(shí)間信息作為修改后的應(yīng)用程序的時(shí)間信息的方法也是不可行的,在驗(yàn)證的 過程中會(huì)由于計(jì)算得到的驗(yàn)證標(biāo)記與時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記不同而被認(rèn)證為不安 全的應(yīng)用程序。
[0081] 通過上述實(shí)施例,能夠?qū)?yīng)用程序自身的驗(yàn)證標(biāo)記和時(shí)間信息通過私鑰進(jìn)行加 密,并與公鑰一起作為時(shí)間戳簽名證書存儲(chǔ)在應(yīng)用程序的輔助文件夾中。無論是企圖更改 應(yīng)用程序還是更改時(shí)間戳簽名證書,都會(huì)導(dǎo)致認(rèn)證失敗,即應(yīng)用程序被認(rèn)證為不安全的程 序,因此,通過上述實(shí)施例能夠解決現(xiàn)有技術(shù)中無法驗(yàn)證應(yīng)用程序的安全性的問題,進(jìn)而達(dá) 到了提高應(yīng)用程序的安全性的效果。
[0082] 優(yōu)選地,第一提取單元包括:第一提取模塊,用于從時(shí)間戳簽名證書中提取公鑰; 解密模塊,用于利用公鑰對(duì)加密后的時(shí)間戳進(jìn)行解密,得到驗(yàn)證摘要信息;以及第二提取模 塊,用于提取驗(yàn)證摘要信息中的驗(yàn)證標(biāo)記。
[0083] 驗(yàn)證標(biāo)記被私鑰加密存儲(chǔ),在提取驗(yàn)證標(biāo)記時(shí),可以首先利用存儲(chǔ)在時(shí)間戳簽名 證書中的公鑰進(jìn)行解密,得到驗(yàn)證摘要信息。在該驗(yàn)證摘要信息中又存儲(chǔ)有驗(yàn)證標(biāo)記,則通 過公鑰解密可以得到應(yīng)用程序的驗(yàn)證標(biāo)記,從而便于對(duì)應(yīng)用程序的安全性進(jìn)行驗(yàn)證。
[0084] 優(yōu)選地,第一提取單元還包括:判斷模塊,用于在利用公鑰對(duì)加密后的時(shí)間戳進(jìn)行 解密,得到驗(yàn)證摘要信息之前,判斷是否能夠利用公鑰對(duì)加密后的時(shí)間戳進(jìn)行解密;第一 驗(yàn)證模塊,用于在利用公鑰成功對(duì)加密后的時(shí)間戳解密時(shí),通過驗(yàn)證以表示應(yīng)用程序沒有 被修改;第二驗(yàn)證模塊,用于在利用公鑰無法對(duì)加密后的時(shí)間戳解密時(shí),確定應(yīng)用程序被修 改。
[0085] 通過上述實(shí)施例,除了比較驗(yàn)證標(biāo)記來判斷應(yīng)用程序是否安全以外,還可以在比 較驗(yàn)證標(biāo)記之前,判斷公鑰是否能夠通過解密得到驗(yàn)證摘要信息,如果不能解密得到驗(yàn)證 摘要信息,則可以直接確定該應(yīng)用程序被修改過,為不安全的應(yīng)用程序。
[0086] 優(yōu)選地,驗(yàn)證裝置還包括:第二獲取單元,用于在讀取應(yīng)用程序的輔助文件夾中時(shí) 間戳簽名證書之前,獲取應(yīng)用程序的黑名單;判斷單元,用于判斷應(yīng)用程序是否在黑名單 中;以及確定單元,用于在應(yīng)用程序在黑名單中時(shí),確定應(yīng)用程序?yàn)椴话踩膽?yīng)用程序,其 中,在確定應(yīng)用程序?yàn)椴话踩膽?yīng)用程序之后,不再驗(yàn)證應(yīng)用程序是否被修改。
[0087] 在驗(yàn)證應(yīng)用程序的安全性時(shí),不僅可以在客戶端進(jìn)行驗(yàn)證(如圖4),還可以通過 服務(wù)器進(jìn)行驗(yàn)證(如圖5)。在利用客戶端進(jìn)行驗(yàn)證時(shí),可以按照本地存儲(chǔ)的黑名單或者云 端黑名單判斷帶時(shí)間戳的應(yīng)用程序是否在黑名單中,如果在黑名單中直接確認(rèn)該帶時(shí)間戳 的應(yīng)用程序攜帶病毒為不安全的應(yīng)用程序,不再進(jìn)行是否被修改的驗(yàn)證,如果不在黑名單 中,則判斷該應(yīng)用程序是否被修改過,如果修改過,則提示該應(yīng)用程序危險(xiǎn),如果沒有被修 改過,則該應(yīng)用程序?yàn)榘踩膽?yīng)用程序,通過驗(yàn)證。在利用服務(wù)器進(jìn)行驗(yàn)證時(shí),可以將應(yīng)用 程序提交到服務(wù)器上,并首先通過病毒掃描服務(wù)器進(jìn)行病毒掃描,當(dāng)發(fā)現(xiàn)該應(yīng)用程序在病 毒黑名單中時(shí),則發(fā)出該應(yīng)用程序?yàn)椴话踩膽?yīng)用程序的提醒,并且不再進(jìn)行應(yīng)用程序是 否被修改的驗(yàn)證;如果發(fā)現(xiàn)該應(yīng)用程序沒有病毒,則提取時(shí)間戳簽名證書并進(jìn)行安全性的 驗(yàn)證,經(jīng)過驗(yàn)證的應(yīng)用程序可以輸出三種結(jié)果,即通過驗(yàn)證、危險(xiǎn)和病毒,其中,通過驗(yàn)證說 明該應(yīng)用程序是原始應(yīng)用程序,沒有被修改;危險(xiǎn)說明該應(yīng)用程序沒有通過驗(yàn)證,是被修改 過的應(yīng)用程序;病毒說明該應(yīng)用程序攜帶病毒,并且在確定應(yīng)用程序攜帶病毒之后,無需再 進(jìn)行是否被修改的驗(yàn)證。在驗(yàn)證結(jié)束后發(fā)出不同的提示信息,以提示該應(yīng)用程序是否安全。
[0088] 通過上述實(shí)施例可以有效的實(shí)現(xiàn)度安卓應(yīng)用程序的原始性驗(yàn)證和安全性驗(yàn)證,原 始性的驗(yàn)證即確定該應(yīng)用程序的版權(quán)所有人,安全性驗(yàn)證即確定該應(yīng)用程序是否被更改或 者是否有病毒,從而既對(duì)數(shù)字版權(quán)保護(hù)提供有力支持,也會(huì)極大地制止病毒的產(chǎn)生和傳播。
[0089] 需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列 的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)?依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知 悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明 所必須的。
[0090] 在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部 分,可以參見其他實(shí)施例的相關(guān)描述。
[0091] 在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置,可通過其它的方式 實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種 邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可 以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間 的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接, 可以是電性或其它的形式。
[0092] 所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè) 網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目 的。
[0093] 另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以 是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單 元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0094] 所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用 時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì) 上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形 式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算 機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、移動(dòng)終端、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所 述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種 可以存儲(chǔ)程序代碼的介質(zhì)。
[0095] 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種應(yīng)用程序的驗(yàn)證方法,其特征在于,包括: 讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書,其中,所述輔助文件夾為存儲(chǔ)所述應(yīng) 用程序的標(biāo)準(zhǔn)驗(yàn)證證書的文件夾; 提取所述時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記; 計(jì)算所述應(yīng)用程序的驗(yàn)證標(biāo)記; 判斷所述時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與所述應(yīng)用程序的驗(yàn)證標(biāo)記是否相同;以及 如果相同,則通過驗(yàn)證以表示所述應(yīng)用程序沒有被修改。
2. 根據(jù)權(quán)利要求1所述的驗(yàn)證方法,其特征在于,在讀取應(yīng)用程序的輔助文件夾中時(shí) 間戳簽名證書之前,所述驗(yàn)證方法還包括: 從所述應(yīng)用程序中提取驗(yàn)證摘要信息,其中,所述驗(yàn)證摘要信息包含所述應(yīng)用程序的 驗(yàn)證標(biāo)記; 獲取所述應(yīng)用程序的時(shí)間信息,其中,所述時(shí)間信息用于記錄所述應(yīng)用程序的形成時(shí) 間; 利用私鑰對(duì)所述驗(yàn)證摘要信息和所述時(shí)間信息加密,得到加密后的時(shí)間戳;以及 將所述加密后的時(shí)間戳和與所述私鑰配對(duì)的公鑰作為所述時(shí)間戳簽名證書存儲(chǔ)在所 述輔助文件夾中。
3. 根據(jù)權(quán)利要求2所述的驗(yàn)證方法,其特征在于,提取所述時(shí)間戳簽名證書中的驗(yàn)證 標(biāo)記包括: 從所述時(shí)間戳簽名證書中提取所述公鑰; 利用所述公鑰對(duì)所述加密后的時(shí)間戳進(jìn)行解密,得到所述驗(yàn)證摘要信息;以及 提取所述驗(yàn)證摘要信息中的驗(yàn)證標(biāo)記。
4. 根據(jù)權(quán)利要求3所述的驗(yàn)證方法,其特征在于,在利用所述公鑰對(duì)所述加密后的時(shí) 間戳進(jìn)行解密,得到所述驗(yàn)證摘要信息之前,所述驗(yàn)證方法還包括: 判斷是否能夠利用所述公鑰對(duì)所述加密后的時(shí)間戳進(jìn)行解密; 如果利用所述公鑰成功對(duì)所述加密后的時(shí)間戳解密,則通過驗(yàn)證以表示所述應(yīng)用程序 沒有被修改; 如果利用所述公鑰無法對(duì)所述加密后的時(shí)間戳解密,則確定所述應(yīng)用程序被修改。
5. 根據(jù)權(quán)利要求1所述的驗(yàn)證方法,其特征在于,在讀取應(yīng)用程序的輔助文件夾中時(shí) 間戳簽名證書之前,所述驗(yàn)證方法還包括: 獲取所述應(yīng)用程序的黑名單; 判斷所述應(yīng)用程序是否在所述黑名單中;以及 如果所述應(yīng)用程序在所述黑名單中,則確定所述應(yīng)用程序?yàn)椴话踩膽?yīng)用程序,其中, 在確定所述應(yīng)用程序?yàn)椴话踩膽?yīng)用程序之后,不再驗(yàn)證所述應(yīng)用程序是否被修改。
6. -種應(yīng)用程序的驗(yàn)證裝置,其特征在于,包括: 讀取單元,用于讀取應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書,其中,所述輔助文件夾 為存儲(chǔ)所述應(yīng)用程序的標(biāo)準(zhǔn)驗(yàn)證證書的文件夾; 第一提取單元,用于提取所述時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記; 計(jì)算單元,用于計(jì)算所述應(yīng)用程序的驗(yàn)證標(biāo)記; 判斷單元,用于判斷所述時(shí)間戳簽名證書中的驗(yàn)證標(biāo)記與所述應(yīng)用程序的驗(yàn)證標(biāo)記是 否相同;以及 驗(yàn)證單元,用于在相同時(shí),通過驗(yàn)證以表示所述應(yīng)用程序沒有被修改。
7. 根據(jù)權(quán)利要求6所述的驗(yàn)證裝置,其特征在于,所述驗(yàn)證裝置還包括: 第二提取單元,用于在讀取所述應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書之前,從 所述應(yīng)用程序中提取驗(yàn)證摘要信息,其中,所述驗(yàn)證摘要信息包含所述應(yīng)用程序的驗(yàn)證標(biāo) 記; 第一獲取單元,用于獲取所述應(yīng)用程序的時(shí)間信息,其中,所述時(shí)間信息用于記錄所述 應(yīng)用程序的形成時(shí)間; 加密單元,用于利用私鑰對(duì)所述驗(yàn)證摘要信息和所述時(shí)間信息加密,得到加密后的時(shí) 間戳;以及 存儲(chǔ)單元,用于將所述加密后的時(shí)間戳和與所述私鑰配對(duì)的公鑰作為所述時(shí)間戳簽名 證書存儲(chǔ)在所述輔助文件夾中。
8. 根據(jù)權(quán)利要求7所述的驗(yàn)證裝置,其特征在于,所述第一提取單元包括: 第一提取模塊,用于從所述時(shí)間戳簽名證書中提取所述公鑰; 解密模塊,用于利用所述公鑰對(duì)所述加密后的時(shí)間戳進(jìn)行解密,得到所述驗(yàn)證摘要信 息;以及 第二提取模塊,用于提取所述驗(yàn)證摘要信息中的驗(yàn)證標(biāo)記。
9. 根據(jù)權(quán)利要求8所述的驗(yàn)證裝置,其特征在于,所述第一提取單元還包括: 判斷模塊,用于在利用所述公鑰對(duì)所述加密后的時(shí)間戳進(jìn)行解密,得到所述驗(yàn)證摘要 信息之前,判斷是否能夠利用所述公鑰對(duì)所述加密后的時(shí)間戳進(jìn)行解密; 第一驗(yàn)證模塊,用于在利用所述公鑰成功對(duì)所述加密后的時(shí)間戳解密時(shí),通過驗(yàn)證以 表示所述應(yīng)用程序沒有被修改; 第二驗(yàn)證模塊,用于在利用所述公鑰無法對(duì)所述加密后的時(shí)間戳解密時(shí),確定所述應(yīng) 用程序被修改。
10. 根據(jù)權(quán)利要求6所述的驗(yàn)證裝置,其特征在于,所述驗(yàn)證裝置還包括: 第二獲取單元,用于在讀取所述應(yīng)用程序的輔助文件夾中時(shí)間戳簽名證書之前,獲取 所述應(yīng)用程序的黑名單; 判斷單元,用于判斷所述應(yīng)用程序是否在所述黑名單中;以及 確定單元,用于在所述應(yīng)用程序在所述黑名單中時(shí),確定所述應(yīng)用程序?yàn)椴话踩膽?yīng) 用程序,其中,在確定所述應(yīng)用程序?yàn)椴话踩膽?yīng)用程序之后,不再驗(yàn)證所述應(yīng)用程序是否 被修改。
【文檔編號(hào)】G06F21/44GK104123488SQ201410400531
【公開日】2014年10月29日 申請(qǐng)日期:2014年8月14日 優(yōu)先權(quán)日:2014年8月14日
【發(fā)明者】鄭輝, 王懷州 申請(qǐng)人:北京網(wǎng)秦天下科技有限公司