首頁 > 新聞 > 智能 > 正文

Android 越來越封閉,開發(fā)者吐槽谷歌不給活路

2023-09-07 23:10:17來源:ZAKER科技  


【資料圖】

與往年不同,今年的 Android 14 并未如期在 8 月與廣大開發(fā)者、用戶見面,不過谷歌方面的延期并未澆滅開發(fā)者對(duì)于 Android 14 抽絲剝繭的熱情,畢竟大家都想知道 Android 14 正式版會(huì)帶來哪些新的東西。根據(jù)目前曝光的相關(guān)信息顯示,好消息是開發(fā)者調(diào)試工具 HTTP Toolkit 在最近確實(shí)發(fā)現(xiàn)了谷歌為 Android 14 帶來的新變化,但壞消息是這一新的變化對(duì)于開發(fā)者而言并非是個(gè)好兆頭。

HTTP Toolkit 是一款大量被 App/Web 開發(fā)者使用的調(diào)試、測試和構(gòu)建工具,其開發(fā)團(tuán)隊(duì)日前在博客中透露,谷歌方面正在讓 Android 變得更加封閉,并且在 Android 14 中開發(fā)者將沒有任何途徑來修改系統(tǒng)內(nèi)置根證書進(jìn)行調(diào)試。其實(shí)早在 Android 7 時(shí)代,開發(fā)者就不再被允許訪問位于 /system/etc/security/cacerts/ 的 Android 系統(tǒng)證書庫,但在 root 后,開發(fā)者還是可以修改證書庫的路徑,并直接注入自己需要的證書。

然而到了 Android 14 上,谷歌方面直接修改了 Android 系統(tǒng)證書的存儲(chǔ)模式,相比以往證書是存儲(chǔ)在系統(tǒng)里,現(xiàn)在谷歌則是通過 Google Play 來更新證書。但問題在于,谷歌新的證書更新方式不再從舊路徑讀取證書,而是從 /apex/com.android.conscrypt/cacerts/ 這一路徑來讀取。并且開發(fā)者發(fā)現(xiàn),針對(duì)新路徑的一切修改都是無效的,系統(tǒng)會(huì)直接忽略,也就是說未來開發(fā)者將無法做到讓系統(tǒng)信任自簽名證書。

為什么谷歌對(duì) Android 14 的這一點(diǎn)點(diǎn)改變會(huì)被開發(fā)者吐槽,當(dāng)然是因?yàn)閿?shù)字證書這玩意的重要性實(shí)在是太大。

其實(shí)數(shù)字證書是一種權(quán)威性的電子文檔,是在網(wǎng)絡(luò)信息傳播中證明身份的工具,在互聯(lián)網(wǎng)中也起到了類似 " 身份證 " 的作用,并提供了驗(yàn)證身份的方式。

比如我們?cè)谏咸詫殨r(shí),瀏覽器是怎么知道訪問的網(wǎng)址到底是淘寶的官網(wǎng)、還是釣魚網(wǎng)站呢?靠的就正是 SSL/TLS 證書。當(dāng)訪問淘寶站點(diǎn)時(shí),我們使用的瀏覽器無論是 Chrome、Edge,還是 Safari 等,都會(huì)檢查網(wǎng)站證書的有效性,以對(duì)服務(wù)器進(jìn)行身份驗(yàn)證。如果 SSL 證書無效,用戶就會(huì)看到一條警告,顯示該連接不是私有的。

既然數(shù)字證書的作用如此重要,確保數(shù)字證書本身不能被偽造也就成為了關(guān)鍵。而為了實(shí)現(xiàn)這一點(diǎn),過去三十余間,互聯(lián)網(wǎng)行業(yè)也進(jìn)行了諸多努力。

一個(gè)常規(guī)的數(shù)字證書是這樣誕生的,首先需要有一個(gè)數(shù)字證書認(rèn)證中心(Certificate Authority)來作為權(quán)威、公正、 可信賴的第三方來負(fù)責(zé)簽發(fā),并使用非對(duì)稱加密技術(shù)來產(chǎn)生一對(duì)公鑰和私鑰,然后用自己的私鑰對(duì)自己的公鑰進(jìn)行簽名,生成所謂的一份公開文件。該文件中就會(huì)包含簽發(fā)該證書的 CA、有效期、簽發(fā)對(duì)象,而這些則都是未加密的明文。

緊接著 CA 機(jī)構(gòu)會(huì)對(duì)明文進(jìn)行哈希計(jì)算得到一個(gè)哈希值,然后證書的簽發(fā)對(duì)象會(huì)使用 CA 下發(fā)的私鑰來對(duì)這一哈希值進(jìn)行加密,最終得到簽名信息后,明文 + 簽名信息就構(gòu)成了數(shù)字證書。有了數(shù)字證書后,網(wǎng)絡(luò)通信的雙方只需要向 CA 驗(yàn)證數(shù)字證書的真實(shí)性,就可以知道在通信過程中有沒有被篡改。

而想要獲得業(yè)界的信任,讓瀏覽器、操作系統(tǒng)信任證書,通常都需要很長時(shí)間的積累,例如目前全球最權(quán)威的 CA 機(jī)構(gòu) Verisign、Globalsign,就是從 1995 年和 1996 年就開始從事數(shù)字證書簽發(fā)服務(wù),靠著幾十年如一日的服務(wù)在業(yè)界打響自己的招牌。如果不想通過水磨功夫來獲得信任,那么更便捷的方式就是找到一個(gè)足夠權(quán)威的背書。例如工信部批準(zhǔn)的 54 家 CA 機(jī)構(gòu)頒發(fā)的數(shù)字證書,就是由工信部進(jìn)行背書,微軟的 Microsoft 受信任根證書計(jì)劃則是微軟來背書。

數(shù)字證書本質(zhì)上其實(shí)是一個(gè)信任機(jī)制,從理論上來說,在互聯(lián)網(wǎng)上任何個(gè)人和組織都能簽發(fā)證書,只不過有的 CA 機(jī)構(gòu)更權(quán)威、受到的認(rèn)可程度更高,所以這也就意味大家可以自己為自己簽發(fā)一個(gè)證書,也就是所謂的 " 自簽名證書 "。但自簽名證書是由不受信的 CA 機(jī)構(gòu)頒發(fā)的數(shù)字證書,所以看到這里大家可能會(huì)問,不受信任的數(shù)字證書又有什么用呢?

因?yàn)榫拖翊蠹倚枰猩矸葑C一樣,數(shù)字證書也是應(yīng)用程序的必要構(gòu)件。一款 App 在正式上傳到應(yīng)用商店,乃至被部署到用戶的手機(jī)里之前,必然會(huì)經(jīng)歷多輪的測試工作,這時(shí)候開發(fā)者往往會(huì)使用自簽名證書來作為過渡,或是修改系統(tǒng)內(nèi)置根證書來調(diào)試 App。作為互聯(lián)網(wǎng)世界的基石之一,失去數(shù)字證書的代價(jià)無疑是巨大的。比如就在數(shù)周前,用友和金蝶這兩大在國內(nèi)被廣泛使用的財(cái)務(wù)軟件,就出現(xiàn)了用戶大批量無法正常使用的情況,而導(dǎo)致這一問題的原因,就是是微軟突然吊銷了 Windows 10 和 Windows 11 上的 Verisign Class 3 Public Primary Certification Authority-G5 證書,導(dǎo)致使用該證書的用友和金蝶代碼簽名失效、程序被 Windows 攔截,導(dǎo)致無法正常使用。

這就是為什么開發(fā)者會(huì)吐槽谷歌在 Android 14 上的這一調(diào)整了,因?yàn)檫@就等于說谷歌在客觀上給部分開發(fā)者的開發(fā)工作設(shè)置了阻礙。

不過為什么谷歌非要這樣做呢?當(dāng)然是因?yàn)樵?Android 14 之前的受信任證書與 iOS 一樣,都是預(yù)先存儲(chǔ)在系統(tǒng)里,谷歌歌無法直接更新信息,這就會(huì)導(dǎo)致某些證書出于各種原因被吊銷后,他們無法及時(shí)應(yīng)對(duì)。在能夠通過 Google Play 更新證書庫后,谷歌就可以隨時(shí)應(yīng)對(duì)諸如不久前微軟突然吊銷多個(gè)根證書,又在數(shù)日內(nèi)恢復(fù)的操作。

【本文圖片來自網(wǎng)絡(luò)】

關(guān)鍵詞:

責(zé)任編輯:hnmd003

相關(guān)閱讀

相關(guān)閱讀

精彩推送

推薦閱讀