密碼學 - 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 數位簽署的物件,可作為資料在特定時間存在的有力證據。

時戳的運作流程

時戳的產生過程是一個標準化的請求與回應流程:image size

  1. 產生時戳請求 (TimeStampReq)
    使用者端首先需要將欲加上時戳的原始資料進行雜湊運算,產生一組獨特的「訊息摘要 (Message Imprint)」。這個摘要包含了所使用的雜湊演算法以及雜湊值。接著,客戶端將此訊息摘要封裝成一個 TimeStampReq 結構發送給 TSA。請求中還可包含其他選用欄位,如指定的 TSA 政策 (reqPolicy) 或隨機數 (nonce)。
  2. 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):因系統故障無法處理請求。
  3. 時戳權杖 (TimeStampToken) 的結構
    成功的時戳權杖 (TimeStampToken) 是一個依據 CMS (Cryptographic Message Syntax) 標準所定義的 ContentInfo 結構,其內容類型為簽署資料 (SignedData)。
    被簽署的核心資料是 TSTInfo,其關鍵欄位包含:
    • messageImprint:必須與原始請求中的訊息摘要完全相同。
    • serialNumber:由 TSA 分配的唯一序號。
    • genTime:TSA 產生此權杖的廣義時間 (Generalized Time)。
    • tsa:可選欄位,用以識別簽發此權杖的 TSA。

傳輸方式與應用

時戳請求與回應可以透過多種方式進行傳輸:

  • 基於檔案/HTTP/E-mail: 請求和回應可以被編碼後傳輸。其 MIME 類型分別為 application/timestamp-queryapplication/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

也許你也會想看看