TW FidO
TW FidO 是台灣政府高信任身份服務裡很值得單獨理解的一塊。
它常被放在「行動自然人憑證」底下,但如果只把它理解成:
自然人憑證的手機版其實還不夠。
TW FidO 的核心體驗是:
免插卡
免帳號密碼
使用行動自然人憑證 APP 快速登入政府服務它把自然人憑證的高信任身份基礎、行動裝置、FIDO2 身分識別、數位簽章能力和政府服務介接整合在一起。
所以這篇要回答:
- TW FidO 和行動自然人憑證是什麼關係?
- 它和一般 Passkey / WebAuthn 有什麼相似與不同?
- 為什麼它能免插卡、免帳號密碼?
- 服務端應該怎麼信任它?
- 登入、簽章、授權、session 要怎麼分開?
一、 一句話回答
如果面試官問:
TW FidO 是什麼?和一般 FIDO2 / Passkey 有什麼不同?
可以先回答:
TW FidO 是台灣內政部行動自然人憑證服務中的高信任行動身份驗證方式,讓民眾以自然人憑證註冊會員後,透過行動自然人憑證 APP 免插卡、免帳號密碼登入多項政府服務。它採用 FIDO2 身分識別能力,因此和 WebAuthn / Passkey 一樣有公私鑰 challenge-response、裝置驗證、抗釣魚等概念;但 TW FidO 不是一般商業網站自行發的 passkey,而是建立在台灣自然人憑證與內政部官方身份服務之上,並可支援數位簽章、政府服務介接與高信任身份場景。工程上應把官方驗證結果、本地 session、業務授權與文件簽章分開處理。
短一點可以說:
TW FidO 是政府自然人憑證體系中的 FIDO2 行動身份驗證服務,
不是單純的 App OTP,也不是一般網站自己的 Passkey。二、 官方定位
我的 E 政府頁面描述 TW FidO:
以自然人憑證註冊會員,註冊後免插卡、免帳號密碼,即可使用多項政府服務。內政部行動自然人憑證系統首頁也列出幾個特點:
- 安全:採用行動裝置的生物特徵識別與加解密技術。
- 便利:免除自然人憑證插卡驗證步驟,透過 APP 快速登入數位服務。
- 多元應用:可用於報稅、健保資料查詢、戶籍謄本申請等政府線上服務。
- 機關及企業可介接:提供身分驗證、數位簽章及加解密等功能。
所以 TW FidO 可以理解成:
以自然人憑證作為初始信任,
以行動 APP 和 FIDO2 技術改善登入體驗,
提供政府與特定服務高信任身份驗證。三、 和行動自然人憑證的關係
在使用者語境裡,常會看到:
行動自然人憑證
TW FidO
行動自然人憑證 APP這些詞高度相關。
可以這樣拆:
| 名稱 | 偏向 |
|---|---|
| 行動自然人憑證 | 整個行動載具自然人憑證服務 |
| TW FidO | 強調 FIDO/FIDO2 身分識別與免插卡登入的服務名稱 |
| 行動自然人憑證 APP | 使用者操作的手機應用程式 |
前一篇把行動自然人憑證當作大概念。
這篇把 TW FidO 聚焦在:
FIDO2 身分識別 + 政府服務登入 + 官方信任模型。四、 初始註冊:信任從哪裡來
TW FidO 不是下載 APP 就自動具備高信任身份。
它的初始信任通常來自自然人憑證。
官方頁面說明個人申辦方式時,列出:
- 有自然人憑證:下載 APP,備妥自然人憑證 IC 卡,輸入身分證統一編號及 PIN 碼,完成手機靠卡感應。
- 無自然人憑證:下載 APP,攜帶身分證至戶政事務所進行臨櫃申辦。
也就是說,TW FidO 的信任建立流程大致是:
先完成高信任身份確認
-> 綁定行動裝置
-> 後續用 APP 完成登入與驗證這點和一般網站 passkey 很不一樣。
一般 passkey 通常是:
使用者已登入網站帳號 -> 新增 passkey。TW FidO 則有政府身份與自然人憑證作為初始信任背景。
五、 登入流程
使用者體驗可能是:
政府服務選擇 TW FidO
-> 畫面出現 QR Code 或登入請求
-> 使用行動自然人憑證 APP 掃描/確認
-> 手機完成本機驗證
-> 政府服務登入成功概念流程:
重點:
介接服務信任的是 TW FidO / 官方服務回傳的驗證結果,
不是自己判斷使用者手機是否按了確認。六、 FIDO2 在這裡扮演什麼角色
FIDO2 的核心是:
public/private key + challenge-response + authenticator這和一般 Passkey / WebAuthn 很像。
使用者不需要輸入可被釣魚轉送的密碼或 OTP,而是由已註冊的行動裝置對 challenge 做驗證。
安全價值:
- 私鑰不傳給服務端。
- challenge 短效。
- 裝置需要使用者本機驗證。
- 比單純 OTP 更能抵抗釣魚與重放。
- 可避免使用者記憶多組政府服務帳密。
但 TW FidO 的特殊之處是:
FIDO2 能力被包在政府自然人憑證信任體系裡。也就是說,它不是只有技術協議,還包含官方身份註冊、行動憑證狀態、服務介接資格與稽核。
七、 和一般 Passkey 的差異
| 比較 | 一般 Passkey / WebAuthn | TW FidO |
|---|---|---|
| 信任來源 | 網站自己的帳號系統 | 自然人憑證 / 內政部身份服務 |
| 初始註冊 | 使用者登入網站後新增 passkey | 以自然人憑證或臨櫃等官方方式建立信任 |
| 使用範圍 | 該網站或 RP | 多項政府/介接服務 |
| 身份語意 | 該網站的帳號身份 | 政府高信任自然人身份 |
| 簽章能力 | 依網站實作,不一定有 | 官方描述支援數位簽章與加解密等用途 |
| 管理規範 | 網站自行制定 | 受官方服務與介接規範約束 |
所以不要簡化成:
TW FidO = Passkey比較準確是:
TW FidO 使用 FIDO2 類型的身份識別能力,
但它的信任模型屬於政府自然人憑證體系。八、 和 OTP 的差異
TW FidO 也不是 OTP。
OTP 是:
使用者輸入一組短效 code。TW FidO / FIDO2 類流程是:
已註冊裝置對 challenge 做密碼學驗證。比較:
| 比較 | OTP | TW FidO |
|---|---|---|
| 使用者輸入 code | 是 | 通常不是 |
| 是否容易被即時釣魚轉送 | 較容易 | 較難 |
| 核心 | 短效秘密 | 公私鑰 challenge-response |
| 身份信任 | 取決於 OTP 發送通道 | 取決於官方註冊與裝置驗證 |
| 使用體驗 | 輸入數字 | APP 確認、掃碼、本機驗證 |
如果把 TW FidO 當成「政府 OTP」,會低估它的設計目的。
九、 數位簽章與加解密
內政部行動自然人憑證系統的機關及企業介接資訊提到,介接後可提供:
- 身分驗證。
- 數位簽章。
- 加解密等功能。
這表示 TW FidO 不只可以用來登入。
但仍要分清楚:
身分驗證
回答:
這次操作的人是否通過 TW FidO 身份驗證?數位簽章
回答:
這個人是否對特定文件或交易內容做出可驗證簽署?加解密
回答:
資料是否能被特定身份或憑證安全處理?服務設計時不能把三者混成一個布林值。
十、 介接端怎麼設計
如果你是介接 TW FidO 的服務,應該把它當成外部高信任身份提供者。
概念模型:
TW FidO 驗證成功
-> 取得官方身份驗證結果
-> 找到或建立本地 user mapping
-> 建立本地 session
-> 根據業務規則授權資料表可以像:
create table government_identities (
id uuid primary key,
user_id uuid not null references users(id),
provider text not null,
subject_hash text not null,
assurance_level text not null,
linked_at timestamp not null,
last_verified_at timestamp,
unique (provider, subject_hash)
);
create table government_auth_events (
id uuid primary key,
user_id uuid,
provider text not null,
event_type text not null,
assurance_level text,
request_id text,
ip inet,
user_agent text,
created_at timestamp not null
);注意:
- 不要把身分證字號到處明文存。
- 不要保存不必要的憑證或個資。
- 官方回傳資料要最小化使用。
- session 和授權仍由你的系統管理。
- 高風險操作可以要求重新驗證或簽章。
十一、 Session 和授權
TW FidO 驗證成功後,應用系統仍要建立自己的 session。
例如:
type Session = {
userId: string
authenticatedBy: 'tw_fido'
authenticatedAt: Date
assuranceLevel: 'high'
expiresAt: Date
}但 session 只是登入狀態。
它不代表使用者能做所有事。
授權仍要看:
- 服務資格。
- 申辦條件。
- 資料擁有權。
- 代理關係。
- 角色。
- 操作風險。
- 是否需要簽章。
例如:
用 TW FidO 登入成功不等於:
可以替他人申請資料。也不等於:
已經簽署申請書。十二、 安全風險
1. 手機遺失
手機是行動載具。
手機遺失時要能:
- 停用。
- 重新註冊。
- 撤銷 session。
- 通知使用者。
- 防止高風險操作。
2. 假冒官方服務
攻擊者可能假冒內政部憑證管理中心或政府服務,誘導使用者點連結。
內政部行動自然人憑證系統首頁也可看到反詐騙公告。
使用者教育要包含:
- 檢查網址。
- 不點不明連結。
- 不安裝來路不明 App。
- 不在非官方頁面輸入憑證相關資料。
3. 本機裝置安全
FIDO2 和 APP 驗證可以提高安全性,但仍依賴裝置安全:
- 裝置 PIN。
- 生物特徵。
- 作業系統安全。
- App 完整性。
- 裝置是否被 root/jailbreak。
4. 介接端過度信任
服務端不能把 TW FidO 驗證結果解讀成所有授權都通過。
它只能證明身份驗證成功。
業務授權與資料範圍仍要自己控。
十三、 常見錯誤
1. 把 TW FidO 當成一般 App 登入
錯誤:
這只是手機 App 點確認。正確:
它是政府自然人憑證體系中的 FIDO2 行動身份驗證服務。2. 把 TW FidO 等同所有 Passkey
錯誤:
TW FidO 就是 Passkey。正確:
TW FidO 使用 FIDO2 身分識別能力,但信任來源是自然人憑證與內政部官方服務。3. 登入等於簽章
錯誤:
TW FidO 登入成功,所以視為簽署文件。正確:
簽章必須針對特定文件或交易內容產生。4. 不處理服務介接資格
錯誤:
任何網站都可以自己接 TW FidO。正確:
介接需依內政部行動自然人憑證系統介接申請規範,且服務端應依官方回傳結果處理。5. 不做 audit log
錯誤:
驗證成功就建立 session,沒有紀錄。正確:
高信任身份登入、簽章、資料查詢都應記錄 auth/audit events。十四、 面試追問題庫
Q1:TW FidO 是什麼?
TW FidO 是內政部行動自然人憑證服務中,提供民眾以自然人憑證註冊後,免插卡、免帳號密碼使用多項政府服務的行動身份驗證方式,並具 FIDO2 身分識別能力。
Q2:TW FidO 和行動自然人憑證差在哪?
兩者高度相關。行動自然人憑證是整體行動身份服務概念,TW FidO 更強調 FIDO/FIDO2 身分識別、免插卡、免帳密登入政府服務的使用入口與能力。
Q3:TW FidO 和 Passkey 一樣嗎?
不完全一樣。它們都和 FIDO2、公私鑰 challenge-response 有關,但一般 Passkey 通常是網站帳號系統建立的 credential;TW FidO 建立在自然人憑證與內政部官方身份服務之上,具有政府高信任身份語意。
Q4:TW FidO 為什麼比 OTP 更安全?
OTP 是使用者輸入短效 code,可能被即時釣魚轉送。TW FidO/FIDO2 類流程是由已註冊裝置對 challenge 做驗證,使用者不用輸入可被轉送的 code,安全性和釣魚抗性更好。
Q5:TW FidO 登入後還需要 session 嗎?
需要。TW FidO 完成一次身份驗證後,介接服務仍要建立自己的 session,管理有效期、登出、撤銷、授權與 audit log。
Q6:TW FidO 可以做數位簽章嗎?
官方行動自然人憑證服務描述包含數位簽章能力。但登入和簽章是不同語意,簽章必須針對特定文件或交易內容產生。
Q7:介接 TW FidO 要注意什麼?
要依官方介接申請與技術規範,正確處理驗證結果、身份 mapping、session、授權、個資最小化、簽章語意、裝置遺失、撤銷和 audit log。
十五、 實作題
題目一:設計 TW FidO 登入流程
請描述:
- 使用者在服務選擇 TW FidO。
- 服務端建立 authentication request。
- 顯示 QR Code 或觸發 APP 確認。
- 使用者在 APP 完成本機驗證。
- TW FidO 服務回傳驗證結果。
- 服務端建立本地 user mapping。
- 建立 session。
- 記錄 audit log。
題目二:比較 TW FidO、Passkey、TOTP
好的答案應包含:
| 方法 | 核心 | 信任來源 | 釣魚抗性 |
|---|---|---|---|
| TOTP | shared secret + time | 使用者裝置與 server secret | 不完整 |
| Passkey | public/private key + origin | 網站帳號系統 | 較強 |
| TW FidO | FIDO2 + 自然人憑證體系 | 內政部官方身份服務 | 較強且具政府身份語意 |
題目三:設計簽章流程
情境:
使用者要用 TW FidO 簽署一份政府線上申請書。好的流程:
- 顯示要簽署的內容。
- 對內容產生 digest。
- 透過 TW FidO 完成簽章。
- 保存簽章結果、時間、憑證資訊。
- 後續可驗證內容未被竄改。
- 不用登入成功取代簽章。
十六、 資深視角
1. TW FidO 是身份基礎建設,不只是登入選項
一般登入選項可能只是:
Google Login
LINE Login
PasskeyTW FidO 背後是政府自然人憑證體系。
因此它同時牽涉:
- 身份確認。
- 憑證生命週期。
- FIDO2 身分識別。
- 介接資格。
- 數位簽章。
- 個資保護。
- 稽核。
2. 高信任身份不能忽略授權
高信任登入只說明:
你更確定這個人是誰。但它不代表:
這個人可以做所有事。授權仍是你的業務系統責任。
3. 技術強度和法規語意都重要
一般 Passkey 重點在技術安全與使用者體驗。
TW FidO 還多了政府身份、數位簽章與電子簽章效力等語意。
所以工程設計不能只看 API 成功失敗,也要理解:
- 這次是登入嗎?
- 這次是簽章嗎?
- 簽的是什麼內容?
- 是否需要保存可驗證證據?
- 是否符合介接與個資要求?
4. 下一步要談身份驗證與數位簽章
到這裡,我們已經多次遇到:
登入不等於簽章。下一篇很適合獨立寫「身份驗證與數位簽章」,把 authentication、authorization、signature、non-repudiation、transaction signing 一次分清楚。
總結
| 問題 | 回答重點 |
|---|---|
| TW FidO | 行動自然人憑證中的 FIDO2 高信任身份服務 |
| 核心體驗 | 免插卡、免帳號密碼、APP 快速登入 |
| 初始信任 | 自然人憑證或官方臨櫃等高信任流程 |
| 技術概念 | FIDO2、公私鑰、challenge-response |
| 與 Passkey | 技術相似,但信任模型屬政府自然人憑證體系 |
| 與 OTP | 不是輸入 code,而是裝置密碼學驗證 |
| 能力 | 身分驗證、數位簽章、加解密,依官方介接能力 |
| 設計重點 | 登入、簽章、授權、session、audit log 分開 |
一句完整的面試回答可以是:
TW FidO 是內政部行動自然人憑證服務中的高信任行動身份驗證方式,讓民眾以自然人憑證註冊後,可以透過行動自然人憑證 APP 免插卡、免帳號密碼登入多項政府服務。它具備 FIDO2 身分識別能力,因此和 Passkey / WebAuthn 一樣有公私鑰 challenge-response、裝置本機驗證與較強釣魚抗性的概念;但 TW FidO 不是一般網站自行建立的 passkey,而是建立在自然人憑證與內政部官方身份服務之上,具有政府高信任身份語意,並可支援數位簽章與加解密等介接能力。工程上應信任官方驗證結果,再建立本地 session 和授權模型,並把登入、文件簽章、個資保存、裝置遺失、撤銷與 audit log 分開設計。