COMIC CLASSROOM

硬體安全入門第 4 / 5 課

FIPS 140-3 漫畫小教室:從驗證流程到 LV3 硬體安全

這篇把 FIPS 140-3 當成密碼模組的安檢制度:先看它驗的是什麼,再用 Level 1、2、3 理解封裝、防拆、金鑰保護與半導體安全設計的差異。

11 分鐘

先把 FIPS 140-3 想成密碼模組的安檢制度

FIPS 140-3 不是在說某個演算法夠不夠強,而是在檢查一個密碼模組到底有沒有被正確設計、實作、保護與操作。你可以把它想成密碼產品進場前的安檢。

這篇會用漫畫把驗證流程與 Level 1 到 Level 3 的差異講清楚:有些等級重視演算法與文件,有些等級進一步要求防拆、金鑰保護與角色權限。

如果你是硬體或晶片設計者,重點不是只問『有沒有 AES』,而是問:金鑰怎麼進來、怎麼存、怎麼清除、誰能操作、被拆或被攻擊時系統會怎麼反應。

FIPS 140-3 常被客戶、稽核、採購合約用一句話帶過:「你的 crypto module 要有 FIPS。」但對 RD 來說,真正麻煩的不是把 AES、SHA、RSA 放進晶片或軟體,而是要把模組邊界、角色權限、金鑰生命週期、環境防護、測試證據全部講清楚,最後還要通過 CSTL 實驗室與 CMVP 審查。

這篇小教室依照 8 張漫畫順序,把 FIPS 140-3 當成一個工程專案來看:先知道驗證對象是「模組」不是整台產品,再理解流程、11 個安全領域、Level 1 到 Level 3 的差異,最後回到專案決策:該選哪個等級,才不會花錯錢又卡在驗證。

1. FIPS 140-3 是什麼:驗的是模組,不是口號

FIPS 140-3 小教室第一頁,介紹 FIPS 140-3 是美國與加拿大採用的密碼模組安全驗證標準
Page 1 / 8 - FIPS 140-3 的核心不是自稱 compliant,而是取得 CMVP 可查的 validated certificate。

第一頁先把最大觀念釐清:FIPS 140-3 驗證的對象是 cryptographic module,不是整個產品。模組可以是硬體 IC、軟體 library、firmware,或硬體加軟體的混合邊界;重點是它在明確邊界內執行密碼功能,並保護 CSP(Critical Security Parameters,例如金鑰、seed、internal secret)。

所以「我們用了 AES」不等於 FIPS validated。「我們的演算法有 CAVP 測試」也還不等於模組 validated。演算法測試只是前置條件,真正上榜要看 CMVP certificate。這對晶片公司很重要:客戶採購常問的是證書編號、module version、operational environment,而不是你內部 block diagram 多漂亮。

另外,NIST CMVP 已公告 FIPS 140-2 轉換時程:FIPS 140-2 active modules 在 2026 年 9 月 21 日後會移到 Historical List,新案規劃應以 FIPS 140-3 為主。這代表現在做新 SoC、HSM、secure element、firmware crypto library,規格與文件一開始就要用 140-3 思維設計。

2. 驗證怎麼跑:它是一場馬拉松專案

FIPS 140-3 小教室第二頁,說明廠商、CSTL 實驗室、CMVP 審查與上榜流程
Page 2 / 8 - FIPS 驗證要經過文件準備、CSTL 測試、CMVP 審查與 validated modules list 上榜。

FIPS 140-3 的流程比較像產品認證加設計稽核。廠商先準備 Security Policy、有限狀態模型、設計文件、測試計畫、CAVP algorithm certificate 等材料,接著送到 CSTL 認可實驗室測試,再由 CMVP 審查報告與文件。最後拿到 certificate 並被列在 validated modules list,才是客戶可以引用的正式結果。

Security Policy 是最核心的公開文件。它會說明 module boundary、approved mode、角色與服務、金鑰輸入輸出、self-test、zeroization、operational environment 等。寫得不清楚,後面測試和審查都會反覆補件。

時程上不要太樂觀。圖上抓 12 到 24 個月是務實提醒:準備文件、debug 實驗室測試、排隊審查都可能拖長。對 RD director 來說,這應該在產品規格階段就拉進 schedule,而不是 tape-out 後才補一句「順便做 FIPS」。

3. 全局地圖:四個等級與 11 個安全領域

FIPS 140-3 小教室第三頁,說明四個等級與 11 個安全領域
Page 3 / 8 - 等級不是單看一項,而是 11 個安全領域分別評估後,總評取最低分。

第三頁是整套 FIPS 140-3 的地圖。Level 1 到 Level 4 不是單一開關,而是跨 11 個安全領域逐項評分,例如 module specification、interfaces、roles and services、software/firmware security、operational environment、physical security、non-invasive security、SSP management、self-tests、life-cycle assurance、mitigation of other attacks。

最容易被低估的是「短板決定等級」。如果 10 個領域都做到 Level 3,但 physical security 只有 Level 2,整體證書就只能是 Level 2。這對硬體安全 IC 很關鍵,因為你不能只把 crypto engine 做強,卻讓封裝、防拆、側通道、金鑰歸零或 SSP 管理拖後腿。

實務上,Level 1 常見於軟體 crypto library 或 SoC 內部 crypto engine;Level 2 開始要有拆封留痕與角色分離;Level 3 則要面對物理入侵、身份認證、trusted channel、環境防護與更嚴格的金鑰保護。

4. Level 1:做對演算法,開機先自檢

FIPS 140-3 小教室第四頁,介紹 Level 1 的 approved algorithms、production-grade components 與 self-test
Page 4 / 8 - LV1 是所有等級的地基:approved algorithms、production-grade module、pre-operational self-test。

Level 1 可以把它想成「密碼學與基本工程紀律要做對」。演算法要是 approved algorithm,並通過 CAVP;元件要是 production-grade;模組啟動後要先做 pre-operational self-test,確認關鍵功能沒有壞掉,通過後才提供密碼服務。

這裡沒有要求 tamper-evident seal、tamper sensor 或特殊防拆封裝,所以很多軟體 library、手機作業系統內建 crypto module、一般 SoC crypto engine 會從 Level 1 開始。但「不要求防拆」不代表隨便做:approved mode、錯誤狀態、known-answer test、金鑰管理、文件一致性仍然會被檢查。

對 IC 設計來說,Level 1 是最常被拿來當 baseline 的等級。它適合軟體或一般晶片內建加密引擎,但若客戶威脅模型包含實體接觸、拆機、維修場域或攻擊者拿得到設備,就要往 Level 2 或 Level 3 評估。

5. Level 2:拆過要留痕,角色要分開

FIPS 140-3 小教室第五頁,介紹 Level 2 的 tamper-evidence 與 role-based authentication
Page 5 / 8 - LV2 的哲學不是擋住所有攻擊,而是讓拆封、破壞、角色濫用留下可見證據。

Level 2 的重點是 tamper-evidencerole-based authentication。Tamper-evidence 不是要讓攻擊者完全拆不開,而是拆過會留下肉眼可見或可檢查的痕跡,例如防拆封條、不透明外殼、防拆塗層或防拆漆。這讓營運者能在維修、盤點、稽核時發現設備被動過。

角色分離則要求至少區分 Crypto Officer 與 User。Crypto Officer 可以做設定、管理金鑰、調整模組參數;User 則只能使用被允許的密碼服務。這個要求看起來像軟體權限管理,但硬體產品也要反映在命令集、debug port、管理介面、factory mode 與 secure boot policy 上。

Level 2 很適合企業級防火牆、VPN 設備、入門 HSM、網通設備等。它提供比 Level 1 更好的稽核可信度,但還不是「抗物理入侵」等級。換句話說,LV2 的證據是「你拆過我知道」,不是「你拆我也拿不到」。

6. Level 3:進得來,但什麼都帶不走

FIPS 140-3 小教室第六頁,介紹 Level 3 的 tamper response、identity-based authentication、trusted channel 與 EFP/EFT
Page 6 / 8 - LV3 的核心是偵測到高風險狀態時主動反應,讓 CSP 立即歸零或不可取得。

Level 3 開始進入硬體安全產品最有感的領域:tamper-resistance 加 tamper-response。攻擊者可能開蓋、鑽孔、探針、雷射、改電壓、改溫度;模組要有偵測手段,並在觸發時保護 CSP,常見做法就是 zeroization,把金鑰與敏感參數清掉到不可恢復。

身份認證也從角色提升到個人。不是只知道「你是 User 還是 Crypto Officer」,而是要知道「你是哪一個被授權的人」。因此可能用密碼、token、憑證、生物辨識或 2FA,搭配權限與 audit trail。

Trusted channel 是另一個硬體 RD 要特別注意的地方:明文 CSP 進出不能走一般資料通道,要走專用、可信、實體隔離或受保護的通道。這會影響 pin mux、debug interface、secure provisioning、factory personalization、HSM key injection port 的設計。

EFP/EFT 則把環境攻擊納入防護:低溫、高溫、電壓異常、clock glitch、電磁或其他故障注入,都可能讓晶片跑到非預期狀態。Level 3 的哲學是:你可以把攻擊者想得很會花招,但模組要在高風險事件發生時保護金鑰。

7. Level 1/2/3 對照:LV3 不是貼貼紙,是從設計開始

FIPS 140-3 小教室第七頁,對照 Level 1、Level 2、Level 3,並介紹 non-invasive security
Page 7 / 8 - LV3 要把 tamper mesh、環境感測、Root of Trust、zeroization、self-test、側通道防護一起規劃。

第七頁把 Level 1、Level 2、Level 3 放在同一張表上看,最重要的是不要把 LV3 誤會成 LV2 加一張防拆貼紙。LV3 是系統級安全設計:tamper mesh、電壓/溫度/clock 感測、PUF/OTP/secure boot root of trust、zeroization circuit、KAT/self-test、側通道防護都要互相配合。

FIPS 140-3 相較 140-2 更正式納入 non-invasive security。這代表功耗分析、電磁分析、timing analysis 等側通道攻擊,不再只是研究論文或客戶額外要求,而是高等級模組必須面對的驗證項目。封膠、防拆漆只能處理「打開看」的問題,處理不了「不打開也能量測」的問題。

因此若目標是 Level 3,設計初期就要把 threat model、sensor placement、shielding、routing、randomization、masking、secure erase path、debug disable、test mode lock 都納入 architecture review。後期補救通常昂貴,而且常常補不到 certification 需要的證據鏈。

8. 避坑指南:等級不是軍備競賽,而是威脅模型的最佳解

FIPS 140-3 小教室第八頁,整理常見誤區與等級決策流程
Page 8 / 8 - 選等級要看合約要求、攻擊者能力、設備部署場景、成本與時程,不是越高越好。

最後一頁整理四個大坑。第一,「用了 AES」不等於 FIPS;第二,「改一行 code」或改 BOM、硬體版本、韌體版本,都可能牽動重新評估;第三,「三個月拿證」通常不現實;第四,「等級越高越好」也不一定對,因為成本、時程與風險要平衡。

正確決策流程應該從合約與威脅模型開始。如果客戶或法規指定等級,就照指定等級規劃。如果沒有指定,就問攻擊者拿不拿得到設備:純軟體或攻擊者碰不到內部模組,Level 1 可能足夠;設備在機房、網路或管理場域,且需要角色分離與留痕,Level 2 常是合理選項;設備會落入攻擊者手中,例如支付終端、智慧卡、邊緣設備、軍規或國防安全晶片,Level 3 才值得投入。

對半導體團隊來說,最實用的結論是:FIPS 140-3 不是驗功能,而是驗整個密碼模組在生命週期內是否可信。越早把模組邊界、SSP 管理、測試模式、debug port、production provisioning、secure boot、side-channel countermeasure、文件證據一起設計好,後面越不會被認證流程反咬。

如果模組內使用 PUF、OTP、secure NVM 或硬體 root of trust,也要注意「primitive」和「validated module」的差別。以 eMemory NeoPUF 為例,它可以支援晶片唯一身分、不可預測回應、authentication、security key generation 等安全用途;但放進 FIPS 140-3 專案時,驗證重點會變成:NeoPUF 產生或保護的 secret 是否在模組邊界內?helper data 或 enrollment data 是否暴露敏感資訊?key 如何被 derive、使用、zeroize?self-test 或 health check 如何定義?這些才是 FIPS 會追問的工程證據。

所以,把 NeoPUF、TRNG、OTP、AES、SHA、secure boot ROM 都列在 block diagram 上還不夠。FIPS 140-3 會要求團隊把這些元件串成一個可被驗證的生命週期:製造、enrollment、personalization、field operation、firmware update、tamper response、error state、退役與金鑰清除。這也是硬體安全 IP 和認證工程真正交會的地方。

一句話收斂

FIPS 140-3 的本質不是「有沒有加密」,而是「你的加密模組能不能在明確威脅模型下,被第三方驗證為可信」。Level 1 做對基礎,Level 2 留下證據,Level 3 主動防護與反應;選哪一級,要看客戶合約、部署場景與攻擊者能力,而不是看誰喊得最大聲。

官方文件與參考連結

這篇文章是工程解讀;正式規格、驗證要求與清單仍以 NIST / CMVP 官方文件為準。做產品規劃或客戶回覆時,建議直接引用以下來源:

學習指南

硬體安全入門

0 / 5

先備知識

  • 密碼服務與模組邊界

我學會了什麼

  • 說明驗證涵蓋範圍
  • 比較安全等級
  • 辨識邊界與金鑰管理風險

本課術語

查看術語字典 →

延伸閱讀

課後小測驗

1. 驗證的對象是什麼?
2. 安全等級越高一定越適合產品嗎?
3. 為何要及早定義模組邊界?

讀到這裡,辛苦了。

把概念帶走,比把術語背走更重要。

#FIPS 140-3#FIPS 140#Hardware Security#硬體安全#Cryptographic Module#CMVP#CAVP#IC Security#Security Level#Tamper Evidence#Tamper Response#Side Channel#Crypto Module#漫畫小教室