iPAS AI 應用規劃師 中級 科目一

AI 金融系統如何確保「不可否認性」?

原題 30

某銀行計劃將 AI 詐欺偵測模組整合至核心交易系統,主管機關要求全流程必須符合金融監管對「不可否認性(Non-repudiation)」的資訊安全規範,以確保日後能進行法務追蹤與稽核。下列哪一項措施最能確保此要求的落實?

白話

一家銀行要把「AI 詐欺偵測」接進核心交易系統。金融主管機關要求:必須符合「不可否認性(Non-repudiation)」的資訊安全規範,也就是說,每一筆 AI 判斷必須有據可查,未來可以追蹤、可以稽核,沒有人可以事後說「那筆判斷不是我做的」或「結果被改過了」。

問你:哪一項措施最能確保「不可否認性」的落實?

點選你的答案。

01 總結

一句話總結

要落實「不可否認性(Non-repudiation)」:為每筆 AI 推論的輸入和輸出計算加密雜湊值(Hash),再加上數位簽章,讓這筆記錄事後任何人都無法否認它發生過、也無法竄改它。這是資訊安全的法律可追蹤性要求,跟系統效能或備援無關。

02 情境

先感受問題:一筆詐欺判斷引發的法律糾紛

假設「富嶼銀行」的 AI 詐欺偵測系統在某一天,把客戶王先生的一筆 50 萬元轉帳判斷為「疑似詐欺」並自動攔截。

王先生事後提出申訴,說這筆轉帳是合法的,他損失了商機。

銀行的法務部門要查:

「AI 當時收到的輸入是什麼?(交易金額、收款帳號、地點、時間)」
「AI 輸出的判斷是什麼?(詐欺機率幾%?閾值是多少?)」
「這個結果是當時真實跑出來的,還是後來有人改過的?」
「是哪一版本的模型做的判斷?」

如果沒有「不可否認性」機制,銀行的工程師可以說「我沒改過」,也可以說「那個輸入不是這樣的」,甚至有人在事後偷偷改了 log,法務追蹤就成了各說各話。

「不可否認性」就是要讓每一筆 AI 判斷都有「鐵一樣的證據」:發生了就是發生了,誰都不能否認。

03 對照

單純記 log 為什麼不夠

很多系統只是把推論結果寫進 log 檔案,這有五個漏洞:

  1. log 可以被改:有資料庫寫入權限的人,可以事後修改 log,讓輸入或輸出看起來不同。沒有數位簽章,根本無法證明記錄沒被動過。
  2. log 可以被刪:伺服器磁碟清理、備份策略,都可能讓特定時段的 log 消失。沒有不可竄改的儲存,記錄可以被選擇性刪除。
  3. 無法證明「是哪一版模型」:只記結果,沒記模型版本和參數 hash,事後無法重現或驗證「當時的判斷邏輯」。
  4. 無法識別「誰」做了這個判斷:log 沒有數位簽章,無法確認這個推論記錄確實是由官方系統產生的,而不是有人捏造的。
  5. 不符合金融法規要求:金管會對金融機構的稽核要求,不只是「有記錄」,而是「記錄可信且不可否認」,普通 log 不達標。
04 解法

加密雜湊 + 數位簽章,怎麼解

回到富嶼銀行。導入不可否認性機制後:

每次 AI 推論發生時:

輸入:{帳號: A123, 金額: 500000, 時間: 2024-03-15T14:23:05Z, ...}
輸出:{詐欺機率: 0.89, 動作: BLOCK, 模型版本: v2.3.1}

1. 計算加密雜湊值(Hash):把輸入和輸出合在一起,算出一個固定長度的「指紋」(例如 SHA-256)。任何一個字元被改動,指紋就會完全不同。

2. 用銀行的私鑰對這個指紋做數位簽章(Digital Signature):只有銀行持有這把私鑰,所以只有銀行的官方系統能產生這個簽章。

3. 把 {輸入、輸出、雜湊值、簽章} 一起存進不可竄改的稽核日誌(例如區塊鏈或 WORM 儲存)。

未來法務追蹤時,只需要用銀行的公鑰驗證簽章,就能確認:這筆記錄是真實的、沒有被修改、確實由官方系統產生。王先生和銀行都沒辦法否認這個記錄。

這就是選項 A 講的:為每筆 AI 模型推論記錄其輸入與輸出結果的加密雜湊值(Hash),並簽署數位簽章以確保不可竄改性

技術版:Hash 與數位簽章的實際運作

中級考試大概率會考程式碼跟公式,所以這部分你還是要學。但如果現在學起來很痛苦,可以先跳過,等讀完其他題目回頭再來。

import hashlib
import json
from cryptography.hazmat.primitives import hashes, serialization
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from datetime import datetime

# 模擬一次 AI 推論記錄
inference_record = {
    "timestamp": datetime.utcnow().isoformat() + "Z",
    "model_version": "fraud_detector_v2.3.1",
    "input": {
        "account_id": "A123456",
        "amount": 500000,
        "recipient": "B789012",
        "location": "台北"
    },
    "output": {
        "fraud_probability": 0.89,
        "action": "BLOCK",
        "threshold": 0.80
    }
}

# Step 1: 計算 SHA-256 雜湊值
record_bytes = json.dumps(inference_record, sort_keys=True).encode()
record_hash = hashlib.sha256(record_bytes).hexdigest()
print(f"SHA-256 Hash: {record_hash}")

# Step 2: 用私鑰簽章(實務上私鑰由 HSM 保管)
# private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
# signature = private_key.sign(record_bytes, padding.PKCS1v15(), hashes.SHA256())

# Step 3: 驗證(任何人用公鑰都可以驗)
# public_key.verify(signature, record_bytes, padding.PKCS1v15(), hashes.SHA256())
# 驗證通過 = 記錄未被竄改,且確實由持有私鑰的系統產生
Step 1 純故事版
  1. AI 推論完成後,把「輸入 + 輸出」視為一份文件
  2. 計算這份文件的「指紋」(SHA-256 Hash),任何改動都會讓指紋完全不同
  3. 用銀行的「私章」(私鑰)在指紋上蓋章(數位簽章)
  4. 把文件、指紋、章一起封存,任何人都能用銀行的「公章」(公鑰)驗真偽
Step 2 中文 ↔ 程式碼對照
故事程式碼
把輸入輸出序列化成 bytesjson.dumps(record, sort_keys=True).encode()
計算 SHA-256 指紋hashlib.sha256(bytes).hexdigest()
用私鑰簽章private_key.sign(bytes, padding, hashes.SHA256())
用公鑰驗章public_key.verify(signature, bytes, ...)
Step 3 符號角色表
SHA-256(Secure Hash Algorithm 256-bit)
把任意長度的資料轉成固定 256 位元(64 個十六進位字元)的「指紋」。同樣的輸入永遠得到同樣的輸出;改動哪怕一個 bit,輸出就完全不同。
Private Key(私鑰)
只有系統持有的秘密。用私鑰簽章,就相當於「這是我(官方系統)做的,我簽名擔保」。
Public Key(公鑰)
可以公開給所有人。用公鑰驗簽,任何人都能確認「這個簽章確實是持有對應私鑰的系統做的」。
Non-repudiation(不可否認性)
資訊安全 CIA 三要素之外的第四個特性。確保動作發生後,行為者無法否認它曾發生。簽章是技術實現手段。
Step 4 完整公式對應

數位簽章的基本數學原理(RSA 簡化版):

# 簽章:用私鑰對 hash 做運算
Signature = hash(message) ^ d  mod N
# d = 私鑰,N = 模數

# 驗章:用公鑰反向驗算
Verified_hash = Signature ^ e  mod N
# e = 公鑰指數,N = 模數
# 如果 Verified_hash == hash(message),簽章有效

中級考試不需要算這個,但理解「私鑰簽、公鑰驗」的非對稱結構就夠了。

Step 5 自我複述

蓋住程式碼,說出不可否認性的 4 個步驟:

  1. 把推論的輸入和輸出合在一起
  2. 計算 SHA-256 雜湊值(指紋)
  3. 用系統私鑰對指紋做數位簽章
  4. 把原始記錄 + 指紋 + 簽章封存,用公鑰可驗真偽
05 陷阱

為什麼其他選項是錯的

B優化模型效能以降低平均推論延遲至 100ms 以下,提升使用者體驗

字面在說什麼

讓 AI 模型推論更快,每次判斷在 0.1 秒以內完成,讓交易不會卡太久。

為什麼不對

這是「效能優化」(Performance Optimization),跟「不可否認性」完全是兩個維度的需求。推論快 1 秒還是 0.1 秒,都不影響這筆記錄能不能被事後稽核、能不能防止竄改。好比說:把一份文件打字速度從 1 分鐘縮短到 10 秒,並不代表這份文件的法律效力提升了。

誰會選錯

看到「AI 系統」就聯想到「效能」的考生,誤以為所有問題都可以用效能優化解決。記住:不可否認性是「法律可追蹤性」問題,屬於資訊安全領域,跟速度無關。

C增加主機備援數量,以確保系統在故障時持續可用

字面在說什麼

多買幾台伺服器,一台壞了另一台頂上,讓系統不會因為單台故障而中斷服務。

為什麼不對

這是「高可用性」(High Availability)和「容錯」(Fault Tolerance)的做法,對應的是 CIA 三要素中的「可用性(Availability)」,不是「不可否認性」。備援機器再多,也不能防止有人事後篡改推論記錄,或者否認某筆判斷的存在。

誰會選錯

把「資訊安全規範」理解成「系統要穩定不能斷線」的考生。金融監管對不可否認性的要求不是「系統要持續運作」,而是「每一筆交易記錄要有法律效力且不可竄改」。

D將模型推論請求導入負載平衡器,避免單點壅塞導致服務延遲

字面在說什麼

在 AI 推論服務前面加一個負載平衡器(Load Balancer),把大量請求分散到多台伺服器,避免一台被打爆。

為什麼不對

負載平衡是系統架構的「效能和可用性」設計,解決的是「請求量太大時怎麼不崩潰」的問題,跟不可否認性沒有任何關係。就算請求被平均分配到 100 台伺服器,如果每台伺服器的推論記錄都沒有雜湊和簽章,稽核時還是無法證明記錄沒被竄改。

誰會選錯

有系統架構背景的考生,看到「AI 整合至核心交易系統」就想到「高流量、要做負載平衡」,誤解了題目的資訊安全需求方向。題目的核心詞是「不可否認性」和「法務追蹤與稽核」,這兩個都指向密碼學機制,不是架構擴展能力。

06 變形

同個考點下次怎麼變形

變形 1 邊界

如果只做 Hash 但不做數位簽章,不可否認性還成立嗎?

直覺

Hash 本身不是已經能驗證記錄沒被改了嗎?

答案

不夠。如果有人修改了推論記錄,可以同時重新計算 Hash,讓新 Hash 和修改後的記錄一致,看起來就像沒改過。數位簽章的作用是:只有持有私鑰的人才能產生有效簽章,所以如果記錄被改、Hash 被重新算,新 Hash 無法通過原始私鑰簽章的驗證,竄改就會被偵測到。Hash + 簽章才是完整的不可否認性方案,只有 Hash 不行。

變形 2 反例

如果私鑰洩漏,不可否認性會失效嗎?

直覺

私鑰洩漏了,不就有人可以偽造簽章了?

答案

是的,這是非對稱加密體系最大的風險。解決方法:1. 用硬體安全模組(Hardware Security Module,HSM)保管私鑰,私鑰永遠不離開硬體;2. 定期輪換金鑰對(Key Rotation);3. 建立金鑰撤銷機制(Certificate Revocation),一旦私鑰洩漏立即讓舊簽章失效並通知稽核方。私鑰管理是密碼系統的命脈。

變形 3 升級版

區塊鏈(Blockchain)能不能替代數位簽章做不可否認性?

直覺

區塊鏈也是不可竄改的,應該也能達到不可否認性?

答案

可以,而且兩者常常結合使用。區塊鏈的特性是:寫進去的資料所有節點都有副本,要改就要同時改多數節點,實際上不可能。但區塊鏈本身不提供「是誰寫的」的認證,要加上數位簽章才能確認「是哪個系統寫的」。在金融稽核場景裡,把 {推論記錄、Hash、數位簽章} 一起寫進許可鏈(Permissioned Blockchain,例如 Hyperledger Fabric)是業界正在探索的完整方案。

變形 4 跨領域

醫療 AI(例如 AI 輔助診斷)也需要不可否認性嗎?

直覺

金融是因為有法規要求,醫療也有類似需求嗎?

答案

是的,而且更嚴格。如果 AI 輔助診斷系統建議「這個腫瘤不需要手術」,後來發現判斷錯誤,醫院、AI 廠商、醫師都可能被追究責任。不可否認性機制能回答:「當時 AI 給的建議是什麼、置信度多少、模型版本是哪一個、醫師有沒有看到這個建議」,這對醫療糾紛舉證至關重要。台灣和歐盟的醫療 AI 法規也逐漸往這個方向規範。

變形 5 評估指標

怎麼評估一個不可否認性機制是否「真的有效」?

直覺

建好了 Hash 和簽章,怎麼確認它真的防得住竄改和否認?

答案

幾個評估維度:1. 滲透測試:模擬攻擊者嘗試竄改記錄後,驗證機制能否偵測;2. 稽核演練(Audit Drill):模擬法務追蹤場景,實際走完「發現問題 → 取出記錄 → 驗章 → 重現推論」的完整流程,確認可操作性;3. 合規認證:由第三方稽核機構(例如 ISO 27001 審核員)檢查機制是否符合法規;4. 可驗證率:抽樣過去記錄,確認 100% 的簽章都能通過公鑰驗證。

07 延伸

想再往下看,這 5 個

  • 詐欺偵測(Fraud Detection)本題銀行 AI 模組的應用場景,金融詐欺偵測因涉及法律追訴,對推論記錄的不可否認性要求特別嚴格。
  • 可解釋人工智慧(Explainable AI)AI 決策需要可以向監管機關解釋和稽核,不可否認性確保記錄無法竄改,可解釋性確保決策邏輯可被理解,兩者共同構成金融 AI 合規基礎。
  • 資料血緣追蹤(Data Lineage)記錄資料從來源到推論輸出的完整流向,與稽核軌跡結合,確保每筆 AI 判斷的輸入資料來源都可追溯。
  • AI治理(AI Governance)金融監管對不可否認性的要求屬於 AI 治理框架的一部分,涵蓋資料治理、模型問責、稽核機制等系統性合規要求。
  • 模型監控(Model Monitoring)本題選項 B、C、D 的推論延遲優化、備援和負載平衡屬於模型監控與可用性範疇,與不可否認性是不同的合規維度。
出處

iPAS 經濟部產業人才能力鑑定 ・ 114 年第二次 iPAS AI 應用規劃師 中級 科目一 第 30 題

查看官方原文 PDF