更新: 安卓移動應(yīng)用簽名(APKsign)相關(guān)專題請訪問專題網(wǎng)站http://apksign.syan.com.cn.
目前, 關(guān)于移動終端/智能手機中的惡意應(yīng)用的報道頻現(xiàn), 手機用戶惴惴不安, 央視也就此話題多次進行了相關(guān)專題報道. 本文針對安卓手機應(yīng)用, 提出一種利用數(shù)字證書的副署機制, 通過對APK整個發(fā)布周期的各個環(huán)節(jié)進行帶時間戳的副署簽名的方式, 達到所有環(huán)節(jié)可驗證, 可追溯的效果.
基本流程圖如下:

效果:
- 不改變APK的文件結(jié)構(gòu);
- 原有APK的安裝模式和安全機制沒有任何改變(無前提條件, 完全透明);
- 任何一個環(huán)節(jié), 只要進行了副署, 就可以成為一個可追溯的環(huán)節(jié);
- 追溯的內(nèi)容包括: 簽名時間, 簽名者身份, 簽名有效性;
- 從后端到前端的完整解決方案;
在手機端, 我們開發(fā)了一個用于APP追溯的應(yīng)用, TrustTracker, 該APP的主要目的是為了演示本方案的可行性和有效性.
以下將以界面截圖+注釋的方式給予說明:
TrustTracker的歡迎界面:

主界面:


TrustTracker自己是一個APP, 我們對它進行了3次副署:
- 開發(fā)者自己的副署
- 模擬檢測機構(gòu)的副署
- 模擬應(yīng)用商店的副署


有了TrustTracker這個工具, 我們就來看看一些主流的應(yīng)用在APK的簽名方面是怎么做的. 以下的截圖都是基于我目前的手機中的APP應(yīng)用.
這是12306的:

再看看銀行的:


騰訊:


百度:

淘寶:

挑個國外的應(yīng)用看看:

安卓系統(tǒng)由于它的開放性, 管理相對蘋果公司而言較弱, 基本上是大家自己各行其是, 從TrustTracker提供的信息來看, 中外沒啥區(qū)別, 即使是一些知名企業(yè)/機構(gòu)發(fā)布的應(yīng)用, 其中的簽名證書都不大正規(guī), 甚至部分還有著濃郁的個人色彩. 其中的風(fēng)險可想而知, 以安卓應(yīng)用目前的簽名機制而言, 甚至可以把別人的APP拿來, 自己修改后重新打包簽名, 由于大量使用自簽名證書的機制, 不僅用戶安裝時根本無法鑒別, 專業(yè)機構(gòu)拿到一個APP, 不跟源廠商有溝通協(xié)調(diào), 也無法鑒別簽名的真假.
本方案所提出的解決方案依托第3方可信的數(shù)字證書頒發(fā)機構(gòu), 由這些數(shù)字證書頒發(fā)機構(gòu)向開發(fā)者, 檢測機構(gòu), 應(yīng)用商店頒發(fā)可信的數(shù)字證書, 在APK的發(fā)布流程的每個環(huán)節(jié), 通過使用可信數(shù)字證書加以副署機制, 可以達到整個APK發(fā)布環(huán)節(jié)可追溯, 可驗證, 從而達到防范惡意APP, 凈化網(wǎng)絡(luò)環(huán)境的效果.
頁面背景圖-1024x249.png)