密碼學 - X.509 Time Stamp
在資訊安全的世界中,如何證明一份文件、一筆交易紀錄或一個數位簽章在某個特定時間點就已經存在,是一個至關重要的問題。
X.509 時戳協定(Time Stamp Protocol, TSP)為此提供了標準化的解決方案,其核心目的在於建立資料在特定時間之前就已存在的證據。
本文將探討 X.509 時戳的核心概念、運作流程以及其在資訊安全中的應用。
核心概念:TSA、TSP 與 TST
X.509 時戳機制主要圍繞著三個核心組件運作:
- 時戳機構 (Time Stamping Authority, TSA):
TSA 是一個受信任的第三方 (Trusted Third Party, TTP) 服務。它使用專用的簽章私鑰以及符合特定規範的 X.509 憑證來簽發時戳。此類憑證的「延伸金鑰使用 (extended key usage)」欄位會標示為時戳專用,其物件識別碼 (OID) 為1.3.6.1.5.5.7.3.8
。 - 時戳協定 (Time Stamp Protocol, TSP):
這是客戶端與 TSA 之間溝通的標準化協定。整個流程包含一個時戳請求 (TimeStampReq) 和一個時戳回應 (TimeStampResp)。 - 時戳權杖 (Time-Stamp Token, TST):
這是 TSA 針對成功的請求所簽發的最終產物。它是一個包含時間資訊並經過 TSA 數位簽署的物件,可作為資料在特定時間存在的有力證據。
時戳的運作流程
時戳的產生過程是一個標準化的請求與回應流程:
- 產生時戳請求 (TimeStampReq)
使用者端首先需要將欲加上時戳的原始資料進行雜湊運算,產生一組獨特的「訊息摘要 (Message Imprint)」。這個摘要包含了所使用的雜湊演算法以及雜湊值。接著,客戶端將此訊息摘要封裝成一個 TimeStampReq 結構發送給 TSA。請求中還可包含其他選用欄位,如指定的 TSA 政策 (reqPolicy) 或隨機數 (nonce)。 - TSA 處理與回應 (TimeStampResp)
TSA 收到請求後會進行驗證。其回應TimeStampResp
中包含一個PKIStatus
欄位,用以表示處理結果。- 成功 (granted): 若狀態碼為 0 (
granted
),表示請求成功,回應中會包含一個時戳權杖 (TST)。 - 失敗 (rejection): 若狀態碼為 2 (
rejection
) 或其他失敗代碼,則表示請求被拒絕。失敗的回應中可能會包含一個PKIFailureInfo
欄位,用以說明具體原因。常見的失敗原因包括:badAlg
(0):無法識別或不支援的雜湊演算法。badRequest
(2):請求格式錯誤。timeNotAvailable
(14):TSA 的時間來源不可用。unacceptedPolicy
(15):請求的 TSA 政策不被支援。systemFailure
(25):因系統故障無法處理請求。
- 成功 (granted): 若狀態碼為 0 (
- 時戳權杖 (TimeStampToken) 的結構
成功的時戳權杖 (TimeStampToken
) 是一個依據 CMS (Cryptographic Message Syntax) 標準所定義的ContentInfo
結構,其內容類型為簽署資料 (SignedData
)。
被簽署的核心資料是 TSTInfo,其關鍵欄位包含:messageImprint
:必須與原始請求中的訊息摘要完全相同。serialNumber
:由 TSA 分配的唯一序號。genTime
:TSA 產生此權杖的廣義時間 (Generalized Time)。tsa
:可選欄位,用以識別簽發此權杖的 TSA。
傳輸方式與應用
時戳請求與回應可以透過多種方式進行傳輸:
- 基於檔案/HTTP/E-mail: 請求和回應可以被編碼後傳輸。其 MIME 類型分別為
application/timestamp-query
和application/timestamp-reply
,對應的副檔名建議為.tsq
和.tsr
。 - 基於 Socket (TCP): 在需要即時通訊的場景中,也可以使用 TCP Socket 进行傳輸。
時戳技術在許多領域都有關鍵應用,尤其是在進階電子簽章 (CAdES) 和長期歸檔 (LTA) 中:
- CAdES-T (Timestamp): 在 CAdES 標準中,時戳被用來增強電子簽章的效力。一個
CADES-T
簽章會在原始數位簽章上再附加一個時戳屬性,藉此證明該簽章在時戳所記載的時間點就已經存在。 - 長期歸檔服務 (Long-Term Archive, LTA): 對於需要長期保存法律效力的數位文件,時戳是不可或缺的一環。
LTA 服務會將原始文件、數位簽章檔案以及相關的時戳證據檔案 (Evidence file) 一併存檔,以確保即使簽章所用的憑證在未來過期或被廢止,其在簽署當下的有效性依然可以被驗證。
參考資料
- RFC 3161 - Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)
- PKIX Time-Stamp Protocol
- Wikipedia - X.509