日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android签名V1、V2、V3、V4汇总

發布時間:2024/8/1 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android签名V1、V2、V3、V4汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄
一、什么是apk簽名?
二、為什么需要簽名
三、apk簽名方案
????V1
????V2
????V3
四、apk簽名校驗
五、多渠道打包


前言

消息摘要

消息摘要只能保證消息的完整性,并不能保證消息的不可篡改性。

消息摘要(Message Digest),又稱數字摘要(Digital Digest)或數字指紋(Finger Print)。簡單來說,消息摘要就是在消息數據上,執行一個單向的 Hash 函數,生成一個固定長度的Hash值,這個Hash值即是消息摘要。
加密 Hash 函數就是消息摘要算法。經典的Hash算法有:MD5 算法、SHA-1 算法、SHA-256,SHA-256 是 SHA-1 的升級版,現在 Android 簽名使用的默認算法都已經升級到 SHA-256 了。

數字簽名

數字簽名方案是一種以電子形式存儲消息簽名的方法。一個完整的數字簽名方案應該由兩部分組成:簽名算法和驗證算法。

幾乎所有的數字簽名方案都要和快速高效的摘要算法(Hash 函數)一起使用,當公鑰算法與摘要算法結合起來使用時,便構成了一種有效地數字簽名方案。

這個過程是:

  • 用摘要算法對消息進行摘要。
  • 再把摘要值用信源的私鑰加密。

通過以上兩步得到的消息就是所謂的原始信息的數字簽名,發送者需要將原始信息數字簽名一同發送給接收者。而接收者在接收到原始信息和數字簽名后,通過以下 3 步驗證消息的真偽:

  • 先把接收到的原始消息用同樣的摘要算法摘要,形成「準簽體」。
  • 使用預先得到的公鑰,將數字簽名進行解密。
  • 比較前兩步所得到的兩段消息是否一致。如果一致,則表明消息確實是期望的發送者發的,且內容沒有被篡改過;相反,如果不一致,則表明傳送的過程中一定出了問題,消息不可信。

這種方法使公鑰加密只對消息摘要進行操作,因為一種摘要算法的摘要消息長度是固定的,而且都比較「短」(相對于消息而言),正好符合公鑰加密的要求。這樣效率得到了提高,而其安全性也并未因為使用摘要算法而減弱。

綜上所述,數字簽名是 非對稱加密技術 + 消息摘要 技術的結合。

公鑰密碼體制(public-key cryptography)
公鑰密碼體制分為三個部分,公鑰、私鑰、加密解密算法,它的加密解密過程如下:

  • 加密:通過加密算法和公鑰對內容(或者說明文)進行加密,得到密文。加密過程需要用到公鑰。
  • 解密:通過解密算法和私鑰對密文進行解密,得到明文。解密過程需要用到解密算法和私鑰。注意,由公鑰加密的內容,只能由私鑰進行解密,也就是說,由公鑰加密的內容,如果不知道私鑰,是無法解密的。
  • 公鑰密碼體制的公鑰和算法都是公開的(這是為什么叫公鑰密碼體制的原因),私鑰是保密的。大家都以使用公鑰進行加密,但是只有私鑰的持有者才能解密。
  • 在實際使用中,有需要的人會生成一對公鑰和私鑰,把公鑰發布出去給別人使用,自己保留私鑰。目前使用最廣泛的公鑰密碼體制是 RSA 密碼體制。

對稱加密算法(symmetric key algorithms)
在對稱加密算法中,加密和解密都是使用的同一個密鑰。因此對稱加密算法要保證安全性的話,密鑰要做好保密,只能讓使用的人知道,不能對外公開。

非對稱加密算法(asymmetric key algorithms)
在非對稱加密算法中,加密使用的密鑰和解密使用的密鑰是不相同的。前面所說的公鑰密碼體制就是一種非對稱加密算法,它的公鑰和是私鑰是不能相同的,也就是說加密使用的密鑰和解密使用的密鑰不同,因此它是一個非對稱加密算法。

RSA 簡介
RSA 密碼體制是一種公鑰密碼體制,公鑰公開,私鑰保密,它的加密解密算法是公開的。由公鑰加密的內容可以并且只能由私鑰進行解密,而由私鑰加密的內容可以并且只能由公鑰進行解密。也就是說,RSA 的這一對公鑰、私鑰都可以用來加密和解密,并且一方加密的內容可以由并且只能由對方進行解密。

  • 加密:公鑰加密,私鑰解密的過程,稱為「加密」。
    因為公鑰是公開的,任何公鑰持有者都可以將想要發送給私鑰持有者的信息進行加密后發送,而這個信息只有私鑰持有者才能解密。
  • 簽名:私鑰加密,公鑰解密的過程,稱為「簽名」。
  • 它和加密有什么區別呢?因為公鑰是公開的,所以任何持有公鑰的人都能解密私鑰加密過的密文,所以這個過程并不能保證消息的安全性,但是它卻能保證消息來源的準確性和不可否認性,也就是說,如果使用公鑰能正常解密某一個密文,那么就能證明這段密文一定是由私鑰持有者發布的,而不是其他第三方發布的,并且私鑰持有者不能否認他曾經發布過該消息。故此將該過程稱為「簽名」。

數字證書

使用數字簽名方法的前提,就是消息的接收者必須事先得到正確的公鑰。如果一開始公鑰就被別人篡改了,那壞人就會被你當成好人,而真正的消息發送者給你發的消息會被你視作無效的。如何保證公鑰的安全可信呢?這就要靠數字證書來解決了。

數字證書是一個經證書授權(Certificate Authentication)中心數字簽名的包含公鑰擁有者信息以及公鑰的文件。數字證書的格式普遍采用的是 X.509 V3 國際標準,一個標準的 X.509 數字證書通常包含以下內容:

  • 證書的發布機構(Issuer):由哪個機構(CA 中心)頒發。
  • 證書的有效期(Validity):證書的有效期,或者說使用期限。過了該日期,證書就失效了。
  • 證書所有人的公鑰(Public-Key):證書所有人想要公布出去的公鑰。
  • 證書所有人的名稱(Subject):證書是發給誰的,或者說證書的所有者,一般是某個人或者某個公司名稱、機構的名稱、公司網站的網址等。
  • 證書所使用的簽名算法(Signature algorithm):這個數字證書的數字簽名所使用的加密算法,這樣就可以使用證書發布機構的證書里面的公鑰,根據這個算法對指紋進行解密。
  • 證書發行者對證書的數字簽名(Thumbprint):該數字證書的指紋,用于保證數字證書的完整性,確保證書沒有被修改過。

其原理就是在發布證書時,CA 機構會根據簽名算法(Signature algorithm)對整個證書計算其 hash 值(指紋)并和證書放在一起,使用者打開證書時,自己也根據簽名算法計算一下證書的 hash 值(指紋),如果和證書中記錄的指紋對的上,就說明證書沒有被修改過。
.
數字證書本身也用到了數字簽名技術,只不過簽名的內容是整個證書(里面包含了證書所有者的公鑰以及其他一些內容)。與普通數字簽名不同的是,數字證書的簽名者不是隨隨便便一個普通機構,而是 CA 機構。
.
一般來說,這些 CA 機構的根證書已經在設備出廠前預先安裝到了你的設備上了。所以,數字證書可以保證證書里的公鑰確實是這個證書所有者的,或者證書可以用來確認對方的身份。可見,數字證書主要是用來解決公鑰的安全發放問題。

一、什么是apk簽名?

????簽名是摘要與非對稱密鑰加密相相結合的產物,摘要就像內容的一個指紋信息,一旦內容被篡改,摘要就會改變,簽名是摘要的加密結果,摘要改變,簽名也會失效。Android APK簽名也是這個道理,如果APK簽名跟內容對應不起來,Android系統就認為APK內容被篡改了,從而拒絕安裝,以保證系統的安全性。

????應用程序的作者使用自己的私鑰簽名APK文件,并將簽名與公鑰一起發布到APK中,這個過程稱之為簽名。當應用程序被安裝時,用發布的公鑰去解析簽名,并與文件的hash進行比對,這個過程叫驗簽。

二、為什么需要簽名

在消息通信時,必須至少解決兩個問題:一是確保消息來源的真實性,二是確保消息不會被第三方篡改。
.
簽名機制主要有兩種用途:

  • 使用特殊的key簽名可以獲取到一些不同的權限
  • 驗證數據保證不被篡改,防止應用被惡意的第三方覆蓋

三、apk簽名方案

Android 現在已經支持三種應用簽名方案:

  • v1 方案:基于 JAR 簽名。
  • v2 方案:APK 簽名方案 v2,在 Android 7.0 引入。
  • v3 方案:APK 簽名方案v3,在 Android 9.0 引入。
  • v4 方案:APK 簽名方案v4,在Android11.0引入。

v1 到 v2 是顛覆性的,為了解決 JAR 簽名方案的安全性問題,而到了 v3 方案,其實結構上并沒有太大的調整,可以理解為 v2 簽名方案的升級版,有一些資料也把它稱之為 v2+ 方案。因為這種簽名方案的升級,就是向下兼容的,所以只要使用得當,這個過程對開發者是透明的。

v1 到 v2 方案的升級,對開發者影響最大的,就是渠道簽署的問題。在當下這個大環境下,我們想讓不同渠道、市場的安裝包有所區別,攜帶渠道的唯一標識,這就是我們俗稱的渠道包。好在各大廠都開源了自己的簽渠道方案,例如:Walle(美團)、VasDolly(騰訊)都是非常優秀的方案。

V1


在 META-INF 文件夾下有三個文件:MANIFEST.MF、CERT.SF、CERT.RSA。

MANIFEST.MF
該文件中保存的內容其實就是逐一遍歷 APK 中的所有條目,如果是目錄就跳過,如果是一個文件,就用 SHA1(或者 SHA256)消息摘要算法提取出該文件的摘要然后進行 BASE64 編碼后,作為「SHA1-Digest」屬性的值寫入到 MANIFEST.MF 文件中的一個塊中。該塊有一個「Name」屬性, 其值就是該文件在 APK 包中的路徑。

CERT.SF

  • SHA1-Digest-Manifest-Main-Attributes:對 MANIFEST.MF 頭部的塊做 SHA1(或者SHA256)后再用 Base64 編碼
  • SHA1-Digest-Manifest:對整個 MANIFEST.MF 文件做 SHA1(或者 SHA256)后再用 Base64 編碼
  • SHA1-Digest:對 MANIFEST.MF 的各個條目做 SHA1(或者 SHA256)后再用 Base64 編碼

CERT.RSA
這里會把之前生成的 CERT.SF 文件,用私鑰計算出簽名, 然后將簽名以及包含公鑰信息的數字證書一同寫入 CERT.RSA 中保存。這里要注意的是,Android APK 中的 CERT.RSA 證書是自簽名的,并不需要這個證書是第三方權威機構發布或者認證的,用戶可以在本地機器自行生成這個自簽名證書。Android 目前不對應用證書進行 CA 認證。

V1的簽名和校驗過程如下:

V2

v1 簽名有兩個地方可以改進:
  • 簽名校驗速度慢。校驗過程中需要對apk中所有文件進行摘要計算,在 APK 資源很多、性能較差的機器上簽名校驗會花費較長時間,導致安裝速度慢。

  • 完整性保障不夠。META-INF 目錄用來存放簽名,因此該目錄本身是不計入簽名校驗過程的,可以隨意在這個目錄中添加文件,比如一些快速批量打包方案就選擇在這個目錄中添加渠道文件。

V3

四、apk簽名校驗

五、多渠道打包

https://tech.meituan.com/2017/01/13/android-apk-v2-signature-scheme.html

V1簽名的多渠道原理:通過在META-INF目錄下添加空文件,用空文件的名稱來作為渠道的唯一標識,之前在META-INF下添加文件是不需要重新簽名應用的,這樣會節省不少打包的時間,從而提高打渠道包的速度。

V2簽名的多渠道原理:在APK Signing Block區域增加ID-value擴展,增加自定義的渠道信息,保存到Apk中。


參考:
https://xuanxuanblingbling.github.io/ctf/android/2018/12/30/signature/
https://juejin.im/post/5cd239386fb9a0320f7dfcbe
https://www.jianshu.com/p/9ca1d6f3f083
Android 簽名機制 v1、v2、v3

總結

以上是生活随笔為你收集整理的Android签名V1、V2、V3、V4汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线欧美日韩国产 | 亚洲人成在线播放 | 日本精品在线一区 | 在线免费观看一区二区三区 | 久久国产在线视频 | 午夜精品剧场 | 爱情岛论坛永久入址测速 | 中文字幕一区二区三区四区欧美 | av导航福利 | 国产日韩久久 | 日爽夜爽| 超碰97免费在线 | 国产精品久久精品三级 | 三级色视频 | 久久久涩 | 美女视频黄频视频大全 | 欧美一级片播放 | 日韩欧美高清 | 一级在线视频 | 成人羞羞免费 | 999福利视频 | 中文av网站 | 成人国产网站 | 国产91亚洲 | 亚洲 小说 欧美 激情 另类 | 99免费在线视频 | 精品国产乱码久久久久久预案 | 日韩色网 | 亚洲 欧美 视频 | 在线亚洲人成电影网站色www | 国产成人综合av | 在线观看a级片 | 东北少妇高潮抽搐 | 色性av | 久草新在线| 久久手机视频 | 亚洲三区精品 | 日日操夜夜爱 | 久久久久亚洲无码 | 一区二区午夜 | 放荡的少妇2欧美版 | 日韩欧美在线观看一区 | 奴性白洁会所调教 | 老熟妇一区二区三区 | 五个女闺蜜把我玩到尿失禁 | 一区二区三区色 | 欧美精品区 | 成年人网站在线观看视频 | 欧美日韩大片在线观看 | 日本一本不卡 | 青青超碰 | 亚洲国产三级 | 日韩av片在线播放 | 国产极品一区二区 | 精品电影一区二区 | 婷婷综合在线 | 国产人妻人伦精品1国产丝袜 | 中文日韩欧美 | 国产精品高潮呻吟久久aⅴ码 | 国产精品国产三级国产专区51区 | 91看片免费| 裸体按摩www性xxxcom | 国产精品美女在线观看 | 四虎网址在线 | 中文字幕无线码 | 久久久久无码精品国产 | 黑人巨大精品欧美一区二区 | 成人一级视频在线观看 | 日韩av第一页 | 成人在线国产视频 | 高清无码视频直接看 | 这里只有精品国产 | 日韩美女视频一区二区 | 激情超碰在线 | 久久久久久久久久久久久女国产乱 | 六月婷婷在线观看 | 伊人网综合视频 | 欧美区在线观看 | 捆绑无遮挡打光屁股 | 先锋影音av在线 | www免费视频 | 亚洲美女影院 | 一区二区三区久久 | 夜夜嗨av色一区二区不卡 | 老色批av | 亚洲一区在线看 | 欧美性受视频 | 亚洲伊人成人网 | 四虎精品视频 | 国产色视频 | 中文字幕av一区二区三区 | 精品国产乱码一区二区 | 成人免费视频国产免费 | 红猫大本营在线观看的 | 亚洲 国产 欧美 日韩 | 星空大象在线观看免费播放 | 91禁国产网站 | 国模视频一区二区 | av中文字幕第一页 |