跳至主要內容
Skip to content

TW FidO

TW FidO 是台灣政府高信任身份服務裡很值得單獨理解的一塊。

它常被放在「行動自然人憑證」底下,但如果只把它理解成:

text
自然人憑證的手機版

其實還不夠。

TW FidO 的核心體驗是:

text
免插卡
免帳號密碼
使用行動自然人憑證 APP 快速登入政府服務

它把自然人憑證的高信任身份基礎、行動裝置、FIDO2 身分識別、數位簽章能力和政府服務介接整合在一起。

所以這篇要回答:

  • TW FidO 和行動自然人憑證是什麼關係?
  • 它和一般 Passkey / WebAuthn 有什麼相似與不同?
  • 為什麼它能免插卡、免帳號密碼?
  • 服務端應該怎麼信任它?
  • 登入、簽章、授權、session 要怎麼分開?

一、 一句話回答

如果面試官問:

TW FidO 是什麼?和一般 FIDO2 / Passkey 有什麼不同?

可以先回答:

TW FidO 是台灣內政部行動自然人憑證服務中的高信任行動身份驗證方式,讓民眾以自然人憑證註冊會員後,透過行動自然人憑證 APP 免插卡、免帳號密碼登入多項政府服務。它採用 FIDO2 身分識別能力,因此和 WebAuthn / Passkey 一樣有公私鑰 challenge-response、裝置驗證、抗釣魚等概念;但 TW FidO 不是一般商業網站自行發的 passkey,而是建立在台灣自然人憑證與內政部官方身份服務之上,並可支援數位簽章、政府服務介接與高信任身份場景。工程上應把官方驗證結果、本地 session、業務授權與文件簽章分開處理。

短一點可以說:

text
TW FidO 是政府自然人憑證體系中的 FIDO2 行動身份驗證服務,
不是單純的 App OTP,也不是一般網站自己的 Passkey。

二、 官方定位

我的 E 政府頁面描述 TW FidO:

text
以自然人憑證註冊會員,註冊後免插卡、免帳號密碼,即可使用多項政府服務。

內政部行動自然人憑證系統首頁也列出幾個特點:

  • 安全:採用行動裝置的生物特徵識別與加解密技術。
  • 便利:免除自然人憑證插卡驗證步驟,透過 APP 快速登入數位服務。
  • 多元應用:可用於報稅、健保資料查詢、戶籍謄本申請等政府線上服務。
  • 機關及企業可介接:提供身分驗證、數位簽章及加解密等功能。

所以 TW FidO 可以理解成:

text
以自然人憑證作為初始信任,
以行動 APP 和 FIDO2 技術改善登入體驗,
提供政府與特定服務高信任身份驗證。

三、 和行動自然人憑證的關係

在使用者語境裡,常會看到:

text
行動自然人憑證
TW FidO
行動自然人憑證 APP

這些詞高度相關。

可以這樣拆:

名稱偏向
行動自然人憑證整個行動載具自然人憑證服務
TW FidO強調 FIDO/FIDO2 身分識別與免插卡登入的服務名稱
行動自然人憑證 APP使用者操作的手機應用程式

前一篇把行動自然人憑證當作大概念。

這篇把 TW FidO 聚焦在:

text
FIDO2 身分識別 + 政府服務登入 + 官方信任模型。

四、 初始註冊:信任從哪裡來

TW FidO 不是下載 APP 就自動具備高信任身份。

它的初始信任通常來自自然人憑證。

官方頁面說明個人申辦方式時,列出:

  • 有自然人憑證:下載 APP,備妥自然人憑證 IC 卡,輸入身分證統一編號及 PIN 碼,完成手機靠卡感應。
  • 無自然人憑證:下載 APP,攜帶身分證至戶政事務所進行臨櫃申辦。

也就是說,TW FidO 的信任建立流程大致是:

text
先完成高信任身份確認
-> 綁定行動裝置
-> 後續用 APP 完成登入與驗證

這點和一般網站 passkey 很不一樣。

一般 passkey 通常是:

text
使用者已登入網站帳號 -> 新增 passkey。

TW FidO 則有政府身份與自然人憑證作為初始信任背景。

五、 登入流程

使用者體驗可能是:

text
政府服務選擇 TW FidO
-> 畫面出現 QR Code 或登入請求
-> 使用行動自然人憑證 APP 掃描/確認
-> 手機完成本機驗證
-> 政府服務登入成功

概念流程:

重點:

text
介接服務信任的是 TW FidO / 官方服務回傳的驗證結果,
不是自己判斷使用者手機是否按了確認。

六、 FIDO2 在這裡扮演什麼角色

FIDO2 的核心是:

text
public/private key + challenge-response + authenticator

這和一般 Passkey / WebAuthn 很像。

使用者不需要輸入可被釣魚轉送的密碼或 OTP,而是由已註冊的行動裝置對 challenge 做驗證。

安全價值:

  • 私鑰不傳給服務端。
  • challenge 短效。
  • 裝置需要使用者本機驗證。
  • 比單純 OTP 更能抵抗釣魚與重放。
  • 可避免使用者記憶多組政府服務帳密。

但 TW FidO 的特殊之處是:

text
FIDO2 能力被包在政府自然人憑證信任體系裡。

也就是說,它不是只有技術協議,還包含官方身份註冊、行動憑證狀態、服務介接資格與稽核。

七、 和一般 Passkey 的差異

比較一般 Passkey / WebAuthnTW FidO
信任來源網站自己的帳號系統自然人憑證 / 內政部身份服務
初始註冊使用者登入網站後新增 passkey以自然人憑證或臨櫃等官方方式建立信任
使用範圍該網站或 RP多項政府/介接服務
身份語意該網站的帳號身份政府高信任自然人身份
簽章能力依網站實作,不一定有官方描述支援數位簽章與加解密等用途
管理規範網站自行制定受官方服務與介接規範約束

所以不要簡化成:

text
TW FidO = Passkey

比較準確是:

text
TW FidO 使用 FIDO2 類型的身份識別能力,
但它的信任模型屬於政府自然人憑證體系。

八、 和 OTP 的差異

TW FidO 也不是 OTP。

OTP 是:

text
使用者輸入一組短效 code。

TW FidO / FIDO2 類流程是:

text
已註冊裝置對 challenge 做密碼學驗證。

比較:

比較OTPTW FidO
使用者輸入 code通常不是
是否容易被即時釣魚轉送較容易較難
核心短效秘密公私鑰 challenge-response
身份信任取決於 OTP 發送通道取決於官方註冊與裝置驗證
使用體驗輸入數字APP 確認、掃碼、本機驗證

如果把 TW FidO 當成「政府 OTP」,會低估它的設計目的。

九、 數位簽章與加解密

內政部行動自然人憑證系統的機關及企業介接資訊提到,介接後可提供:

  • 身分驗證。
  • 數位簽章。
  • 加解密等功能。

這表示 TW FidO 不只可以用來登入。

但仍要分清楚:

身分驗證

回答:

text
這次操作的人是否通過 TW FidO 身份驗證?

數位簽章

回答:

text
這個人是否對特定文件或交易內容做出可驗證簽署?

加解密

回答:

text
資料是否能被特定身份或憑證安全處理?

服務設計時不能把三者混成一個布林值。

十、 介接端怎麼設計

如果你是介接 TW FidO 的服務,應該把它當成外部高信任身份提供者。

概念模型:

text
TW FidO 驗證成功
-> 取得官方身份驗證結果
-> 找到或建立本地 user mapping
-> 建立本地 session
-> 根據業務規則授權

資料表可以像:

sql
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。

例如:

ts
type Session = {
  userId: string
  authenticatedBy: 'tw_fido'
  authenticatedAt: Date
  assuranceLevel: 'high'
  expiresAt: Date
}

但 session 只是登入狀態。

它不代表使用者能做所有事。

授權仍要看:

  • 服務資格。
  • 申辦條件。
  • 資料擁有權。
  • 代理關係。
  • 角色。
  • 操作風險。
  • 是否需要簽章。

例如:

text
用 TW FidO 登入成功

不等於:

text
可以替他人申請資料。

也不等於:

text
已經簽署申請書。

十二、 安全風險

1. 手機遺失

手機是行動載具。

手機遺失時要能:

  • 停用。
  • 重新註冊。
  • 撤銷 session。
  • 通知使用者。
  • 防止高風險操作。

2. 假冒官方服務

攻擊者可能假冒內政部憑證管理中心或政府服務,誘導使用者點連結。

內政部行動自然人憑證系統首頁也可看到反詐騙公告。

使用者教育要包含:

  • 檢查網址。
  • 不點不明連結。
  • 不安裝來路不明 App。
  • 不在非官方頁面輸入憑證相關資料。

3. 本機裝置安全

FIDO2 和 APP 驗證可以提高安全性,但仍依賴裝置安全:

  • 裝置 PIN。
  • 生物特徵。
  • 作業系統安全。
  • App 完整性。
  • 裝置是否被 root/jailbreak。

4. 介接端過度信任

服務端不能把 TW FidO 驗證結果解讀成所有授權都通過。

它只能證明身份驗證成功。

業務授權與資料範圍仍要自己控。

十三、 常見錯誤

1. 把 TW FidO 當成一般 App 登入

錯誤:

text
這只是手機 App 點確認。

正確:

text
它是政府自然人憑證體系中的 FIDO2 行動身份驗證服務。

2. 把 TW FidO 等同所有 Passkey

錯誤:

text
TW FidO 就是 Passkey。

正確:

text
TW FidO 使用 FIDO2 身分識別能力,但信任來源是自然人憑證與內政部官方服務。

3. 登入等於簽章

錯誤:

text
TW FidO 登入成功,所以視為簽署文件。

正確:

text
簽章必須針對特定文件或交易內容產生。

4. 不處理服務介接資格

錯誤:

text
任何網站都可以自己接 TW FidO。

正確:

text
介接需依內政部行動自然人憑證系統介接申請規範,且服務端應依官方回傳結果處理。

5. 不做 audit log

錯誤:

text
驗證成功就建立 session,沒有紀錄。

正確:

text
高信任身份登入、簽章、資料查詢都應記錄 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 登入流程

請描述:

  1. 使用者在服務選擇 TW FidO。
  2. 服務端建立 authentication request。
  3. 顯示 QR Code 或觸發 APP 確認。
  4. 使用者在 APP 完成本機驗證。
  5. TW FidO 服務回傳驗證結果。
  6. 服務端建立本地 user mapping。
  7. 建立 session。
  8. 記錄 audit log。

題目二:比較 TW FidO、Passkey、TOTP

好的答案應包含:

方法核心信任來源釣魚抗性
TOTPshared secret + time使用者裝置與 server secret不完整
Passkeypublic/private key + origin網站帳號系統較強
TW FidOFIDO2 + 自然人憑證體系內政部官方身份服務較強且具政府身份語意

題目三:設計簽章流程

情境:

text
使用者要用 TW FidO 簽署一份政府線上申請書。

好的流程:

  • 顯示要簽署的內容。
  • 對內容產生 digest。
  • 透過 TW FidO 完成簽章。
  • 保存簽章結果、時間、憑證資訊。
  • 後續可驗證內容未被竄改。
  • 不用登入成功取代簽章。

十六、 資深視角

1. TW FidO 是身份基礎建設,不只是登入選項

一般登入選項可能只是:

text
Google Login
LINE Login
Passkey

TW FidO 背後是政府自然人憑證體系。

因此它同時牽涉:

  • 身份確認。
  • 憑證生命週期。
  • FIDO2 身分識別。
  • 介接資格。
  • 數位簽章。
  • 個資保護。
  • 稽核。

2. 高信任身份不能忽略授權

高信任登入只說明:

text
你更確定這個人是誰。

但它不代表:

text
這個人可以做所有事。

授權仍是你的業務系統責任。

3. 技術強度和法規語意都重要

一般 Passkey 重點在技術安全與使用者體驗。

TW FidO 還多了政府身份、數位簽章與電子簽章效力等語意。

所以工程設計不能只看 API 成功失敗,也要理解:

  • 這次是登入嗎?
  • 這次是簽章嗎?
  • 簽的是什麼內容?
  • 是否需要保存可驗證證據?
  • 是否符合介接與個資要求?

4. 下一步要談身份驗證與數位簽章

到這裡,我們已經多次遇到:

text
登入不等於簽章。

下一篇很適合獨立寫「身份驗證與數位簽章」,把 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 分開設計。

延伸閱讀