成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

51CTO專欄:李洋談Android應(yīng)用程序簽名概述

原創(chuàng)
移動(dòng)開發(fā) Android
在Android 系統(tǒng)中,所有安裝到系統(tǒng)的應(yīng)用程序都必有一個(gè)數(shù)字證書,此數(shù)字證書用于標(biāo)識(shí)應(yīng)用程序的作者和在應(yīng)用程序之間建立信任關(guān)系。

1. 為什么要簽名

如果只能用一句簡單的話語來回答這個(gè)問題的話,我會(huì)說:“這是Android系統(tǒng)所要求的”。

應(yīng)用程序簽名是一個(gè)這樣的過程,即使用私有密鑰數(shù)字地簽署一個(gè)給定的應(yīng)用程序,以便達(dá)到如下3個(gè)目的:

◆識(shí)別代碼的作者

◆檢測應(yīng)用程序是否發(fā)生了改變

◆在應(yīng)用程序之間建立信任

基于這一信任關(guān)系,應(yīng)用程序可以安全地共享代碼和數(shù)據(jù)。如果一個(gè) permission的保護(hù)級(jí)別為signature,那么就只有那些跟該permission所在的程序擁有同一個(gè)數(shù)字證書的應(yīng)用程序才能取得該權(quán)限。Android使用Java的數(shù)字證書相關(guān)的機(jī)制 來給APK加蓋數(shù)字證書,要理解android的數(shù)字證書,需要先了解以下數(shù)字證書的概念和java的數(shù)字證書機(jī)制。Android系統(tǒng)要求每一個(gè)安裝到系統(tǒng)的應(yīng)用程序都是經(jīng)過數(shù)字證書簽名的,數(shù)字證書的私鑰則保存在程序開發(fā)者的手中。也就是說如果一個(gè)Android應(yīng)用程序沒有經(jīng)過數(shù)字簽名,是沒有辦法安裝到系統(tǒng)中的!Android通過數(shù)字簽名來標(biāo)識(shí)應(yīng)用程序的作者和在應(yīng)用程序之間建立信任關(guān)系,不是用來決定最終用戶可以安裝哪些應(yīng)用程序。這個(gè)數(shù)字簽名由應(yīng)用程序的作者完成,并不需要權(quán)威的數(shù)字證書簽名機(jī)構(gòu)認(rèn)證,它只是用來讓應(yīng)用程序包自我認(rèn)證的。

尤其值得注意的是:與信息安全領(lǐng)域其他使用數(shù)字證書的用途不同,Android將數(shù)字證書用來標(biāo)識(shí)應(yīng)用程序的作者和在應(yīng)用程序之間建立信任關(guān)系,不是用來決定最終用戶可以安裝哪些應(yīng)用程序。這個(gè)數(shù)字證書并不需要權(quán)威的數(shù)字證書簽名機(jī)構(gòu)認(rèn)證,它只是用來讓應(yīng)用程序包自我認(rèn)證的。也就是說,這個(gè)證書完全是由開發(fā)者來進(jìn)行控制和使用的。

開發(fā)者可以生成不同的證書,我們建議同一個(gè)開發(fā)者的多個(gè)程序盡可能使用同一個(gè)數(shù)字證書,這可以帶來以下好處:

◆ 有利于程序升級(jí),當(dāng)新版程序和舊版程序的數(shù)字證書相同時(shí),Android系統(tǒng)才會(huì)認(rèn)為這兩個(gè)程序是同一個(gè)程序的不同版本。如果新版程序和舊版程序的數(shù)字證書不相同,則Android系統(tǒng)認(rèn)為他們是不同的程序,并產(chǎn)生沖突,會(huì)要求新程序更改包名。

◆ 有利于程序的模塊化設(shè)計(jì)和開發(fā)。Android系統(tǒng)允許擁有同一個(gè)數(shù)字簽名的程序運(yùn)行在一個(gè)進(jìn)程中,Android程序會(huì)將他們視為同一個(gè)程序。所以開發(fā)者可以將自己的程序分模塊開發(fā),而用戶只需要在需要的時(shí)候下載適當(dāng)?shù)哪K。

◆ 可以通過權(quán)限(permission)的方式在多個(gè)程序間共享數(shù)據(jù)和代碼。Android提供了基于數(shù)字證書的權(quán)限賦予機(jī)制,應(yīng)用程序可以和其他的程序共享該功能或者數(shù)據(jù)給那那些與自己擁有相同數(shù)字證書的程序。如果某個(gè)權(quán)限(permission)的保護(hù)級(jí)別是signature,則這個(gè)權(quán)限就只能授予那些跟該權(quán)限所在的包擁有同一個(gè)數(shù)字證書的程序。#p#

2. 簽名的相關(guān)問題

在簽名時(shí),需要考慮數(shù)字證書的有效期:

◆數(shù)字證書的有效期要包含程序的預(yù)計(jì)生命周期,一旦數(shù)字證書失效,持有該數(shù)字證書的程序?qū)⒉荒苷I?jí)。

◆如果多個(gè)程序使用同一個(gè)數(shù)字證書,則該數(shù)字證書的有效期要包含所有程序的預(yù)計(jì)生命周期。

◆Android Market強(qiáng)制要求所有應(yīng)用程序數(shù)字證書的有效期要持續(xù)到2033年10月22日以后。

另外,Android數(shù)字證書包含以下幾個(gè)要點(diǎn):

◆所有的應(yīng)用程序都必須有數(shù)字證書,Android系統(tǒng)不會(huì)安裝一個(gè)沒有數(shù)字證書的應(yīng)用程序。

◆Android程序包使用的數(shù)字證書可以是自簽名的,不需要一個(gè)權(quán)威的數(shù)字證書機(jī)構(gòu)簽名認(rèn)證。

◆如果要正式發(fā)布一個(gè)Android,必須使用一個(gè)合適的私鑰生成的數(shù)字證書來給程序簽名,而不能使用adt插件 或者ant工具 生成的調(diào)試證書來發(fā)布。

◆ 數(shù)字證書都是有有效期的,Android只是在應(yīng)用程序安裝的時(shí)候才會(huì)檢查證書的有效期。如果程序已經(jīng)安裝在系統(tǒng)中,即使證書過期也不會(huì)影響程序的正常功能。

◆Android使用標(biāo)準(zhǔn)的java工具 Keytool and Jarsigner 來生成數(shù)字證書,并給應(yīng)用程序包簽名#p#

3. 兩種模式

構(gòu)建 Android 應(yīng)用程序時(shí)可以采用調(diào)試模式和發(fā)布模式:

(1)使用 Android 構(gòu)建工具(命令行和 Eclipse ADT)構(gòu)建的應(yīng)用程序是用一個(gè)調(diào)試私有密鑰自動(dòng)簽名的;這些應(yīng)用程序被稱為調(diào)試模式應(yīng)用程序。調(diào)試模式應(yīng)用程序用于測試,不能夠發(fā)布。注意,未簽名的或者使用調(diào)試私有密鑰簽名的應(yīng)用程序不能夠通過 Android Market 發(fā)布。在調(diào)試模式下,Android的開發(fā)工具會(huì)在每次編譯時(shí)使用調(diào)試用的數(shù)字證書給程序簽名,開發(fā)者無須關(guān)心。

(2)準(zhǔn)備發(fā)布自己的應(yīng)用程序時(shí),必須構(gòu)建一個(gè)發(fā)布模式的版本,這意味著用私有密鑰簽署應(yīng)用程序。當(dāng)要發(fā)布程序時(shí),開發(fā)者就需要使用自己的數(shù)字證書給APK包簽名,可以有兩種方法。

◆在命令行下使用JDK中的和Keytool(用于生成數(shù)字證書)和Jarsigner(用于使用數(shù)字證書簽名)來給APK包簽名。

◆使用ADT Export Wizard進(jìn)行簽名(如果沒有數(shù)字證書可能需要生成數(shù)字證書)。

了解更多如何Android應(yīng)用簽名機(jī)制請(qǐng)點(diǎn)擊:Android應(yīng)用程序簽名和權(quán)限增強(qiáng)應(yīng)用程序安全性

責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2011-08-29 13:52:15

李洋Android應(yīng)用

2011-09-06 13:56:43

李洋iOS安全機(jī)制

2011-08-01 13:35:08

Android安全框架權(quán)限

2011-08-12 09:06:48

Android系統(tǒng)應(yīng)用程序

2011-09-15 08:58:41

Android短信丟失技術(shù)原因

2011-08-22 08:53:17

Android啟動(dòng)過程李洋

2012-08-27 09:52:48

Android沙箱模型

2012-07-23 13:22:42

Intent Filt安全Android

2016-08-23 18:15:26

2012-07-16 10:21:48

Android進(jìn)程線程

2011-09-08 13:50:51

51cto 51CTO

2011-05-27 10:13:39

Android 簽名

2010-12-10 13:21:47

51CTO博客大賽

2011-09-22 09:51:41

2009-07-16 17:09:02

Swing應(yīng)用程序

2011-09-08 13:26:27

51cto 51CTO

2009-08-07 11:45:58

云計(jì)算SOA虛擬化

2011-11-03 09:41:35

Android簽名安全性

2013-06-28 15:45:02

Windows Ser

2011-04-19 08:59:33

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品网站999www | 99精品欧美一区二区三区 | 一级做a爰片性色毛片 | 精品二三区 | 不卡一二三区 | 中文字幕在线一区二区三区 | 草比av | 精品国模一区二区三区欧美 | 午夜视频一区 | 日韩av最新网址 | 夜夜骑综合 | 色妞av| 婷婷毛片 | 一级a性色生活片久久毛片波多野 | 99精彩视频 | 国产一级黄色网 | 亚洲精品大全 | 北条麻妃99精品青青久久主播 | 亚洲欧美日韩中文字幕一区二区三区 | 中文字幕国产一区 | 91porn成人精品 | 中文字幕 在线观看 | 久热久草 | 国产精品不卡一区二区三区 | 日韩精品一区二区三区视频播放 | 色婷婷综合网 | 亚洲一级视频在线 | 国产精品成人69xxx免费视频 | 一级做a爰片性色毛片 | 黑色丝袜三级在线播放 | 久久伊| 国产精品一区三区 | 亚洲网站在线观看 | 亚洲免费一区 | 日韩一区二区av | 另类专区成人 | 欧美日韩国产一区二区三区 | 精品久久久久久亚洲精品 | 久久99精品视频 | 日韩精品在线观看免费 | 欧美中文|