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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android签名概要总结——对称加密/非对称加密、数字签名、公钥证书、ca认证机构、安卓app签名

發(fā)布時(shí)間:2024/8/1 Android 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android签名概要总结——对称加密/非对称加密、数字签名、公钥证书、ca认证机构、安卓app签名 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

##.對(duì)稱(chēng)加密:

?? ?通信的雙方使用相同的秘鑰,來(lái)進(jìn)行加密和解密。運(yùn)算效率高,但這種通信方式不安全,因?yàn)槿鄙侔踩憬莸耐緩綄⒚罔€傳遞給對(duì)方,一旦秘鑰泄漏,信息將毫無(wú)安全性。

##.非對(duì)稱(chēng)加密:

? ? 非對(duì)稱(chēng)加密算法中,加密和解密使用的秘鑰不同,當(dāng)使用其中一個(gè)秘鑰進(jìn)行加密時(shí),只有用另一個(gè)秘鑰才能正常解密,二者要配對(duì)使用。公鑰可以公開(kāi)發(fā)布,而私鑰只有自己知道。雙方通信時(shí),都將自己的公鑰發(fā)給對(duì)方,對(duì)方用公鑰加密消息發(fā)給自己,這樣只有自己才擁有私鑰來(lái)解密。例如:A、B雙方通信中,A可以隨意將A的公鑰發(fā)給B,不必?fù)?dān)心泄漏公鑰。B向A發(fā)信息時(shí),使用A的公鑰加密,這樣只有A才能用A的私鑰來(lái)解密。

? ? 非對(duì)稱(chēng)加密通信安全,但運(yùn)算效率低。一般是將對(duì)稱(chēng)加密/非對(duì)稱(chēng)加密二者結(jié)合,開(kāi)頭使用非對(duì)稱(chēng)加密來(lái)傳輸對(duì)稱(chēng)加密的秘鑰,然后使用對(duì)稱(chēng)加密來(lái)傳輸后繼的大量數(shù)據(jù)。

##.數(shù)字簽名

? ? 一個(gè)人用筆在紙質(zhì)文件上簽名,其筆跡簽名可用來(lái)驗(yàn)證簽署人的身份。

?? ?數(shù)字簽名,是用來(lái)驗(yàn)證信息發(fā)布者身份的。

?? ?里面用到了非對(duì)稱(chēng)加密的原理。信息發(fā)布者對(duì)一段數(shù)據(jù)用私鑰加密,加密后的結(jié)果就是數(shù)字簽名,發(fā)布者將原數(shù)據(jù)和簽名一起發(fā)布。如果信息接收方用配套的公鑰能正確解密簽名,而且解密后的結(jié)果與原數(shù)據(jù)一樣,這就說(shuō)明簽名是原數(shù)據(jù)用私鑰加密得來(lái)的,而只有信息發(fā)布者才擁有私鑰,因?yàn)榘l(fā)布信息的人不是冒牌的。

##.公鑰證書(shū)

? ? 以上若信息接收者使用正確的公鑰去驗(yàn)證簽名,一切將如常進(jìn)行。

? ? 但如果信息接收者用到公鑰本身就是冒牌者用的假公鑰,那將無(wú)法進(jìn)行正確的驗(yàn)證。這樣冒牌者就可以用自己配套的冒牌私鑰做簽名,信息接受者用冒牌公鑰去驗(yàn)證,因?yàn)槊芭乒€、冒牌私鑰是配對(duì)的,驗(yàn)證可以正常通過(guò),冒牌者就可以持續(xù)地冒名頂替發(fā)布信息給信息接受者。

? ? 因此,確保拿到的公鑰是正確的,這很重要。例如,確保自己拿到了銀行網(wǎng)站的正確公鑰、或者某個(gè)手機(jī)APP的正確公鑰。

? ? CA認(rèn)證機(jī)構(gòu)就是干這個(gè)事的,它們作為有信譽(yù)的擔(dān)保人,確保自己發(fā)布的各個(gè)第三方網(wǎng)站公鑰是正確的。這些公鑰存儲(chǔ)在CA機(jī)構(gòu)發(fā)布的公鑰證書(shū)上。公鑰證書(shū)的主要內(nèi)容,其實(shí)就是 第三方網(wǎng)站公鑰數(shù)據(jù) + CA機(jī)構(gòu)用自己的私鑰對(duì)這個(gè)公鑰進(jìn)行的簽名。正常渠道安裝的瀏覽器,都會(huì)預(yù)存主要CA認(rèn)證機(jī)構(gòu)的公鑰,因此可以有效驗(yàn)證這些公鑰證書(shū)是否從CA機(jī)構(gòu)獲取的。如果是從CA機(jī)構(gòu)獲取的,那么公鑰證書(shū)中第三方網(wǎng)站公鑰的正確性,由CA機(jī)構(gòu)來(lái)背書(shū),公鑰證書(shū)就相當(dāng)于CA機(jī)構(gòu)為這個(gè)公鑰發(fā)的“身份證”。

##.自簽名機(jī)制

? ? 公鑰證書(shū)不是由權(quán)威機(jī)構(gòu)簽發(fā),而是第一次使用公鑰證書(shū)時(shí),做記錄,記住公鑰證書(shū)與對(duì)應(yīng)實(shí)體的匹配關(guān)系,默認(rèn)這是對(duì)應(yīng)實(shí)體的合法公鑰證書(shū)。下次再遇到相同實(shí)體的不同公鑰證書(shū),會(huì)認(rèn)為是非法公鑰證書(shū)。

##.Android App簽名和驗(yàn)證

? ? 在Android中安裝和驗(yàn)證APP使用的就是“自簽名機(jī)制”。首次安裝app時(shí),從app安裝包中獲取到公鑰證書(shū),將公鑰與對(duì)應(yīng)app的applicationId相綁定,認(rèn)為這是合法的公鑰。后繼安裝相同applicationId的app時(shí),若公鑰不同會(huì)拒絕安裝,若用“合法公鑰”驗(yàn)證不通過(guò),也會(huì)拒絕安裝。

? ? App安裝包上傳應(yīng)用商店時(shí),應(yīng)用商店也會(huì)用上傳的公鑰證書(shū)來(lái)驗(yàn)證安裝包來(lái)源是否合法。

? ? 由于首次安裝的APP身份是否合法很重要,所以最好確保首次安裝應(yīng)用的合法渠道,例如從權(quán)威應(yīng)用市場(chǎng)下載,這些應(yīng)用市場(chǎng)會(huì)為APP的來(lái)源做身份背書(shū)。

##.簡(jiǎn)述Android安裝包的校驗(yàn)信息、驗(yàn)證過(guò)程

1.MANIFEST.MF:會(huì)對(duì)安裝包內(nèi)所有文件的特征數(shù)據(jù)做算法處理,處理結(jié)果存儲(chǔ)在最終安裝包的MANIFEST.MF中。一旦文件有改動(dòng),算法得出的結(jié)果也會(huì)有變化,在安裝apk包時(shí),會(huì)重新根據(jù)所有文件做算法計(jì)算,若得出的結(jié)果與MANIFEST.MF不同,說(shuō)明安裝包被修改過(guò),安裝會(huì)通不過(guò)。

2.CERT.SF:用開(kāi)發(fā)者的合法私鑰對(duì)MANIFEST.MF做的簽名。在apk包安裝時(shí),會(huì)用開(kāi)發(fā)者公鑰來(lái)解密簽名,將解密結(jié)果與MANIFEST.MF做對(duì)比,若相同,則通過(guò),否則不通過(guò)。

? ? 也許冒牌者可以修改安裝包信息,并重新生成對(duì)應(yīng)的MANIFEST.MF,但冒牌者沒(méi)有開(kāi)發(fā)者的合法私鑰。所以,若MANIFEST.MF被修改,用合法公鑰對(duì)CERT.SF解密出的結(jié)果與MANIFEST.MF肯定會(huì)不同。

3.CERT.RSA:該文件中保存了公鑰、所采用的加密算法等信息。

參考剪藏:

?? ?數(shù)字簽名 -- 知乎

?? ?一文弄懂關(guān)于證書(shū)的一切,ssl協(xié)議,android包簽名機(jī)制。_嘿嘿嘿的博客-CSDN博客

總結(jié)

以上是生活随笔為你收集整理的Android签名概要总结——对称加密/非对称加密、数字签名、公钥证书、ca认证机构、安卓app签名的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。