Timestamp Server là gì? Cách hoạt động và vai trò trong Code Signing

Timestamp Server là gì? Cách hoạt động và vai trò trong Code Signing

Cập nhật lần cuối: 15/09/2026

Timestamp Server là gì và hoạt động như thế nào? Tìm hiểu vai trò của Timestamp Server, TSA, RFC 3161, Timestamp Token và cách sử dụng Timestamp với SignTool trong Code Signing.

Timestamp Server là gì?

Timestamp Server là máy chủ cung cấp dịch vụ đóng dấu thời gian cho dữ liệu điện tử. Trong lĩnh vực Code Signing, Timestamp Server thường được vận hành bởi Time Stamping Authority (TSA) và được sử dụng để tạo Timestamp Token cho chữ ký số.

Timestamp Token cung cấp bằng chứng mật mã về thời điểm một dữ liệu cụ thể được TSA xác nhận. Trong Code Signing, thông tin này giúp hệ thống có thêm cơ sở xác định thời điểm chữ ký được tạo, thay vì chỉ dựa vào thời gian trên máy tính của người thực hiện signing.

Timestamp không kéo dài thời hạn của Code Signing Certificate. Vai trò chính của timestamp là cung cấp bằng chứng về thời điểm ký, giúp hỗ trợ quá trình xác minh chữ ký trong thời gian dài.


Xem thêm: Code Signing là gì?


Timestamp Server hoạt động như thế nào?

Timestamp Server không sử dụng Code Signing Certificate của publisher để ký phần mềm. Thay vào đó, TSA tiếp nhận một timestamp request, kiểm tra dữ liệu được yêu cầu timestamp và tạo một Timestamp Token chứa thời gian do TSA xác nhận.

Trong quy trình Code Signing, luồng xử lý cơ bản có thể hình dung như sau:

Software
    │
    ▼
Code Signing
    │
    ▼
Digital Signature
    │
    ▼
Timestamp Request
    │
    ▼
Timestamp Server / TSA
    │
    ▼
Timestamp Token
    │
    ▼
Signed Software + Timestamp

Với giao thức RFC 3161, client thường gửi message imprint của dữ liệu cần timestamp thay vì gửi toàn bộ file. TSA sử dụng thông tin này để tạo timestamp response và ký Timestamp Token bằng khóa của TSA.

Timestamp Server có vai trò gì trong Code Signing?

Code Signing Certificate có thời hạn. Nếu phần mềm được ký mà không có timestamp, việc xác minh chữ ký về sau có thể khó xác định chính xác thời điểm chữ ký được tạo, đặc biệt khi certificate đã hết hạn.

Timestamp bổ sung thông tin về thời điểm ký vào chữ ký. Nhờ đó, hệ thống có thêm dữ liệu để đánh giá liệu chữ ký đã được tạo trong khoảng thời gian Code Signing Certificate còn hiệu lực hay không.

Code Signing Certificate
Valid:
01/01/2026 ───────────── 31/12/2026

Software signed:
01/06/2026

Timestamp:
01/06/2026

Certificate expires:
31/12/2026

Trong ví dụ trên, timestamp cung cấp bằng chứng về thời điểm signing được xác nhận bởi TSA. Điều này đặc biệt quan trọng đối với phần mềm có vòng đời dài và cần duy trì khả năng xác minh chữ ký sau khi certificate hết hạn.


Xem thêm: Code Signing Certificate dùng để làm gì?


Timestamp Server khác gì Code Signing Certificate?

Code Signing Certificate và Timestamp Server thực hiện hai chức năng khác nhau trong quy trình ký phần mềm.

Thành phần Vai trò
Code Signing Certificate Xác định danh tính của publisher và được sử dụng cùng Private Key để tạo chữ ký
Private Key Dùng để tạo Digital Signature
Timestamp Server / TSA Cung cấp dịch vụ đóng dấu thời gian cho dữ liệu
Timestamp Token Cung cấp bằng chứng mật mã về thời điểm được TSA xác nhận

Có thể hiểu đơn giản: Code Signing Certificate giúp xác định ai đã ký, còn Timestamp giúp xác định thời điểm ký được xác nhận.

Timestamp Server có phải Certificate Authority không?

Không nhất thiết.

Certificate Authority (CA) có nhiệm vụ cấp và quản lý Digital Certificate, trong khi Time Stamping Authority (TSA) cung cấp dịch vụ timestamp.

Certificate Authority (CA)
        │
        └── Issues Code Signing Certificate


Time Stamping Authority (TSA)
        │
        └── Issues Timestamp Token

Một tổ chức có thể cung cấp cả dịch vụ CA và TSA, nhưng hai vai trò này vẫn khác nhau về chức năng.

RFC 3161 là gì và liên quan gì đến Timestamp Server?

RFC 3161 là tiêu chuẩn định nghĩa Time-Stamp Protocol (TSP), được sử dụng để trao đổi timestamp request và timestamp response giữa client và Time Stamping Authority.

Trong quy trình này, client gửi thông tin đại diện cho dữ liệu cần timestamp đến TSA. TSA tạo Timestamp Token chứa thông tin thời gian và ký token bằng khóa của TSA.

Client
  │
  │ Timestamp Request
  │
  ▼
TSA / Timestamp Server
  │
  │ Timestamp Response
  │
  ▼
Client
  │
  ▼
Timestamp Token

RFC 3161 giúp chuẩn hóa cách client và TSA trao đổi dữ liệu timestamp, từ đó cho phép các công cụ và hệ thống khác nhau có thể sử dụng dịch vụ timestamp theo cùng một cơ chế.


Xem thêm: RFC 3161 là gì?


Timestamp Token là gì?

Timestamp Token là dữ liệu được TSA tạo ra để xác nhận timestamp cho một message imprint cụ thể. Token được TSA ký bằng khóa mật mã của TSA.

Về cơ bản, token chứa thông tin liên quan đến dữ liệu được timestamp, thời điểm TSA xác nhận và thông tin định danh của TSA.

Timestamp Request
        │
        ▼
       TSA
        │
        ├── Message Imprint
        ├── Timestamp
        ├── TSA Information
        └── TSA Signature
        │
        ▼
Timestamp Token

Nhờ chữ ký của TSA, bên kiểm tra có thể xác minh tính toàn vẹn của Timestamp Token và kiểm tra token có được phát hành bởi TSA tương ứng hay không.

Message Imprint trong Timestamp là gì?

Message Imprint là giá trị hash đại diện cho dữ liệu cần được timestamp. Đây là thành phần quan trọng trong quy trình RFC 3161.

Thay vì gửi toàn bộ nội dung file đến TSA, client có thể tạo hash của dữ liệu cần timestamp và gửi message imprint trong timestamp request.

Data to be Timestamped
        │
        ▼
      Hash
        │
        ▼
Message Imprint
        │
        ▼
Timestamp Request
        │
        ▼
TSA

TSA sử dụng message imprint trong quá trình tạo Timestamp Token. Khi xác minh, hệ thống có thể kiểm tra sự phù hợp giữa dữ liệu và message imprint được lưu trong token.

Timestamp Server có lưu toàn bộ file phần mềm không?

Trong quy trình RFC 3161 thông thường, TSA không cần nhận toàn bộ file phần mềm để tạo timestamp.

Client thường gửi message imprint thay vì nội dung đầy đủ của file. Điều này giúp giảm lượng dữ liệu cần truyền đến TSA và hạn chế việc phải gửi trực tiếp nội dung phần mềm đến dịch vụ timestamp.

Application.exe
      │
      ▼
Create Hash
      │
      ▼
Message Imprint
      │
      ▼
Timestamp Request
      │
      ▼
TSA

Do đó, trong một quy trình RFC 3161 thông thường, TSA không cần biết toàn bộ nội dung của file chỉ để tạo timestamp.

Timestamp Server có biết nội dung phần mềm không?

Thông thường, với RFC 3161, TSA nhận message imprint thay vì toàn bộ file cần timestamp.

Điều này có nghĩa TSA chủ yếu xử lý giá trị đại diện bằng hash cùng các thông tin cần thiết để tạo Timestamp Token. Tuy nhiên, mức độ dữ liệu mà một dịch vụ timestamp xử lý thực tế còn phụ thuộc vào giao thức, công cụ và cách hệ thống được triển khai.

Timestamp khác thời gian trên máy tính như thế nào?

Thời gian trên máy tính của người ký được lấy từ system clock của thiết bị. Giá trị này có thể bị cấu hình sai hoặc thay đổi.

Trong khi đó, timestamp do TSA cung cấp được gắn với Timestamp Token có chữ ký mật mã của TSA.

System Clock
    │
    └── Time from local system


TSA Timestamp
    │
    ├── Timestamp
    ├── Message Imprint
    └── TSA Signature
            │
            ▼
      Timestamp Token

Vì vậy, timestamp từ TSA có giá trị chứng minh thời gian cao hơn so với việc chỉ dựa vào timestamp hoặc system clock trên máy tính của người ký.

Timestamp có làm Code Signing Certificate hết hạn muộn hơn không?

Không.

Timestamp không kéo dài thời hạn của Code Signing Certificate. Certificate vẫn hết hạn theo ngày kết thúc hiệu lực được ghi trong certificate.

Timestamp chỉ bổ sung bằng chứng về thời điểm chữ ký được tạo và được TSA xác nhận.

Certificate Valid
01/01/2026 ───────────── 31/12/2026
                         │
                         ▼
                    Certificate
                      Expired

Timestamp
01/06/2026
    │
    └── Records signing time

Do đó, timestamp không phải là cơ chế gia hạn certificate.

Timestamp có giúp xác minh chữ ký sau khi Certificate hết hạn không?

Có thể hỗ trợ.

Khi phần mềm được ký trong thời gian Code Signing Certificate còn hiệu lực và có timestamp phù hợp, timestamp cung cấp bằng chứng về thời điểm chữ ký được tạo.

Điều này cho phép hệ thống xác minh có thêm thông tin để đánh giá chữ ký sau khi certificate đã hết hạn.

Tuy nhiên, không nên hiểu rằng chỉ cần có timestamp thì chữ ký sẽ luôn hợp lệ trong mọi trường hợp. Kết quả xác minh còn phụ thuộc vào certificate chain, trạng thái revocation, thời điểm revoke nếu có, chính sách của nền tảng và cơ chế xác minh đang được sử dụng.


Xem thêm: Điều gì xảy ra khi Code Signing Certificate hết hạn?


Timestamp có giúp khi Code Signing Certificate bị thu hồi không?

Timestamp có thể cung cấp thông tin quan trọng khi đánh giá chữ ký được tạo trước thời điểm certificate bị thu hồi.

Ví dụ:

01/06/2026
Certificate valid
      │
      ▼
Software signed
      │
      ▼
Timestamp: 01/06/2026
      │
      │
01/08/2026
      │
      ▼
Certificate revoked

Timestamp giúp hệ thống có bằng chứng về thời điểm chữ ký được tạo. Tuy nhiên, timestamp không làm cho certificate bị revoke trở thành Valid và cũng không tự động đảm bảo mọi chữ ký trước thời điểm revoke đều được chấp nhận.

Khi certificate bị thu hồi, cần xem xét thêm nguyên nhân revoke, trạng thái revocation, thời điểm ký và chính sách xác minh.


Xem thêm: Code Signing Certificate bị thu hồi là gì?


Cách sử dụng Timestamp Server với SignTool

SignTool hỗ trợ timestamp trong quá trình ký các file Windows. Với RFC 3161, có thể sử dụng tùy chọn /tr để chỉ định Timestamp Server.

Ví dụ:

signtool sign /fd SHA256 /tr  /td SHA256 /a "Application.exe"

Trong đó:

  • /fd SHA256: chỉ định digest algorithm được sử dụng cho file.
  • /tr: chỉ định URL của RFC 3161 timestamp server.
  • /td SHA256: chỉ định digest algorithm cho timestamp.
  • /a: yêu cầu SignTool tự động lựa chọn certificate phù hợp.

URL Timestamp Server thực tế cần sử dụng theo CA hoặc TSA mà doanh nghiệp đang đăng ký và theo yêu cầu của môi trường signing.

/tr và /t trong SignTool khác nhau như thế nào?

SignTool hỗ trợ các cơ chế timestamp khác nhau. Hai tùy chọn thường gặp là /tr/t.

Tùy chọn Mục đích
/tr Chỉ định RFC 3161 timestamp server
/td Chỉ định digest algorithm cho RFC 3161 timestamp
/t Chỉ định URL của legacy Authenticode timestamp server

Khi triển khai Code Signing, nên sử dụng phương thức timestamp phù hợp với yêu cầu của CA, công cụ signing và nền tảng mục tiêu. Với hệ thống mới, cần đặc biệt kiểm tra yêu cầu về RFC 3161 và thuật toán hash được hỗ trợ.

Có thể timestamp nhiều file cùng lúc không?

Có. Khi ký nhiều file, mỗi chữ ký có thể được timestamp trong quá trình signing.

Application.exe
Application.dll
Installer.msi
Driver.sys
      │
      ▼
   SignTool
      │
      ├── Sign
      │
      └── Timestamp
              │
              ▼
       Timestamp Server
              │
              ▼
    Signed + Timestamped Files

Trong hệ thống CI/CD, quá trình signing và timestamp có thể được tự động hóa cho toàn bộ file thuộc một release.


Xem thêm: Cách ký nhiều file cùng lúc bằng SignTool


Điều gì xảy ra khi Timestamp Server không hoạt động?

Nếu Timestamp Server không thể truy cập hoặc không trả về Timestamp Token hợp lệ, quá trình signing có thể thất bại nếu timestamp được yêu cầu trong quy trình.

Một số nguyên nhân phổ biến gồm:

  • Timestamp Server đang gặp sự cố.
  • Server signing không thể kết nối đến Timestamp Server.
  • Firewall hoặc proxy chặn kết nối.
  • DNS không phân giải được hostname.
  • URL Timestamp Server được cấu hình sai.
  • Timestamp response không hợp lệ.
  • Digest algorithm không được TSA hỗ trợ.
  • Certificate chain hoặc thông tin của TSA có vấn đề.

Quy trình có thể xảy ra như sau:

Sign File
    │
    ▼
Timestamp Request
    │
    ▼
Timestamp Server
    │
    ├── Success
    │      │
    │      ▼
    │   Timestamp Token
    │      │
    │      ▼
    │   Signed File
    │
    └── Failed
           │
           ▼
      Signing Error

Khi gặp lỗi timestamp, cần kiểm tra kết nối từ signing environment đến TSA, URL được cấu hình, proxy/firewall và thông tin lỗi do SignTool trả về.

Có nên sử dụng Timestamp Server của CA không?

Nên sử dụng Timestamp Server được CA hoặc TSA cung cấp và công bố chính thức cho dịch vụ Code Signing.

Endpoint timestamp cần phù hợp với certificate và quy trình signing đang sử dụng. Không nên tự ý thay thế bằng một endpoint không rõ nguồn gốc chỉ vì endpoint đó đang hoạt động.

Trước khi triển khai production, nên kiểm tra:

  • Timestamp protocol được hỗ trợ.
  • URL Timestamp Server chính xác.
  • Digest algorithm được hỗ trợ.
  • Certificate chain của TSA.
  • Khả năng kết nối từ môi trường signing.
  • Khả năng verify timestamp sau khi ký.

Timestamp Server có bảo vệ Private Key không?

Không.

Timestamp Server không thay thế các cơ chế bảo vệ Private Key của Code Signing Certificate.

Private Key vẫn cần được bảo vệ bằng các biện pháp phù hợp như HSM, token phần cứng hoặc giải pháp quản lý khóa được CA và hệ thống signing hỗ trợ.

Code Signing Private Key
        │
        ▼
    Sign File
        │
        ▼
Timestamp Server
        │
        ▼
Timestamp Token

Timestamp chỉ bổ sung thông tin về thời điểm ký. Nó không làm cho Private Key an toàn hơn và cũng không thể ngăn Private Key bị đánh cắp.


Xem thêm: Private Key là gì?


Timestamp Server có hết hạn không?

Cần phân biệt giữa Timestamp Server, TSA certificateTimestamp Token.

Timestamp Server là dịch vụ cung cấp timestamp. TSA sử dụng các certificate và khóa mật mã phù hợp để tạo Timestamp Token. Các certificate này có thời hạn và có thể có trạng thái revocation riêng.

Do đó, không nên hiểu rằng Timestamp Server là một Code Signing Certificate hoặc timestamp là một hình thức gia hạn certificate.

Timestamp Token có thể bị thay đổi không?

Timestamp Token được TSA ký bằng cơ chế mật mã. Khi token bị thay đổi sau khi được TSA ký, chữ ký mật mã của TSA có thể không còn xác minh được.

Timestamp Token
      │
      ▼
Verify TSA Signature
      │
      ▼
Verify TSA Certificate
      │
      ▼
Verify Trust Chain
      │
      ▼
Timestamp Verification

Quá trình xác minh cũng có thể kiểm tra sự phù hợp giữa message imprint trong token và dữ liệu thực tế được timestamp.

Timestamp Server có bắt buộc khi Code Signing không?

Timestamp không phải là thành phần tạo nên bản thân chữ ký Code Signing, nhưng đây là một thành phần rất quan trọng trong quy trình phát hành phần mềm chuyên nghiệp.

Không có timestamp, chữ ký vẫn có thể được tạo. Tuy nhiên, khi certificate hết hạn, việc chứng minh thời điểm chữ ký được tạo có thể khó khăn hơn.

Vì vậy, đối với phần mềm được phát hành cho người dùng trong thời gian dài, nên sử dụng timestamp trong quá trình Code Signing.

Những hiểu lầm phổ biến về Timestamp Server

1. Timestamp Server là nơi ký phần mềm

Không. Publisher sử dụng Code Signing Certificate và Private Key để tạo chữ ký phần mềm. TSA cung cấp Timestamp Token cho chữ ký hoặc dữ liệu liên quan.

2. Timestamp làm Code Signing Certificate không bao giờ hết hạn

Không. Certificate vẫn hết hạn theo thời hạn được cấp. Timestamp chỉ cung cấp bằng chứng về thời điểm được timestamp.

3. Có timestamp thì certificate bị revoke cũng không còn ảnh hưởng

Không. Timestamp cung cấp thông tin về thời điểm ký nhưng không làm certificate bị revoke trở lại trạng thái Valid. Việc xác minh vẫn phụ thuộc vào nhiều yếu tố khác.

4. Timestamp Server có thể thay thế Certificate Authority

Không. CA và TSA có hai vai trò khác nhau trong hệ thống PKI. CA cấp certificate, còn TSA cung cấp dịch vụ timestamp.

5. Timestamp Server cần nhận toàn bộ file phần mềm

Không nhất thiết. Với RFC 3161, client thông thường gửi message imprint của dữ liệu cần timestamp thay vì toàn bộ file.

6. Timestamp bảo vệ Private Key

Không. Timestamp chỉ cung cấp thông tin về thời điểm. Private Key vẫn cần được bảo vệ bằng các cơ chế bảo mật riêng.

Kết luận

Timestamp Server là thành phần quan trọng trong quy trình Code Signing, thường được cung cấp bởi Time Stamping Authority (TSA). Thông qua các giao thức như RFC 3161, client có thể gửi timestamp request và nhận lại Timestamp Token chứa thông tin thời gian cùng chữ ký của TSA.

Timestamp không thay thế Code Signing Certificate, không kéo dài thời hạn certificate và không bảo vệ Private Key. Vai trò chính của timestamp là cung cấp bằng chứng mật mã về thời điểm dữ liệu được TSA xác nhận, từ đó hỗ trợ việc xác minh chữ ký trong thời gian dài.

Đối với quy trình phát hành phần mềm, có thể triển khai theo mô hình Sign → Timestamp → Verify. Việc sử dụng Timestamp Server phù hợp giúp doanh nghiệp duy trì thông tin về thời điểm ký và hỗ trợ quá trình xác minh chữ ký khi Code Signing Certificate về sau hết hạn hoặc trạng thái certificate thay đổi.

Bài viết mới nhất

Timestamp Server là gì? Cách hoạt động và vai trò trong Code Signing Code Signing Certificate và SSL Certificate khác nhau như thế nào? Điều gì xảy ra khi Code Signing Certificate bị thu hồi? Điều gì xảy ra khi Code Signing Certificate hết hạn? Code Signing hoạt động như thế nào? Quy trình ký và xác minh chữ ký số

Có thể bạn quan tâm

Gọi điện
Zalo
Google Maps