- Tổng quan
- Nội dung
- Tiêu chuẩn liên quan
- Lược đồ
- Tải về
Tiêu chuẩn TCVN 7818-3:2025 Công nghệ thông tin - Các kỹ thuật an toàn - Dịch vụ cấp dấu thời gian - Phần 3: Cơ chế tạo thẻ liên kết
| Số hiệu: | TCVN 7818-3:2025 | Loại văn bản: | Tiêu chuẩn Việt Nam |
| Cơ quan ban hành: | Bộ Khoa học và Công nghệ | Lĩnh vực: | Khoa học-Công nghệ |
|
Ngày ban hành:
Ngày ban hành là ngày, tháng, năm văn bản được thông qua hoặc ký ban hành.
|
14/04/2025 |
Hiệu lực:
|
Đã biết
|
| Người ký: | Đang cập nhật |
Tình trạng hiệu lực:
Cho biết trạng thái hiệu lực của văn bản đang tra cứu: Chưa áp dụng, Còn hiệu lực, Hết hiệu lực, Hết hiệu lực 1 phần; Đã sửa đổi, Đính chính hay Không còn phù hợp,...
|
Đã biết
|
TÓM TẮT TIÊU CHUẨN VIỆT NAM TCVN 7818-3:2025
Nội dung tóm tắt đang được cập nhật, Quý khách vui lòng quay lại sau!
Tải tiêu chuẩn Việt Nam TCVN 7818-3:2025
TIÊU CHUẨN QUỐC GIA
TCVN 7818-3:2025
CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - DỊCH VỤ CẤP DẤU THỜI GIAN - PHẦN 3: CƠ CHẾ TẠO THẺ LIÊN KẾT
Information technology - Security techniques - Time-stamping services - Part 3: Mechanisms producing linked tokens
Lời nói đầu
TCVN 7818-3:2025 thay thế cho TCVN 7818-3:2010.
TCVN 7818-3:2025 tương đương có sửa đổi đối với ISO/IEC 18014-3:2009.
TCVN 7818-3:2025 do Tiểu Ban kỹ thuật tiêu chuẩn quốc gia TCVN JTC1/SC 27 “Kỹ thuật an ninh” biên soạn, Viện Tiêu chuẩn Chất lượng Việt Nam đề nghị, Bộ Khoa học và Công nghệ thẩm định và công bố.
Bộ TCVN 7818 về Công nghệ thông tin - Các kỹ thuật an toàn - Dịch vụ cấp dấu thời gian gồm các phần sau:
- TCVN 7818-1:2024 (ISO/IEC 18014-1:2008), Phần 1: Khung;
- TCVN 7818-2:2025, Phần 2: Cơ chế tạo thẻ độc lập;
- TCVN 7818-3:2025, Phần 3: Cơ chế tạo thẻ liên kết;
- TCVN 7818-4:2024 (ISO/IEC 18014-4:2015), Phần 4: Liên kết chuẩn nguồn thời gian.
Lời giới thiệu
Dịch vụ cấp dấu thời gian là một trong các dịch vụ tin cậy trong các giao dịch điện tử; Dịch vụ cấp dấu thời gian là dịch vụ để gắn thông tin về thời gian vào thông điệp dữ liệu (dấu thời gian thường được tạo ra dưới dạng chữ ký số) và thời gian được gắn vào thông điệp dữ liệu là thời gian mà tổ chức cung cấp dịch vụ cấp dấu thời gian nhận được thông điệp dữ liệu đó và được chứng thực bởi tổ chức cung cấp dịch vụ cấp dấu thời gian; nguồn thời gian của tổ chức cung cấp dịch vụ cấp dấu thời gian phải theo quy định của pháp luật về nguồn thời gian chuẩn quốc gia.
TCVN 7818-3:2025 quy định dịch vụ cấp dấu thời gian bằng việc tạo các thẻ liên kết. Cấp dấu thời gian liên kết là một loại cấp dấu thời gian tin cậy trong đó các dấu thời gian được cấp có liên quan với nhau. Cấp dấu thời gian liên kết tạo ra các thẻ dấu thời gian phụ thuộc lẫn nhau, được liên kết trong một số cấu trúc dữ liệu đã xác thực. Việc sửa đổi sau đó các dấu thời gian đã cấp sẽ làm mất hiệu lực cấu trúc này. Thứ tự thời gian của các dấu thời gian đã cấp cũng được bảo vệ bởi cấu trúc dữ liệu, khiến việc ghi ngày ngược lại các dấu thời gian đã cấp là không thể, ngay cả bởi chính máy chủ cấp.
Phiên bản TCVN 7818-3:2025 là tương đương có sửa đối với ISO/IEC 18014-3:2009 và có bổ sung Phụ lục tham khảo bổ sung thông tin cho dịch vụ cấp dấu thời gian áp dụng tại Việt Nam.
CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - DỊCH VỤ CẤP DẤU THỜI GIAN - PHẦN 3: CƠ CHẾ TẠO THẺ LIÊN KẾT
Information technology - Security techniques - Time-stamping services - Part 3: Mechanisms producing linked tokens
1 Phạm vi áp dụng
Tiêu chuẩn này
• mô tả một mô hình chung cho các dịch vụ cấp dấu thời gian bằng việc tạo các thẻ liên kết,
• mô tả các thành phần cơ sở được sử dụng để xây dựng một dịch vụ cấp dấu thời gian bằng việc tạo các thẻ liên kết,
• xác định cấu trúc dữ liệu được sử dụng để tương tác với dịch vụ cấp dấu thời gian bằng việc tạo các thẻ liên kết,
• mô tả các trường hợp cụ thể của các dịch vụ cấp dấu thời gian bằng việc tạo các thẻ liên kết và
• xác định một giao thức được sử dụng bởi các dịch vụ cấp dấu thời gian bằng việc tạo các thẻ liên kết với mục đích mở rộng các thẻ liên kết đến các giá trị công bố.
2 Tài liệu viện dẫn
Các tài liệu viện dẫn dưới đây là cần thiết cho việc áp dụng tiêu chuẩn này. Đối với các tài liệu ghi năm công bố thì áp dụng phiên bản được nêu. Đối với các tài liệu không ghi năm công bố thì áp dụng phiên bản mới nhất, bao gồm cả các sửa đổi, bổ sung (nếu có).
TCVN 11816 (ISO/IEC 10118) (tất cả các phần), Công nghệ thông tin - Các kỹ thuật an toàn - Hàm băm;
TCVN 7818-1:2024 (ISO/IEC 18014-1:2008), Công nghệ thông tin - Các kỹ thuật an toàn - Dịch vụ cấp dấu thời gian - Phần 1: Khung.
3 Thuật ngữ, định nghĩa và chữ viết tắt
Tiêu chuẩn này sử dụng các thuật ngữ và định nghĩa sau đây.
3.1
Kết tập (aggregation)
Quá trình tạo một mục dữ liệu đại diện cho một nhóm các mục dữ liệu được liên kết với nhau và tạo một ràng buộc mật mã có thể xác thực giữa mỗi mục dữ liệu với các mục dữ liệu còn lại của nhóm đó.
3.2
Hàm băm kháng va chạm (collision-resistant hash-function)
Hàm băm thỏa mãn tính chất sau: không thể tìm được hai đầu vào khác nhau với cùng một giá trị đầu ra.
[Định nghĩa 3.2, TCVN 7818-1:2024 (ISO/IEC 18014-1:2008)]
3.3
Biểu diễn của mục dữ liệu (data items’ representation)
Mục dữ liệu hoặc một số biểu diễn của mục dữ liệu, chẳng hạn như giá trị băm mật mã.
[Định nghĩa 3.3, TCVN 7818-1:2024 (ISO/IEC 18014-1:2008)]
3.4
Hàm băm (hash-function)
Hàm mà ánh xạ một xâu bit tới một xâu bit có độ dài xác định thỏa mãn 2 tính chất sau:
- Không thể tìm được một giá trị đầu vào ứng với một giá trị đầu ra cho trước.
- Không thể tìm được một đầu vào thứ 2 khác với đầu vào cho trước mà có cùng đầu ra.
[Định nghĩa 3.6, TCVN 7818-1:2024 (ISO/IEC 18014-1:2008), đã sửa đổi - bỏ CHÚ THÍCH ở bản gốc]
3.5
Giá trị băm (hash value)
Xâu các bit là đầu ra của một hàm băm.
CHÚ THÍCH: Xem 3.7, TCVN 7818-1:2024 (ISO/IEC 18014-1:2008).
3.6
Liên kết (link)
Mục dữ liệu chứng thực sự tồn tại của ít nhất hai mục dữ liệu khác thông qua việc sử dụng các hàm băm kháng va chạm.
3.7
Tổ chức cấp dấu thời gian (time-stamping authority)
TSA
Bên thứ ba tin cậy được tín nhiệm để cung cấp dịch vụ cấp dấu thời gian.
[Định nghĩa 3.17, TCVN 7818-1:2024 (ISO/IEC 18014-1:2008)]
3.8
Dịch vụ cấp dấu thời gian (time-stamping service)
TSS
Dịch vụ cung cấp bằng chứng rằng một mục dữ liệu đã tồn tại trước một thời điểm nào đó.
[Định nghĩa 3.18, TCVN 7818-1:2024 (ISO/IEC 18014-1:2008)]
3.9
Thẻ dấu thời gian (time-stamp token)
TST
Cấu trúc dữ liệu chứa một ràng buộc mật mã có thể xác thực giữa biểu diễn của mục dữ liệu và giá trị thời gian.
CHÚ THÍCH: Một thẻ dấu thời gian cũng có thể bao gồm các mục dữ liệu bổ sung trong ràng buộc này.
[Định nghĩa 3.15, TCVN 7818-1:2024 (ISO/IEC 18014-1:2008)]
3.10
Bên thứ ba tin cậy (trusted third party)
TTP
Tổ chức chịu trách nhiệm về an toàn, hoặc đại diện của tổ chức này, được các tổ chức khác tin tưởng về các hoạt động liên quan đến an toàn.
[Định nghĩa 3.3.30, ISO/IEC 10181-1:1996]
4 Thảo luận chung
Tiêu chuẩn này mô tả các phương pháp và quá trình để tạo ra các thẻ dấu thời gian có liên quan, hoặc “được liên kết”, với các thẻ dấu thời gian khác được tạo ra bằng các phương pháp và quá trình được mô tả trong tiêu chuẩn này. Tổ chức cấp dấu thời gian (TSA) sử dụng các phương pháp và quá trình này để cung cấp ràng buộc mật mã có thể xác thực và an toàn giữa một thời điểm nào đó và các giá trị dữ liệu, đồng thời để tăng cường an toàn của các thẻ kết quả bằng cách giảm mức đảm bảo cần thiết trong các thao tác TSA. Tính tin cậy của các thẻ dấu thời gian được tính bằng cách sử dụng các phương pháp và quá trình phụ thuộc vào tính toàn vẹn của kho TSA-được duy trì để lưu trữ các kết quả tính toán trước đó của các thao tác liên kết. Tính toàn vẹn của kho các liên kết và thao tác liên kết do TSA thực hiện có thể được xác thực bằng mật mã và không phụ thuộc vào tính tin cậy của Hạ tầng khỏa công khai (PKI) hoặc yêu cầu chứng thực rằng một khóa riêng nào đó không bị xâm phạm.
Ngoài ra, tiêu chuẩn này:
- mô tả các phương pháp và quá trình mà TSA tạo các thẻ liên kết có thể sử dụng để tạo ra các giá trị thu được từ các thao tác liên kết với mục đích làm cho các thẻ sẵn có trên các phương tiện trực tuyến hoặc ngoại tuyến; và
- xác định giao thức yêu cầu-đáp ứng để cho phép mở rộng thẻ dấu thời gian do TSA phát hành với các mục dữ liệu dựa trên các giá trị do TSA công bố.
Các dịch vụ cấp dấu thời gian tuân theo tiêu chuẩn này có thể tương tác thông qua việc sử dụng các thẻ, thao tác và định dạng dữ liệu tiêu chuẩn. Nói chung, TSA tạo ra thẻ liên kết sử dụng các tính chất mã hóa của hàm băm để ‘Liên kết’ thẻ dấu thời gian với các thẻ dấu thời gian khác được TSA tạo ra trước đó. Một phương pháp khuyến nghị để tính giá trị liên kết một sự kiện với một liên kết đã tạo ra trước đó là nối một biểu diễn dữ liệu của sự kiện với liên kết và sử dụng kết quả nối này làm đầu vào cho một hàm băm. Giá trị băm thu được cung cấp một liên kết mật mã có thể xác thực giữa sự kiện và liên kết được tạo ra trước đó. Các hàm băm kháng va chạm được xác định trong TCVN 11816 (ISO/IEC 10118) phù hợp để sử dụng trong việc hình thành các thẻ liên kết: kháng tiền ảnh giúp che giấu nội dung của mục dữ liệu gốc khỏi TSA, trong khi kháng va chạm đảm bảo không thể chèn thẻ giả vào một tập hợp các thẻ liên kết hiện có.
CHÚ THÍCH: Để xử lý đầy đủ việc cấp dấu thời gian với các thẻ liên kết, xem [HS91], [BHS93], [HS97], [BLLV98] và [BLS00]. Để chứng minh tính an toàn của kỹ thuật liên kết, xem [Định lý 1, Phần 3.1, HS97].
5 Các thao tác cụ thể đối với TSA tạo thẻ liên kết
5.1 Thao tác liên kết
Thao tác liên kết bao gồm việc hình thành một ràng buộc có thể xác thực giữa thẻ dấu thời gian và các liên kết do TSA tạo ra trước đó thông qua việc sử dụng các hàm băm kháng va chạm. Giá trị của liên kết được tạo gần nhất cung cấp một bản sơ lược mật mã của tất cả các thẻ dấu thời gian đã từng tham gia vào quá trình liên kết.
TSA phù hợp khi tạo các thẻ liên kết phải thực hiện các thao tác liên kết bằng cách sử dụng một trong các phương pháp sau:
- liên kết xích tuyến tính;
- liên kết nhị phân kháng đơn điệu;
- liên kết cây phân luồng.
Liên kết xích tuyến tính bao gồm việc tạo ra các liên kết theo cách sau: giá trị của liên kết được tạo gần nhất phải được nối với giá trị băm của biểu diễn sự kiện gần nhất và sau đó phải áp dụng một hàm băm kháng va chạm.
Liên kết nhị phân kháng đơn điệu liên quan đến việc tạo liên kết theo cách sau: giá trị của hai liên kết được tạo trước đó phải được nối với giá trị băm của biểu diễn sự kiện gần nhất và sau đó phải áp dụng hàm băm kháng va chạm. Một trong hai liên kết đầu vào phải là liên kết được tạo gần nhất và định danh chính xác của liên kết còn lại phải được xác định bởi cấu trúc dữ liệu, do TSA-được duy trì, phải có dạng đồ thị có hướng không tuần hoàn (ADG/DAG) (xem Phụ lục B. 2.3).
Liên kết cây phân luồng liên quan đến việc tạo liên kết theo cách sau: giá trị của một số liên kết được tạo trước đó phải được nối với giá trị băm của một biểu diễn sự kiện gần nhất và sau đó phải áp dụng một hàm băm kháng va chạm. Một trong các liên kết đầu vào phải là liên kết được tạo gần nhất và định danh chính xác của các liên kết khác phải được xác định bởi cấu trúc dữ liệu, được duy trì bởi TSA, phải có dạng cây phân luồng (xem Phụ lục B.2.4).
Trong mọi trường hợp, các mục dữ liệu khác có thể được nối với đầu vào của hàm băm kháng va chạm trước khi tạo liên kết mới (ví dụ: tham số biến thể thời gian). Ngoài ra, nhiều hàm băm kháng va chạm có thể được sử dụng đồng thời trên cùng một đầu vào nhằm mục đích tạo liên kết mới và trong trường hợp đó, liên kết mới được tạo bằng cách ghép các giá trị băm thu được.
Giá trị của các liên kết trước đó được sử dụng làm đầu vào cho (các) hàm băm kháng va chạm phải được chứa trong (các) thẻ dấu thời gian tương ứng với sự kiện gần nhất và được trả lại cho bên yêu cầu trong trường ‘links’ của cấu trúc ‘BindingInfo’ (xem Điều 7.4).
Nếu các hàm băm được sử dụng trong thao tác liên kết thì phải sử dụng các hàm được quy định trong TCVN 11816 (ISO/IEC 10118).
Phụ lục B.2 bao gồm thảo luận bổ sung về các thuật toán có thể được sử dụng trong thao tác liên kết.
5.2 Thao tác kết tập
Thao tác kết tập liên quan đến việc hình thành một ràng buộc có thể xác thực giữa một nhóm thẻ dấu thời gian được gán cùng một giá trị thời gian thông qua việc sử dụng một hàm mật mã gồm cả kháng va chạm và kháng tiền ảnh, chẳng hạn như hàm băm kháng va chạm. Một lược đồ kết tập lấy một nhóm thẻ dấu thời gian làm đầu vào và tạo ra một giá trị kết tập duy nhất, cũng như dữ liệu mật mã có thể xác thực liên kết với nhau từng thẻ dấu thời gian với phần còn lại của nhóm. Giá trị kết tập được liên kết với thao tác kết tập được TSA tiếp tục sử dụng làm đầu vào cho thao tác liên kết, theo cách tương tự như trường hợp của thao tác liên kết đối với một thẻ dấu thời gian. Do đó, TSA phù hợp có thể thực hiện thao tác liên kết cho các nhóm thẻ dấu thời gian, thay vì cho từng thẻ dấu thời gian riêng lẻ, để cải thiện hiệu quả tính hoặc đạt được mức độ mở rộng dịch vụ cao hơn.
Một TSA phù hợp khi tạo các thẻ liên kết hỗ trợ kết tập phải thực hiện các thao tác kết tập bằng một trong các phương pháp sau:
- Kết tập cây Merkle;
- Kết tập tích lũy một chiều.
Tất cả các hình thức kết tập đều liên quan đến việc áp dụng (các) hàm băm kháng va chạm trước tiên cho cấu trúc dữ liệu ‘TSTInfo’ được đóng gói của thẻ dấu thời gian phải được kết tập. Các giá trị băm thu được được gọi là ‘các giá trị băm được kết tập’.
Kết tập cây Merkle liên quan đến việc sắp xếp các giá trị băm được kết tập dưới dạng các lá trong cấu trúc cây (xem Phụ lục B.3.3). Sau đó, một giá trị được gán cho mỗi Node không phải lá của cây bằng cách nối các giá trị băm được gán cho các Node con của nó và sau đó áp dụng hàm băm kháng va chạm, cho đến khi tất cả các Node của cấu trúc cây đã được gán giá trị. Giá trị được gán cho gốc của cây là giá trị kết tập. Nhiều hàm băm kháng va chạm có thể được sử dụng đồng thời trong quá trình này và trong trường hợp này, giá trị được gán cho mỗi Node không phải là Node lá được tính bằng cách ghép các giá trị băm được tạo bởi mỗi hàm băm.
Kết tập tích lũy một chiều liên quan đến việc tính giá trị kết tập theo cách mà việc xác thực giá trị kết tập cho bất kỳ giá trị băm nào tham gia có thể được thực hiện trong thời gian không đổi, bất kể số lượng giá trị băm được kết tập. Cách thức đạt được điều này nằm ngoài phạm vi của tiêu chuẩn này; Ví dụ về một kỹ thuật được nêu trong Phụ lục B.3.4.
Nếu sử dụng các hàm băm trong các thao tác kết tập, thì phải sử dụng các hàm băm được quy định trong TCVN 11816 (ISO/IEC 10118).
Phụ lục B.3 bao gồm thảo luận bổ sung về các thuật toán có thể được sử dụng trong các thao tác kết tập.
CHÚ THÍCH: Các dạng kết tập phổ biến bao gồm cây băm Merkle [M80], tích lũy một chiều [BD93] hoặc các lược đồ liên kết nhị phân khác [BLLV98].
5.3 Thao tác công bố
Các giá trị thu được từ các liên kết được tạo ra bởi một TSA phù hợp có thể được công bố theo cách thức để thao tác liên kết được “chứng nhận rộng rãi”. Điều này có thể đạt được bằng cách công bố định kỳ trên các phương tiện truyền thông có sẵn, ví dụ, các trang web hoặc các ấn phẩm in. Giá trị công bố phải phụ thuộc vào tất cả các thẻ dấu thời gian do TSA tạo ra kể từ sự kiện công bố trước đó. Bằng cách liên kết các thẻ với các sự kiện "được chứng kiến rộng rãi", TSA trên thực tế phải tạo ra các tuyên bố có thể xác thực về thời điểm mỗi thẻ dấu thời gian được tạo bởi hệ thống.
TSA phù hợp tạo các thẻ liên kết hỗ trợ việc công bố phải thực hiện các thao tác công bố bằng một trong các phương pháp sau:
- Công bố liên kết đơn;
- Công bố cây Merkle.
Công bố liên kết đơn liên quan đến việc công bố định kỳ một giá trị liên kết duy nhất. Giá trị liên kết đơn này cho phép xác thực tất cả các giá trị liên kết được tạo ra cho đến thời điểm liên kết đó được tạo. Chi tiết xem Phụ lục B.4.3.
Công bố cây Merkle liên quan đến công bố định kỳ kết tập cây Merkle của tất cả các liên kết được tạo ra kể từ sự kiện công bố gần nhất. Chi tiết xem Phụ lục B.4.4.
Nếu các hàm băm được sử dụng trong thao tác công bố, thì phải sử dụng các hàm được quy định trong TCVN 11816 (ISO/IEC 10118).
Phụ lục B.4 bao gồm thảo luận bổ sung về công bố các thao tác được thực hiện bởi một TSA phù hợp.
5.4 Thao tác mở rộng
Nếu một TSA phù hợp làm cho giá trị công bố khả dụng, thực thể sở hữu thẻ liên kết do TSA này phát hành có thể thực hiện giao thức yêu cầu-đáp ứng với TSA đang phát hành hoặc TTP khác có quyền truy cập vào các liên kết của TSA đang phát hành nhằm mục đích mở rộng thẻ dấu thời gian đến một giá trị công bố, sử dụng kênh bảo vệ tính toàn vẹn dữ liệu và xác thực nguồn gốc dữ liệu. Giao thức này phải được thực hiện sau khi giá trị công bố tương ứng với thẻ dấu thời gian này đã được TSA phát hành và có sẵn và nó dẫn đến việc tạo thẻ dấu thời gian mới, chứa các thành phần giống như mã gốc, như cũng như các mục dữ liệu bổ sung đề cập đến giá trị công bố và ràng buộc thẻ liên kết với nó. Các mục dữ liệu bổ sung cho phép tính giá trị công bố tương ứng mà không yêu cầu quyền truy cập vào các liên kết TSA đang phát hành. Các định dạng thông điệp hỗ trợ thao tác mở rộng được mô tả trong Điều 6.5 và 6.6.
6 Các định dạng thông điệp
6.1 Yêu cầu dấu thời gian
Yêu cầu dấu thời gian là thông điệp được gửi bởi bên yêu cầu dấu thời gian đến TSA để yêu cầu TSA phát hành thẻ dấu thời gian cho các mục dữ liệu trong thông điệp đó. Như được định nghĩa trong TCVN 7818-1, yêu cầu dấu thời gian chứa các trường dữ liệu được liệt kê trong Bảng 1.
Bảng 1 - Yêu cầu dấu thời gian
| Trường dữ liệu | Mô tả |
| version | Số phiên bản của cấu trúc dữ liệu này |
| messagelmprint | Dấu vết thông điệp mà TSA dùng để ràng buộc giá trị thời gian |
| reqPolicy | Chính sách dịch vụ được yêu cầu từ TSA (tùy chọn) |
| nonce | Định danh cho phép yêu cầu được đối sánh với thẻ dấu thời gian được phát hành (tùy chọn) |
| certReq | Yêu cầu TSA cung cấp thông tin chứng thư (nếu có) |
| extensions | Các mục bổ sung cần thiết để thực hiện đầy đủ yêu cầu dấu thời gian đã yêu cầu (tùy chọn) |
Định nghĩa ASN.1 về yêu cầu dấu thời gian được đưa ra trong Phụ lục A là TimeStampReq.
6.2 Đáp ứng dấu thời gian
Đáp ứng dấu thời gian là thông điệp được TSA trả lại để đáp ứng yêu cầu dấu thời gian. Như được định nghĩa trong TCVN 7818-1, đáp ứng dấu thời gian chứa các trường dữ liệu được liệt kê trong Bảng 2.
Bảng 2 - Đáp ứng dấu thời gian
| Trường dữ liệu | Mô tả |
| status | Trạng thái thao tác dấu thời gian |
| timeStampToken | Thẻ dấu thời gian được phát hành, nếu thao tác dấu thời gian thành công |
Định nghĩa ASN.1 về đáp ứng dấu thời gian được đưa ra trong Phụ lục A là TimeStampResp.
6.3 Yêu cầu xác thực
Yêu cầu xác thực là thông điệp được gửi bởi bên xác thực dấu thời gian đến TSA hoặc TTP khác có quyền truy cập vào các liên kết của TSA đang phát hành để yêu cầu thực thể nhận thông điệp xác thực tính hợp lệ của thẻ dấu thời gian có trong thông điệp. Như được định nghĩa trong TCVN 7818-1, yêu cầu xác thực chứa các trường dữ liệu được liệt kê trong Bảng 3.
Bảng 3 - Yêu cầu xác thực
| Trường dữ liệu | Mô tả |
| version | Số phiên bản của cấu trúc dữ liệu |
| tst | Thẻ dấu thời gian cần được xác thực |
| requestID | Định danh yêu cầu (tùy chọn) |
Định nghĩa ASN.1 của yêu cầu xác thực được đưa ra trong Phụ lục A là VerifyReq.
6.4 Đáp ứng xác thực
Đáp ứng xác thực là thông điệp được trả lại bởi TSA hoặc TTP khác có quyền truy cập vào các liên kết của TSA đang phát hành để đáp ứng lại yêu cầu xác thực. Như được định nghĩa trong TCVN 7818-1 đáp ứng xác thực chứa các trường dữ liệu được liệt kê trong Bảng 4.
Bảng 4 - Đáp ứng xác thực
| Trường dữ liệu | Mô tả |
| version | Số phiên bản của cấu trúc dữ liệu |
| status | Trạng thái của thao tác xác thực |
| tst | Thẻ dấu thời gian được đệ trình |
| requestID | Định danh đáp ứng, khớp với định danh yêu cầu (tùy chọn) |
Định nghĩa ASN.1 về đáp ứng xác thực được đưa ra trong Phụ lục A là VerifyResp.
6.5 Yêu cầu mở rộng
Yêu cầu mở rộng là thông điệp được gửi bởi một thực thể sở hữu thẻ liên kết đến TSA đang phát hành hoặc TTP khác có quyền truy cập vào các liên kết của TSA đang phát hành để yêu cầu thực thể nhận thông điệp gia hạn thẻ dấu thời gian có trong thông điệp với các mục dữ liệu bổ sung đề cập đến các giá trị công bố bởi TSA ban hành. Yêu cầu mở rộng có thể được chấp nhận sau khi sự kiện công bố cho thẻ dấu thời gian đã diễn ra, nghĩa là sau khi TSA đã cấp một giá trị công bố cho Khoảng thời gian bao gồm giá trị thời gian trong thẻ dấu thời gian. Yêu cầu mở rộng chứa các trường dữ liệu được liệt kê trong Bảng 5.
Bảng 5 - Yêu cầu mở rộng
| Trường dữ liệu | Mô tả |
| version | Số phiên bản của cấu trúc dữ liệu |
| tst | Thẻ dấu thời gian được mở rộng đến giá trị công bố |
| requestID | Định danh yêu cầu (tùy chọn) |
Trong tiêu chuẩn này, trường ‘version’ phải được đặt là một (‘1’).
Trường ‘requestID’ ràng buộc yêu cầu mở rộng với đáp ứng mở rộng tương ứng.
Định nghĩa ASN.1 về yêu cầu mở rộng được đưa ra trong Phụ lục A là ExtendReq.
6.6 Đáp ứng mở rộng
Đáp ứng mở rộng là thông điệp được trả lại bởi TSA hoặc TTP khác có quyền truy cập vào các liên kết của TSA đang phát hành để đáp ứng lại yêu cầu mở rộng. Nếu yêu cầu được chấp thuận, thẻ dấu thời gian mới phải được trả lại trong đáp ứng cùng với các mục dữ liệu bổ sung đề cập đến các giá trị công bố bởi TSA đang phát hành. Đáp ứng mở rộng chứa các trường dữ liệu được liệt kê trong Bảng 6.
Bảng 6 - Đáp ứng mở rộng
| Trường dữ liệu | Mô tả |
| version | Số phiên bản của cấu trúc dữ liệu |
| status | Trạng thái thao tác mở rộng |
| tst | Thẻ dấu thời gian được cập nhật nếu được cấp; nếu không để nguyên thẻ dấu thời gian ban đầu |
| requestID | Định danh đáp ứng, khớp với định danh yêu cầu (tùy chọn) |
Trong tiêu chuẩn này, trường ‘version’ phải được đặt là một (‘1’).
Trường ‘status’ cho biết kết quả của thao tác mở rộng được thực hiện bởi TSA hoặc TTP khác đáp ứng yêu cầu mở rộng thẻ dấu thời gian đã gửi đến giá trị công bố.
Trường ‘tst’ chứa thẻ dấu thời gian tương ứng với thẻ dấu thời gian được gửi trong yêu cầu mở rộng tương ứng. Nếu yêu cầu mở rộng không được chấp thuận, thẻ dấu thời gian trong trường ‘tst’ giống với mã được gửi trong yêu cầu mở rộng; nếu yêu cầu mở rộng được chấp thuận, thẻ dấu thời gian trong trường ‘tst’ khớp với mã trong yêu cầu mở rộng trong tất cả các thành phần, ngoại trừ có thể có bất kỳ mục dữ liệu nào trong thành mở rộng công bố hiện có của thẻ dấu thời gian ‘BindingInfo cấu trúc’ và cũng mang các mục dữ liệu đề cập đến ít nhất một giá trị công bố. Các mục dữ liệu bổ sung được mang trong một hoặc nhiều cấu trúc ‘PublicationInfo’, như được mô tả trong Điều 7.8. Trong trường hợp thẻ dấu thời gian sử dụng gói ‘DigestedData’, như được mô tả trong Điều 8.2, cấu trúc ‘PublicationInfo’ được thực hiện trong mở rộng công bố bên trong trường ‘extensions’ của cấu trúc ‘BindingInfo’ của thẻ dấu thời gian.
Trường ‘requestID’ phải xuất hiện nếu có định danh yêu cầu trong yêu cầu mở rộng tương ứng; trong trường hợp này, nó phải có cùng giá trị với định danh yêu cầu trong yêu cầu mở rộng tương ứng.
Định nghĩa ASN.1 về đáp ứng mở rộng được đưa ra trong Phụ lục A là ExtendResp.
7 Kiểu dữ liệu
7.1 Định danh đối tượng
Cung định danh đối tượng gốc được xác định để hỗ trợ việc cấp phát các định danh đối tượng khác trong tiêu chuẩn này. Định nghĩa ASN.1 của định danh đối tượng này được nêu trong Phụ lục A là tsp-lt và được mô phỏng dưới đây:
![]()
Các định danh đối tượng tiếp theo được xác định trong tiêu chuẩn này dẫn xuất từ định danh gốc này và được liệt kê trong Phụ lục A. Các định danh đối tượng bổ sung được định nghĩa ở nơi khác và được sử dụng trong tiêu chuẩn này cũng được trình bày trong Phụ lục A.
7.2 TSTInfo
Kiểu dữ liệu ‘TSTInfo’ biểu diễn đối tượng do TSA tạo ra trong quá trình phát hành thẻ dấu thời gian. Như được định nghĩa trong TCVN 7818-1, kiểu dữ liệu ‘TSTInfo’ chứa các trường dữ liệu được liệt kê trong Bảng 7 (xem trang sau).
Bảng 7 - TSTInfo
| Trường dữ liệu | Mô tả |
| version | Số phiên bản của cấu trúc dữ liệu |
| policy | Chính sách dịch vụ của TSA |
| messageImprint | Dấu vết thông điệp mà TSA dùng để ràng buộc giá trị thời gian |
| serialNumber | Số nguyên được chỉ định bởi TSA |
| genTime | Thời gian do TSA ấn định |
| accuracy | Độ chính xác của trường ‘genTime’ so với UTC (tùy chọn) |
| ordering | Boolean, mặc định là false; nếu được đặt là true, thì cho phép sắp thứ tự thẻ dấu thời gian do TSA này phát hành chỉ dựa trên trường ‘genTime’ (bỏ qua trường ‘accuracy’) |
| nonce | Định danh, khớp với trường ‘nonce’ trong yêu cầu dấu thời gian (tùy chọn) |
| tsa | Tên của TSA (tùy chọn) |
| extensions | Các mục dữ liệu bổ sung (tùy chọn) |
Trong tiêu chuẩn này, trường ‘version’ phải được đặt là một (‘1’).
Trường ‘serialNumber’ có thể được đặt là 0; nếu nó không được đặt là 0, thì giá trị phải là một số nguyên được TSA quy định cho mỗi thẻ dấu thời gian và phải là duy nhất cho mỗi thẻ dấu thời gian được phát hành bởi một TSA nhất định trong thời gian hoạt động của TSA đó.
Trường ‘extensions’ chứa các mục dữ liệu đại diện cho thông tin bổ sung liên quan đến các mục dữ liệu trong yêu cầu dấu thời gian tương ứng. Điều 7.9.1 xác định các kiểu dữ liệu có thể được sử dụng trong trường ‘extensions’.
Định nghĩa ASN.1 của kiểu dữ liệu ‘TSTInfo’ được đưa ra trong Phụ lục A là TSTinfo.
7.3 TimeStampToken
Kiểu dữ liệu ‘TimeStampToken’ đại diện cho thẻ dấu thời gian do TSA phát hành. Như được định nghĩa trong TCVN 7818-1, TSA tạo thẻ dấu thời gian bằng cách:
- tạo cấu trúc ‘TSTInfo’ theo các mục dữ liệu trong yêu cầu dấu thời gian,
- thực hiện các hành động theo cơ chế cấp dấu thời gian được TSA sử dụng, và
- đóng gói cấu trúc ‘TSTInfo’ kết quả và các mục dữ liệu khác theo cách đóng gói kiểu nội dung phù hợp với cơ chế cấp dấu thời gian mà TSA sử dụng.
Trong tiêu chuẩn này, chỉ hỗ trợ các gói nội dung dạng ‘DigestedData’ và ‘SignedData’.
Định nghĩa ASN.1 của kiểu dữ liệu TimeStampToken’ được đưa ra trong Phụ lục A là TimeStampToken.
7.4 BindingInfo
Kiểu dữ liệu ‘BindingInfo’ đại diện cho các mục dữ liệu được tạo bởi TSA do liên kết cấu trúc ‘TSTInfo’ được đóng gói của thẻ dấu thời gian với thẻ dấu thời gian đã tạo trước đó. Kiểu dữ liệu ‘BindingInfo’ chứa các trường dữ liệu được liệt kê trong Bảng 8 (xem trang sau).
Bảng 8 - BindingInfo
| Trường dữ liệu | Mô tả |
| version | Số phiên bản của cấu trúc dữ liệu |
| msgImprints | Các bản tóm lược hoặc bản tóm lược thông điệp được tính trên cấu trúc TSTInfo đóng gói của thẻ dấu thời gian |
| aggregate | Dữ liệu xác thực kết tập của trường ‘msgImprints’ với các thành viên khác của kết tập (tùy chọn) |
| links | Mục dữ liệu hoặc các mục kết hợp kết quả của trường ‘msgImprints’ và ‘kết tập’ với kết quả trước của các thao tác liên kết |
| publish | Dữ liệu xác thực kết quả của thao tác liên kết này so với một giá trị công bố (tùy chọn, không nên sử dụng) |
| extensions | Các mục dữ liệu bổ sung (tùy chọn) |
Trong tiêu chuẩn này, trường ‘version’ phải được đặt là một (‘1’).
Trường ‘msgImprints’ được tính trên cấu trúc ‘TSTInfo’ được đóng gói của thẻ dấu thời gian, như được mô tả trong Điều 8.1.
Trường ‘aggregate’ chứa một hoặc nhiều trường hợp cụ thể của kiểu ‘Chain’ và nó xác thực sự tham gia của trường "msgImprints" vào thao tác kết tập như được mô tả trong Điều 8.1, nếu có. Một trường hợp cụ thể của kiểu ‘Chain’ chứa tham gia xác thực dữ liệu trong một thao tác kết tập duy nhất. Trường ‘aggregate’ có thể chứa nhiều trường hợp cụ thể của kiểu ‘Chain’ khi các lược đồ kết tập nhiều tầng được hỗ trợ và các giá trị của các trường hợp cụ thể của kiểu ‘Chain’ phải được tính theo thứ tự.
Trường ‘links’ chứa một hoặc nhiều trường hợp cụ thể của kiểu ‘Link’. Nó đại diện cho thao tác liên kết cho giá trị thời gian được quy định trong ‘TSTInfo’ được đóng gói của thẻ dấu thời gian tương ứng và bao gồm trong các thành phần của nó kết quả của thao tác liên kết từ các giá trị thời gian trước được sử dụng làm đầu vào cho giá trị hiện tại. Nó phải luôn bao gồm trong các thành phần của nó kết quả của thao tác liên kết cho giá trị thời gian ngay trước đó, đại diện cho bản sơ lược đang chạy của thao tác liên kết tích lũy cho đến nay. Nếu có nhiều bản sao của kiểu ‘Link’, các giá trị của các bản sao của kiểu ‘Link’ phải được tính theo thứ tự.
Đối với cấu trúc ‘BindingInfo’ nhất định trong thẻ dấu thời gian, kết quả của thao tác liên kết cho giá trị thời gian trong cấu trúc ‘TSTInfo’ được đóng gói phải được tính như sau: nếu không tồn tại trường ‘aggregate’, giá trị của ‘trường links’ được tính có tính đến nội dung của trường ‘msgImprints’; nếu không, trước tiên giá trị của trường ‘aggregate’ được tính có tính đến nội dung của trường ‘msgImprints’, sau đó giá trị của ‘Link’ được gửi phải được tính có tính đến kết quả đã tính trước đó của trường ‘aggregate’.
Việc sử dụng trường ‘publish’ không nên sử dụng; xem Điều 7.9.2.3 và 7.8 để biết thêm thông tin liên quan đến các giá trị công bố và kiểu dữ liệu có thể tham chiếu đến chúng trong trường ‘extensions’ của cấu trúc ‘BindingInfo’.
Trường ‘extensions’ chứa các mục dữ liệu đại diện cho thông tin bổ sung liên quan đến thao tác kết tập, liên kết và công bố cho giá trị thời gian được quy định trong cấu trúc ‘TSTInfo’ được đóng gói của thẻ dấu thời gian. Điều 7.9.2 xác định các kiểu dữ liệu có thể được sử dụng trong trường ‘extensions’.
Định nghĩa ASN.1 của kiểu dữ liệu ‘BindingInfo’ được đưa ra trong Phụ lục A là BindingInfo.
7.5 Chain
Kiểu dữ liệu ‘Chain’ đại diện cho một chuỗi các hoạt động đại diện cho một thao tác kết tập hoặc một thao tác công bố. Kiểu dữ liệu ‘Chain’ chứa các trường dữ liệu được liệt kê trong Bảng 9.
Bảng 9 - Chain
| Trường dữ liệu | Mô tả |
| algorithm | Định danh đối tượng của thuật toán được sử dụng để tính giá trị của chuỗi |
| links | Chuỗi các mục dữ liệu thuộc kiểu ‘Link’ |
Giá trị của một phiên bản thuộc kiểu ‘Chain’ được tính bằng cách thực thi thuật toán được quy định trong trường ‘algorithm’ trên chain các phiên bản thuộc kiểu ‘Link’ có trong trường ‘links’. Ví dụ, một thể hiện của kiểu ‘Chain’ có thể được xây dựng để biểu diễn kết quả của phép tính Merkle hash tree [M80]; trong trường hợp này, chain các thể hiện kiểu ‘Link’ biểu diễn đường dẫn tính từ một Node lá cụ thể đến Node gốc chung. Phụ lục B.3 bao gồm thảo luận bổ sung về các thuật toán có thể được sử dụng trong các thao tác kết tập.
Định nghĩa ASN.1 về kiểu dữ liệu ‘Chain’ được đưa ra trong Phụ lục A là Chain.
7.6 Link
Kiểu dữ liệu ‘Link’ đại diện cho một thao tác liên kết đơn lẻ hoặc một bước của thao tác kết tập hoặc công bố. Kiểu dữ liệu ‘Link’ chứa các trường dữ liệu được liệt kê trong Bảng 10.
Bảng 10 - Link
| Trường dữ liệu | Mô tả |
| algorithm | Định danh đối tượng của thuật toán được sử dụng để tính giá trị của liên kết (tùy chọn) |
| identifier | Định danh liên kết cục bộ, khi liên kết được tham chiếu bởi các liên kết khác (tùy chọn) |
| members | Chuỗi các mục dữ liệu thuộc kiểu ‘Node’ được liên kết |
Giá trị của một trường hợp kiểu ‘Link’ được tính bằng cách thực thi thuật toán được quy định trong trường ‘algorithm’ trên chain các trường hợp kiểu ‘Node’ có trong trường ‘thành viên’. Nếu kết quả của phép tính này được sử dụng làm đầu vào cho các thao tác khác, chúng phải được xác định bằng định danh cục bộ được lưu trữ trong trường ‘định danh’ trên trường hợp cụ thể của kiểu ‘Link’. Nếu trường ‘algorithm’ không có, thì thuật toán được sử dụng để tính giá trị của trường hợp kiểu ‘Link’ được quy định bởi ngữ cảnh. Trong trường hợp một trường hợp cụ thể của kiểu ‘Chain’ chứa một chuỗi các trường hợp thuộc kiểu ‘Link’, thuật toán được sử dụng để tính giá trị của bất kỳ trường hợp nào thuộc kiểu ‘Link’ mà trường ‘algorithm’ không có mặt phải là thuật toán được quy định trong trường ‘algorithm’ của trường hợp chứa kiểu ‘Chain’. Phụ lục B.2 bao gồm thảo luận bổ sung về các thuật toán có thể được sử dụng trong thao tác liên kết.
Định nghĩa ASN.1 của kiểu dữ liệu ‘Link’ được đưa ra trong Phụ lục A là Link.
7.7 Node
Kiểu dữ liệu ‘Node’ đại diện cho một phần tử đầu vào duy nhất cho thao tác liên kết hoặc cho một bước của thao tác kết tập hoặc công bố. Kiểu dữ liệu ‘Node’ được định nghĩa là chứa một trong hai (nhưng không phải cả hai) trường dữ liệu được liệt kê trong Bảng 11.
Bảng 11 - Node
| Trường dữ liệu | Mô tả |
| imprints | Các mục dữ liệu đầu vào |
| reference | Định danh cục bộ của một trường hợp cụ thể của kiểu ‘Link’ để lấy các mục dữ liệu đầu vào |
Nếu trường ‘imprints’ xuất hiện, trường hợp này của kiểu ‘Node’ chứa các mục dữ liệu thực tế được quan tâm và giá trị của chúng phải được sử dụng như một phần của các hoạt động tiếp theo liên quan đến trường hợp cụ thể của kiểu ‘Node’ này.
Nếu trường ‘reference’ có mặt và giá trị khác 0, trường hợp cụ thể của kiểu ‘Node’ này xác định một trường hợp cụ thể của kiểu ‘Link’ trong ngữ cảnh. Trong trường hợp một trường hợp cụ thể của kiểu ‘Chain’ chứa một chuỗi các trường hợp cụ thể của kiểu ‘Link’ và đối với một trường hợp cụ thể như vậy của kiểu ‘Link’ chứa một chuỗi các trường hợp thuộc kiểu ‘Node’, sự hiện diện của ‘tham chiếu trường ‘có giá trị khác 0 trong trường hợp kiểu’ Node ‘như vậy ràng buộc trường hợp kiểu ‘Node’ này với trường hợp được giới thiệu của kiểu ‘Link’ được xác định bởi cùng một giá trị số nguyên trong trường’ định danh ‘của nó trong trường hợp chứa thuộc kiểu ‘Chain’. Giá trị của một thể hiện kiểu ‘Node’ như vậy phải là giá trị của thể hiện kiểu ‘Link’ được giới thiệu.
Nếu trường ‘tham chiếu’ có mặt và giá trị bằng 0, giá trị của trường hợp kiểu ‘Node’ này được lấy từ một nguồn bên ngoài có định danh phụ thuộc vào ngữ cảnh. Trong trường hợp một chuỗi các trường hợp cụ thể của kiểu ‘Chain’ trong đó mỗi phiên bản của kiểu ‘Chain’ bao gồm một chuỗi các phiên bản thuộc kiểu ‘Link’ và đối với một phiên bản cụ thể như vậy của kiểu ‘Link’ chứa một chuỗi các phiên bản của gõ ‘Node’, giá trị của một trường hợp kiểu ‘Node’ có chứa trường ‘tham chiếu’ với giá trị 0 phải là giá trị của trường hợp kiểu ‘Chain’ ngay trước trường hợp ‘Chain’ có chứa trường hợp nói trên của kiểu ‘Node’.
Định nghĩa ASN.1 của kiểu dữ liệu ‘Node’ được đưa ra trong Phụ lục A là Node.
7.8 PublicationInfo
Kiểu dữ liệu ‘PublicationInfo’ đại diện cho thông tin xác thực kết quả của thao tác liên kết do TSA thực hiện với giá trị công bố do TSA cấp và nó cung cấp các mục dữ liệu cần thiết để xác định và tính giá trị công bố này. Kiểu dữ liệu ‘PublicationInfo’ chứa các trường dữ liệu được liệt kê trong Bảng 12.
Bảng 12 - PublicationInfo
| Trường dữ liệu | Mô tả |
| pubTime | Giá trị thời gian được liên kết với sự kiện công bố (tùy chọn) |
| pubId | Định danh của giá trị công bố (tùy chọn) |
| pubChains | Dữ liệu xác thực sự tham gia của kết quả của thao tác liên kết trong sự kiện công bố (tùy chọn) |
| sourceId | Định danh của dữ liệu nguồn tham gia vào việc tạo ra giá trị công bố (tùy chọn) |
Trường ‘pubTime’, nếu có, quy định giá trị thời gian được liên kết với sự kiện công bố cho giá trị công bố mà bạn quan tâm. Ví dụ: trong trường hợp trường ‘pubId’ xác định một ấn phẩm nối tiếp trên phương tiện truyền thông in, trường ‘pubTime’ có thể quy định ngày công bố cho ấn phẩm phát hành thường xuyên có chứa giá trị công bố.
Trường ‘pubId’, nếu có, xác định vị trí của giá trị được quan tâm đã công bố. Ví dụ: trường ‘pubId’ có thể là tên thư mục hoặc URI phân giải đến vị trí của giá trị được quan tâm đã công bố.
Trường ‘pubChains’, nếu có, là một chuỗi các trường hợp cụ thể của kiểu ‘Chain’. Đối với một thao tác liên kết nhất định do TSA thực hiện, trường này được xác định theo thao tác công bố do TSA thực hiện trong khoảng thời gian chứa đúng giá trị thời gian của thao tác liên kết nói trên.
Trường ‘sourceId’, nếu có, xác định dữ liệu nguồn cho giá trị công bố, nghĩa là, kết quả của thao tác liên kết được tạo và duy trì bởi TSA đã được sử dụng để tạo ra giá trị công bố, cũng như các tính chất nội tại bổ sung của việc công bố sự kiện (ví dụ: tần suất công bố, Khoảng thời gian được chứa trong kho lưu trữ các liên kết được TSA-được duy trì, v.v.).
Định nghĩa ASN.1 của kiểu dữ liệu ‘PublicationInfo’ được đưa ra trong Phụ lục A là PublicationInfo.
7.9 Mở rộng
7.9.1 Mở rộng yêu cầu dấu thời gian
7.9.1.1 Mở rộng giá trị băm
Bên yêu cầu dấu thời gian muốn đệ trình việc cấp dấu thời gian với nhiều giá trị băm dẫn xuất từ một mục dữ liệu. Để cho phép gửi nhiều giá trị băm, mở rộng giá trị băm được xác định. Mở rộng này được thực hiện trong trường ‘extensions’ của cả yêu cầu cấp dấu thời gian do bên yêu cầu gửi đến TSA và trong trường ‘extensions’ của cấu trúc ‘TSTInfo’ kết quả được tạo bởi TSA và được trả lại trong thẻ dấu thời gian cho bên yêu cầu.
Nếu mở rộng này xuất hiện trong một yêu cầu dấu thời gian và TSA có thể xử lý, thì TSA phải ràng buộc về mật mã cả giá trị băm trong thông điệp yêu cầu dấu thời gian được quy định trong trường ‘messageImprints’ của yêu cầu dấu thời gian và những giá trị được chứa trong mở rộng này với giá trị thời gian mà nó gán cho cấu trúc ‘TSTInfo’ trong thẻ dấu thời gian kết quả và phải sao chép nội dung của mở rộng này chưa được sửa đổi trong cấu trúc ‘TSTInfo’ đã nói ở trên.
Định nghĩa ASN.1 của mở rộng giá trị băm được đưa ra trong Phụ lục A là extHash.
7.9.1.2 Mở rộng phương pháp
Bên yêu cầu dấu thời gian có thể chỉ ra cho TSA cụ thể phương pháp cấp dấu thời gian nào phải sử dụng khi tạo thẻ dấu thời gian cuối cùng. Để cho phép bên yêu cầu chỉ ra cho một TSA cụ thể phương pháp cấp dấu thời gian nào phải sử dụng để tạo thẻ dấu thời gian kết quả, mở rộng phương pháp được xác định. Mở rộng này được thực hiện trong trường ‘extensions’ của cả yêu cầu cấp dấu thời gian do bên yêu cầu gửi đến TSA và trong trường ‘extensions’ của cấu trúc ‘TSTInfo’ kết quả được tạo bởi TSA và được trả lại trong thẻ dấu thời gian cho bên yêu cầu.
Nếu mở rộng này xuất hiện trong một yêu cầu cấp dấu thời gian và TSA có thể xử lý, thì TSA phải cố gắng thực hiện yêu cầu đối với phương pháp đã quy định hoặc trả về lỗi cho biết phương pháp không sẵn có. Nếu bên yêu cầu quy định nhiều phương pháp khả thi, TSA có thể chọn một trong các phương pháp được đề xuất để sử dụng trong việc hình thành thẻ dấu thời gian. Nếu mở rộng này không xuất hiện, thì TSA phải sử dụng cơ chế cấp dấu thời gian mặc định của nó.
Định nghĩa ASN.1 của mở rộng phương pháp được đưa ra trong Phụ lục A là extMethod.
7.9.1.3 Gia hạn
Bên yêu cầu dấu thời gian có thể muốn cho TSA biết rằng yêu cầu dấu thời gian hiện tại là sự gia hạn dấu thời gian trên dữ liệu đã được cấp dấu thời gian trước đây, để thời hạn hiệu lực của dấu thời gian hiện có thẻ được bảo toàn trong tương lai (ví dụ: khi một hàm băm được đề cập trong thẻ dấu thời gian gần bị phá vỡ bởi các cuộc tấn công mới hoặc sức mạnh tính có sẵn). Để cho phép gửi các yêu cầu cấp dấu thời gian gia hạn bao gồm thẻ dấu thời gian hiện có, mở rộng gia hạn được xác định. Mở rộng này được thực hiện trong trường ‘extensions’ của cả yêu cầu cấp dấu thời gian do bên yêu cầu gửi đến TSA và trong trường ‘extensions’ của cấu trúc TSTInfo kết quả được tạo bởi TSA và được trả lại cho bên yêu cầu.
Nếu mở rộng này xuất hiện trong một yêu cầu cấp dấu thời gian và TSA có thể xử lý nó, thì TSA phải sao chép nội dung của mở rộng này chưa được sửa đổi trong cấu trúc ‘TSTInfo’ trong thẻ dấu thời gian kết quả.
Định nghĩa ASN.1 về mở rộng gia hạn được nêu trong Phụ lục A là extRenewal.
7.9.2 Mở rộng BindingInfo
7.9.2.1 Mở rộng tên
Một TSA tạo các thẻ liên kết có thể xác định từng bước của quá trình cấp dấu thời gian tổng thể bằng một tên riêng biệt, cho mục đích kiểm tra hoặc lưu giữ hồ sơ. Để cho phép xác định các bước này trong cấu trúc ‘BlndingInfo’, mở rộng tên được xác định. Ví dụ: TSA có thể bao gồm mở rộng này khi quá trình cấp dấu thời gian tổng thể được thực hiện bởi một tập hợp các quá trình riêng biệt cùng điều hành.
Định nghĩa ASN.1 của mở rộng tên được đưa ra trong Phụ lục A là extName.
7.9.2.2 Mở rộng thời gian
TSA tạo các thẻ liên kết có thể ghi lại giá trị thời gian mà tại đó mỗi bước trong quá trình cấp dấu thời gian tổng thể đã xảy ra, cho mục đích kiểm tra hoặc lưu giữ hồ sơ. Để cho phép ghi các giá trị thời gian này trong cấu trúc ‘BindingInfo’, mở rộng thời gian được xác định. Ví dụ, TSA có thể bao gồm mở rộng này khi quá trình cấp dấu thời gian tổng thể được thực hiện bởi một tập hợp các quá trình riêng biệt hợp tác.
Định nghĩa ASN.1 về mở rộng thời gian được đưa ra trong Phụ lục A là extTime.
7.9.2.3 Mở rộng công bố
Bên yêu cầu dịch vụ cấp dấu thời gian có thể thực hiện giao thức yêu cầu-đáp ứng với TSA đang phát hành hoặc TTP khác có quyền truy cập vào các liên kết của TSA đang phát hành, cho phép nó mở rộng thẻ dấu thời gian hiện có đến giá trị công bố. Để cho phép ghi dữ liệu mở rộng thẻ dấu thời gian đến giá trị công bố trong cấu trúc ‘BindingInfo’, mở rộng công bố được xác định.
Các mục dữ liệu của tiện ích mở rộng này có thể được sử dụng để xác thực tính hợp lệ của thẻ dấu thời gian so với giá trị công bố do TSA phát hành và chống lại sự kiện công bố TSA tương ứng. Nếu giá trị do TSA công bố có sẵn theo cách xác thực từ các nguồn được chứng kiến rộng rãi, thì việc xác thực thẻ dấu thời gian so với giá trị công bố đó và giá trị thời gian của sự kiện công bố tương ứng có thể được tiến hành độc lập với TSA phát hành đã tạo ra thẻ dấu thời gian ban đầu. Lưu ý rằng các giá trị thời gian được liên kết với các sự kiện công bố TSA đại diện cho thang thời gian thô hơn so với thang thời gian được xác định bởi giá trị thời gian được gán cho trường ‘genTime’ của cấu trúc ‘TSTInfo’ được đóng gói của thẻ dấu thời gian.
Mở rộng công bố cho phép sự hiện diện của nhiều trường thuộc kiểu ‘PublicationInfo’ để cung cấp các giá trị công bố ở các Khoảng thời gian khác nhau cung cấp mức độ chi tiết về thời gian khác nhau, ví dụ: hàng ngày hoặc hàng tuần.
Định nghĩa ASN.1 của mở rộng giá trị băm được đưa ra trong Phụ lục A là extPublication.
CHÚ THÍCH: Kiểu dữ liệu ‘BindingInfo’ chứa trường ‘publish’ có thể được sử dụng để hỗ trợ giới hạn các giá trị công bố bởi TSA phù hợp tạo thẻ liên kết. Kiểu dữ liệu ‘PublicationInfo’ như được sử dụng trong tiện ích mở rộng công bố hỗ trợ tập hợp tính năng lớn hơn đáng kể và không chấp nhận việc sử dụng trường ‘publish’ trong kiểu dữ liệu ‘BindingInfo’.
8 Tạo thẻ dấu thời gian
8.1 Quy định chung
Để có được thẻ dấu thời gian qua dữ liệu đã cho, bên yêu cầu dấu thời gian phải gửi yêu cầu dấu thời gian đến TSA, như được mô tả trong Điều 6.1. Bên yêu cầu có thể quy định tiện ích mở rộng phương pháp với định danh đối tượng tsp-req-link, như được định nghĩa trong Phụ lục A trong trường ‘extensions’ nhằm mục đích yêu cầu thẻ dấu thời gian bằng cách sử dụng gói ‘DigestedData’. Ngoài ra, bên yêu cầu có thể quy định mở rộng phương pháp với định danh đối tượng tsp-req-link-ds, như được định nghĩa trong Phụ lục A trong trường ‘extensions’ nhằm mục đích yêu cầu thẻ dấu thời gian bằng cách sử dụng gói ‘SignedData’.
Nếu mở rộng phương pháp được quy định trong trường ‘extensions’ của yêu cầu dấu thời gian và mở rộng phương pháp chứa một hoặc nhiều định danh phương pháp tương ứng với các phương pháp được TSA hỗ trợ, thì một TSA tạo thẻ liên kết phải đáp ứng yêu cầu bằng cách sử dụng một trong các đã quy định các phương pháp được hỗ trợ. Nếu không có mở rộng phương pháp nào được quy định trong trường ‘extensions’ của yêu cầu dấu thời gian, thì một TSA tạo các thẻ liên kết phải sử dụng cách đóng gói "DigestedData" hoặc "SignedData" cho các mã được tạo, theo chính sách dịch vụ của nó.
Đáp ứng dấu thời gian do TSA phù hợp trả về có thể bao gồm cấu trúc ‘TimeStampToken’, nếu yêu cầu được chấp thuận. TSA phù hợp tạo các thẻ dấu thời gian được liên kết theo các bước được mô tả bên dưới.
Thông tin dấu thời gian được TSA tạo lần đầu tiên theo cấu trúc ‘TSTInfo’ được định nghĩa trong Điều 7.2. Cấu trúc này chứa thông điệp tóm tắt dữ liệu được đánh dấu thời gian, giá trị thời gian được TSA ấn định và các thông tin liên quan khác. Trường ‘tsa’ của cấu trúc ‘TSTInfo’ phải có mặt; trường ‘tsa’ là bắt buộc để xác thực dấu thời gian. Trường ‘extensions’ của ‘TSTInfo’ phải hiển thị nếu yêu cầu dấu thời gian tương ứng bao gồm các mục dữ liệu trong trường ‘extensions’.
Sau đó, TSA phải mã hóa cấu trúc 'TSTInfo’ được tạo bằng cách sử dụng các quy tắc mã hóa DER và lưu trữ các octet kết quả trong phần "eContent" của cấu trúc "EncapsulatedContentInfo".
Sau đó TSA phải tính một hoặc nhiều giá trị băm trên trường ‘eContent’ này bằng cách sử dụng một hoặc nhiều hàm băm. Giá trị băm hoặc các giá trị kết quả được chèn vào trường ‘msgImprints’ của cấu trúc ‘BindingInfo’ được xác định trong Điều 7.4.
TSA phải sử dụng nội dung của trường ‘msgImprints’ trong thao tác liên kết kết tập với các liên kết từ các thao tác liên kết trước đó, có thể kết tập với các trường ‘msgImprints’ từ các yêu cầu cấp dấu thời gian đồng thời khác (nghĩa là, các yêu cầu dấu thời gian nhận được cùng giá trị thời gian trong cấu trúc ‘TSTInfo’ kết quả), và phải điền các trường ‘links’ và ‘aggregate’ của cấu trúc ‘BindingInfo’ cho phù hợp.
Cuối cùng, TSA phải tạo thẻ dấu thời gian bằng cách đóng gói cấu trúc ‘TSTInfo’ và cấu trúc ‘BindingInfo’ tương ứng trong cấu trúc ‘TimeStampToken’. TSA có thể thực hiện một trong hai kiểu gói:
- Gói ‘DigestedData’, trong trường hợp đó trường ‘contentType’ phải chứa giá trị id- digestedData và trường ‘content’ phải chứa một giá trị kiểu ‘DigestedData’; kiểu gói này có thể được sử dụng khi yêu cầu dấu thời gian bao gồm mở rộng phương pháp trong trường ‘extensions’ với giá trị là định danh đối tượng tsp-req-link.
- Gói ‘SignedData’, trong trường hợp đó trường ‘contentType’ phải chứa giá trị id-signData và trường ‘content’ phải chứa giá trị kiểu ‘SignedData’; kiểu gói này có thể được sử dụng khi yêu cầu dấu thời gian bao gồm mở rộng phương pháp trong trường ‘extensions’ với giá trị là định danh đối tượng tsp-req-link-ds.
8.2 Gói Digested Data
Một TSA tạo thẻ dấu thời gian bằng cách sử dụng phương pháp gói ‘DigestedData’ trước tiên phải thực hiện các bước được mô tả trong Điều 8.1 và đặt cấu trúc ‘EncapsulatedContentInfo’ kết quả trong trường ‘encapContentInfo’ của cấu trúc ‘DigestedData’ (như được định nghĩa trong Phụ lục A). Sau khi tất cả các trường của cấu trúc ‘BindingInfo’ đã được điền, TSA phải mã hóa cấu trúc ‘BindingInfo’ bằng cách sử dụng các quy tắc mã hóa DER và lưu trữ các bộ tám kết quả trong trường ‘thông điệp’ của cấu trúc ‘DigestedData’.
Cuối cùng, TSA phải chèn định danh đối tượng tương ứng với phương pháp kiểu gói này là tsp-digestedData (như trong Phụ lục A) vào trường ‘digestedAlgorithm’ của cấu trúc ‘DigestedData’.
8.3 Gói SignedData
TSA có thể tích hợp chữ ký điện tử với hệ thống cấp dấu thời gian bằng việc tạo các thẻ liên kết. Bằng cách liên kết với nhau các mã được ký độc lập, TSA có thể chứng minh một cách có thể xác thực thứ tự mà các mã được ký riêng được phát hành.
Định danh đối tượng sau xác định kiểu nội dung SignedData:

Một TSA tạo thẻ dấu thời gian bằng cách sử dụng phương pháp gói “SignedData” phải sử dụng cấu trúc “SignedData” để đóng gói cả dữ liệu chữ ký và dữ liệu liên kết. TSA trước tiên phải thực hiện các bước được mô tả trong Điều 8.1, sau đó đặt cấu trúc ‘EncapsulatedContentInfo’ kết quả vào trường ‘encapContentInfo’ của cấu trúc ‘SignedData’. Sau khi tất cả các trường của cấu trúc ‘BindingInfo’ đã được điền, TSA phải mã hóa cấu trúc ‘BindingInfo’ dưới dạng chain octet bằng cách sử dụng quy tắc mã hóa DER và chèn nó dưới dạng phần tử của trường ‘attrValues’ trong cấu trúc ‘Attribute’. TSA cũng phải chèn định danh đối tượng tương ứng với tsp-signData của phương pháp kiểu gói này, như được định nghĩa trong Phụ lục A vào trường ‘attrType’ của cấu trúc ‘Attribute’. Sau đó TSA phải chèn cấu trúc ‘Attribute’ kết quả trong trường ‘Người đã ký’ của cấu trúc ‘Bên ký tên’ và hoàn tất quá trình ký theo các thủ tục ký được xác định trong [CMS].
Việc chèn cấu trúc ‘BindingInfo’ làm thuộc tính được ký trong thẻ dấu thời gian phải bảo toàn tính hợp lệ của cấu trúc ‘TSTInfo’ được đóng gói ngoài thời gian tồn tại của chứng thư số được sử dụng để tạo chữ ký số. Ngoài ra, thẻ dấu thời gian này có thể dễ dàng chuyển đổi thành thẻ dấu thời gian bằng cách sử dụng gói ‘DigestedData’ và chứa các cấu trúc ‘TSTInfo’ và ‘BindingInfo’ giống với cấu trúc trong thẻ dấu thời gian ban đầu. Thẻ dấu thời gian mới được hình thành này chứa dữ liệu liên kết giống như thẻ dấu thời gian ban đầu và bỏ qua các phần chữ ký số.
8.4 Xem xét về an toàn
Các TSA phù hợp tạo ra thẻ liên kết phải sử dụng các nguyên bản mã hóa mạnh trong các hoạt động liên quan đến việc tạo thẻ dấu thời gian, liên kết và các mục dữ liệu liên quan trong các thao tác kết tập, liên kết và công bố, đồng thời phải thay thế và nâng cấp các nguyên thủy mã hóa này nếu cần trước khi chúng trở thành không đủ mạnh để cung cấp các đảm bảo an ninh cần thiết của dịch vụ.
TSA phù hợp tạo ra thẻ liên kết nên sử dụng đồng thời nhiều hàm băm trong tính trường ‘msgImprints’ của cấu trúc ‘BindingInfo’ của thẻ dấu thời gian, trong quá trình kết tập và trong quá trình liên kết để tạo ra dấu thời gian thẻ và liên kết được tạo bởi TSA được cách ly khỏi lỗi mã hóa của bất kỳ hàm băm đơn lẻ nào.
9 Xác thực thẻ dấu thời gian
9.1 Quy định chung
Tính hợp lệ của thẻ dấu thời gian phải được xác thực bằng cách kiểm tra rằng:
- thẻ dấu thời gian có định dạng cú pháp tốt,
- giá trị của trường ‘messagelmprint’ của cấu trúc ‘TSTInfo’ được đóng gói khớp với giá trị của một nhà công bố thông điệp được đánh giá trên tài liệu cần xem xét kỹ lưỡng,
- giá trị của mọi trường ‘messagelmprint’ bên trong mở rộng giá trị băm trong trường ‘extensions’ của cấu trúc ‘TSTInfo’ được đóng gói, nếu có, khớp với giá trị của dấu vết thông điệp được đánh giá trên tài liệu đang được kiểm tra kỹ lưỡng,
- chính sách theo đó thẻ được phát hành được chấp nhận cho mục đích sử dụng dự kiến, và bằng cách thực hiện các bước xác thực bổ sung phù hợp với phương pháp đóng gói được quy định trong thẻ dấu thời gian.
9.2 Gói DigestedData
Trong trường hợp thẻ dấu thời gian sử dụng gói ‘DigestedData’, bên xác thực phải gửi yêu cầu xác thực đến TSA đang phát hành hoặc TTP khác có quyền truy cập vào các liên kết của TSA đang phát hành, như được mô tả trong Điều 6.3, sử dụng tính toàn vẹn của dữ liệu và kênh được bảo vệ xác thực nguồn gốc dữ liệu. Nếu không có liên kết nào trong kho lưu trữ liên kết của TSA hoặc TTP được liên kết với cùng giá trị thời gian với cấu trúc ‘TSTInfo’ được đóng gói của thẻ dấu thời gian đã gửi, thì quá bên xác thực không thành công. Nếu không, TSA phát hành hoặc TTP khác đáp ứng yêu cầu phải tiến hành xác thực rằng trường ‘msgImprints’ trong cấu trúc ‘BindingInfo’ của thẻ dấu thời gian khớp với các giá trị băm được tính qua cấu trúc ‘TSTInfo’ được đóng gói. Nếu không, xác thực không thành công; ngược lại, nếu trường ‘aggregate’ có trong cấu trúc ‘BindingInfo’, thì TSA hoặc TTP phát hành đáp ứng yêu cầu phải thực hiện việc tính giá trị của trường ‘aggregate’ (giả sử rằng giá trị ‘tham chiếu’ bằng 0 trong một trường hợp cụ thể của kiểu ‘Node’ đề cập đến trường ‘msgImprints’ của cấu trúc ‘BindingInfo’) và áp dụng thuật toán liên kết trên kết quả này và trường links’ để xác thực xem kết quả có khớp với giá trị của liên kết được lưu trữ hay không cho giá trị thời gian trong cấu trúc ‘TSTInfo’ được đóng gói của thẻ dấu thời gian; nếu trường ‘aggregate’ bị thiếu, TSA hoặc TTP phát hành đáp ứng yêu cầu phải áp dụng thuật toán liên kết trên các trường ‘msgImprints’ và ‘Link’ của cấu trúc ‘BindingInfo’ theo cách tương tự và thực hiện cùng một bước xác thực trên giá trị kết quả. Trong bất kỳ trường hợp nào, trường ‘status’ thích hợp được đưa vào đáp ứng xác thực và thẻ dấu thời gian đã gửi được sao chép mà không bị sửa đổi, như được mô tả trong Điều 6.4.
9.3 Gói SingedData
Trong trường hợp thẻ dấu thời gian sử dụng gói ‘SignedData’, bên xác thực dấu thời gian phải:
- thực hiện các bước xác thực bổ sung tương tự như được mô tả cho thẻ dấu thời gian được tạo bằng cách sử dụng gói ‘DigestedData’, cụ thể là gửi yêu cầu xác thực đến TSA đang phát hành hoặc TTP khác có quyền truy cập vào các liên kết của TSA đang phát hành như được mô tả trong Điều 6.3 , sử dụng kênh bảo vệ tính toàn vẹn dữ liệu và xác thực nguồn gốc dữ liệu và trong trường hợp đó, TSA hoặc TTP thực hiện yêu cầu phải truy cập vào các thành phần tương tự của thẻ dấu thời gian và thực hiện các bước xác thực tương tự như được mô tả cho dấu thời gian thẻ bằng cách sử dụng gói ‘DigestedData’ trong Điều 9.2;
hoặc:
- coi thẻ dấu thời gian như một thẻ độc lập và thực hiện các bước xác thực bổ sung theo cách tương tự như đối với thẻ dấu thời gian có chữ ký số được mô tả trong TCVN 7818-2 (ISO/IEC 18014-2).
9.4 Xem xét về an toàn
Với mục đích hỗ trợ các yêu cầu xác thực chống lại các liên kết được duy trì bởi TSA hoặc TTP khác, TSA hoặc TTP khác đáp ứng yêu cầu phải khắc phục kịp thời các liên kết và dữ liệu liên quan cần thiết cho việc xác thực dấu thời gian và cho mục đích kiểm tra, trước khi nguyên bản mã hóa được sử dụng trong thao tác liên kết, kết tập và công bố được sử dụng để tạo liên kết và dữ liệu liên quan được coi là yếu. Ví dụ: điều này có thể được thực hiện bằng cách cấp dấu thời gian vào các giá trị của các liên kết và dữ liệu liên quan được quan tâm và bằng cách gia hạn các thẻ dấu thời gian kết quả nếu cần và như được mô tả trong Điều 11.
10 Mở rộng thẻ dấu thời gian
Với mục đích mở rộng thẻ dấu thời gian đến giá trị công bố, thực thể sở hữu thẻ dấu thời gian có thể gửi yêu cầu mở rộng đến TSA đang phát hành hoặc TTP khác có quyền truy cập vào các liên kết của TSA đang phát hành, như được mô tả trong Điều 6.5, sử dụng kênh bảo vệ tính toàn vẹn dữ liệu và xác thực nguồn gốc dữ liệu. Nếu TSA hoặc TTP khác đáp ứng yêu cầu hỗ trợ thao tác mở rộng, nó phải thực hiện các bước xác thực trên thẻ dấu thời gian đã gửi theo cách gói ‘DigestedData’ như được mô tả trong Điều 9.2. Nếu tính hợp lệ của thẻ được xác thực, TSA hoặc TTP thực hiện yêu cầu phải tiến hành kiểm tra xem liệu có tồn tại giá trị công bố mà thẻ dấu thời gian đã gửi hay không; trong trường hợp đó, TSA hoặc TTP đáp ứng yêu cầu phải điền vào cấu trúc ‘PublicationInfo’ với các mục dữ liệu đủ để xác thực thẻ dấu thời gian so với giá trị công bố theo Điều 7.9.2.3 và phải trả về thẻ dấu thời gian cập nhật cho người gửi trong một đáp ứng mở rộng như được mô tả trong Điều 6.6. Nếu thao tác gia hạn không sẵn có, nếu thẻ dấu thời gian đã gửi không thực hiện được các bước xác thực hoặc nếu giá trị công bố chưa có sẵn cho thẻ dấu thời gian đã gửi, thì yêu cầu mở rộng không được cấp, một ‘status’ thích hợp được chứa trong đáp ứng mở rộng và thẻ dấu thời gian đã gửi được sao chép mà không bị sửa đổi như được mô tả trong Điều 6.6.
11 Gia hạn thẻ dấu thời gian
11.1 Quy định chung
Như được định nghĩa trong TCVN 7818-1, gia hạn là một biến thể của thao tác dấu thời gian cơ bản trong đó thẻ dấu thời gian hiện có trên các mục dữ liệu được cấp dấu thời gian trước đó được kết tập rõ ràng làm dữ liệu được liên kết với dấu thời gian mới được tạo thẻ trên các mục dữ liệu giống nhau với giá trị thời gian mới (hiện tại). Bằng cách kết tập thẻ dấu thời gian tồn tại từ trước trong thế hệ thẻ dấu thời gian mới và giả sử rằng các cân nhắc an toàn được thỏa mãn một cách thích hợp, thời hạn hiệu lực của thẻ dấu thời gian trước đó đối với các mục dữ liệu được cấp dấu thời gian được mở rộng thêm phạm vi của thẻ dấu thời gian mới.
Trong trường hợp thẻ liên kết, việc gia hạn có thể cần thiết khi hàm mật mã được sử dụng để ràng buộc giá trị thời gian với dữ liệu vẫn được tin cậy, nhưng có bằng chứng chắc chắn rằng nó phải trở nên dễ bị tổn thương trong tương lai gần (ví dụ: khi hàm băm là gần như bị phá vỡ bởi các cuộc tấn công mới hoặc sức mạnh tính có sẵn). Việc gia hạn phải được thực hiện trước khi điều kiện như vậy làm cho thẻ dấu thời gian ban đầu vô hiệu.
Với mục đích gia hạn thẻ dấu thời gian trên dữ liệu thuộc quyền sở hữu của mình, bên yêu cầu phải gửi yêu cầu cấp dấu thời gian đến TSA như được mô tả trong Điều 6.1 và bao gồm thẻ dấu thời gian hiện có trong mở rộng gia hạn trong ‘extensions’ trường của yêu cầu cấp dấu thời gian theo Điều 7.9.1.3. TSA phải trả lại đáp ứng dấu thời gian theo Điều 7.9.1.3.
11.2 Thao tác xác thực và gia hạn
Như được mô tả trong TCVN 7818-1, việc xác thực thẻ dấu thời gian được gia hạn được thực hiện theo cách thẻ dấu thời gian ngoài cùng (được phát hành gần nhất) được xác thực tại thời điểm hiện tại, trong khi thẻ kèm theo (đã phát hành trước đó) thẻ dấu thời gian được xác thực đối với thời điểm phát hành thẻ dấu thời gian kèm theo. Trong trường hợp có nhiều lần gia hạn lồng nhau, mỗi thẻ dấu thời gian lồng nhau được xác thực tại thời điểm phát hành thẻ dấu thời gian gia hạn (kèm theo) tiếp theo, cho đến khi thẻ dấu thời gian ngoài cùng được xác thực tại thời điểm hiện tại. Trong trường hợp tất cả thẻ dấu thời gian được tạo bởi TSA tuân theo tiêu chuẩn này, thẻ dấu thời gian trong cùng (cũ nhất) phải được xác thực cho thời điểm hiện tại nếu những điều sau là đúng:
- tất cả các thẻ dấu thời gian ngoài cùng và lồng nhau được xác thực theo các bước xác thực cho việc gói ‘DigestedData’ theo Điều 9,
- các hàm mật mã được liệt kê trong mỗi thẻ dấu thời gian kèm theo được tin cậy tại thời điểm phát hành thẻ dấu thời gian gia hạn kèm theo ngay lập tức, và
- kho lưu trữ các liên kết được duy trì bởi TSA phát hành thẻ dấu thời gian gia hạn được tin cậy là đã tồn tại trước bất kỳ thời điểm nào khi các bản gốc mật mã được yêu cầu để xác thực thuật toán của chúng có thể bị coi là yếu.
11.3 Thao tác mở rộng và gia hạn
Việc xem xét gia hạn cũng ảnh hưởng đến các thẻ dấu thời gian đã được mở rộng đến giá trị công bố. Mặc dù các thẻ dấu thời gian như vậy có thể được xác thực dựa trên giá trị công bố độc lập với các liên kết của TSA đang phát hành, miễn là giá trị công bố có sẵn theo cách xác thực từ các nguồn được chứng kiến rộng rãi, quá bên xác thực này phải tuân theo các cân nhắc an toàn liên quan đến sức mạnh của các nguyên thủy mật mã được sử dụng trong một quá trình như vậy. Việc mở rộng thẻ dấu thời gian đến một giá trị công bố, tiếp theo là hoạt động gia hạn và hoạt động gia hạn tiếp theo đến giá trị công bố mới trên thẻ dấu thời gian gia hạn, bảo toàn khả năng xác nhận tính hợp lệ của thẻ dấu thời gian ban đầu độc lập với phát hành liên kết TSA. Ví dụ: thẻ dấu thời gian t1 được mở rộng thành giá trị công bố v1 tương ứng với sự kiện công bố TSA tại giá trị thời gian p1, dẫn đến thẻ dấu thời gian t1e; sau đó thẻ dấu thời gian t1e được gia hạn dẫn đến thẻ dấu thời gian gia hạn t2 và thẻ dấu thời gian t2 này được mở rộng thêm thành giá trị công bố v2 tương ứng với sự kiện công bố TSA tại giá trị thời gian p2, dẫn đến dấu thời gian mở rộng thẻ t2e; nếu phần sau giữ:
- thẻ dấu thời gian t1e được xác thực dựa trên giá trị công bố v1,
- thẻ gia hạn t2e được xác thực dựa trên giá trị công bố v2,
- các nguyên thủy mật mã liên quan đến việc xác thực t1e không được coi là yếu tại thời điểm p2, và
- các nguyên thủy mật mã liên quan đến việc xác thực t2e không được coi là yếu tại thời điểm hiện tại, thì hiệu lực của tuyên bố rằng thẻ t1e hợp lệ tại giá trị thời gian được xác nhận p1 có thể được mở rộng hơn thời gian hiện tại mà không yêu cầu bất kỳ tham chiếu bổ sung nào đến các liên kết được duy trì bởi TSA, ngay cả khi các nguyên tắc mật mã liên quan đến việc xác thực t1e so với đã công bố giá trị v1 được coi là yếu tại thời điểm hiện tại.
Phụ lục A
(quy định)
Mô-đun ASN.1 để cấp dấu thời gian
Mô-đun này chứa ASN.1 dựa trên các tiêu chuẩn ASN.1 hiện tại.





Phụ lục B
(tham khảo)
Thảo luận bổ sung
B.1 Giới thiệu
Phụ lục này cung cấp văn bản giải thích bổ sung để các TSA phù hợp sử dụng khi lựa chọn các quá trình và kỹ thuật cụ thể cho thao tác liên kết, kết tập và công bố.
B.2 Liên kết
B.2.1 Quy định chung
Liên kết là phương tiện mà theo đó giá trị băm được liên kết bằng mật mã với các biểu diễn giá trị băm khác, để vừa thể hiện thứ tự nhân quả của các sự kiện cấp dấu thời gian, vừa đóng vai trò là nhân chứng cho tất cả các sự kiện được liên kết trước đó. Các hàm liên kết phải mạnh về mặt mật mã, theo nghĩa là một khi giá trị băm mới được tính bằng thao tác liên kết, nó không thể bị thay đổi hoặc xóa mà không bị phát hiện. Việc liên kết các giá trị băm liên tiếp với nhau thể hiện trình tự mà chúng được tạo ra, như một phương tiện để xác thực việc áp dụng đúng các giá trị thời gian. Quá trình liên kết cũng phục vụ để làm cho mỗi giá trị băm mới chứng kiến tất cả các giá trị băm trước đó, theo nghĩa là các giá trị băm trước đó không thể bị thay đổi nếu không có các phép tính liên tiếp bị ảnh hưởng. Mỗi giá trị băm xác định một sự kiện, khi được chứng kiến rộng rãi, có thể được sử dụng để xác thực tính đúng đắn của tất cả các sự kiện đã gửi trước đó.
Trong thực tế, TSA tạo ra một giá trị băm đại diện cho một cấu trúc ‘TSTInfo’ được đóng gói đơn lẻ hoặc tập hợp nhiều cấu trúc ‘TSTInfo’ được đóng gói có chứa cùng giá trị thời gian và thực hiện thao tác liên kết cùng với các mục dữ liệu đại diện cho các giá trị băm được liên kết trước đó, sao cho giá trị băm mới được tạo bởi thao tác liên kết có hiệu lực tạo thành một bản sơ lược đang chạy của tất cả các giá trị băm được liên kết trước đó. TSA-được duy trì một kho lưu trữ các giá trị như vậy được tạo ra bởi quá trình liên kết, được gọi là liên kết, để hỗ trợ các yêu cầu xác thực và mở rộng trong tương lai, cũng như công bố các hoạt động và kiểm toán.
Chúng tôi khuyến nghị rằng nhiều hàm băm được sử dụng đồng thời trong quá trình liên kết để việc tính các liên kết được cách ly khỏi lỗi mã hóa của bất kỳ hàm băm đơn lẻ nào. Ví dụ: TSA có thể thực hiện thao tác liên kết bằng cách tính giá trị băm SHA256 trước tiên trên dữ liệu đầu vào được ghép nối của thao tác liên kết, sau đó tính giá trị băm RIPEMD trên cùng dữ liệu đầu vào và cuối cùng nối hai giá trị băm đã tính với nhau để tạo giá trị của liên kết là kết quả của thao tác liên kết. Trong các mệnh đề tiếp theo, giả định rằng bất cứ khi nào một giá trị băm duy nhất đại diện cho một số mục dữ liệu được đề cập, TSA thay vào đó có thể sử dụng nhiều giá trị băm đại diện cho cùng một mục dữ liệu, được tính bằng cách sử dụng các hàm băm riêng biệt.
B.2.2 Liên kết xích tuyến tính
Sử dụng phương pháp liên kết này, mỗi liên kết trong xích tuyến tính được hình thành bằng cách ghép giá trị của liên kết được tạo gần nhất trong xích tuyến tính với giá trị băm hiện tại được liên kết và sử dụng chain bit kết quả làm đầu vào cho hàm băm. Đầu ra của hàm băm là giá trị của liên kết mới trở thành bản sơ lược đang chạy của tất cả thao tác liên kết cho đến nay và nó được lưu trữ trong kho lưu trữ các liên kết được duy trì bởi TSA; giá trị của liên kết trước đó được sử dụng làm đầu vào cho thao tác liên kết được trả lại cho bên yêu cầu trong trường ‘links’ của cấu trúc "BindingInfo" tương ứng.
B.2.3 Liên kết nhị phân kháng đơn điệu
Sử dụng phương pháp liên kết này, kho liên kết được duy trì bởi TSA có thể được biểu diễn dưới dạng đồ thị xoay chiều có hướng kháng đơn điệu với mỗi đỉnh có bậc bằng 2 [BLS00]. Mỗi liên kết trong biểu đồ có hướng kháng đơn điệu được hình thành bằng cách ghép các giá trị của hai liên kết trước đó của biểu đồ có hướng được duy trì bởi TSA (một trong số chúng là liên kết được tạo gần nhất trong biểu đồ có hướng) với giá trị băm hiện tại được liên kết và sử dụng chain bit kết quả làm đầu vào cho hàm băm. Đầu ra của hàm băm là giá trị của liên kết mới trở thành bản sơ lược đang chạy của tất cả thao tác liên kết cho đến nay và được lưu trữ trong kho lưu trữ các liên kết được duy trì bởi TSA; giá trị của hai liên kết trước đó đã được sử dụng làm đầu vào trong thao tác liên kết được trả lại cho bên yêu cầu trong trường ‘links’ của cấu trúc "BindingInfo" tương ứng.
B.2.4 Liên kết cây phân luồng
Phương pháp liên kết này sử dụng cây xác thực theo luồng, tương tự như cây băm Merkle [M80], được tăng cường bởi các cạnh bổ sung giữa các đỉnh [BLS00]. Mỗi liên kết trong cây phân luồng được hình thành bằng cách ghép các giá trị của một số lượng liên kết thích hợp trước đó của biểu đồ có hướng được duy trì bởi TSA (một trong số chúng là liên kết được tạo gần nhất trong biểu đồ có hướng) với giá trị băm hiện tại được liên kết và sử dụng chain bit kết quả làm đầu vào cho hàm băm. Đầu ra của hàm băm là giá trị của liên kết mới trở thành bản sơ lược đang chạy của tất cả thao tác liên kết cho đến nay và được lưu trữ trong kho lưu trữ các liên kết được duy trì bởi TSA; giá trị của các liên kết trước đó đã được sử dụng làm đầu vào trong thao tác liên kết được trả lại cho bên yêu cầu trong trường ‘links’ của cấu trúc "BindingInfo" tương ứng.
B.3 Kết tập
B.3.1 Quy định chung
Kết tập là phương tiện theo đó một nhóm giá trị băm được sử dụng để tính một giá trị đầu ra duy nhất, có thể đóng vai trò như một đại diện trực tiếp cho các giá trị băm ban đầu. Quá trình kết tập kết tập các giá trị băm thành một giá trị kết tập duy nhất, trong đó mỗi giá trị băm đầu vào đóng góp theo một cách nào đó vào nội dung của giá trị kết tập kết quả. Quá trình kết tập cũng tạo ra dữ liệu bổ sung cần thiết để xác thực tư cách thành viên của mỗi giá trị băm trong nhóm các giá trị băm được sử dụng để tạo ra một giá trị kết tập nhất định. Các kỹ thuật được sử dụng để kết tập nhiều giá trị băm thành một giá trị kết tập duy nhất dựa trên các đặc điểm mật mã của hàm băm một chiều hoặc các thuật toán tích lũy khác.
Trong thực tế, TSA tạo ra các giá trị băm đại diện cho các cấu trúc ‘TSTInfo’ được đóng gói được gán cùng một giá trị thời gian và giá trị kết tập thu được có thể được sử dụng làm proxy cho tất cả các cấu trúc ‘TSTInfo’ như vậy trong thao tác liên kết tiếp theo. Dữ liệu xác thực tư cách thành viên trong tập hợp được chèn vào trường ‘aggregate’ của các cấu trúc "BindingInfo" tương ứng.
B.3.2 Kết tập đơn nhất
Hình thức tập hợp đơn giản nhất là không có tập hợp nào cả. Nghĩa là, mặc dù có những lợi ích đáng kể về hoạt động và an toàn khi kết tập các giá trị băm với nhau, nhưng quá trình cấp dấu thời gian không bắt buộc phải kết tập chúng. Các giá trị băm được tạo ra từ các cấu trúc ‘TSTInfo’ được đóng gói riêng lẻ có thể đơn giản đi trực tiếp vào quá trình liên kết mà không được kết tập với bất kỳ giá trị băm nào khác. Mặc dù cách tiếp cận này đơn giản hóa quá trình cấp dấu thời gian, nhưng nó cũng làm tăng đáng kể tải cho quá trình liên kết. Các thẻ dấu thời gian được tạo ra mà không có kết tập cũng không được hưởng lợi từ an toàn bổ sung được cung cấp bằng cách cho phép mỗi thành viên của một nhóm tập hợp trực tiếp chứng kiến sự kiện cấp dấu thời gian cho tất cả các thành viên khác trong nhóm. Việc xác thực tính hợp lệ của thẻ dấu thời gian được hình thành bằng tập hợp thống nhất không cần thực hiện thêm công việc nào ngoài việc xác thực bước liên kết được liên kết.
B.3.3 Kết tập cây Merkle
Các biểu diễn giá trị băm có thể được kết tập bằng cách sử dụng cây xác thực do Merkle [M80] đề xuất ban đầu để sử dụng trong việc hình thành các thư mục khóa mật mã. Trong ứng dụng này, cấu trúc cây nhị phân từ [M80] được sử dụng để kết tập các giá trị băm hơn là các khóa mật mã. Quá trình kết tập này được thực hiện bằng cách chọn một nhóm cấu trúc ‘TSTInfo’ được đóng gói để kết tập và tính các biểu diễn giá trị băm của chúng. Các giá trị băm thu được được coi như các lá của cây nhị phân. Mỗi Node trung gian trong cây được tính bằng cách ghép các giá trị băm con cho Node đó và coi việc ghép nối là đầu vào cho một hàm băm. Đầu ra của phép tính băm trở thành giá trị của Node đó. Việc tính tiến hành theo cách này, tính các Node liên tiếp ở các cấp cao hơn trong cây, cho đến khi một giá trị băm gốc duy nhất được tính. Vì tất cả các giá trị của lá đều đóng góp vào phép tính cuối cùng của giá trị gốc, nên giá trị gốc đó có thể được sử dụng làm đại diện trực tiếp cho tất cả các giá trị của lá.
Khi cấu trúc cây nhị phân này được sử dụng để kết tập các biểu diễn giá trị băm của cấu trúc ‘TSTInfo’ được đóng gói, TSA trả về trong trường ‘aggregate’ của cấu trúc ‘BindingInfo’ tương ứng với mỗi cấu trúc ‘TSTInfo’ được đóng gói mà các giá trị băm trung gian cần thiết để tính đường dẫn từ giá trị băm của lá ban đầu đến giá trị băm gốc. Đối với tập hợp N cấu trúc ‘TSTInfo’ được đóng gói, chỉ cần các giá trị băm trung gian log2N để tính đường dẫn từ giá trị băm lá đến giá trị băm gốc. Việc tính giá trị của trường ‘aggregate’ của cấu trúc ‘BindingInfo’ tương ứng yêu cầu tính băm log2N để xác thực giá trị băm lá với giá trị kết tập đã tạo.
B.3.4 Kết tập tích lũy một chiều
Một hình thức kết tập khác là thông qua ứng dụng của tích lũy một chiều. Hình thức kết tập này tìm cách tính một tập hợp sao cho việc xác thực tư cách thành viên trong tập hợp yêu cầu một phép tính thời gian không đổi duy nhất, bất kể số lượng giá trị trong tập hợp. Một kỹ thuật để nhận ra một tích lũy như vậy được đề xuất bởi Benaloh và de Mare trong [BD93], sử dụng mô-đun lũy thừa liên tiếp theo mô-đun RSA của việc phân tích nhân tử chưa biết để tính một giá trị tích lũy duy nhất từ nhiều giá trị đầu vào. Kỹ thuật tương tự cũng được sử dụng để tính các câu lệnh có thể xác thực cho mỗi giá trị đầu vào thể hiện tư cách thành viên của giá trị đầu vào trong giá trị kết tập.
Đối với tập hợp các giá trị băm Y = (y1, y2, ..., yN) đại diện cho N cấu trúc ‘TSTInfo’ được đóng gói, một mô-đun RSA n = pq (trong đó p và q là các số nguyên tố) và hạt bắt đầu (một mô-đun số n ) được ký hiệu là x, thuật toán tích lũy tính:
![]()
Thuật toán xây dựng bằng chứng P xây dựng bằng chứng cho phần tử yi như một phần của tập hợp là giá trị
![]()
và chèn nó vào trường ‘aggregate’ của cấu trúc ‘BindingInfo’ tương ứng, được gói gọn trong cấu trúc ‘Chain’.
Xác thực bước kết tập giúp kiểm tra
![]()
Do đó, việc xác thực bước kết tập cho bất kỳ giá trị băm nào tham gia yêu cầu thời gian tính độc lập với N.
B.4 Công bố
B.4.1 Quy định chung
Một sự kiện được chứng kiến bởi nhiều quan sát viên độc lập không thể bị phủ nhận một cách hiệu quả. Bằng cách tiết lộ một sự kiện cho nhiều người quan sát và yêu cầu họ duy trì đầy đủ hồ sơ về sự kiện đó, việc sửa đổi tất cả các bản ghi hiện có của sự kiện hoặc thông đồng với tất cả các người quan sát để sửa đổi tất cả các bản ghi hiện có của sự kiện hoặc thông đồng với tất cả các quan sát viên phải trở nên không thực tế. để sửa đổi sự kiện. Việc chứng kiến có thể xảy ra ở nhiều cấp độ, nhằm cung cấp nhiều lớp bảo đảm. Chứng kiến nói chung có nghĩa là các liên kết do TSA tạo ra được phổ biến rộng rãi, sao cho mọi nỗ lực sửa đổi các liên kết đó sau khi xác thực là không thực tế. Một tập hợp các sự kiện được chứng kiến cũng có thể được đánh giá bởi các bên bên ngoài TSA, cung cấp thêm sự đảm bảo vệ tính toàn vẹn.
Công bố là một phương tiện mà bản thân quá trình liên kết có thể trở thành một sự kiện “được chứng kiến rộng rãi”. Cách thường được sử dụng nhất để đảm bảo quá trình liên kết tạo ra các sự kiện được chứng kiến rộng rãi là thông qua việc công bố định kỳ các giá trị băm từ quá trình liên kết trên một số phương tiện truyền thông nổi tiếng. Ví dụ: một quá trình công bố có thể định kỳ chèn các giá trị băm từ quá trình liên kết vào các trang web, nơi các giá trị băm đó phải được phổ biến rộng rãi trên Internet thông qua bộ nhớ đệm web và các tác nhân lập chỉ mục. Một quá trình công bố khác có thể chọn công bố các giá trị băm từ quá trình liên kết trên các phương tiện ngoại tuyến, chẳng hạn như quảng cáo đã phân loại trên các tờ báo có phân phối toàn cầu. Các quá trình công bố khác có thể chèn các giá trị băm từ quá trình liên kết vào các thư email hoặc nhóm tin trực tuyến, một lần nữa lại là một phương tiện để phổ biến rộng rãi thông tin.
B.4.2 Không công bố
Quá trình cấp dấu thời gian có thể chọn bỏ qua việc công bố, ví dụ như nếu các mối quan tâm về hoạt động ngăn cản việc sử dụng thực tế của các quá trình công bố. Tuy nhiên, những hệ thống như vậy không thể tuyên bố là “được chứng kiến rộng rãi”.
B.4.3 Công bố liên kết đơn
Quá trình công bố này chọn định kỳ giá trị của một liên kết để công bố. Các giá trị công bố liên tiếp xác định một Khoảng thời gian, sao cho tất cả các liên kết được tạo bởi quá trình liên kết trong khoảng thời gian này có thể được sắp xếp theo một trình tự tuyến tính và có thể tham chiếu đến giá trị công bố duy nhất đánh dấu sự kết thúc của Khoảng thời gian. Việc xác thực tính đúng đắn của một liên kết trong quá trình công bố này yêu cầu sự sẵn có của các giá trị băm (hoặc giá trị băm kết tập) được sử dụng làm đầu vào cho thao tác liên kết đã tạo ra tất cả các liên kết tiếp theo, cho đến liên kết tương ứng với giá trị công bố. số lượng giá trị băm được yêu cầu trong một thành phần của trường ‘pubChains’ của phiên bản kiểu "ExtPublication" tăng lên:
• tuyến tính với số lượng liên kết được tạo ra trong khoảng thời gian đã chọn trong trường hợp liên kết xích tuyến tính;
• theo lôgarit với số lượng liên kết được tạo ra trong khoảng thời gian đã chọn trong trường hợp liên kết cây phân luồng.
B.4.4 Công bố cây Merkle
Một loại thao tác công bố khác bao gồm việc tích lũy một nhóm các liên kết với nhau bằng cách sử dụng một phép tính cây băm Merkle [M80] khác. Trong trường hợp này, các liên kết trong một số Khoảng thời gian đã chọn được kết tập lại với nhau và giá trị kết tập sau đó được công bố. Cũng như quá trình kết tập cho các cấu trúc ‘TSTInfo’ được đóng gói được mô tả trước đó, mỗi liên kết lá trong cây Merkle công bố phải đóng góp vào việc tính giá trị gốc và do đó giá trị gốc có thể được sử dụng như một đại diện trực tiếp cho tất cả các giá trị của lá. Sử dụng cây nhị phân để tính các giá trị công bố đảm bảo rằng số lượng giá trị băm được yêu cầu trong một thành phần của trường ‘pubChains’ của phiên bản kiểu "ExtPublication" là log2N, trong đó N là số liên kết được tạo trong khoảng thời gian đã chọn.
Phụ lục C
(tham khảo)
Cấu trúc dữ liệu
C.1 Thẻ dấu thời gian sử dụng tính năng gói DigestedData

C.2 Thẻ dấu thời gian sử dụng gói SignedData

C.3 Liên kết xích tuyến tính với kết tập cây Merkle

Biểu đồ cho thấy một ví dụ về kết tập cây Merkle theo sau là thao tác liên kết xích tuyến tính. Các giá trị đầu vào tại thời điểm t là: a, b, c, d, e, f, g. Trong ngữ cảnh của Điều 8.1, các giá trị này có thể đại diện cho các bộ tám của thông điệp in trong trường ‘msgImprints’ của cấu trúc ‘BindingInfo’ được tạo cho mỗi thẻ dấu thời gian tham gia được gán cùng một giá trị thời gian trong ‘TSTInfo’ kết cấu.
Cây Merkle cho bước kết tập tại thời điểm t tạo ra các giá trị trung gian l1, l2, l3, l4, l5 và giá trị gốc l6. Giá trị liên kết của chain liên kết tuyến tính tại thời điểm t-1 là rt-1. Giá trị của liên kết mới được tính của xích tuyến tính tại thời điểm t là rt.
Gọi H là thuật toán được sử dụng cho mỗi bước của tập hợp trong cây Merkle (ví dụ: một hàm băm được áp dụng cho việc ghép các giá trị của các đối số của nó). Những điều sau đây được lưu giữ:
| l1 = H (a, b) | l2 = H (c, d) | l3 = H (e, f) |
| l4 = H (l1, l2) | l5 = H (l3, g) |
|
| l6 = H (l4, l5) |
|
|
Mỗi giá trị đầu vào được xử lý tại thời điểm t có thể được gán một đường dẫn đến gốc của cây Merkle (l6 trong sơ đồ) có thể được sử dụng để tính gốc của cây Merkle và do đó, xác thực sự tham gia của giá trị đầu vào trong tính gốc của cây Merkle. Các đường dẫn cho mỗi giá trị đầu vào có thể được biểu thị dưới dạng kiểu dữ liệu ‘Chain’ được xác định trong Điều 7.5. Trong các định nghĩa sau, tham chiếu 0 đề cập đến giá trị đầu vào mà chain đang được xác định và Function(H) biểu thị thuật toán tham số hóa phải được áp dụng trên chain các trường hợp cụ thể của kiểu ‘Link’. Để dễ tham khảo, định danh j được chọn cho mỗi trường hợp cụ thể của kiểu ‘Link’ khớp với chỉ số con được sử dụng cho giá trị tương ứng lj trong biểu đồ.
chain (a) = (Function(H), ((1, (0, b)), (4, (1, l2)), (6, (4, l5))))
chain (b) = (Function(H), ((1, (a, 0)), (4, (1, l2)), (6, (4, l5))))
chain (c) = (Function (H), ((2, (0, d)), (4, (l1, 2)), (6, (4, l5))))
chain (d) = (Function(H), ((2, (c, 0)), (4, (l1, 2)), (6, (4, l5))))
chain (e) = (Function(H), ((3, (0, f)), (5, (3, g)), (6, (l4, 5))))
chain (f) = (Function(H), ((3, (e, 0)), (5, (3, g)), (6, (l4, 5))))
Chain (g) = (Function(H), ((5, (l3, 0)), (6, (l4, 5))))
Tất cả các chain kết tập cho các mục đầu vào được liệt kê ở trên tạo ra cùng một giá trị l6 khi giá trị của chain được tính bằng cách áp dụng thuật toán H liên tục theo trình tự trên các phân tử con của chain cho đến khi còn lại một giá trị duy nhất. Ví dụ:
value (chain (d)) = value ((Function(H), ((2, (c, d)), (4, (l1, 2)), (6, (4, l5)))))
= value ((Function(H), ((4, (l1, l2)), (6, (4, l5)))))
= value ((Function(H), ((6, (l4, l5)))))
= l6
Gọi G là thuật toán được sử dụng cho thao tác liên kết tuyến tính (ví dụ: một hàm băm được áp dụng cho việc ghép các giá trị của các đối số của nó). Thuật toán này có thể coi các đổi số là giá trị của liên kết trước đó trong kho lưu trữ (tức là liên kết được tạo bởi thao tác liên kết trước đó) và gốc của cây Merkle được tính trên các giá trị đầu vào được cung cấp. Những điều sau đây được lưu giữ:
rt = G (rt-1, l6).
Thao tác liên kết cho tất cả các giá trị đầu vào tham gia vào cây Merkle với giá trị gốc l6 có thể được biểu thị dưới dạng một phiên bản duy nhất của kiểu ‘Link’ như được định nghĩa trong Điều 7.6, sử dụng Function(G) để biểu thị thuật toán tham số hóa phải được áp dụng trên các thành viên của trường hợp kiểu ‘Link’, ví dụ:
link (a, chain (a)) = (Function(G), (rt-1, 0))
Tham chiếu 0 ở trên đề cập đến giá trị được tính trên chain (a). Giá trị của mục dữ liệu này đại diện cho kết quả của thao tác liên kết được tính bằng cách áp dụng thuật toán G dựa trên giá trị của liên kết được cung cấp trước đó và giá trị của chain:
value (link (a, chain (a)) = value ((Function(G), (rt-1, value (chain (a)))))
= value ((Function(G), (rt-1, l6)))
= rt
Như đã thấy ở trên, một thuật toán tham số duy nhất (Function(H) hoặc Function(G)) có thể được sử dụng để biểu thị các thuật toán liên kết và kết tập được sử dụng để tính giá trị của các mục dữ liệu trả về. Trong ANSI X9.95-2005 "Dấu thời gian tin cậy, quản lý và an toàn", các định nghĩa ASN.1 sau được cung cấp để xác định loại thuật toán tham số hóa như vậy:
![]()

Đối với một thuật toán tham số nhất định thuộc loại này, việc áp dụng thuật toán này trên một trường hợp cụ thể của kiểu ‘Link’ yêu cầu mỗi hàm băm trong danh sách tham số được áp dụng cho việc nối các giá trị của các mục trong phiên bản của kiểu ‘Link’, theo thứ tự các hàm băm được liệt kê trong danh sách tham số. Các giá trị băm thu được sau đó được nối thành một chuỗi các octet đại diện cho giá trị của phiên bản kiểu ‘Link’. Thuật toán tham số hóa được áp dụng cho các trường hợp liên tiếp của kiểu ‘Link’ cho đến khi tính được một giá trị duy nhất.
Phụ lục D
(tham khảo)
Một số yêu cầu đối với dịch vụ cấp dấu thời gian
D1. Tài liệu cần thiết sử dụng cấp dấu thời gian Timestamp
Sử dụng chữ ký số là phương thức tin cậy giúp định danh, xác thực chính xác người ký, đảm bảo tính toàn vẹn và chống chối bỏ tài liệu điện tử.
Tuy nhiên, đối với những tài liệu nhạy cảm về thời gian và tính hiệu lực của chữ ký số tại thời điểm ký, chỉ sử dụng ký số thông thường vẫn tồn tại nhiều rủi ro. Bởi khi ký số thông thường, thời gian ký số là thời gian hiển thị của thiết bị hoặc server ký số, có thể thay đổi dễ dàng, dẫn đến việc chứng minh mốc thời gian tài liệu có hiệu lực rất khó khăn. Các tổ chức, cá nhân có thể lợi dụng việc chỉnh sửa thời gian này để tạo ra những phiên bản tài liệu khác nhau nhằm mục đích gian lận, giả mạo.
Đặc biệt là khi chứng thư số hết hạn thì chúng ta sẽ mất căn cứ để xác minh thời gian ký, không thể kiểm tra hiệu lực của chứng thư số tại thời điểm ký cũng như tính toàn vẹn dữ liệu, khiến tài liệu trở nên mất giá trị pháp lý và khả năng trở thành bằng chứng.
Vì thế, ký số đóng dấu thời gian Timestamp ra đời để thực hiện việc gắn thông tin về ngày, tháng, năm và thời gian tin cậy (cung cấp bởi các tổ chức cung cấp dịch vụ chữ ký số công cộng được cấp phép) vào thông điệp dữ liệu, nhằm xác thực sự tồn tại của dữ liệu tại một mốc thời gian nhất định và đảm bảo sự toàn vẹn dữ liệu trong quá trình vận chuyển, lưu trữ.
Hệ thống đóng dấu thời gian timestamp xây dựng dựa trên nền tảng PKI tiên tiến nhất hiện nay, bất cứ thay đổi, sửa xóa đối với dữ liệu được đóng dấu thời gian đều bị phát hiện, đồng thời được kết nối trực tiếp với đồng hồ Nguyên tử Quốc gia của Viện đo lường: chống chối bỏ, phủ nhận giá trị thời gian.
Những tài liệu đặc biệt nhạy cảm về tính hợp pháp của chữ ký số tại thời điểm ký và các tài liệu nhạy cảm về thời gian: các tài liệu sở hữu trí tuệ, chứng nhận bản quyền,...; tất cả các tài liệu cần lưu trữ điện tử lâu dài theo quy định hiện hành có thời hạn lưu trữ trên 3 năm đều cần được ký cấp dấu thời gian Timestamp.
Trong hoạt động tài chính, ký số cấp dấu thời gian được khuyến khích sử dụng đối với hầu hết các tài liệu điện tử, đặc biệt là các loại chứng từ mà thời gian khởi tạo hoặc xử lý chứng từ bị ràng buộc bởi các văn bản quy phạm pháp luật chuyên ngành hoặc có thể gây tranh chấp về lợi ích, pháp lý giữa các bên tham gia giao dịch.
Những tài liệu cơ bản cần ký số cấp dấu thời gian trong các lĩnh vực bao gồm:
1. Tài chính - Ngân hàng
- Giao dịch ngân hàng;
- Sao kê tài khoản;
- Chứng từ điện tử;
- Hợp đồng điện tử;
- Giao dịch tài chính;
- Nhật ký giao dịch;
- Báo cáo tài chính năm;
- Hợp đồng điện tử.
2. Bảo hiểm
- Hóa đơn điện tử;
- Chứng chỉ điện tử;
- Hợp đồng điện tử.
3. Y tế
- Hồ sơ bệnh án điện tử;
- Giấy đăng ký cấp phép hành nghề;
- Chứng từ điện tử;
- Phiếu thu điện tử;
- Tờ khai điện tử;
- Hợp đồng điện tử.
4. Truyền hình - Viễn thông
- Giấy chứng nhận bản quyền tác giả;
- Giấy chứng nhận sở hữu trí tuệ;
- Hợp đồng điện tử.
5. Các tài liệu khác
- Các tài liệu nhạy cảm về thời gian: các tài liệu sở hữu trí tuệ, chứng nhận bản quyền,...
- Tất cả các tài liệu cần lưu trữ điện tử lâu dài theo quy định hiện hành.
D2. Quy định về dịch vụ cấp dấu thời gian trong các giao dịch điện tử
D.2.1 Dịch vụ tin cậy bao gồm:
a) Dịch vụ cấp dấu thời gian;
b) Dịch vụ chứng thực thông điệp dữ liệu;
c) Dịch vụ chứng thực chữ ký số công cộng.
D.2.2 Dịch vụ cấp dấu thời gian:
- Dịch vụ cấp dấu thời gian là dịch vụ để gắn thông tin về thời gian vào thông điệp dữ liệu.
- Dấu thời gian được tạo ra dưới dạng chữ ký số.
- Thời gian được gắn vào thông điệp dữ liệu là thời gian mà tổ chức cung cấp dịch vụ cấp dấu thời gian nhận được thông điệp dữ liệu đó và được chứng thực bởi tổ chức cung cấp dịch vụ cấp dấu thời gian.
- Nguồn thời gian của tổ chức cung cấp dịch vụ cấp dấu thời gian phải theo quy định hiện hành về nguồn thời gian chuẩn quốc gia.
Thư mục tài liệu tham khảo
[1] [BD91] J. Benaloh, M. de Mare, “Efficient Broadcast Time-Stamping,” TR 91-1, Clarkson University Department of Mathematics and Computer Science, 1991.
[2] [BD93] J. Benaloh, M. de Mare, “One-Way accumulators: A Decentralized Alternative to Digital Signatures,” Advances in Cryptology - EUROCRYPT 1993, Lecture Notes in Computer Science, vol.765, pp. 274-285, Springer-Verlag, 1994.
[3] [BHS93] D. Bayer, S. Haber, W. Stornetta, “Improving the Efficiency and Reliability of Digital Time- Stamping,” Sequences II: Methods in Communication, Security and Computer Science, pp. 329-334, Springer-Verlag, 1993.
[4] [BLLV98] A. Buldas, P. Laud, H. Lipmaa, J. Villemson, “Time-Stamping with Binary Linking Schemes,” Advances in Cryptology - CRYPTO 1998, Lecture Notes in Computer Science, vol. 1462, pp. 486- 501, Springer-Verlag, 1998.
[5] [BLS00] A. Buldas, H. Lipmaa, B. Schoenmakers, “Optimally Efficient Accountable Time- Stamping,” Public Key Cryptography 2000, pp. 293-305, Springer-Verlag, January 2000.
[6] [HS91] S. Haber, W. Stornetta, “How to Time-Stamp a Digital Document,” Journal of Cryptology, Vol. 3, No. 2, pp. 99-111, 1991.
[7] [HS97] S. Haber, W. Stornetta, “Secure Names for Bit-Strings,” Proceedings of the 4th ACM Conference on Computer and Communication Security, pp. 28-35, ACM Press, 1997.
[8] [J98] M. Just, "Some Timestamping Protocol Failures”, Proceedings of the Internet Society Symposium on Network and Distributed System Security, p. 5, Internet Society, 1998.
[9] [M80] R. Merkle, “Protocols for Public Key Cryptosystems,” Proceedings of the IEEE Symposium on Security and Privacy, pp. 122-133, IEEE Computer Society, 1980.
[10] [PKIXCP] R. Housley, W. Ford, W. Polk, D. Solo, "Internet X.509 Public Key Infrastructure Certificate and CRL Profile" IETF RFC 3280, 2002.
[11] [CMS] R. Housley, “Cryptographic Message Syntax", IETF RFC 3852, 2004.
[12] ISO/IEC 10181-1:1996, Information technology - Open Systems Interconnection - Security frameworks for open systems: Overview.
MỤC LỤC
Lời nói đầu
Lời giới thiệu
1 Phạm vi áp dụng
2 Tài liệu viện dẫn
3 Thuật ngữ, định nghĩa và chữ viết tắt
4 Thảo luận chung
5 Các thao tác cụ thể đối với TSA tạo thẻ liên kết
5.1 Thao tác liên kết
5.2 Thao tác kết tập
5.3 Thao tác công bố
5.4 Thao tác mở rộng
6 Các định dạng thông điệp
6.1 Yêu cầu dấu thời gian
6.2 Đáp ứng dấu thời gian
6.3 Yêu cầu xác thực
6.4 Đáp ứng xác thực
6.5 Yêu cầu mở rộng
6.6 Đáp ứng mở rộng
7 Kiểu dữ liệu
7.1 Định danh đối tượng
7.2 TSTInfo
7.3 TimeStampToken
7.4 BindingInfo
7.5 Chain
7.6 Link
7.7 Node
7.8 PublicationInfo
7.9 Mở rộng
8 Tạo thẻ dấu thời gian
8.1 Quy định chung
8.2 Gói DigestedData
8.3 Gói SignedData
8.4 Xem xét về an toàn
9 Xác thực thẻ dấu thời gian
9.1 Quy định chung
9.2 Gói DigestedData
9.3 Gói SignedData
9.4 Xem xét về an toàn
10 Mở rộng thẻ dấu thời gian
11 Gia hạn thẻ dấu thời gian
11.1 Quy định chung
11.2 Thao tác xác thực và gia hạn
11.3 Thao tác mở rộng và gia hạn
Phụ lục A (quy định) Mô-đun ASN.1 để cấp dấu thời gian
Phụ lục B (tham khảo) Thảo luận bổ sung
B.1 Giới thiệu
B.2 Liên kết
B.3 Kết tập
B.4 Công bố
Phụ lục C (tham khảo) Cấu trúc dữ liệu
C.1 Thẻ dấu thời gian sử dụng tính năng gói DigestedData
C.2 Thẻ dấu thời gian sử dụng gói SignedData
C.3 Liên kết xích tuyến tính với kết tập cây Merkle
Phụ lục D (tham khảo) Một số yêu cầu đối với dịch vụ cấp dấu thời gian
D1. Tài liệu càn thiết sử dụng cấp dấu thời gian Timestamp
D2. Quy định về dịch vụ cấp dấu thời gian trong các giao dịch điện tử
Thư mục tài liệu tham khảo
Bạn chưa Đăng nhập thành viên.
Đây là tiện ích dành cho tài khoản thành viên. Vui lòng Đăng nhập để xem chi tiết. Nếu chưa có tài khoản, vui lòng Đăng ký tại đây!