Güvenlik ve imzalama hataları
Genel bakış
“Genel bakış” başlıklı bölümBu sayfa, NextPDF\Security ad alanı ağacındaki güvenlik-alanı istisnalarını
belgeler. Her giriş, sınıfı adlandırır, ne zaman fırlatıldığını belirtir,
getContext() yönteminin döndürdüğü alanları listeler ve bir kurtarma adımı
verir.
Bu sınıfların çoğu, NextPdfException sınıfını genişleten ve
ContextAwareExceptionInterface arayüzünü uygulayan SecurityException
sınıfını genişletir. Bu, getContext(): array yönteminin günlüklemeye veya
uygulama performansı izleme (APM) işlem hatlarına yönlendirebileceğiniz
yapılandırılmış, gizli-içermeyen tanılamalar döndürmesi demektir. Her
güvenlik-alanı hatasını tek bir blokta yakalamak için SecurityException
türünü yakalayın; türlü yüküne ihtiyaç duyduğunuzda belirli bir alt sınıfı
yakalayın.
Bu ağaçtaki birkaç sınıf, SecurityException yerine doğrudan RuntimeException
sınıfını genişletir. Bunlar aşağıda işaretlenmiştir; getContext() yöntemini
sunmazlar ve çoğu, uygulama kodunda yakalamayı beklememeniz gereken dahili
denetim-akışı sinyalleri olarak belgelenmiştir.
Bağlam-alanı kuralı
“Bağlam-alanı kuralı” başlıklı bölüm| Yön | Davranış |
|---|---|
| Temel sözleşme | NextPdfException::getContext() [] döndürür; alt sınıflar onu geçersiz kılar. |
| Gizli hijyeni | İletiler ve bağlam, ham anahtar materyalini, düz metni, PIN’leri ve başlatma vektörü (IV) baytlarını içermez. Anahtarlar yalnızca bir parmak izi öneki olarak yüzeye çıkar. |
SecurityException | Soyut temel; kendine ait alan taşımaz. Alt sınıflar yükü tanımlar. |
Temel tür
“Temel tür” başlıklı bölümSecurityException
“SecurityException” başlıklı bölüm- Ne zaman fırlatılır. Asla doğrudan fırlatılmaz; güvenlik alanı için soyut
temeldir. Tek bir
catch (SecurityException $e)bloğunun kimlik-doğrulamalı-şifreleme bütünlük hatalarını, nonce-yeniden-kullanım savunmalarını, PDF/A-karşı-şifreleme bağını, anahtar-yönetimi hatalarını ve PKI hatalarını yakalayabilmesi için vardır. - Bağlam alanları. Kendine ait alan yoktur. Boş varsayılanı
NextPdfExceptionsınıfından devralır; alt sınıflar yükü doldurur. - Çözüm. Eyleme dönük işleme için somut alt sınıfı yakalayın ya da kaba
güvenlik-olayı yönlendirmesi için
SecurityExceptiontürünü yakalayın.
Şifreleme ve kimlik-doğrulamalı-şifreleme hataları
“Şifreleme ve kimlik-doğrulamalı-şifreleme hataları” başlıklı bölümBunlar, AES-GCM (Galois/Counter Mode) şifreleyicisi ve PDF/A koruması tarafından fırlatılır. Belirti-öncelikli rehberlik için Şifreleme ve izinler sayfasına bakın.
DecryptionFailedException
“DecryptionFailedException” başlıklı bölüm- Ne zaman fırlatılır. İlişkili veriyle kimlik-doğrulamalı-şifreleme (AEAD) şifre çözme işlemi, kurcalama dışı bir nedenle başarısız olur: kesilmiş şifreli metin, eksik bir IV ya da bütünlük denetiminin gerçekten çalışması için yeterli materyal olmadığı durumda API sınırında sağlanan yanlış bir anahtar. Bu bir yapılandırma veya taşıma hatasıdır, bir güvenlik olayı değil.
- Bağlam alanları.
algorithm(örneğinAES-256-GCM),reason(örneğinciphertext shorter than IV+tag). - Çözüm. Şifreli metnin, IV’nin ve anahtarın eksiksiz ve doğru çerçevelenmiş
olduğunu doğrulayın; bunu kurcalama olarak ele almayın.
TamperedDataExceptionile karşılaştırın.
TamperedDataException
“TamperedDataException” başlıklı bölüm- Ne zaman fırlatılır. AEAD kimlik-doğrulama etiketi doğrulamada başarısız
olur. Etiket, şifreli metni artı ilişkili kimlik-doğrulamalı veriyi (AAD)
kapsar; şifrelemeden sonra ikisinden biri değiştirildiyse temeldeki
openssl_decrypt()falsedöndürür. Bu ayrı alt tür, bir çerçeveleme hatası yerine güvenlik-olayı-düzeyinde bir uyarı yüzeye çıkarmanıza olanak tanır. - Bağlam alanları.
algorithm,ciphertext_length(reddedilen şifreli metnin uzunluğu, IV ve etiket hariç). - Çözüm. Kurcalama ya da yanlış anahtar/IV olarak ele alın. Körü körüne yeniden denemeyin; şifreli metnin kaynağını araştırın. ISO/TS 32003:2023 §5.2 ve NIST SP 800-38D §6.5 uyarınca, başarısız bir etiket denetimi, verinin özgün olmadığı anlamına gelir.
NonceReuseException
“NonceReuseException” başlıklı bölüm- Ne zaman fırlatılır. AES-GCM’den, aynı anahtar ve IV çiftiyle iki kez şifrelemesi istenir. Şifreleyici, örnek başına monoton bir sayaçla ve derinlemesine savunma olarak, yayılan her (anahtar-parmak izi, IV) çiftinin bir çalışma zamanı karma kümesiyle savunur. Sayaç çakışmaları yapısal olarak dışladığından, bu tetiklenme, üretimde asla oluşmaması gereken kritik-öncelikli bir hata göstergesidir. Bir anahtar/IV çiftini yeniden kullanmak, tüm anahtar akışını tehlikeye atar (ISO/TS 32003:2023 §5.2 NOT 2; NIST SP 800-38D §8.3).
- Bağlam alanları.
key_fingerprint_prefix(SHA-256(key) değerinin ilk 8 onlu altılı karakteri),iv_length(ISO/TS 32003 için her zaman 12),reason(hashset-collisionya dacounter-rollover; sayaç-yenen bir yeniden düzenleme hatasını 2^63 sayaç eşiğinden ayırır) veiv_fixed_field_hex(IV sabit alanı; yalnızca sağlandığında mevcut, kendi anahtarı altında bildirilir ve asla anahtar parmak izi olarak yanlış etiketlenmez). - Çözüm. Hemen iptal edin ve anahtarı döndürün. Bir kusur raporu açın; bu, kötü çağıran girdisini değil, şifreleyicideki bir hatayı gösterir.
GcmInvocationLimitExceededException
“GcmInvocationLimitExceededException” başlıklı bölüm- Ne zaman fırlatılır. Belirli bir AES-GCM anahtarı için tercihe bağlı bir
NIST SP 800-38D §8.3 kullanım-güvenliği çağrı sayısına ulaşılır. Bu,
spesifikasyonun önerdiği sınırı (anahtar başına yaklaşık 2^32 çağrı),
şifreleyici içindeki mimari sınırlardan daha erken uygulamak isteyen çağıranlar
için derinlemesine savunmalı bir telemetri kancasıdır. Varsayılan olarak
tetiklenmez; onu yalnızca
assertWithinSafetyBound()yardımcısı fırlatır. - Bağlam alanları.
key_fingerprint_prefix,invocation_count(geçerliencrypt()sayısı, sınırda veya üzerinde),invocation_limit(tercihe bağlı sınır). - Çözüm. Kümülatif çakışma ve sahtecilik olasılığı ihmal edilebilir olmaktan çıkmadan önce belge anahtarını döndürün (yeni anahtar materyaliyle yeni bir şifreleyici oluşturun) ya da hizmeti sürdürmeyi reddetmek için çağıran ilkesini genişletin.
IncompatiblePdfAModeException
“IncompatiblePdfAModeException” başlıklı bölüm- Ne zaman fırlatılır. Bir PDF/A-etiketli belge üzerinde bir şifreleme işlemi
denenir. PDF/A ailesi (PDF/A-2, PDF/A-3, PDF/A-4) şifrelemeyi tek biçimli olarak
yasaklar: ISO 19005 §6.1.3 uyarınca
Encryptanahtarı fragmanda yer almamalıdır ve ISO 19005-4:2020 Ek A ve B bunu değişiklik olmadan devralır. PDF/A ile şifrelemenin izin verilen hiçbir bileşimi yoktur. - Bağlam alanları.
pdfa_mode(örneğinpdfa4,pdfa3),encryption_operation(reddedilen çağrı, örneğinuseAesGcm). - Çözüm. Şifrelenmiş bir belge üretmek için
enablePdfA()çağrısını çıkarın; arşivleme belgesi üretmek için şifreleme çağrısını çıkarın. PDF/A ve PDF/UA doğrulama sayfasına bakın.
Kripto-ilkesi uygulaması
“Kripto-ilkesi uygulaması” başlıklı bölümCryptoPolicyViolationException
“CryptoPolicyViolationException” başlıklı bölüm- Ne zaman fırlatılır. Yapılandırılmış bir kripto ilkesi, bir çekirdek
imzalama, şifreleme veya karma işleminin seçtiği bir algoritmayı, anahtar
gücünü ya da şifreyi reddeder. Bu, uygunluk uygulaması (örneğin FIPS 140-2/3,
eIDAS ya da özel kurumsal ilke) için güvenli-biçimde-başarısız-olan sınırdır ve
herhangi bir imza veya şifreli metin üretilmeden önce
CryptoPolicyEnforcertarafından fırlatılır; böylece ilkeyi ihlal eden bir işlem asla onaylanmamış bir yapıt yayamaz. Dar bir OpenSSL işlem hatasından ve bir imzalama-ilkeli hatasından farklıdır: bu, başka türlü geçerli bir isteğin ilke reddidir. NIST SP 800-131A Rev. 2 ve ISO/IEC 19790:2025 §7 ile uyumludur. - Bağlam alanları.
policy(ilke adı, örneğinFIPS 140-3 Strict),category(hash,signature,encryptionya dakey-strength),item(reddedilen öğe, örneğin bir nesne tanımlayıcısı (OID), şifre adı ya darsa/1024),reason. - Çözüm. Adlandırılmış ilkenin onayladığı bir algoritma, anahtar uzunluğu ya da şifre seçin ya da sahibiyseniz ilkeyi ayarlayın. Yapılandırılmış bağlamı belgelenmiş uygunluk çalışma kitabına yönlendirin.
Anahtar yönetimi
“Anahtar yönetimi” başlıklı bölümAynı adlı iki sınıf vardır. Tek bir catch (SecurityException $e) bloğunun her
ikisini de yakalaması için SecurityException kökünü paylaşırlar ancak farklı
yükler taşırlar. Belirli bir biçime ihtiyaç duyduğunuzda tam nitelikli adla içe
aktarın.
KeyManagementException (yaşam döngüsü: NextPDF\Security\Exception)
“KeyManagementException (yaşam döngüsü: NextPDF\Security\Exception)” başlıklı bölüm- Ne zaman fırlatılır. Bir anahtar-yönetimi işlemi, anahtar bir imzalama veya şifreleme ilkeli tarafından tüketilmeden önce başarısız olur: Privacy-Enhanced Mail (PEM), PKCS#12 ya da PKCS#11 anahtar ayrıştırma hataları; anahtar-türetme (HKDF, PBKDF2, scrypt) hataları; yanlış bir anahtar-şifreleme anahtarında AES Key Wrap (RFC 3394) reddi; bozuk Distinguished Encoding Rules (DER) döndüren bir donanım güvenlik modülü (HSM); ya da bir Ed25519 tohum uzunluğu uyuşmazlığı.
- Bağlam alanları.
operation(örneğinload_pem,kek_derive,key_wrap),key_type(örneğinRSA,EC-P256,Ed25519,AES-256),reason. Ham anahtar materyali asla dahil edilmez. - Çözüm. Adlandırılan işlemi ve anahtar türünü inceleyin, kaynak anahtar materyalini veya türetme girdisini düzeltin ve yeniden deneyin.
KeyManagementException (imzalama yolu: NextPDF\Security\Signature\Exception)
“KeyManagementException (imzalama yolu: NextPDF\Security\Signature\Exception)” başlıklı bölüm- Ne zaman fırlatılır. Bir imzalayıcı sağlayıcı bir anahtar-yönetimi
hatasıyla karşılaşır: istenen anahtar sürümü bilinmiyor, devre dışı, imha için
zamanlanmış, imzalama izni yok ya da başka türlü kullanılamaz.
RsaPssSignerveLocalKeySignerProvidercanlı anahtar hatalarında bunu fırlatır. Adlandırılmış yapıcılar:unknownKeyVersion()vekeyVersionDisabled(). - Bağlam alanları.
providerId,keyVersion,reason. Erişimciler:providerId(),keyVersion(),reason(). - Çözüm. Anahtarı döndürün veya yeniden izinlendirin ya da kullanılabilir bir
anahtar sürümü seçin, sonra yeniden deneyin. İmzalama ilkelinin kendisinin
başarısız olduğunu işaret eden
SignatureFailedExceptiontüründen farklıdır.
İmzalama
“İmzalama” başlıklı bölümErişilemeyen seviyeler ve eksik yetenekler hakkında belirti-öncelikli rehberlik için İmza ve zaman damgası hataları sayfasına bakın.
SignatureFailedException (R4-13: NextPDF\Security\Exception)
“SignatureFailedException (R4-13: NextPDF\Security\Exception)” başlıklı bölüm- Ne zaman fırlatılır. Bir kriptografik imzalama işlemi başarısız olur: bir
RSA, ECDSA ya da Ed25519 imza ilkeli
falseveya yanlış uzunlukta çıktı döndürür; bir HSM ya da PKCS#11 belirteci başarı-dışı bir durumla yanıt verir; Cryptographic Message Syntax (CMS)SignedDataderlemesi hatalı bir sertifika ya da zincirde başarısız olur; ya da bir Ed25519 gidiş-dönüş öz-doğrulaması başarısız olur. Yeni kod, eski PAdES-bağlı imza istisnası yerine bu R4-13 alt türünü tercih etmelidir. - Bağlam alanları.
operation(örneğinsign,verify,build_cms),algorithm(örneğinrsa-pkcs1v15-sha256,ed25519),reason. Erişimciler:getOperation(),getAlgorithm(),getReason(). - Çözüm. İşlemi ve algoritmayı okuyun, girdiyi (anahtar, sertifika zinciri ya da arka uç kullanılabilirliği) düzeltin ve yeniden deneyin. ETSI EN 319 142-1 güvenli-biçimde-başarısız-olan anahtar-işleme duruşuyla uyumludur.
SignatureFailedException (SPI: NextPDF\Security\Signature\Exception)
“SignatureFailedException (SPI: NextPDF\Security\Signature\Exception)” başlıklı bölüm- Ne zaman fırlatılır. Bir
SignerProviderInterfaceuygulaması, bir imzalama işlemini anahtar-yönetimi olarak sınıflandırılmayan herhangi bir nedenle tamamlayamaz: arka uç sürücü hatası, hatalı anahtar materyali ya da kurtarılamayan HSM G/Ç. Bu, her ilkelinnull,falseya da boş bir dize döndürmek yerine hata durumunda fırlattığı güvenli-biçimde-başarısız-olan imzalama sözleşmesi için yakala-her-şeydir. Adlandırılmış yapıcı:forProvider(). - Bağlam alanları.
providerId,reason. Erişimciler:providerId(),reason(). - Çözüm. Sağlayıcı kimliğini ve nedeni inceleyin, sağlayıcı arka ucunu veya
anahtar materyalini düzeltin ve yeniden deneyin. “Anahtar bozuk” ile “ilkel
başarısız oldu” durumlarını ayırmak için
KeyManagementExceptionile bu tür arasında dallanın.
SignatureLevelUnreachableException
“SignatureLevelUnreachableException” başlıklı bölüm- Ne zaman fırlatılır. İstenen PAdES uygunluk seviyesi, geçerli çalışma
zamanı altyapısı altında (çoğunlukla B-T ve üzeri için eksik bir zaman damgası
yetkilisi) karşılanamaz ve çağıran düşürme izni vermemiştir. Varsayılan,
güvenli-biçimde-başarısız-olmaktır: motor, daha yükseğini bildirirken sessizce
daha düşük bir seviye üretmek (ki bu eIDAS-düzeyinde bir gerileme olurdu) yerine
reddeder. ETSI EN 319 142-1 §6 ile uyumludur. Bu sınıfın (
SecurityExceptiondeğil) doğrudanNextPdfExceptionsınıfını genişlettiğine dikkat edin. - Bağlam alanları.
requestedLevel,highestAchievableLevel,reason. Erişimciler:requestedLevel(),highestAchievableLevel(),reason(). - Çözüm. Eksik altyapıyı tanımlamak için
reasonalanını okuyun ve sağlayın (örneğin bir zaman damgası yetkilisi yapılandırın) ya da ulaşılabilir en yüksek seviyeyi bilerek kabul etmek içinPadesOrchestratorbileşenineallowDegradation: truedeğerini geçirin.
SignerProviderNotFoundException
“SignerProviderNotFoundException” başlıklı bölüm- Ne zaman fırlatılır.
SignerProviderRegistry::get()yöntemine, kayıtlı olmayan bir sağlayıcı kimliği sorulur. PSR-11NotFoundExceptionInterfacearayüzünü uygular; bu nedenle kayıt, PSR-11 konteyner sözleşmesine uyar. Adlandırılmış yapıcı:forId(). Bu sınıfRuntimeExceptionsınıfını genişletir vegetContext()yöntemini sunmaz. - Bağlam alanları. Yok. Kayıtlı olmayan kimlik iletide görünür.
- Çözüm. İstemeden önce sağlayıcıyı beklenen kimlik altında kaydedin ya da kayda geçirdiğiniz kimliği düzeltin.
Karma (SHAKE256)
“Karma (SHAKE256)” başlıklı bölümBunlar RuntimeException sınıfını genişletir ve getContext() yöntemini sunmaz.
SHAKE256, bazı ISO/TS 32001 yollarının gerektirdiği SHA-3 genişletilebilir-çıktı
işlevidir.
Shake256NotAvailableException
“Shake256NotAvailableException” başlıklı bölüm- Ne zaman fırlatılır. Özet zamanında, seçilen sağlayıcı isteği
karşılayamadığında. Adlandırılmış yapıcılar:
noBackend()(bu ana bilgisayarda, denenen tüm katmanlarda çalışan bir SHAKE256 arka ucu yok) veffiCallFailed()(FFI-bağlı bir OpenSSL EVP çağrısı, örneğin soyulmuş bir libcrypto yapısından başarı-dışı bir durum döndürdü). - Bağlam alanları. Yok. İleti, denenen katmanları veya başarısız sembolü adlandırır.
- Çözüm. OpenSSL 3.x mevcut olacak şekilde
ext-ffiyükleyin ya dahash_algos()içindeshake256sunan bir PHP yapısına yükseltin. Bir kullanıcı alanı Keccak yedeği kasıtlı olarak gönderilmez.
Shake256ProviderNotAvailableException
“Shake256ProviderNotAvailableException” başlıklı bölüm- Ne zaman fırlatılır. Bir SHAKE256 sağlayıcı yapıcısından, yetenek araştırması
başarısız olduğunda; bu nedenle sağlayıcı örneklenemez. Bu bir denetim-akışı
sinyalidir: sağlayıcı kaydı onu yakalar, katman etiketini kaydeder ve bir
sonraki katmanı dener. Uygulama koduna asla kaçmamalıdır. Adlandırılmış yapıcı:
forTier(). - Bağlam alanları. Yok. İleti, katmanı ve nedeni adlandırır.
- Çözüm. Doğrudan çağıran tarafından eyleme dönük değildir; tüm katman zinciri
tükenirse, kayıt bunun yerine operatöre dönük düzeltmeyi taşıyan
Shake256NotAvailableException::noBackend()yüzeye çıkarır.
Belge MAC bütünlüğü (ISO/TS 32004)
“Belge MAC bütünlüğü (ISO/TS 32004)” başlıklı bölümBunlar, /AuthCode altında saklanan ISO/TS 32004 belge-düzeyi mesaj kimlik
doğrulama kodunu (MAC) kapsar. Her ikisi de NextPdfException sınıfını genişletir
ve getContext() yöntemini geçersiz kılar.
DocumentMacTokenException
“DocumentMacTokenException” başlıklı bölüm- Ne zaman fırlatılır. Güvenli biçimde başarısız olarak, MAC belirteci
okuyucusu tarafından, bir CMS
AuthenticatedDataMAC belirteci yapısal olarak hatalı biçimlendiğinde ya da kabul edilen ISO/TS 32004 kümesinin dışında bir algoritma bildirdiğinde. Adlandırılmış yapıcılar:malformed()vealgorithmMismatch().@internalolarak işaretlenmiştir. - Bağlam alanları.
status(DocumentMacVerificationStatusdeğeri, yaMalformedTokenya daAlgorithmMismatch). Genel salt okunur özellik:$status. - Çözüm. Belgeyi doğrulanmamış olarak ele alın. Hatalı bir belirteç veya kabul edilen kümenin dışında bir algoritma, MAC’in güven kuramayacağı anlamına gelir; içerik korunuyormuş gibi devam etmeyin.
DocumentMacVerificationException
“DocumentMacVerificationException” başlıklı bölüm- Ne zaman fırlatılır. Güvenli biçimde başarısız olarak, bir belge-düzeyi
MAC doğrulaması güvenilir bir duruma ulaşamadığında: eksik veya hatalı bir
/AuthCode, kabul edilen kümenin dışında bir algoritma, bir açma hatası ya da bir MAC uyuşmazlığı (kurcalama). Doğrulayıcınınverify()yöntemi dallanma için açık bir sonuç döndürür; bu, “içeriğe güven” kodunun doğrulanmamış bir belgenin ötesine asla geçememesi içinassertVerified()tarafından fırlatılan istisna-akışı karşılığıdır. Adlandırılmış yapıcı:fromResult(). - Bağlam alanları.
status(DocumentMacVerificationStatusdeğeri). Genel salt okunur özellik:$status. - Çözüm. Belge içeriğine güvenmeyin. Bir kurcalamayı (MAC uyuşmazlığı) bir
yapılandırma sorunundan (eksik veya hatalı
/AuthCode, algoritma uyuşmazlığı) ayırmak içinstatusdeğerini inceleyin.
PKI yol doğrulama (RFC 5280)
“PKI yol doğrulama (RFC 5280)” başlıklı bölümBunlar, RFC 5280 sertifikalandırma-yolu doğrulamasını kapsar. Temel tür ve alt sınıfları güvenli biçimde başarısız olur.
PkiPathValidationException
“PkiPathValidationException” başlıklı bölüm- Ne zaman fırlatılır. RFC 5280 yol doğrulayıcısından katı-kip bir hata.
Daha dar alt sınıflar (
ChainLengthExceededException,UnsupportedExtensionException) için son-olmayan temeldir; böylece bu türü yakalayan işleyiciler, Liskov yerine koyma yoluyla onları da yakalar.SecurityExceptionsınıfını genişletir. - Bağlam alanları.
getContext()yöntemini geçersiz kılmaz (boş varsayılanı devralır). Yapılandırılmış nedenleri, dondurulmuş genel salt okunur dizi özelliği$reasons(kural-adı artı açıklama dizelerinden oluşan boş olmayan bir liste) içinde taşır. - Çözüm. Başarısız olan kuralı tanımlamak için
$reasonsdeğerini okuyun, sertifika zincirini düzeltin ve yeniden doğrulayın. Herhangi bir yol-doğrulama hatasını tek biçimli olarak işlemek için bu türü yakalayın.
ChainLengthExceededException
“ChainLengthExceededException” başlıklı bölüm- Ne zaman fırlatılır. Yol doğrulayıcısından, uzunluğu yapılandırılmış tavanı
aşan bir zinciri yürümesi istenir. Üst sınır, herhangi bir ayrıştırma başlamadan
önce uygulanır; böylece kötü amaçlı bir tedarikçi, doğrulayıcıyı ikinci dereceden
bir işe sürükleyemez ya da keyfi olarak derin bir zincirle kaynakları
tüketemez. Varsayılan 10 tavanı, PKIX-CMP profilini (RFC 4210 §5.3.18) izler;
gerçek dünya zincirleri 5 ila 6 girişe sığar.
PkiPathValidationExceptionalt sınıfı. - Bağlam alanları. Boş
getContext()değerini devralır;chain_length_exceeded: supplied=<n> cap=<n>neden dizesi, üst öğenin$reasonsdeğerine iletilir. Genel salt okunur özellikler:$supplied,$cap. - Çözüm. Tavan içinde bir zincir sağlayın ya da meşru biçimde daha uzun bir zincir bekleniyorsa yapılandırılmış üst sınırı yükseltin.
UnsupportedExtensionException
“UnsupportedExtensionException” başlıklı bölüm- Ne zaman fırlatılır. Yol doğrulayıcısı, uygulaması henüz gerçekleştirilmemiş
kritik bir X.509 uzantısıyla karşılaşır. RFC 5280 §4.2 uyarınca, tanınmayan
kritik bir uzantı güvenli biçimde başarısız olmalıdır; kritik bir uzantıyı
sessizce atlamak bir güvenlik gerilemesi olacağından, hem katı hem de hoşgörülü
kipler burada güvenli biçimde başarısız olur. Doğrulayıcı, zincir oluşturmayı,
AKI/SKI eşleştirmeyi, anahtar kullanımını, genişletilmiş anahtar kullanımını,
temel kısıtlamaları, sona ermeyi ve imza doğrulamayı kapsar; başka herhangi bir
kritik öğe burada yüzeye çıkar.
PkiPathValidationExceptionalt sınıfı. - Bağlam alanları. Boş
getContext()değerini devralır; yapılandırılmış nedenler üst öğenin$reasonsdeğerine iletilir. Genel salt okunur özellikler:$extensionOid(noktalı OID, örneğin ad kısıtlamaları için2.5.29.30),$extensionName,$clauseRef(RFC 5280 hükmüne ve ertelenmiş-öğeler günlük girişine işaretçi). - Çözüm. Hoşgörülü kipte, gerçek yol-doğrulama hatalarını yutmadan daha kaba
bir ilkeye geri dönmek için bu belirli alt sınıfı yakalayın. Hangi uzantının
doğrulamayı engellediğini görmek için
$extensionOidve$clauseRefdeğerlerini PKI sınama düzeneklerinize karşı denetleyin.
RevocationCheckFailedException
“RevocationCheckFailedException” başlıklı bölüm- Ne zaman fırlatılır. Hem OCSP hem de sertifika iptal listesi (CRL) uç
noktaları, kesin bir karar olmadan tükenir: OCSP taşıma hatası veya hatalı
yanıt ve CRL taşıma hatası veya hatalı CRL; her iki devre kesici de açık ya da
her iki önbellek de eksik. Katı kip bunu güvenli-biçimde-başarısız olarak ele
alır; hoşgörülü kip onu yakalar ve
revocation = nullile bir PSR-3 uyarısı yayar.SecurityExceptionsınıfını genişletir. - Bağlam alanları.
getContext()yöntemini geçersiz kılmaz (boş varsayılanı devralır). Durumu, genel salt okunur özellikler$ocspStateve$crlState(her biri varsayılan olarakunknown) içinde taşır. - Çözüm. Bir iptal kaynağına erişilebilirliği geri yükleyin, devre kesicilerin kapanmasını bekleyin ya da önbelleği ısıtın, sonra yeniden deneyin. Bir uzun-vadeli-doğrulama yapıtı elde etmek için bunu bastırmayın; iptal öne sürümü o seviyenin bir parçasıdır.
OCSP imza doğrulama (RFC 6960)
“OCSP imza doğrulama (RFC 6960)” başlıklı bölümOcspSignatureInvalidException
“OcspSignatureInvalidException” başlıklı bölüm- Ne zaman fırlatılır. Bir RFC 6960 §4.2.2.2
BasicOCSPResponseimzası, yanıtlayıcının sertifikasına karşı kriptografik doğrulamada başarısız olur. Ayrıştırıcı,signatureAlgorithm(RSA-PSS, ECDSA ya da RSA-PKCS1v15) kodunu çözer vetbsResponseDataüzerindesignaturedeğerini doğrular; herhangi bir hata, çağıranların yapısal olarak geçerli ancak kriptografik olarak kurcalanmış bir yanıtı hatalı-DER bir yanıttan ayırabilmesi için bu türlü istisnayı fırlatır. Son-olmayan; böylece alt akış paketleri daha özel alt sınıflar yayımlayabilir.SecurityExceptionsınıfını genişletir. - Bağlam alanları.
getContext()yöntemini geçersiz kılmaz (boş varsayılanı devralır). Hata etiketini, genel salt okunur özellik$reason(örneğinsignature_mismatch,responder_cert_not_in_bundle,unsupported_signature_algorithm) içinde taşır; serbest metinlidetaililetiye katlanır. - Çözüm.
$reasondeğerini inceleyin.responder_cert_not_in_bundleiçin doğru güven çıpası paketini ve yanıtlayıcı sertifikasını sağlayın.signature_mismatchiçin yanıtı güvenilmez olarak ele alın. İmza ve zaman damgası hataları sayfasına bakın.
Zaman damgalama (RFC 3161)
“Zaman damgalama (RFC 3161)” başlıklı bölümTsaException
“TsaException” başlıklı bölüm- Ne zaman fırlatılır. RFC 3161 zaman damgası yetkilisi (TSA) iletişiminde
ya da yanıt ayrıştırmasında bir hata: TSA bir hata durumu döndürür, HTTP isteği
başarısız olur ya da ASN.1 yanıtı ayrıştırılamaz. TSA hata hiyerarşisinin
temelidir ve son-olmadığından doğrulama hataları onu genişletebilir.
NextPdfExceptionsınıfını genişletir. - Bağlam alanları.
getContext()yöntemini geçersiz kılmaz (boş varsayılanı devralır). - Çözüm. Herhangi bir TSA-hata yolu için
TsaExceptiontürünü yakalayın. TSA erişilebilirliğini ve uç noktanın iyi-biçimli bir RFC 3161 yanıtı döndürdüğünü doğrulayın.
TsaTokenVerificationException
“TsaTokenVerificationException” başlıklı bölüm- Ne zaman fırlatılır. Bir RFC 3161
TimeStampTokenbelirtecinin CMS doğrulaması, zorunlu doğrulama adımlarından herhangi birinde başarısız olur: RFC 5816 §3 ESSCertIDv2 bağı, RFC 5652 §11 imzalı-öznitelikler bütünlüğü, RFC 3161 §2.4.2producedAttazeliği ya da RFC 5652 §5.4SignerInfoimzası. Güvenli biçimde başarısız olur; denetim işlem hatlarının iletileri grep’lemeden yeniden-yürütmeyi saat kaymasından ve sertifika-uyuşmazlığından ayırabilmesi için türlü bir adım ayırıcısı taşır.TsaExceptionalt sınıfı; böylece eskicatch (TsaException)işleyicileri tetiklenmeye devam eder. - Bağlam alanları.
step(başarısız olan işlem hattıStepdeğeri) vemessage. Erişimci:getStep(). - Çözüm. Bir geliştirici (yanlış yapılandırılmış TSA sertifikası veya kayma
toleransı) ya da güvenlik (şüpheli MITM veya yeniden yürütme) tarafından eyleme
dönüktür. Başarısız olan aşamayı yerelleştirmek için
stepdeğerini okuyun ve ilgili girdiyi veya güven yapılandırmasını düzeltin.
MalformedDerException
“MalformedDerException” başlıklı bölüm- Ne zaman fırlatılır. Bir DER yürüyüşünün hatalı veya kesilmiş bir sınıra
çarptığını belirten, TSA belirteci doğrulayıcısı içindeki düşük seviyeli
yürüyücülerin fırlattığı dahili sinyal. Her zaman genel doğrulama sınırında
yakalanır ve doğru adım ayırıcısını taşıyan bir
TsaTokenVerificationExceptioniçine yeniden sarılır; asla çağıran koduna sızmaz.RuntimeExceptionsınıfını genişletir;@internalolarak işaretlenmiştir. - Bağlam alanları. Yok.
- Çözüm. Çağırana dönük değildir. Bunun yerine sarmalanmış
TsaTokenVerificationExceptiontürünü işleyin.
Sertifika-uzantısı kod çözme
“Sertifika-uzantısı kod çözme” başlıklı bölümBunlar RuntimeException sınıfını genişletir ve getContext() yöntemini sunmaz.
Her ikisi de güvenli-biçimde-başarısız-olan kod çözücülerdir.
NameConstraintsDecodeException
“NameConstraintsDecodeException” başlıklı bölüm- Ne zaman fırlatılır. Ad-kısıtlamaları kod çözücüsü, sadakatle kod çözemediği
uygulanabilir bir
GeneralSubtreeöğesiyle karşılaşır. RFC 5280 §4.2.1.10, bir güvenen tarafın uygulanabilir bir ad kısıtlamasını işlemesini ya da sertifikayı reddetmesini gerektirir; önceki sessiz düşürmeyi bu türlü hataya çevirmek, kabul edilen ad kümesini sessizce genişletecek bir fail-open durumunu önler. Kapsam, uygulanabilir ad biçimleriyle sınırlıdır (directoryName, dNSName, iPAddress, rfc822Name, uniformResourceIdentifier); uygulanamayan biçimler yok sayılabilir kalır ve onu asla fırlatmaz. Adlandırılmış yapıcı:undecodableEnforceableBase().@internalolarak işaretlenmiştir. - Bağlam alanları. Yok. Günlüğe-güvenli bir ayrıntı dizesi iletide taşınır.
- Çözüm. Uygulayıcı, güvenli-biçimde-başarısız-olan bir
name_constraints:nedeni yüzeye çıkarır ve zincir reddedilir. Sertifikanın ad-kısıtlamaları kodlamasını araştırın; uygulamayı gevşetmeyin.
QcStatementsDecodeException
“QcStatementsDecodeException” başlıklı bölüm- Ne zaman fırlatılır.
qcStatementsuzantısı yapısal olarak hatalı biçimlendiğinde: kesilmiş DER, yanlış bir etiket ya da bir uzunluk taşması. Kod çözücü güvenli biçimde başarısız olur ve uzantının ne söylediğini kesinlikle belirleyemediğinde kısmi veya sezgisel bir sonuç döndürmek yerine fırlatır.@apiolarak işaretlenmiştir. - Bağlam alanları. Yok.
- Çözüm. Yalnızca hatalı kodlamayı tolere etmeyi amaçlıyorsanız onu açıkça yakalayın; aksi hâlde sertifikanın nitelikli-sertifika ifadelerini belirlenemez olarak ele alın ve sertifikayı reddedin ya da yeniden düzenleyin.
PKCS#11 oturumları
“PKCS#11 oturumları” başlıklı bölümPkcs11SessionException
“Pkcs11SessionException” başlıklı bölüm- Ne zaman fırlatılır. Bir PKCS#11 v3.1 oturum-yönetimi kusuru. Her
adlandırılmış yapıcı, belirli bir kusur sınıfına ve bir PKCS#11
CKR_*dönüş değerine eşlenir; bu, türlü$kindayırıcısı üzerinden sunulur, böylece çağıranlar kırılgan ileti eşleştirmesi yerine kararlı bir enum-dizesine göre dallanır. Yapıcılar şunları içerir:cryptokiNotInitialized(),userNotLoggedIn(),userAlreadyLoggedIn(),operationNotInitialized(),operationActive(),mechanismNotAllowed(),tokenDisconnected(),concurrentSessionLimitExceeded(),sessionAlreadyClosed(),stateTransitionInvalid(),osLockingRequired(),loginTtlExpired()vesignOperationTtlExpired().SecurityExceptionsınıfını genişletir. - Bağlam alanları.
getContext()yöntemini geçersiz kılmaz (boş varsayılanı devralır). Türlü türü, genel salt okunur özellik$kindiçinde taşır; bu,KIND_*sabitlerinden biridir (örneğinKIND_USER_NOT_LOGGED_IN,KIND_TOKEN_DISCONNECTED,KIND_LOGIN_TTL_EXPIRED). Yuva ve oturum tanımlayıcıları, mekanizma ve TTL değerleri iletide görünür. PIN’ler ve sertifika baytları asla dahil edilmez. - Çözüm.
$kinddeğerine göre dallanın.user_not_logged_iniçin bir imzalama işlemini başlatmadan önce kullanıcı PIN’i ile oturum açın.token_disconnectediçin yuvadaki tüm oturumları yetim olarak ele alın. TTL türleri için yeniden kimlik doğrulayın ya da işlemi yeniden başlatın.mechanism_not_allowediçin yapılandırılmış mekanizma izin-listesini genişletin veya izin verilen bir mekanizma seçin.