Bỏ qua để đến nội dung

Hồ sơ baseline PAdES

Spec: ETSI EN 319 142-1 Spec: ISO 32000-2, §12.8 Spec: RFC 3161 Evidence: Standard-backed

PAdES định nghĩa bốn mức baseline — B-B, B-T, B-LT, B-LTA — kế thừa lẫn nhau. Mỗi mức bổ sung một loại bằng chứng cụ thể. Trang này giải thích trình tự tăng dần đó và giúp bạn chọn mức thấp nhất vẫn đáp ứng được nghĩa vụ, thay vì mức cao nhất mà bạn tình cờ biết tên.

Người ta chọn “B-LTA” vì nghe có vẻ kỹ lưỡng nhất, hoặc chọn “B-B” vì có vẻ ít việc nhất. Cả hai đều là phỏng đoán. Không phải sở thích, mà câu hỏi này mới quyết định mức bạn cần: chữ ký này phải còn kiểm tra được trong bao lâu, và bởi ai? Chọn quá thấp thì một chữ ký vốn hợp lệ vào ngày ký sẽ không còn kiểm tra được khi một chứng thư hết hạn. Chọn quá cao thì bạn phải gánh thêm một thẩm quyền cấp dấu thời gian và hạ tầng tài liệu xác thực không cần thiết, kèm theo một nghĩa vụ lưu trữ phải được duy trì liên tục. Nhóm không thể đổi mức về sau sẽ phải trả giá cho lựa chọn sai.

  • Bốn mức này có tính tích lũy. Mỗi mức là mức trước cộng thêm một bổ sung.
  • B-B — chữ ký cùng các thuộc tính được ký bắt buộc của nó. Chứng minh ai đã ký và ký cái gì.
  • B-TB-B cộng thêm một dấu thời gian tin cậy trên chữ ký. Chứng minh khi nào đã ký, độc lập với đồng hồ của người ký.
  • B-LTB-T cộng thêm tài liệu xác thực được nhúng (chứng thư và dữ liệu thu hồi). Tài liệu tự mang bằng chứng rằng chứng thư vẫn hợp lệ vào thời điểm ký.
  • B-LTAB-LT cộng thêm một dấu thời gian tài liệu, được lặp lại theo thời gian. Giữ cho toàn bộ chữ ký còn kiểm tra được qua nhiều thập kỷ và qua các thay đổi thuật toán.
  • Chọn mức theo vòng đời của nghĩa vụ, không theo mức trông có vẻ an toàn nhất.

NextPDF mô hình hóa mức như một lựa chọn rõ ràng, có thứ tự, và không giả vờ đã làm điều nó chưa làm. Bạn yêu cầu một mức. Engine tạo ra đúng mức đó hoặc thất bại với một lỗi có thể hành động. Nó không lặng lẽ ký ở mức thấp hơn rồi để bản ghi tuân thủ tuyên bố một mức cao hơn. Thiết kế này tồn tại chính là để ngăn việc âm thầm hạ cấp một yêu cầu B-LTA xuống B-T khi thiếu hạ tầng. Yêu cầu của mỗi mức được mã hóa thành các vị từ: có cần dấu thời gian hay không, có cần tài liệu xác thực được nhúng hay không, có cần dấu thời gian tài liệu hay không. Engine duyệt qua các vị từ đó rồi hoặc thỏa mãn chúng, hoặc dừng lại.

Trình tự bên dưới chính là trình tự mà engine thực thi và chuẩn định nghĩa.

MứcBổ sung so với mức trướcCâu hỏi mà nó trả lờiCần gì từ triển khai của bạn
B-BCác thuộc tính được ký: content-type, message-digest, signing-time, signing-certificate-v2Ai đã ký, và chính xác là byte nào?Một khóa ký và chứng thư
B-TMột dấu thời gian tin cậy trên giá trị chữ kýNó được ký khi nào, có thể chứng minh được không?Một Time-Stamp Authority (TSA)
B-LTChứng thư được nhúng + dữ liệu thu hồi (một DSS)Chứng thư có hợp lệ vào thời điểm ký không — có thể chứng minh về sau?TSA + quyền truy cập dữ liệu thu hồi vào thời điểm ký
B-LTAMột dấu thời gian tài liệu, có thể gia hạn theo thời gianLiệu nó còn kiểm tra được sau nhiều thập kỷ?TSA + một quy trình lưu trữ thực hiện cấp lại dấu thời gian

Bước nhảy quan trọng nhất là từ B-T lên B-LT. B-T chứng minh khi nào. B-LT khiến tài liệu tự chứa đầy đủ bằng chứng về mặt tin cậy: nó không còn phụ thuộc vào việc một thẩm quyền chứng thực vẫn truy cập được và vẫn trả lời các câu hỏi nhiều năm sau.

  1. Step 1 of 4: ISO 32000-2 §12.8 — signatures, LTV, document timestamp
  2. Step 2 of 4: ETSI EN 319 142-1 PAdES baseline levels B-B…B-LTA
  3. Step 3 of 4: RFC 3161 Timestamp token (introduced at B-T)
  4. Step 4 of 4: RFC 6960 OCSP revocation evidence (embedded at B-LT)
Các chuẩn đứng sau trình tự tăng dần của PAdES: ISO 32000-2 định nghĩa cách chữ ký và tài liệu xác thực nằm trong PDF; ETSI EN 319 142-1 định nghĩa các mức baseline; RFC 3161 định nghĩa dấu thời gian mà B-T đưa vào; RFC 6960 định nghĩa bằng chứng thu hồi mà B-LT nhúng.

Evidence: Standard-backed Các mức này do ETSI định nghĩa. Spec: ETSI EN 319 142-1 định nghĩa các mức baseline PAdES ; Spec: ETSI EN 319 142-2, §5.3 chỉ ra thuộc tính signature-time-stamp là phần tử tùy chọn; sự hiện diện của nó phân biệt một mức có dấu thời gian với B-B, và Spec: ETSI EN 319 142-2, §6.3.2.2 nêu rằng nên áp một dấu thời gian tin cậy ngay sau khi chữ ký được tạo, để thời điểm được ghi nhận gần nhất có thể với thời điểm ký thực tế. Spec: ETSI EN 319 142-2, §5.5 nêu rằng hành vi dài hạn cần cả một Document Security Store lẫn các dấu thời gian tài liệu — các bổ sung của B-LTB-LTA.

Về phía vùng chứa là Spec: ISO 32000-2, §12.8.3.3 : chữ ký PAdES là các hồ sơ CAdES CMS kết hợp với xác thực dài hạn (§12.8.4) và từ điển dấu thời gian tài liệu (§12.8.5), đúng như ETSI EN 319 142-1 mô tả. Lý do B-LT quan trọng được nêu bởi Spec: RFC 6960, §4.4.4 : bằng chứng thu hồi đã lưu trữ giúp trình kiểm tra đánh giá độ tin cậy của chữ ký tại thời điểm tạo, kể cả sau khi chứng thư dùng để xác thực đã hết hạn. Đó chính là điểm của việc nhúng nó.

Engine của NextPDF mã hóa mỗi mức thành một vị từ yêu cầu, rồi tạo ra mức được yêu cầu hoặc thất bại — nó không quảng bá một mức mà nó đã không tạo ra.

API phản ánh trình tự tăng dần: bạn nêu tên mức, và engine xem đó như một hợp đồng.

<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// The level is an explicit, ordered choice — not a flag you hope is honoured.
$level = SignatureLevel::PAdES_B_T;
// The level itself tells you what it requires, before you sign:
$level->requiresTimestamp(); // B-T and above → true
$level->requiresDss(); // B-LT and above → true
$level->requiresDocumentTimestamp(); // B-LTA only → true
// Ask for B-LTA only if the deployment can actually fulfil it.
// The engine produces exactly the requested level or fails with an
// actionable error — it never silently signs lower and reports higher.

Nếu bạn yêu cầu B-LTA mà triển khai không thể cung cấp những gì B-LTA cần, hành vi mặc định là thất bại và cho bạn biết mức cao nhất mà nó đáng lẽ có thể đạt được — chứ không lặng lẽ trả về một tệp B-T gắn nhãn B-LTA.

Cái bẫy là “B-LTA là tốt nhất, cứ chọn nó đi.” B-LTA không tốt hơn theo nghĩa trừu tượng; nó là nhiều hơn, và nhiều hơn thì kéo theo nghĩa vụ. Nó cần một thẩm quyền cấp dấu thời gian, tài liệu thu hồi được thu thập vào thời điểm ký, và một quy trình lưu trữ liên tục cấp lại dấu thời gian cho tài liệu trước khi các thuật toán bảo vệ hoặc các chứng thư dấu thời gian của nó suy yếu. Một tệp B-LTA mà không ai cấp lại dấu thời gian thì không bền vững trong tương lai — nó là một tệp B-LT kèm thêm nghi thức rườm rà. Ngược lại, dùng B-B cho một hợp đồng phải tồn tại cả một thập kỷ thì không phải là “nhẹ nhàng”; đó là một chữ ký sẽ không qua được kiểm tra ngay ngày chứng thư hết hạn. Mức đúng là mức mà nghĩa vụ yêu cầu, không cao hơn và không thấp hơn.

NextPDF tạo ra mức PAdES được yêu cầu; nó không cung cấp các bên mà mức đó phụ thuộc vào. Thẩm quyền cấp dấu thời gian, chuỗi chứng thư, các neo tin cậy, và khả năng kết nối để lấy dữ liệu thu hồi vào thời điểm ký là trách nhiệm của triển khai. Engine hiện thực cấu trúc và thực thi hợp đồng mức; nó không thể làm cho một TSA trở nên đáng tin cậy hay một chứng thư trở nên hợp lệ. Cấu trúc được tạo ra mang các phần tử mà mức đó yêu cầu, đã được kiểm chứng bằng các test riêng của engine và theo các điều khoản được trích dẫn. Đây không phải là chứng nhận tuân thủ của bên thứ ba, và trang này không khẳng định hiệu lực pháp lý eIDAS, vốn phụ thuộc vào chứng thư, người ký và thẩm quyền tài phán. Việc thời điểm ký có được tin cậy một cách độc lập hay không được trình bày trong Dấu thời gian và thời gian tin cậy; cách bằng chứng dài hạn giữ cho một chữ ký còn sống được trình bày trong Xác thực dài hạn.

Một vài ranh giới để đặt kỳ vọng cho chính xác:

  • B-LTB-LTA phát ra cấu trúc xác thực dài hạn, không phải một phán quyết tuân thủ. Cái mà engine ghi là một từ điển Document Security Store cộng với một bản sửa đổi có dấu thời gian tài liệu — một từ điển chữ ký với Type = DocTimeStamp theo Spec: ISO 32000-2, §12.8 . Cấu trúc đó không được quảng bá ở đây là đã được kiểm thử tuân thủ hồ sơ; các kiểm tra hồ sơ ETSI EN 319 142-1 được kiểm soát theo bản phát hành trên làn CI của Pro và Enterprise, nên trang này không tuyên bố tệp được tạo ra tuân thủ ETSI EN 319 142-1.
  • Tài liệu được mã hóa fail-closed đối với B-LTB-LTA. Một yêu cầu mức dài hạn trên tài liệu được mã hóa sẽ dừng lại với một lỗi có thể hành động, thay vì ghi một bản sửa đổi dài hạn không hoàn chỉnh.

Khả dụng theo bậc của từng mức — cả bốn đều đạt được qua cùng một đường tích hợp cấp cao, setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save():

PAdES baseline level — edition availability
Edition Availability
Core

PAdES B-B — baseline thuộc-tính-được-ký; đường tích hợp Core.

Pro

Bổ sung PAdES B-T — một dấu thời gian tin cậy trên giá trị chữ ký, được điều khiển bởi một TsaClient.

Enterprise

Bổ sung PAdES B-LTB-LTA — tài liệu xác thực được nhúng (DSS) và vòng lặp lưu trữ dấu-thời-gian-tài-liệu có thể gia hạn. Chúng chạy qua cùng một đường tích hợp cấp cao, nhưng chỉ khi cả hai gói Pro và Enterprise được cài đặt; nếu thiếu một trong hai, lời gọi sẽ fail-close thay vì ghi một bản sửa đổi dài hạn không hoàn chỉnh.

  • PAdES — PDF Advanced Electronic Signatures; chuỗi ETSI EN 319 142 định nghĩa hồ sơ cho các chữ ký CMS dành cho PDF.
  • Mức baseline — một trong B-B, B-T, B-LT, B-LTA; một tập hợp các phần tử chữ ký bắt buộc, được định nghĩa theo cách tích lũy.
  • B-B — chữ ký baseline cùng các thuộc tính được ký bắt buộc của nó.
  • B-TB-B cộng thêm một dấu thời gian tin cậy trên giá trị chữ ký.
  • B-LTB-T cộng thêm tài liệu xác thực dài hạn được nhúng (một DSS).
  • B-LTAB-LT cộng thêm một dấu thời gian tài liệu có thể gia hạn cho hiệu lực lưu trữ.
  • DSS — Document Security Store; cấu trúc PDF chứa các chứng thư được nhúng và dữ liệu thu hồi.
  • TSA — Time-Stamp Authority; một dịch vụ tin cậy phát hành các token dấu thời gian RFC 3161.