Enterprise sürümkararlılık: Deneysel
Post-kuantum imzalama önizlemesi — Derinlemesine başvuru
Bir bakışta
“Bir bakışta” başlıklı bölümBu sayfa, NextPDF Enterprise içindeki post-kuantum imzalama (PQS) önizleme yüzeyinin sözleşme düzeyindeki referansıdır. Üç genel sembolü kapsar: Pkcs11PqsAlgorithm parametre kümesi enum’u, PqsPreviewFeature süreç geçidi ve PqsCapabilityStatus tanımlayıcısı. Ayrıca NEXTPDF_FEATURE_PREVIEW_PQS_HSM ortam geçidini de belgeler.
Bu yüzey deneyseldir ve varsayılan olarak kapalıdır. ML-DSA (FIPS 204) ve SLH-DSA (FIPS 205) algoritma tanımlayıcılarını, parametre kümelerini ve imza uzunluklarını tanır. Tanıma bir doğrulama kararı değildir. Post-kuantum doğrulama yolu yoktur. Hiçbir AdES, FIPS doğrulaması veya uygunluk iddiasında bulunulmaz ve önizleme bayrağı böyle bir iddia oluşturamaz. Tüketen imzalama giriş noktası Pkcs11Signer::signPqs(), yetenek sayfasında açıklanmıştır.
Kullanılabilirlik ve lisanslama
“Kullanılabilirlik ve lisanslama” başlıklı bölümBu yetenek NextPDF Enterprise (nextpdf/enterprise) ile birlikte gelir ve Enterprise katmanı lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans edinin.
Lisans, Enterprise PKCS#11 yüzeyini bütün olarak etkinleştirir. İçindeki post-kuantum yol, lisans katmanından bağımsız olarak bir önizleme olmaya devam eder. Yine de iki bağımsız tercih gereklidir: burada belgelenen süreç geçidi ve Pkcs11Signer üzerindeki imzalayıcı başına yapıcı bayrağı.
Genel API yüzeyi
“Genel API yüzeyi” başlıklı bölüm| Sembol | Parametreler | Varsayılan davranış | Döndürür | Fırlattığı veya başarısız olduğu durum | Notlar |
|---|---|---|---|---|---|
Pkcs11PqsAlgorithm | dize destekli enum, 15 durum | Durum başına bir FIPS 204 / FIPS 205 parametre kümesini adlandırır | enum durumu | Durum erişiminde hiçbir şey | Durum değerleri parametre kümesi adlarıdır, ör. ML-DSA-65. |
Pkcs11PqsAlgorithm::isMlDsa() | yok | Aile testi | bool | Fırlatmaz | MlDsa44, MlDsa65, MlDsa87 için true. |
Pkcs11PqsAlgorithm::isSlhDsa() | yok | isMlDsa() işlevinin olumsuzu | bool | Fırlatmaz | On iki SLH-DSA durumu için true. |
Pkcs11PqsAlgorithm::mechanismId() | yok | Aileyi aday PKCS#11 v3.1 PQ mekanizma kimliğine eşler | int | Çalışma zamanında geçici Pkcs11 PQ sabitleri yoksa PHP Error | CKM_ML_DSA veya CKM_SLH_DSA; her iki kimlik de geçicidir. |
Pkcs11PqsAlgorithm::parameterSetId() | yok | Durumu OASIS parametre kümesi ayırıcısına eşler | int | Çalışma zamanında geçici Pkcs11 PQ sabitleri yoksa PHP Error | CKP_* değerleri; geçicidir. |
Pkcs11PqsAlgorithm::signatureLength() | yok | Durum için FIPS tarafından zorunlu kılınan imza bayt uzunluğu | int (pozitif) | Fırlatmaz | Beklenmeyen uzunlukta döndürülen bir imzayı reddetmek için imzalama yolu tarafından tüketilir. |
Pkcs11PqsAlgorithm::nistCategory() | yok | İddia edilen NIST güvenlik gücü kategorisi | int | Fırlatmaz | 1, 2, 3 veya 5 döndürür. |
PqsPreviewFeature | dize destekli enum, 1 durum | Tek durum PREVIEW_PQS_HSM; sabit ENV_PREVIEW_PQS_HSM | enum durumu | Durum erişiminde hiçbir şey | Süreç düzeyindeki önizleme geçidi. |
PqsPreviewFeature::isEnabled() | yok | getenv() değerini canlı okur; 1 dizesiyle katı karşılaştırma yapar | bool | Fırlatmaz | Değişkenin bulunmaması veya 0, true, yes dahil başka herhangi bir değer kapalı demektir. |
PqsCapabilityStatus::__construct() | dokuz adlandırılmış readonly alan | Rastgele bir tanımlayıcı örneği oluşturur | PqsCapabilityStatus | Fırlatmaz | current() kurallı yapıcıdır. |
PqsCapabilityStatus::current() | yok | Çevreleyen süreç için tanımlayıcıyı oluşturur | PqsCapabilityStatus | Fırlatmaz | Her iddia boole’si sabittir; yalnızca hsmRoundtripPreviewEnabled geçide göre değişir. |
PqsCapabilityStatus::summary() | yok | Tek satırlık durum metni | string | Fırlatmaz | İfade hiçbir kullanılabilirlik, arşivleme veya doğrulama iddiası taşımaz. |
enum Pkcs11PqsAlgorithm: string
case MlDsa44 = 'ML-DSA-44';case MlDsa65 = 'ML-DSA-65';case MlDsa87 = 'ML-DSA-87';
case SlhDsaSha2_128s = 'SLH-DSA-SHA2-128s';case SlhDsaShake_128s = 'SLH-DSA-SHAKE-128s';case SlhDsaSha2_128f = 'SLH-DSA-SHA2-128f';case SlhDsaShake_128f = 'SLH-DSA-SHAKE-128f';
case SlhDsaSha2_192s = 'SLH-DSA-SHA2-192s';case SlhDsaShake_192s = 'SLH-DSA-SHAKE-192s';case SlhDsaSha2_192f = 'SLH-DSA-SHA2-192f';case SlhDsaShake_192f = 'SLH-DSA-SHAKE-192f';
case SlhDsaSha2_256s = 'SLH-DSA-SHA2-256s';case SlhDsaShake_256s = 'SLH-DSA-SHAKE-256s';case SlhDsaSha2_256f = 'SLH-DSA-SHA2-256f';case SlhDsaShake_256f = 'SLH-DSA-SHAKE-256f';
public function isMlDsa(): boolpublic function isSlhDsa(): boolpublic function mechanismId(): intpublic function parameterSetId(): intpublic function signatureLength(): intpublic function nistCategory(): intenum PqsPreviewFeature: string
case PREVIEW_PQS_HSM = 'preview_pqs_hsm';
public const string ENV_PREVIEW_PQS_HSM = 'NEXTPDF_FEATURE_PREVIEW_PQS_HSM';
public function isEnabled(): boolfinal readonly class PqsCapabilityStatus
public const string MATURITY_PREVIEW_EXPERIMENTAL = 'preview-experimental';public const string MECHANISM_STATUS_PROVISIONAL = 'provisional';
public function __construct( public bool $hsmRoundtripPreviewEnabled, public bool $generallyAvailable, public bool $adesCompliant, public bool $verificationAvailable, public bool $conformanceClaimed, public bool $recognitionOnly, public string $maturity, public string $mechanismIdStatus, public string $envGate,)
public static function current(): selfpublic function summary(): stringDavranış sözleşmesi
“Davranış sözleşmesi” başlıklı bölüm- Parametre kümesi kataloğu.
NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11PqsAlgorithmüç ML-DSA kümesini (FIPS 204) ve on iki SLH-DSA kümesini (FIPS 205 §11.p12, Table 2) numaralandırır. Her durum; geçici bir mekanizma kimliğine, bir parametre kümesi ayırıcısına, FIPS tarafından zorunlu kılınan bir imza bayt uzunluğuna ve iddia edilen bir NIST kategorisine eşlenir. - İmza uzunlukları.
signatureLength(), FIPS 204 §4.p15 (Table 2) uyarıncaMlDsa44,MlDsa65veMlDsa87için 2420, 3309 ve 4627 bayt döndürür. SLH-DSA durumları, FIPS 205 §11 (Table 2) uyarınca düzeye ve varyanta göre 7856, 17088, 16224, 35664, 29792 ve 49856 bayt döndürür. Tüketen imzalayıcı, döndürülen bir imza farklı bir uzunluğa sahip olduğundaHsmOperationExceptionfırlatarak FIPS 204 §x34 uzunluk reddi disiplinini yansıtır. - Kategoriler.
nistCategory(), FIPS 204 §4.p9 uyarınca ML-DSA durumları için 2, 3 ve 5 döndürür. SLH-DSA durumları, güvenlik parametresi düzeyine göre 1, 3 ve 5 döndürür. - Süreç geçidi.
PqsPreviewFeature::PREVIEW_PQS_HSMvarsayılan olarak kapalıdır.isEnabled(), yalnızcaNEXTPDF_FEATURE_PREVIEW_PQS_HSMortam değişkeni tam olarak1dizesine eşit olduğundatruedöndürür. Okuma her çağrıda canlıdır; hiçbir şey belleğe alınmaz. - Tamamlayıcı geçit uygulama. Süreç geçidi,
Pkcs11Signerüzerindeki imzalayıcı başına$enablePostQuantumyapıcı tercihinden ayrıdır. İmzalama çağrısı, imzalayıcı başına tercih olmadan kapalı olacak şekilde başarısız olur. Süreç geçidi, gelecekteki herhangi bir gidiş-dönüş veya arşivleme davranışı için tek denetlenebilir sınır olarak vardır. - Dürüstlük değişmezi.
NextPDF\Enterprise\Security\Signature\Hsm\PqsCapabilityStatus::current(),generallyAvailable,adesCompliant,verificationAvailableveconformanceClaimeddeğerlerini sabit olarakfalse,recognitionOnlydeğerini isetrueolarak kodlar. Hiçbir yapılandırma, yapıcı seçeneği veya ortam bayrağı bir iddiayı açık konuma getirmez. YalnızcahsmRoundtripPreviewEnabledgeçidi yansıtır. - Doğrulama yolu yok. NextPDF’in post-kuantum doğrulama yolu yoktur. Tanınan bir algoritma tanımlayıcısı veya iyi biçimlendirilmiş bir imza uzunluğu asla bir kabul kararı değildir.
Uç durumlar ve başarısızlık modları
“Uç durumlar ve başarısızlık modları” başlıklı bölüm- Geçit değişkenini
0,true,yes,onveya boş bir dizeye ayarlamak geçidi kapalı bırakır. Yalnızca tam1dizesi onu etkinleştirir. putenv()değişiklikleri, okuma canlı olduğundan bir sonrakiisEnabled()çağrısında geçerli olur. Süreç ortasında değiştirilen bir geçit hemen gözlemlenir.mechanismId()veparameterSetId(), sabitleriPkcs11uzantı ad alanından çözer. Geçici post-kuantum uzantı sabitleri olmayan bir çalışma zamanı, çağrı anında bir PHPError(tanımsız sabit) ile başarısız olur.- Mekanizma ve parametre kümesi kimlikleri geçicidir. OASIS, PKCS#11 v3.1 post-kuantum kaydını sonlandırmamıştır. Ürün yazılımı farklı kimlikler atayan bir token, PKCS#11 katmanında başarısız olur; operatörler önizlemeyi etkinleştirmeden önce ürün yazılımı kimliklerini doğrulamalıdır.
- Tüketen imzalayıcı tarafından kabul edilen imzalama bağlamı, FIPS 204 imzalama giriş sözleşmesiyle (§x43.p2) eşleşerek 255 baytla sınırlıdır. Daha uzun bir bağlam, herhangi bir token çağrısından önce
InvalidArgumentExceptionfırlatır. PqsCapabilityStatus::__construct()geneldir, bu nedenle elle oluşturulan bir örnek rastgele boole’ler taşıyabilir. Böyle bir örnek yalnızca bir değer nesnesidir. Herhangi bir imzalama davranışını değiştirmez.current(), kurallı, sabit kodlanmış yapıcıdır.- Tüketen imzalayıcıdaki rastgele-ye karşı deterministik seçim, FIPS 205 §x65.p7 semantiğini izler: riskten korunmalı (hedged) imzalama varsayılandır. Bayrak, her zaman kendi nonce’u aracılığıyla rastgeleleştiren ML-DSA için yoksayılır.
FIPS modu davranışı
“FIPS modu davranışı” başlıklı bölümML-DSA ve SLH-DSA, FIPS 204 ve FIPS 205 algoritmalarıdır, ancak bu önizleme hiçbir FIPS 140-3 doğrulama iddiası taşımaz. Bu yol için FIPS doğrulamalı bir post-kuantum HSM gidiş-dönüşü kurulmamıştır. Güvenlik derin referansında belgelenen Enterprise FIPS modu kripto politikası profili, klasik imzalama algoritmalarını geçit ardına alır; PQS yüzeyini doğrulanmış bir kümeye kabul etmez. FIPS modunu etkinleştirmek, post-kuantum imzalamayı FIPS doğrulamalı yapmaz. FIPS doğrulamalı bir imzanın gerekli olduğu yerlerde önizlemeyi dağıtmayın.
Uygunluk
“Uygunluk” başlıklı bölüm| İddia | Standart | Madde |
|---|---|---|
| ML-DSA-44/65/87, iddia edilen NIST kategorileri 2, 3, 5’i taşır. | FIPS 204 | §4.p9 |
| ML-DSA imza boyutları 2420, 3309, 4627 bayttır. | FIPS 204 | §4.p15 (Table 2) |
| İmzalama bağlamı bayt dizesi 255 baytla sınırlıdır. | FIPS 204 | §x43.p2 |
| Yanlış uzunlukta bir imza veya anahtar reddedilmelidir. | FIPS 204 | §x34 |
| On iki SLH-DSA parametre kümesi onaylanmıştır. | FIPS 205 | §11.p12 (Table 2) |
| SLH-DSA imza boyutları Table 2’yi izler (128s için 7856 bayt). | FIPS 205 | §11.p6 |
| Riskten korunmalı imzalama varsayılandır; deterministik bir varyant vardır. | FIPS 205 | §x65.p7 |
| CAdES/PAdES paket kataloğu yalnızca RSA ve EC-DSA’yı profillendirir. | ETSI TS 119 312 V1.5.1 | §7.x7.p10 (Table A.1) |
| PKCS#11 PQ mekanizma kimlikleri geçicidir. | OASIS PKCS#11 v3.1 | product-source grounded |
Tüm maddeler başka sözcüklerle ifade edilmiştir. NextPDF, normatif metni yeniden üretmez. NextPDF hiçbir sertifikaya sahip değildir ve hiçbir sertifika vermez. Yukarıdaki ifadeler; tanımlayıcılar, uzunluklar ve sınırlar hakkında yapısal hizalama ifadeleridir. Bunlar uygunluk testi sonuçları değildir, üçüncü taraf tasdikleri değildir ve bir FIPS, OASIS veya ETSI uygunluk iddiası değildir. PqsCapabilityStatus bu duruşu kodda kodlar: conformanceClaimed false, adesCompliant false ve verificationAvailable her yapılandırmada false’tur. Bu önizleme tarafından üretilen bir imza, uzun süreli arşivleme için AdES uyumlu değildir ve çoğu PDF görüntüleyicisi bunu doğrulama anında reddeder.
Geliştirme notları
“Geliştirme notları” başlıklı bölüm-
OASIS PKCS#11 post-kuantum mekanizma kaydı sonlandırılmamıştır; burada kullanılan
CKM_ML_DSA/CKM_SLH_DSAkimlikleri ve parametre kümesi sabitleri geçicidir ve bir spesifikasyon alıntısından değil, ürün kaynağından temellendirilmiştir. -
Mevcut kilometre taşı, sahte (mock) test edilmiş hazır olma durumudur. Henüz gerçek bir post-kuantum ürün yazılımı HSM gidiş-dönüşü doğrulanmamıştır.
-
Üretimde her iki geçidi de kapalı tutun. Önizleme, klasik RSA/ECDSA PKCS#11 yolunun sahip olmadığı hiçbir üretim yeteneği eklemez.
-
Gerçek donanımla herhangi bir değerlendirme yapmadan önce, token ürün yazılımının mekanizma ve parametre kümesi kimliklerini geçici değerlere göre doğrulayın. Bir uyuşmazlık, NextPDF içinde değil PKCS#11 katmanında başarısız olur.
-
Araçlarda veya kullanıcı arayüzünde PQS durumunu gösterirken
PqsCapabilityStatus::current()işlevini tek doğruluk kaynağı olarak kabul edin. Boole’lerini elle yeniden ifade etmeyin. -
summary()çıktısı günlükler ve durum uç noktaları için güvenlidir; hiçbir kullanılabilirlik veya doğrulama iddiası taşımayacak şekilde ifade edilmiştir.
Ayrıca bakınız
“Ayrıca bakınız” başlıklı bölüm- Post-kuantum HSM imzalama (PQS) önizlemesi — yetenek sayfası
- Güvenlik — Derin referans (HSM, PKCS#11, FIPS modu)
- İmza — Derin referans
- HSM imzalama kurulumu
- Güvenlik / İmzalama (Core)
Yayın sınırı
“Yayın sınırı” başlıklı bölümBu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve talep önekleri kapsam dışıdır.