作者分析

台灣網路認證 TWCA:24 張 CA 憑證序號只有 24 bit 隨機

外部研究者向 Mozilla 通報:TWCA 簽發的 24 張 CA 憑證(含 6 張 TLS 簽發 CA、2 張根憑證交叉簽章)的 16 位元組序號結構中,最多只有 3 個位元組(24 bit)為隨機值,其餘為固定前綴、日期與計數器。CA/Browser Forum 自 2016 年 9 月起要求至少 64 bit 的 CSPRNG 輸出;研究者確認這個結構從 2011 年沿用至 2024 年。TWCA 已確認事件並承諾於 2026 年 11 月 12 日前提交完整事件報告,Mozilla 社群討論持續進行中。

30 秒看懂
  • 2026 年 10 月 29 日 19:31 UTC(台灣時間 10 月 30 日 03:31),外部研究者 Prasanth Sundararajan 與 Dr. Angelique Faye Loe 向 Mozilla Bugzilla 提交公開通報:TWCA 簽發的 24 張 CA 憑證的序號結構中,最多只有 24 bit 為隨機值,不符合 CA/Browser Forum Baseline Requirements 自 2016 年 9 月 30 日起要求的「至少 64 bit CSPRNG 輸出」。24 張憑證中,18 張簽發於 2016 年 9 月 30 日之後。
  • 序號結構為:0x40(1 位元組)| notBefore 日期(4 位元組,如 20230223)| 六個零位元組 | 計數器(2 位元組)| 隨機值(3 位元組)。研究者從 CCADB 與 TWCA CRL 取得憑證,以簽章驗證確認為 TWCA 根金鑰簽發,並以 OpenSSL 交叉驗證序號解碼。24 張憑證涵蓋 2011-06-10 至 2024-09-06。其中 10 張目前受信任且未撤銷的 CA 憑證(包含 6 張 TLS 簽發 CA 與 2 張交叉簽章)由 Mozilla 與 Chrome 信任,另 2 張 S/MIME CA 僅由 Mozilla 信任。
  • 研究者明確表示:無金鑰洩露、憑證濫用或利用的證據;短序號本身在 SHA-256 簽章下不足以偽造憑證;對 TWCA 的 1,631 個訂戶憑證序號抽查未發現問題。研究者引述 BR 4.9.1.2 第 5 項(中繼 CA 未依 BR 或 CP/CPS 簽發時,應於 7 天內撤銷)與 4.9.5(24 小時內初步報告),並表示這是他們的理解、非決定。TWCA 於 2026-10-29 23:44:57 UTC 回應確認事件、正在調查,並承諾於 2026/11/12 19:00 UTC 前提交完整事件報告。

發生了什麼

想像一個憑證機構(CA)簽發憑證時,每張憑證都有一個序號。這個序號的作用之一,是歷史上用來抵禦雜湊碰撞攻擊:如果攻擊者能找到兩個內容不同、但雜湊值相同的憑證,就可能偽造簽章。序號中足夠多的隨機位元,可以讓這種攻擊更難進行。

2026 年 10 月 29 日 19:31 UTC(台灣時間 10 月 30 日 03:31),外部研究者 Prasanth Sundararajan 與 Dr. Angelique Faye Loe 向 Mozilla Bugzilla 提交公開通報:台灣網路認證 TWCA 簽發的 24 張 CA 憑證的序號結構中,最多只有 24 bit 為隨機值,不符合 CA/Browser Forum Baseline Requirements(以下簡稱 BR)自 2016 年 9 月 30 日起要求的「至少 64 bit CSPRNG 輸出」。

來源:本文整理自 Mozilla Bugzilla Bug 2087236,該 bug 於 2026 年 10 月 29 日 19:31:51 UTC 建立,為公開通報。研究者在報告中註明「This report is filed by external researchers, not by the CA.」,並附上完整方法、憑證清單與時間軸。

24 張憑證中,18 張簽發於 2016 年 9 月 30 日之後。其中 10 張目前受信任且未撤銷(含 6 張 TLS 簽發 CA 與 2 張交叉簽章)由 Mozilla 與 Chrome 信任,另 2 張 S/MIME CA 僅由 Mozilla 信任。

研究者明確表示:無金鑰洩露、憑證濫用或利用的證據;短序號本身在 SHA-256 簽章下不足以偽造憑證;對 TWCA 的 1,631 個訂戶憑證序號抽查未發現問題。

TWCA 已確認此事件,並於 2026 年 10 月 29 日 23:44:57 UTC 回應表示正在調查,承諾於 2026 年 11 月 12 日 19:00 UTC 前提交完整事件報告。

序號結構:24 bit 隨機,其餘是日期與計數器

研究者在 bug 報告中描述,受影響的 24 張 CA 憑證序號為 16 位元組(128 bit),結構如下:

0x40 | YYYYMMDD | (six zero bytes) | counter (2 bytes) | random (3 bytes)
  • 0x40(1 位元組):固定前綴
  • YYYYMMDD(4 位元組):憑證的 notBefore 日期,以 32 位元整數表示
  • 六個零位元組(6 位元組,即 00 00 00 00 00 00):全為零
  • counter(2 位元組):計數器
  • random(3 位元組,24 bit):隨機值

舉例,序號 400134b04f0000000000000004aa7b0a 解碼為:

  • 0134b04f = 20230223(notBefore 日期)
  • 00 00 00 00 00 00 固定為零
  • 0004 計數器
  • aa7b0a(24 bit)隨機值

在最後 16 個十六進位數字中,6 個永遠是零、4 個是計數器、只有 6 個(3 位元組 = 24 bit)看起來是隨機的。

BR 要求:自 2016 年 9 月起至少 64 bit CSPRNG

CA/Browser Forum Baseline Requirements 自 2016 年 9 月 30 日(Ballot 164 生效)起,要求 CA 憑證序號必須:

「non-sequential Certificate serial numbers greater than zero (0) containing at least 64 bits of output from a CSPRNG」

研究者在報告中引用 BR v1.x section 7.1 與 BR v2.x section 7.1.2(各 CA 憑證 profile 中),並表示:

「We checked 73 archived BR versions from 1.3.7 to the current text and the clause is present in every one.」

TWCA CYBER CA CPS v1.1 section 7.1(2024 年 2 月 29 日生效,當 2024-09-06 憑證簽發時有效)也承諾:

「This CA generates non-sequential serial numbers greater than zero containing at least 64 bits of output from Cryptographically Secure Pseudorandom Number Generator (CSPRNG).」

受影響憑證:10 張目前受信任且未撤銷

24 張憑證中,10 張目前受信任且未撤銷:

  • 6 張 TLS 簽發 CA:由 Mozilla 與 Chrome 信任
    • TWCA SSL Certification Authority(2023-02-23、2024-09-06 各一張)
    • TWCA EVSSL Certification Authority(2023-02-23、2024-09-06 各一張)
    • TWCA Secure SSL Certification Authority(2023-08-18、2023-10-16 各一張)
  • 2 張交叉簽章:TWCA CYBER Root CA 與 TWCA Global Root CA G2 的交叉簽章(2022-12-09)
  • 2 張 S/MIME CA:TWCA InfoSec User CA(2024-03-15、2024-09-06),僅由 Mozilla 信任

另有 2 張自簽根憑證(TWCA CYBER Root CA 與 TWCA Global Root CA G2,2022-11-22)也使用相同結構。

1 張憑證(TWCA Secure SSL Certification Authority,2023-04-13)已於 2023-08-17 撤銷,原因為 superseded。

研究者列出 6 張目前受信任且未撤銷的 TLS 簽發 CA,並附上序號與 SHA-256 指紋:

notBeforeSubject CNIssuer CNSerial numberSHA-256
2023-02-23TWCA SSL Certification AuthorityTWCA CYBER Root CA400134b04f0000000000000003e324ac01af2324...
2023-02-23TWCA EVSSL Certification AuthorityTWCA CYBER Root CA400134b04f0000000000000004aa7b0af76e3339...
2023-08-18TWCA Secure SSL Certification AuthorityTWCA Global Root CA400134b2a20000000000000ccf71354cc6e96a17...
2023-10-16TWCA Secure SSL Certification AuthorityTWCA Global Root CA400134b3680000000000000cd0aa08ec1a2c75fd...
2024-09-06TWCA SSL Certification AuthorityTWCA CYBER Root CA400134da0a0000000000000006aac553815c549c...
2024-09-06TWCA EVSSL Certification AuthorityTWCA CYBER Root CA400134da0a000000000000000782d7a0cac9fd0c...

TWCA 過去的說明:訂戶憑證序號

研究者在報告中提到,TWCA 曾於 2021 年 11 月 2 日在 Mozilla dev-security-policy 郵件群組表示:

「the last 8 bytes of each serial number are randomly generated by HSM, complying with the 64-bit entropy requirement」

但該說明是在訂戶憑證(subscriber certificates)的討論中作出。研究者抽查 TWCA 的 1,631 個訂戶憑證序號(取自 29 個 TWCA CRL),發現訂戶憑證使用不同的序號結構(前導位元組為 47,128 bit 中有 90 個位元變化),未發現問題。

研究者表示:「The CA certificates above do not follow the layout described in that statement.」訂戶憑證與 CA 憑證似乎透過不同的序號產生路徑。

序號熵為什麼重要?

憑證序號中足夠的隨機位元,歷史上是用來抵禦雜湊碰撞攻擊的一道防線。如果攻擊者能找到兩個內容不同、但雜湊值相同的憑證(例如利用 MD5 或 SHA-1 的碰撞),就可能偽造 CA 的簽章。序號中的隨機位元讓碰撞變得更難。

2008 年,研究者展示了如何利用 MD5 碰撞偽造 CA 憑證(見 MD5 considered harmful)。BR 的 64 bit 要求,就是為了在未來雜湊函數出現弱點時,提供額外的安全邊際。

不過,研究者在報告中明確表示:

「A short serial number does not by itself allow forgery with SHA-256 signatures.」

目前 TWCA 的憑證使用 SHA-256,該演算法目前對碰撞攻擊有 128 bit 的安全強度。研究者也說明:

「We have no evidence of key compromise, certificate misuse or any exploitation.」

BR 4.9.1.2:撤銷中繼 CA 的條件

研究者在報告中引述 BR section 4.9.1.2 item 5,該條款要求:

「The Issuing CA SHALL revoke a Subordinate CA Certificate within seven (7) days if ... The Issuing CA is made aware that the Certificate was not issued in accordance with or that Subordinate CA has not complied with this document or the applicable Certificate Policy or Certification Practice Statement」

研究者表示:

「We understand that BR section 4.9.1.2 item 5 ... may apply.」

並補充:「This is their reading, not a decision.」

同時,研究者也提到 BR section 4.9.5,該條款要求 CA 在收到 Certificate Problem Report 後 24 小時內提交初步報告。

TWCA 的回應與承諾

TWCA 於 2026 年 10 月 29 日 23:44:57 UTC 在 Bug 2087236 comment 3 回應:

「TWCA has acknowledged this incident and is currently conducting an investigation. A Full Incident Report will be updated within two weeks (by 2026/11/12 19:00 UTC).」

其他評論

Bug 報告中另有兩則評論:

  • Comment 1([email protected],2026-10-29 19:33:34 UTC):「Yeah the situation is worse than that, glad someone else is looking at this though.」
  • Comment 2([email protected],2026-10-29 20:02:11 UTC):研究者之一補充,他們也參照 TWCA WebTrust 稽核報告,近期稽核明確列出序號並顯示低位元組的零填充。

時間軸:從 2011 年到 2026 年

以下依 bug 報告中的時間軸(全部 UTC)整理:

  • 2016-09-30:BR 序號要求生效(Ballot 164:至少 64 bit CSPRNG 輸出)
  • 2021-11-02:TWCA 在 dev-security-policy 表示訂戶憑證序號的最後 8 位元組由 HSM 隨機產生(關於訂戶憑證的討論)
  • 2022-11-22:TWCA CYBER Root CA 與 TWCA Global Root CA G2 自簽憑證簽發(計數器皆為 0001)
  • 2022-12-09:兩張根憑證的交叉簽章由 TWCA Global Root CA 簽發(計數器 0ccd、0ccc)
  • 2023-02-23:多張中繼 CA 簽發(計數器 0003、0004)
  • 2023-04-13:TWCA Secure SSL Certification Authority 簽發(計數器 0cce),後於 2023-08-17 撤銷(原因:superseded)
  • 2023-09-15:BR 2.0.0 生效,序號條款移至 section 7.1.2 各 certificate profile
  • 2024-02-29:TWCA CYBER CA CPS v1.1 生效,section 7.1 承諾至少 64 bit CSPRNG
  • 2024-09-06:TWCA SSL Certification Authority、TWCA EVSSL Certification Authority 與 TWCA InfoSec User CA 簽發(最後已知受影響憑證)
  • 2026-10-29 09:16–09:21 UTC:研究者從 CCADB 取得 36 筆 TWCA 憑證紀錄與 PEM、從 TWCA CRL 取得其他憑證,並以簽章驗證確認;24 張 CA 憑證被確認使用該序號結構
  • 2026-10-29 19:31 UTC(台灣時間 10-30 03:31):Bug 2087236 建立
  • 2026-10-29 23:44:57 UTC:TWCA 回應確認事件並承諾 2026-11-12 前提交完整報告

對台灣使用者的意義

台灣網路認證 TWCA 是台灣的憑證機構,許多台灣的網站、政府系統與企業使用 TWCA 簽發的 SSL/TLS 憑證。

目前無需使用者採取行動

研究者明確表示:

  • 無金鑰洩露
  • 無憑證濫用或利用的證據
  • 短序號在 SHA-256 下本身不足以偽造憑證
  • TWCA 的訂戶憑證(你的網站憑證)未發現問題

因此,若你的網站或系統使用 TWCA 簽發的憑證,目前無需採取行動。

等待 TWCA 的完整報告

TWCA 承諾於 2026 年 11 月 12 日 19:00 UTC 前提交完整事件報告。該報告應包含:

  • 根本原因分析(Root Cause Analysis)
  • 經驗教訓(Lessons Learned)
  • 行動項目(Action Items)

Mozilla 與 CA/Browser Forum 社群將依該報告與後續討論,決定是否需要 TWCA 採取進一步行動(例如撤銷並重新簽發中繼 CA、調整序號產生方式)。

關注後續決策

關注以下管道的後續公告:

若 Mozilla 或 Chrome 發布信任政策變更、或 TWCA 需要重新簽發中繼 CA,會有正式公告與轉換期。屆時依 TWCA 或你的服務供應商指示更新憑證鏈即可。

證據等級

本文主要依據公開的 Mozilla Bugzilla Bug 2087236 與研究者報告。

你可以學到什麼

站在使用者與網站管理者的角度:

lessons本案的 6 個教訓
  1. 01
    憑證序號中的隨機位元,歷史上是抵禦雜湊碰撞攻擊的防線;雖然 SHA-256 目前安全,但 BR 要求至少 64 bit 是為了未來的安全邊際。
  2. 02
    CA 憑證與訂戶憑證可能使用不同的序號產生路徑;TWCA 的訂戶憑證(你的網站憑證)使用不同結構、未發現問題。
  3. 03
    外部研究者可透過公開的 CCADB、CRL 與簽章驗證,分析 CA 的憑證結構並發現不符合 BR 的情況。
  4. 04
    短序號本身在 SHA-256 簽章下不足以偽造憑證;無金鑰洩露或利用證據時,不需恐慌。
  5. 05
    BR 4.9.1.2 要求 7 天內撤銷不符 BR 的中繼 CA,但是否適用本案例,由 Mozilla 與社群決定。
  6. 06
    關注 TWCA 2026-11-12 的完整事件報告與後續決策;若需要轉換期,會有正式公告與足夠時間。
keywords重點學習:最需要學習的 10 個關鍵字9 個
  1. 01
    CA 憑證序號(Certificate Serial Number)
    每張憑證的唯一識別碼;歷史上用來抵禦雜湊碰撞攻擊,需足夠隨機。
  2. 02
    CSPRNG(Cryptographically Secure Pseudorandom Number Generator)
    密碼學安全的偽隨機數產生器;BR 要求序號至少包含 64 bit 的 CSPRNG 輸出。
  3. 03
    CA/Browser Forum Baseline Requirements(BR)
    公開信任 CA 必須遵守的規範;2016 年 9 月起要求序號至少 64 bit CSPRNG。
  4. 04
    TWCA(台灣網路認證)
    台灣的憑證機構;本次通報的主角。
  5. 05
    Mozilla Bugzilla
    Mozilla 的公開 bug 追蹤系統;CA 合規問題通常在此通報與討論。
  6. 06
    CCADB(Common CA Database)
    Mozilla、Microsoft、Google、Apple 共同維護的 CA 資料庫;研究者從此取得憑證紀錄。
  7. 07
    中繼 CA(Subordinate CA / Intermediate CA)
    由根 CA 簽發、用來簽發終端實體憑證的 CA;本次通報的 24 張憑證多為中繼 CA。
  8. 08
    SHA-256
    TWCA 憑證使用的雜湊演算法;目前對碰撞攻擊有 128 bit 安全強度,短序號本身不足以偽造。
  9. 09
    BR 4.9.1.2
    要求 7 天內撤銷不符 BR 的中繼 CA;研究者引述為「may apply」,實際由社群決定。
try today今天就可以來試試約 5 分鐘

全部唯讀,不改任何設定;做完你會知道自己有沒有同樣的破口。

  1. 檢視你的網站憑證鏈,確認是否使用 TWCA 簽發
    在瀏覽器中打開你的網站 → 點擊網址列的鎖頭圖示 → 檢視憑證 → 查看憑證路徑
    看到什麼代表什麼:若 Issuer 或憑證鏈中包含「TWCA」字樣,代表使用 TWCA 簽發的憑證。目前無需採取行動,但可關注後續公告。
  2. 訂閱 Mozilla Bugzilla Bug 2087236,關注後續討論
    看到什麼代表什麼:登入 Bugzilla 並在 bug 頁面點擊「Follow」,有新評論或 TWCA 提交報告時會收到通知。
  3. 檢查 TWCA 官方網站是否有最新公告
    前往 https://www.twca.com.tw/
    看到什麼代表什麼:TWCA 可能在官網發布中文說明或行動項目。

後續發展

本文撰寫時(2026-11-02),TWCA 的完整事件報告尚未提交(承諾於 2026-11-12 19:00 UTC 前)。Mozilla 與 CA/Browser Forum 社群的討論仍在進行中。

若有重大進展(例如 Mozilla 或 Chrome 發布信任政策變更、TWCA 提交報告、社群決定是否需要撤銷中繼 CA),本站將另行撰文追蹤。

記住:研究者明確表示無金鑰洩露、無憑證濫用、無利用跡象。若你的網站使用 TWCA 憑證,目前無需恐慌或採取行動。等待 TWCA 的完整報告與後續決策即可。

來源

分享
精選拆解直送信箱

每篇新文章一封:三點摘要、關鍵字定義、今天能做的一件事。

延伸閱讀

作者分析

八位元的信任鏈:eMudhra CA 的金鑰在毫秒內被破解

一家憑證機構的私鑰只有 8 bit,等於從 256 種可能裡選一個。這不是金鑰被偷,而是從第一天起任何人只要看到證書,用筆電就能在不到一秒內還原私鑰。這個漏洞存在了 17 個月,波及 TLS 與程式碼簽章兩類憑證,影響範圍從瀏覽器到 IoT 裝置、從 CI/CD 到套件管理器。這篇拆解資安研究員 Scott Helme 的分析,談「無法圍堵」是什麼意思。

  • 2026/10/23
  • 每日拆解