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

Enterprise phiên bản

Security — HSM, PKCS#11 và chế độ FIPS

NextPDF Enterprise bổ sung một đường ký bằng token phần cứng PKCS#11 và một chính sách mã hóa ở chế độ FIPS trên nền bề mặt bảo mật của Core và Pro. Trang này nêu hành vi, ranh giới, và lập trường tường minh về chứng nhận FIPS cùng lưu giữ khóa.

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

Bề mặt bảo mật Enterprise có ba phần: một trình ký token phần cứng, một chính sách mã hóa ở chế độ FIPS, và một bộ bảo vệ tự kiểm tra lúc khởi động.

Trình ký token phần cứng thích ứng với một token PKCS#11 — một thẻ thông minh, một thiết bị USB, hoặc một HSM gắn-mạng. Trình ký định vị chứng chỉ và khóa riêng trên token theo nhãn. Sau đó nó yêu cầu token tính chữ ký. Khóa riêng không rời khỏi ranh giới token; thao tác chạy bên trong token. Thao tác ký của token, phiên, và việc đăng nhập người dùng tuân theo PKCS#11 v3.1 §5. Đường HSM cần extension PHP ext-pkcs11. Extension đó không thuộc PHP tiêu chuẩn. Hãy cài đặt nó riêng. Hãy dùng bước kiểm tra tính khả dụng trước khi bạn dựng trình ký.

Chính sách mã hóa ở chế độ FIPS giới hạn các lựa chọn mã hóa về một tập được chấp thuận. Nó có hai thiết lập sẵn. Thiết lập strict cho phép các hàm băm SHA-256, SHA-384, và SHA-512; các OID chữ ký RSA và ECDSA với các hàm băm đó; mã hóa AES-256-CBC; và kích thước khóa tối thiểu RSA 2048 và EC 256. Thiết lập standard giống vậy nhưng cũng cho phép AES-128-CBC cho khả năng tương tác cũ hơn. Một bộ bảo vệ lúc chạy bao quanh chính sách. Bộ bảo vệ kiểm tra từng hàm băm, OID chữ ký, thuật toán mã hóa, và độ mạnh khóa trước khi thao tác chạy. Một lựa chọn không được phép sẽ phát sinh một vi phạm có kiểu và dừng thao tác. Đường này là fail-closed: chính sách không bao giờ tự nới lỏng và không bao giờ thay thế bằng một thuật toán yếu hơn. Độ dài khóa RSA tối thiểu tuân theo NIST SP 800-131A Rev.2 §3. Cặp đường cong và hàm băm của ECDSA tuân theo FIPS 186-5 §6.1.1.

Bộ bảo vệ tự kiểm tra lúc khởi động chạy một bộ kiểm tra known-answer-test một lần khi tiến trình bắt đầu. Bộ kiểm tra bao quát các hàm băm, MAC, mã hóa, chữ ký, và sinh bit ngẫu nhiên được chấp thuận. Nếu bất kỳ lần kiểm tra nào thất bại, bộ bảo vệ FIPS Enterprise vào trạng thái lỗi và từ chối các dịch vụ mã hóa cho đến khi đặt lại. Kết quả được lưu vào bộ nhớ đệm trong suốt vòng đời tiến trình; một lần chạy lại theo yêu cầu là sẵn có. Hạng mục tự kiểm tra và kích hoạt kiểm tra có điều kiện tuân theo ISO/IEC 19790:2025 §7.10 và §7.10.3.

Quyết định trọng yếu là giữ khóa riêng bên trong ranh giới token và làm cho chính sách mã hóa trở nên fail-closed. Một trình ký có thể xuất một khóa, hoặc âm thầm lùi về một thuật toán yếu hơn, sẽ đánh bại chính sự bảo đảm mà một HSM tồn tại để cung cấp. Vì vậy trình ký yêu cầu token tính chữ ký tại chỗ, và bộ bảo vệ chế độ FIPS từ chối bất kỳ hàm băm, OID, hay độ mạnh khóa nào nằm ngoài thiết lập sẵn được chấp thuận trước khi thao tác chạy. Bộ tự kiểm tra lúc khởi động mở rộng cùng lập trường đó tới lúc khởi động: một module chưa được xác minh sẽ từ chối phục vụ thay vì ký trên các nguyên hàm chưa được kiểm tra. Kết quả là một ranh giới mà bạn có thể lập luận được, nơi việc lưu giữ khóa thuộc về người vận hành và token, không phải phần mềm này.

Bối cảnh thiết kế: Ký được HSM hậu thuẫn.

Bề mặt công khaiKiểuMục đíchĐộ ổn địnhTừ
PKCS#11 token signerclass (triển khai HsmSignerInterface của Core)Ký bằng một token PKCS#11; khóa ở lại trên tokenổn định1.0.0
FIPS crypto-policyclass (triển khai CryptoPolicyInterface của Core)Một thiết lập sẵn về thuật-toán-được-phép và độ mạnh khóaổn định1.9.0
FIPS-mode guardclassXác nhận một hàm băm, OID chữ ký, thuật toán mã hóa, hoặc độ mạnh khóa được phépổn định1.9.0
FIPS boot guardclassChạy và lưu vào bộ nhớ đệm bộ tự kiểm tra lúc khởi động; xác nhận module đang hoạt độngổn định3.2.0
OpenSSL CLI / engine signerclass (triển khai HsmSignerInterface)Ký thông qua một OpenSSL engine hoặc OpenSSL CLI cho các token dựa-trên-engineổn định1.0.0

Constructor của trình ký token nhận đường dẫn thư viện PKCS#11, số slot, PIN của token, nhãn chứng chỉ, và một nhãn khóa riêng biệt tùy chọn. Tham số PIN được đánh dấu nhạy cảm; nó không được ghi nhật ký và không được tuần tự hóa. Trình ký cũng phơi bày chứng chỉ của bên ký và chuỗi chứng chỉ ở dạng DER. Hợp đồng tham số và kiểu có thẩm quyền là tài liệu tham chiếu API đã xuất bản cho gói nextpdf/enterprise; hãy coi tài liệu tham chiếu đó — không phải trang này — là hợp đồng.

Terminal window
composer require nextpdf/core
composer require nextpdf/enterprise:^3
Construct a FIPS-mode guard and assert a hash is allowed
use NextPDF\Enterprise\Security\Fips\FipsCryptoPolicy;
use NextPDF\Enterprise\Security\Fips\FipsModeGuard;
$guard = new FipsModeGuard(FipsCryptoPolicy::strict());
// Throws a typed FIPS violation if the algorithm is not approved.
$guard->assertHashAllowed('sha256');
$guard->assertKeyStrengthAllowed('rsa', 2048);
Run the power-on self-test at container boot, then gate signing
use NextPDF\Enterprise\Security\Fips\FipsBootGuard;
use NextPDF\Enterprise\Security\Fips\FipsSelfTest;
// At application bootstrap (one self-test cycle per worker process):
$bootGuard = new FipsBootGuard(new FipsSelfTest());
$bootGuard->assertOperational(); // throws on a known-answer-test failure
$container->set(FipsBootGuard::class, $bootGuard);
// The PKCS#11 token signer is only available when ext-pkcs11 is loaded.
// Check availability before you construct the signer. The PIN is a secret;
// supply it from your secret manager, never from source or logs.

Danh sách đầy đủ đối số constructor, các kiểu ngoại lệ, và việc dựng trình ký token PKCS#11 được ghi tài liệu trong tài liệu tham chiếu chuyên sâu về bảo mật Enterprise.

  • Constructor của trình ký token PKCS#11 phát sinh một ngoại lệ thao tác có kiểu khi ext-pkcs11 không được nạp. Hãy kiểm tra tính khả dụng trước.
  • Trình ký token lưu vào bộ nhớ đệm một module PKCS#11 cho mỗi đường dẫn thư viện cho mỗi tiến trình. Điều này thỏa mãn quy tắc “khởi tạo một lần cho mỗi module” của giao diện token.
  • Các cơ chế ECDSA của token trả về một chữ ký thô. Trình ký chuyển nó sang dạng mã hóa DER để tương tác với PDF và OpenSSL.
  • Bộ bảo vệ FIPS từ chối một kiểu khóa không xác định theo mặc định. Một kiểu khóa không nhận diện được không bị âm thầm chấp nhận.
  • Đường ký post-quantum là thử nghiệm, tùy chọn bật, và bị tắt theo mặc định. Các hồ sơ lưu trữ dài hạn PAdES tiêu chuẩn chưa công nhận các bộ post-quantum. Đừng bật nó cho chữ ký AdES sản phẩm.

Các bước kiểm tra của bộ bảo vệ FIPS là các lần tra cứu hash-map theo thời gian hằng số. Bộ tự kiểm tra lúc khởi động chạy một lần cho mỗi tiến trình; chi phí của nó được khấu hao trên vòng đời tiến trình, không phải cho mỗi lần gọi ký. Một thao tác ký PKCS#11 bổ sung một lượt khứ hồi tới token. Một HSM gắn-mạng bổ sung độ trễ mạng của lượt khứ hồi đó.

  • Đường ký là fail-closed. Một nguyên hàm thất bại hoặc một lỗ hổng chính sách sẽ phát sinh một ngoại lệ có kiểu. Đường này không bao giờ âm thầm hạ cấp xuống một thuật toán yếu hơn.
  • Tham số PIN của token được đánh dấu nhạy cảm. Nó không được ghi nhật ký và không được tuần tự hóa.
  • Khóa riêng cho một token PKCS#11 ở lại trên token. Thao tác ký chạy bên trong ranh giới token.
  • Bộ tự kiểm tra lúc khởi động đưa bộ bảo vệ FIPS Enterprise vào trạng thái lỗi khi known-answer-test không khớp và từ chối các dịch vụ mã hóa cho đến khi đặt lại.
  • Việc dùng AES-GCM yêu cầu một vector khởi tạo duy nhất cho mỗi khóa, theo NIST SP 800-38D §5.

Lưu trú dữ liệu & biện pháp giảm thiểu PII

Phần tiêu đề “Lưu trú dữ liệu & biện pháp giảm thiểu PII”

Mã ký và mã chính-sách-FIPS chạy trong tiến trình. Không có nội dung tài liệu nào rời khỏi host cho việc kiểm tra chính sách FIPS hay bộ tự kiểm tra lúc khởi động. Một token PKCS#11 nhận dữ liệu cần ký, không phải nội dung tài liệu không liên quan. Một HSM gắn-mạng nhận dữ liệu đó qua kênh mạng mà bạn cấu hình. Tài liệu khóa ở lại bên trong ranh giới token hoặc HSM.

PIN của token là một tham số constructor nhạy cảm và được loại khỏi nhật ký và tuần tự hóa. Đừng thêm PIN, nhãn token, hay tài liệu khóa vào nhật ký ứng dụng của riêng bạn. Hãy coi mọi thông tin xác thực của token là secret trong chính sách ghi nhật ký và truy vết của bạn.

Đây là một ranh giới mã hóa, nên mô hình mối đe dọa là tường minh. Dữ liệu cần ký được trao cho token; token giữ khóa. Một lỗi của token hoặc HSM phát sinh một ngoại lệ có kiểu; trình ký không tạo ra một kết quả chưa ký hay ký dở dang. Việc bảo vệ khóa phụ thuộc vào token hoặc HSM, vào triển khai, và vào người vận hành — không chỉ phụ thuộc vào riêng phần mềm này. Xem ranh giới triển khai.

  • Mô hình tự kiểm tra lúc khởi động và có điều kiện căn chỉnh theo ISO/IEC 19790:2025 §7.10 và §7.10.3.
  • Độ dài khóa ký RSA tối thiểu căn chỉnh theo NIST SP 800-131A Rev.2 §3.
  • Cặp đường cong và hàm băm ECDSA được chấp thuận căn chỉnh theo FIPS 186-5 §6.1.1.
  • Thao tác ký của token PKCS#11 và việc đăng nhập phiên căn chỉnh theo PKCS#11 v3.1 §5.
  • Trách nhiệm bảo vệ khóa căn chỉnh theo NIST SP 800-57 Part 1 Rev.5 §5.5.2.
  • Tính duy nhất của vector khởi tạo AES-GCM căn chỉnh theo NIST SP 800-38D §5.

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 tái hiện trên trang này. Trang này liên quan đến việc ký mã hóa.

Chính sách chế độ FIPS giới hạn các lựa chọn mã hóa về tập được chấp thuận mô tả ở trên. Khi được cấu hình với một nhà cung cấp OpenSSL được FIPS thẩm định, nguyên hàm nền tảng chạy bên trong ranh giới đã thẩm định đó. Bản thân NextPDF Enterprise thực hiện việc dựng cấu trúc, tính digest, và thực thi chính sách.

NextPDF Enterprise không phải là một module mã hóa được FIPS thẩm định và không đưa ra tuyên bố chứng nhận FIPS nào. NextPDF Enterprise chỉ hoạt động ở chế độ tương thích FIPS khi được cấu hình với một nhà cung cấp mã hóa được FIPS thẩm định — ví dụ một nhà cung cấp OpenSSL được FIPS thẩm định — hoặc một HSM được FIPS thẩm định. Chính sách chế độ FIPS hỗ trợ việc tuân thủ; nó không phải là một chứng nhận.

NextPDF Core kèm theo trình ký phần mềm, tiêu thụ dấu thời gian RFC 3161, xác thực đường dẫn RFC 5280, và kiểm tra thu hồi OCSP và CRL. Core tạo ra các cấp PAdES B-B và B-T. NextPDF Pro bổ sung che văn bản, phát hiện PII ở lớp văn bản, ký tuần tự nhiều bên, và các chiến lược ký từ xa và bằng cloud-KMS (AWS KMS, GCP Cloud KMS, Azure Key Vault). NextPDF Pro không cung cấp một đường token phần cứng PKCS#11 và không cung cấp một hồ sơ chính sách mã hóa ở chế độ FIPS. Trình ký token phần cứng PKCS#11, hồ sơ chính sách mã hóa ở chế độ FIPS, bộ bảo vệ tự kiểm tra lúc khởi động, và trình tạo PAdES B-LT và B-LTA chỉ đi kèm trong gói nextpdf/enterprise. Một triển khai không có quyền Enterprise sẽ không nạp các class Enterprise.

Trong một triển khai chỉ có Pro, đường ký dựa-trên-phần-cứng và dựa-trên-đám-mây được hỗ trợ là chiến lược cloud-KMS của Pro: một cloud KMS hoặc KMS được HSM hậu thuẫn giữ khóa, và Pro gửi digest của các thuộc tính đã ký, không phải tài liệu, tới nhà cung cấp. Pro cung cấp tích hợp KMS, không phải factory token PKCS#11 của Enterprise hay hồ sơ chế độ FIPS. Một cấu hình yêu cầu B-LT, B-LTA, một token PKCS#11, hoặc hồ sơ chế độ FIPS trong một triển khai chỉ có Pro sẽ fail closed với một thông báo nêu tên thành phần Enterprise còn thiếu. Xem Security — NextPDF Pro để biết bề mặt ký của Pro.

Trong một triển khai chỉ có Core, trình ký phần mềm tạo ra PAdES B-B và B-T với một khóa cục bộ hoặc một khóa được cung cấp thông qua hợp đồng chiến lược ký của Core. Core không có đường token phần cứng và không có hồ sơ chế độ FIPS. Xem Security — NextPDF Core.

Việc tích hợp token PKCS#11, ánh xạ cơ chế của nó, và việc xử lý phiên của nó chỉ được mô tả ở mức hành vi. Bảng ánh xạ cơ chế nội bộ, logic khôi phục phiên nội bộ, và tài liệu di trú post-quantum nằm ngoài phạm vi của bề mặt công khai và không được tái hiện ở đây.

NextPDF Enterprise tích hợp với một token PKCS#11, một HSM, hoặc một KMS. Bản thân nó không lưu trữ, sinh, hay bảo đảm tính bảo mật của khóa ký. Bảo mật của khóa phụ thuộc vào token, HSM, hoặc KMS, vào triển khai, và vào người vận hành — không chỉ phụ thuộc vào riêng NextPDF Enterprise. Người vận hành chịu trách nhiệm về việc cấp phát token, xử lý PIN, cấu hình slot, bảo vệ mạng cho một HSM gắn-mạng, và cấu hình tin cậy. Trách nhiệm bảo vệ khóa tuân theo NIST SP 800-57 Part 1 Rev.5 §5.5.2. NextPDF Enterprise không phơi bày việc xử lý PIN của token, chi tiết nội bộ về cấu hình slot, hay tài liệu thông tin xác thực của nhà cung cấp trong tài liệu này.

Nó liên quan đến việc ký mã hóa và tích hợp module bảo mật phần cứng. Chính sách chế độ FIPS là một tính năng hỗ trợ tuân thủ. Nó không phải là một ý kiến pháp lý và cũng không phải một chứng nhận. Hãy tham vấn các cố vấn tuân thủ và pháp lý của riêng bạn về các nghĩa vụ quy định của bạn.

Trang này chỉ ghi tài liệu về hành vi có thể quan sát từ bên ngoài và bề mặt API công khai được hỗ trợ. Các đường dẫn namespace nội bộ, các class hỗ trợ, 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.

  • Bộ bảo vệ FIPS xác nhận từng hàm băm, OID chữ ký, thuật toán mã hóa, và độ mạnh khóa so với thiết lập sẵn đang hoạt động và phát sinh một vi phạm có kiểu trên một lựa chọn không được phép.
  • Bộ tự kiểm tra lúc khởi động chạy một lần cho mỗi tiến trình và từ chối các dịch vụ mã hóa trên một thất bại known-answer-test cho đến khi đặt lại.
  • Trình ký token PKCS#11 yêu cầu ext-pkcs11; nó phát sinh một ngoại lệ thao tác có kiểu khi extension vắng mặt.
  • Đường ký là fail-closed và không bao giờ thay thế bằng một thuật toán yếu hơn.