今天小編分享的科技經驗:Android越來越封閉,開發者吐槽谷歌不給活路,歡迎閲讀。
與往年不同,今年的 Android 14 并未如期在 8 月與廣大開發者、用户見面,不過谷歌方面的延期并未澆滅開發者對于 Android 14 抽絲剝繭的熱情,畢竟大家都想知道 Android 14 正式版會帶來哪些新的東西。根據目前曝光的相關信息顯示,好消息是開發者調試工具 HTTP Toolkit 在最近确實發現了谷歌為 Android 14 帶來的新變化,但壞消息是這一新的變化對于開發者而言并非是個好兆頭。
HTTP Toolkit 是一款大量被 App/Web 開發者使用的調試、測試和構建工具,其開發團隊日前在博客中透露,谷歌方面正在讓 Android 變得更加封閉,并且在 Android 14 中開發者将沒有任何途徑來修改系統内置根證書進行調試。其實早在 Android 7 時代,開發者就不再被允許訪問位于 /system/etc/security/cacerts/ 的 Android 系統證書庫,但在 root 後,開發者還是可以修改證書庫的路徑,并直接注入自己需要的證書。
然而到了 Android 14 上,谷歌方面直接修改了 Android 系統證書的存儲模式,相比以往證書是存儲在系統裏,現在谷歌則是通過 Google Play 來更新證書。但問題在于,谷歌新的證書更新方式不再從舊路徑讀取證書,而是從 /apex/com.android.conscrypt/cacerts/ 這一路徑來讀取。并且開發者發現,針對新路徑的一切修改都是無效的,系統會直接忽略,也就是説未來開發者将無法做到讓系統信任自籤名證書。
為什麼谷歌對 Android 14 的這一點點改變會被開發者吐槽,當然是因為數字證書這玩意的重要性實在是太大。
其實數字證書是一種權威性的電子文檔,是在網絡信息傳播中證明身份的工具,在互聯網中也起到了類似 " 身份證 " 的作用,并提供了驗證身份的方式。
比如我們在上淘寶時,浏覽器是怎麼知道訪問的網址到底是淘寶的官網、還是釣魚網站呢?靠的就正是 SSL/TLS 證書。當訪問淘寶站點時,我們使用的浏覽器無論是 Chrome、Edge,還是 Safari 等,都會檢查網站證書的有效性,以對伺服器進行身份驗證。如果 SSL 證書無效,用户就會看到一條警告,顯示該連接不是私有的。
既然數字證書的作用如此重要,确保數字證書本身不能被偽造也就成為了關鍵。而為了實現這一點,過去三十餘間,互聯網行業也進行了諸多努力。
一個常規的數字證書是這樣誕生的,首先需要有一個數字證書認證中心(Certificate Authority)來作為權威、公正、 可信賴的第三方來負責籤發,并使用非對稱加密技術來產生一對公鑰和私鑰,然後用自己的私鑰對自己的公鑰進行籤名,生成所謂的一份公開檔案。該檔案中就會包含籤發該證書的 CA、有效期、籤發對象,而這些則都是未加密的明文。
緊接着 CA 機構會對明文進行哈希計算得到一個哈希值,然後證書的籤發對象會使用 CA 下發的私鑰來對這一哈希值進行加密,最終得到籤名信息後,明文 + 籤名信息就構成了數字證書。有了數字證書後,網絡通信的雙方只需要向 CA 驗證數字證書的真實性,就可以知道在通信過程中有沒有被篡改。
而想要獲得業界的信任,讓浏覽器、作業系統信任證書,通常都需要很長時間的積累,例如目前全球最權威的 CA 機構 Verisign、Globalsign,就是從 1995 年和 1996 年就開始從事數字證書籤發服務,靠着幾十年如一日的服務在業界打響自己的招牌。如果不想通過水磨功夫來獲得信任,那麼更便捷的方式就是找到一個足夠權威的背書。例如工信部批準的 54 家 CA 機構頒發的數字證書,就是由工信部進行背書,微軟的 Microsoft 受信任根證書計劃則是微軟來背書。
數字證書本質上其實是一個信任機制,從理論上來説,在互聯網上任何個人和組織都能籤發證書,只不過有的 CA 機構更權威、受到的認可程度更高,所以這也就意味大家可以自己為自己籤發一個證書,也就是所謂的 " 自籤名證書 "。但自籤名證書是由不受信的 CA 機構頒發的數字證書,所以看到這裏大家可能會問,不受信任的數字證書又有什麼用呢?
因為就像大家需要有身份證一樣,數字證書也是應用程式的必要構件。一款 App 在正式上傳到應用商店,乃至被部署到用户的手機裏之前,必然會經歷多輪的測試工作,這時候開發者往往會使用自籤名證書來作為過渡,或是修改系統内置根證書來調試 App。
作為互聯網世界的基石之一,失去數字證書的代價無疑是巨大的。比如就在數周前,用友和金蝶這兩大在國内被廣泛使用的财務軟體,就出現了用户大批量無法正常使用的情況,而導致這一問題的原因,就是是微軟突然吊銷了 Windows 10 和 Windows 11 上的 Verisign Class 3 Public Primary Certification Authority-G5 證書,導致使用該證書的用友和金蝶代碼籤名失效、程式被 Windows 攔截,導致無法正常使用。
這就是為什麼開發者會吐槽谷歌在 Android 14 上的這一調整了,因為這就等于説谷歌在客觀上給部分開發者的開發工作設定了阻礙。
不過為什麼谷歌非要這樣做呢?當然是因為在 Android 14 之前的受信任證書與 iOS 一樣,都是預先存儲在系統裏,谷歌歌無法直接更新信息,這就會導致某些證書出于各種原因被吊銷後,他們無法及時應對。在能夠通過 Google Play 更新證書庫後,谷歌就可以随時應對諸如不久前微軟突然吊銷多個根證書,又在數日内恢復的操作。
【本文圖片來自網絡】