Bỏ qua để đến nội dung
getnextpdf.com

Enterprise phiên bản

Chính sách Certificate Transparency cho chứng chỉ ký

NextPDF Enterprise cho phép một quy trình ký xét đến lập trường Certificate Transparency (CT) của một chứng chỉ ký trước khi ký. CT là hệ sinh thái public-log trong đó các chứng chỉ được ghi lại để có thể phát hiện việc cấp sai; một chứng chỉ đã được ghi log trong CT mang theo một hoặc nhiều Signed Certificate Timestamp (SCT). NextPDF Enterprise biểu diễn lập trường CT của một chứng chỉ dưới dạng một giá trị kết quả — liệu phần mở rộng SCT có hiện diện không, có bao nhiêu SCT hiện diện và hợp lệ, và những log nào đã cấp chúng — và cung cấp một kiểm tra ngưỡng SCT tối thiểu. Trang này ở mức hành vi: nó nêu kết quả mang theo những gì, kiểm tra ngưỡng hoạt động ra sao, và NextPDF quyết định và không quyết định điều gì.

NextPDF Enterprise biểu diễn và kiểm tra ngưỡng một kết quả CT; nó không phải là một CT log, một bộ kiểm toán log, hay một bộ giám sát. Ranh giới được nêu trong Bảo mật và tuân thủ.

Các điều kiện tiên quyết được nêu trong front matter và được nhắc lại trong Điều kiện tiên quyết.

Năng lực này đi kèm trong NextPDF Enterprise (nextpdf/enterprise) và kích hoạt bằng một license envelope cấp Enterprise. Một triển khai không có quyền đó sẽ không nạp các lớp của năng lực này. So sánh các phiên bản và nhận giấy phép.

Một chứng chỉ đã được ghi log trong CT mang theo các SCT. Một SCT mang theo một version, một log identifier, một timestamp, và chữ ký của log trên certificate entry, theo RFC 6962 §3.1. Một log trả về một SCT như lời hứa của nó về việc đưa chứng chỉ vào append-only log của mình, và các relying party từ chối một chứng chỉ thiếu một SCT hợp lệ, theo RFC 6962 §3. Certificate Transparency phiên bản 2.0 giữ cùng mô hình đó: một log trả về một SCT khi nộp, mà bên nộp xác thực trước khi dựa vào nó, theo RFC 9162 §3.

NextPDF Enterprise biểu diễn lập trường CT của một chứng chỉ dưới dạng một giá trị kết quả mang theo:

  • liệu chứng chỉ có chứa phần mở rộng SCT không;
  • tổng số SCT được tìm thấy;
  • số SCT có chữ ký hợp lệ;
  • các log identifier — các bản băm SHA-256 — của những log đã cấp các SCT.

Kết quả phơi bày một kiểm tra ngưỡng SCT tối thiểu: nó báo cáo liệu số lượng SCT hợp lệ có đạt hoặc vượt một mức tối thiểu yêu cầu không. Bạn đặt mức tối thiểu để khớp với chính sách của mình. Một chính sách phổ biến kỳ vọng ít nhất hai SCT từ các log khác nhau cho các chứng chỉ có vòng đời ngắn hơn và nhiều hơn cho các chứng chỉ có vòng đời dài hơn; giá trị ngưỡng là tùy bạn chọn.

Hãy dùng kiểm tra ngưỡng như một cổng trong một quy trình ký: yêu cầu một chứng chỉ đã được ghi log CT (một số lượng SCT hợp lệ đủ) trước khi bạn ký, và từ chối trong trường hợp ngược lại.

Certificate Transparency trả lời một câu hỏi hẹp: chứng chỉ này có được ghi log công khai không, và bởi bao nhiêu log độc lập. NextPDF Enterprise mô hình hóa câu trả lời đó như một giá trị kết quả thuần túy, không phải một phán quyết. Kết quả báo cáo cờ phần mở rộng SCT, các số đếm SCT, và các log identifier đã cấp, rồi dừng lại. Nó không quyết định liệu lập trường đó có đủ tốt không, vì ngưỡng tin cậy là một chính sách của relying party thay đổi theo vòng đời và rủi ro của chứng chỉ. Vì vậy số lượng SCT tối thiểu vẫn tùy bạn đặt, và NextPDF đứng ngoài các vai trò vận hành log, kiểm toán, và giám sát. Certificate Transparency là một trong nhiều kiểm tra trong một quyết định ký vững chắc, và trang này biến nó thành một cổng tường minh trước khi signer được dựng.

Bối cảnh thiết kế: Xác thực một chữ ký đúng cách.

  1. Cài đặt NextPDF Core và gói Enterprise, và giữ một giấy phép Enterprise đang hoạt động.
  2. Có chứng chỉ ký mà bạn muốn thực thi lập trường CT của nó, cùng với dữ liệu SCT mà môi trường của bạn trích xuất từ nó.
  3. Quyết định ngưỡng SCT tối thiểu mà chính sách của bạn yêu cầu.
  • Ngưỡng SCT tối thiểu — số SCT hợp lệ mà một chứng chỉ phải mang theo để vượt qua chính sách của bạn. Hãy truyền nó vào kiểm tra ngưỡng.
  • Vị trí đặt chính sách — quyết định cổng chạy ở đâu trong quy trình ký của bạn: trước khi dựng signer, để một chứng chỉ chưa được ghi log đủ không bao giờ chạm tới một thao tác ký.
  1. Lấy kết quả CT cho chứng chỉ ký của bạn, mang theo cờ phần mở rộng SCT, các số đếm tổng và hợp lệ của SCT, và các log identifier.
  2. Quyết định ngưỡng SCT tối thiểu cho chính sách của bạn.
  3. Chạy kiểm tra ngưỡng; coi một lần đạt là “thỏa chính sách CT” và một lần trượt là “từ chối ký bằng chứng chỉ này”.
  4. Đặt cổng cho quy trình ký dựa trên kết quả trước khi signer được dựng.
examples/enterprise/ct-policy-gate.php
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Enterprise\Security\CertificateTransparency\CtValidationResult;
use Psr\Log\LoggerInterface;
final readonly class CtSigningPolicy
{
/**
* @param int<1, max> $minimumScts The minimum count of valid SCTs your policy requires.
*/
public function __construct(
private int $minimumScts,
private LoggerInterface $logger,
) {}
/**
* Decide whether a certificate's CT posture satisfies the policy.
*
* The gate runs before the signer is constructed, so an under-logged
* certificate never reaches a signing operation. A missing SCT extension
* is treated as a policy failure, not an exception.
*
* @param CtValidationResult $result The CT posture of the signing certificate.
*
* @return bool True when the certificate meets the minimum-SCT threshold.
*/
public function isAcceptable(CtValidationResult $result): bool
{
if (! $result->hasSctsExtension) {
$this->logger->warning('Signing certificate carries no SCT extension; CT policy not met.');
return false;
}
$acceptable = $result->meetsPolicy($this->minimumScts);
if (! $acceptable) {
$this->logger->warning('Signing certificate has too few valid SCTs for the CT policy.', [
'validScts' => $result->validScts,
'minimumScts' => $this->minimumScts,
]);
}
return $acceptable;
}
}
  1. Dựng một kết quả với phần mở rộng SCT hiện diện và một số đếm SCT hợp lệ ở ngưỡng của bạn, và xác nhận kiểm tra ngưỡng đạt.
  2. Dựng một kết quả thấp hơn ngưỡng của bạn một đơn vị và xác nhận kiểm tra trượt.
  3. Dựng một kết quả với phần mở rộng SCT vắng mặt và xác nhận cổng từ chối bất kể số đếm.
  4. Xác nhận quy trình ký của bạn không dựng một signer khi cổng từ chối.
  • NextPDF biểu diễn và kiểm tra ngưỡng; nó không vận hành log. NextPDF Enterprise phơi bày lập trường CT và một kiểm tra SCT tối thiểu. Nó không phải là một CT log, một bộ kiểm toán, hay một bộ giám sát, và nó không nộp chứng chỉ tới các log.
  • Ngưỡng là chính sách của bạn. Giá trị SCT tối thiểu là tùy bạn đặt; NextPDF không áp đặt một con số. Một phần mở rộng SCT thiếu là một thất bại chính sách rõ ràng.
  • Đặt cổng trước khi bạn ký. Hãy chạy kiểm tra trước khi dựng signer để một chứng chỉ chưa được ghi log đủ không bao giờ chạm tới một thao tác ký.
  • Ngữ nghĩa SCT tuân theo các tiêu chuẩn. Một SCT là lời hứa của một log mà các relying party kỳ vọng phải hiện diện và hợp lệ (RFC 6962 §3; §3.1 cấu trúc; CT v2 RFC 9162 §3).

Trang này liên quan đến niềm tin chứng chỉ. Mọi nguồn quy phạm đều được diễn giải lại; không có văn bản quy phạm nào được sao chép nguyên văn.

  • Không có phần mở rộng SCT. Hãy coi một kết quả không có phần mở rộng SCT là một thất bại chính sách; từ chối ký.
  • Quá ít SCT hợp lệ. Một số đếm SCT hợp lệ thấp hơn ngưỡng của bạn sẽ làm kiểm tra trượt; từ chối ký.
  • Vị trí đặt chính sách. Hãy chạy cổng trước khi signer được dựng; một kiểm tra muộn chạy sau khi ký không bảo vệ tài liệu đã tạo.

Trang này chỉ ghi lại hành vi quan sát được từ bên ngoài và bề mặt public API được hỗ trợ. Các đường dẫn namespace nội bộ, các lớp trợ giúp, các bảng cơ chế, các tên tệp runbook, và các tiền tố ticket nằm ngoài phạm vi.