解決方案
Ars Technica 於 2020 年 12 月報導,Let's Encrypt 正轉型為獨立憑證授權機構。為了快速上線,它曾使用老牌 CA IdenTrust 提供的交叉簽章,並於 2016 年另外簽發了自己的根憑證 ISRG Root X1。IdenTrust 的 DST Root X3 原定於 2021 年 9 月到期,因此該交叉簽章將會失效。
Let's Encrypt 在 Android 7.1.1 版(2016 年 12 月)被加入 Android 的 CA 儲存區,而當時有 33.8% 的活躍 Android 使用者仍在使用較舊版本;Ars 估計這約為 8.45 億人,其根憑證儲存區凍結在 2016 年。若憑證過期,將導致使用 Android 系統儲存區的應用程式與瀏覽器無法運作。
Let's Encrypt 宣布,IdenTrust 已同意從 DST Root CA X3 對 ISRG Root X1 簽發為期三年的交叉簽章,其效期將超越該根憑證自身的到期日。此舉之所以可行,是因為 Android 刻意不對信任錨點強制執行到期日;根憑證儲存區是以金鑰而非完整憑證的形式保存這些錨點。ISRG 與 IdenTrust 諮詢了稽核人員與根憑證計畫,而訂閱者將同時取得兩條憑證鏈。
達成了什麼
讓 IdenTrust 簽發一份比其自身根憑證更長壽的交叉簽章,因為 Android 從不檢查信任錨點的到期日。
為何有效
舊版 Android 手機無法透過中央更新,因此新的根憑證無法送達這些裝置。
Android 的根憑證儲存區將信任錨點視為金鑰,並忽略其 notAfter 欄位。
交叉簽章是依據錨點的金鑰進行驗證,因此其效期可以超越錨點憑證本身。
與稽核人員及根憑證計畫確認後,證實該方案並未引發合規疑慮。
可借鏡之處
深入了解看似最嚴格的用戶端實際上如何進行驗證;一條它從未執行的規則,可能正是變通之道。
後續發展
新的交叉簽章原定於 2024 年初到期,Let's Encrypt 希望屆時 2016 年及更早版本的 Android 都已淘汰。截至該文章發表時,Android 4.2 的市占率為 0.8%。Ars 報導的是該計畫的宣布內容,並未報導 2021 年 9 月的實際結果。
追溯依據
參考來源
- Let's Encrypt comes up with workaround for abandonware Android devices Ars Technica · arstechnica.com ·