İmza ve şifreleme için güvenlik modeli
Bir bakışta
“Bir bakışta” başlıklı bölümBu sayfa, çekirdek motorun sunduğu iki kriptografik yüzeye ilişkin güvenlik modelini tanımlar: Advanced Encryption Standard 256-bit (AES-256) ile belge şifreleme ve Cryptographic Message Syntax (CMS)/PDF Advanced Electronic Signatures (PAdES) ile belge imzalama. Her mekanizmanın neyi koruduğunu, neyi korumadığını ve güven sınırının nerede olduğunu açıklar.
Sınır. Bir kriptografik mekanizmanın desteklenmesi sizin dağıtımınızda güvenliği garanti etmez. Şifrelenmiş bir belgenin gücü, seçtiğiniz parolaya ve anahtar saklama yöntemine bağlıdır. Bir imzanın anlamı sertifikaya, güven çıpasına, zaman damgası makamına ve doğrulayıcı ilkesine bağlıdır. Bu denetimler söz konusu kitaplığın dışında yer alır. Bu sayfa mekanizmayı açıklar; sonucu belgelendirmez.
Kurulum
“Kurulum” başlıklı bölümcomposer require nextpdf/core:^3ext-openssl, imzalama ve CMS yollarında gereklidir.
Kavramsal genel bakış
“Kavramsal genel bakış” başlıklı bölümÇekirdek motorda şifreleme, ISO 32000-2 §7.6 AES-256 güvenlik işleyicisini (AESV3, Revision 6) kullanır (iso32000_2_sec7#x1.x65.p29). Gizlilik sağlar: parolaya sahip olmayan bir taraf dize ve akış içeriğini okuyamaz. Bütünlük veya gerçeklik sağlamaz. Şifreli metin yine de kısaltılabilir veya değiştirilebilir. Bu durumu bir imza ya da belge düzeyinde bir mesaj kimlik doğrulama kodu (MAC) algılamalıdır; şifreleme işleyicisi algılamaz.
İzinler (yazdırma, kopyalama, değiştirme) ayrıdır ve kolayca yanlış anlaşılabilir. ISO 32000-2 izin bayrakları okuyucu işbirliğine dayalıdır (iso32000_2_sec7#x1.x71.p27). Uyumlu bir okuyucu bunlara uyar, ancak bunlar kriptografik bir erişim denetimi değil, yol gösterici meta verilerdir. İşbirliği yapmayan bir araç bunları yok sayabilir. Motor bunları aslına uygun biçimde aktarır; ancak uygulanmalarını zorlayamaz.
Belge imzalama için motor, ISO 32000-2 §12.8’de açıklandığı gibi bir CMS SignedData yapısını gömer. İmzalanan bayt aralığı doğrudan bir nesnedir ve özet, imza Contents değerini kasıtlı olarak dışarıda bırakır (iso32000_2_sec12#x1.x121.p45); böylece imza belgeyi kapsar, ancak kendisini kapsamaz.
API yüzeyi
“API yüzeyi” başlıklı bölümBu sayfa, imzalama başvurusunu tekrarlamaz. Şifreleme giriş noktaları ve imzalama düzenleyicisi şurada açıklanır: /modules/core/security/ ve /modules/core/security/signing/. Bu model, yöntem biçimleriyle değil, anlam ve sınırlarla ilgilidir.
Kod örneği — hızlı başlangıç
“Kod örneği — hızlı başlangıç” başlıklı bölümŞifreleme, parolaya sahip olmayan taraflara karşı gizliliği korur; başka bir şey yapmaz:
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$doc = new Document();// AES-256 (AESV3 R6). The owner/user passwords gate read access only.// Permission flags below are advisory: a conforming reader honors them.$doc->encrypt( userPassword: 'open-secret', ownerPassword: 'owner-secret',);$doc->save('confidential.pdf');Kod örneği — üretim
“Kod örneği — üretim” başlıklı bölümBir üretim imzalama akışı, yazılımda tutulan bir anahtarla temel bir CMS/PAdES imzası uygular. Core sürümü PAdES B-B düzeyini üretir. Bir zaman damgası makamı yapılandırdığınızda Core sürümü PAdES B-T üretir; bu da B-B artı tek bir RFC 3161 signature-time-stamp imzalanmamış özniteliğidir:
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;use NextPDF\Security\Signature\CertificateInfo;use NextPDF\Security\Signature\SignatureLevel;
$cert = CertificateInfo::fromPkcs12('signer.p12', 'pin');
$doc = new Document();// B-B is the default. B-T adds a trusted timestamp over the signature value.$doc->setSignature($cert, SignatureLevel::PAdES_B_B);$doc->save('signed.pdf');PAdES B-T, tam olarak B-B artı bir RFC 3161 signature-time-stamp imzalanmamış özniteliğidir; bu öznitelik CMS SignerInfo içinde taşınır (rfc5652#p603). Zaman damgası, imza değerini bir zaman damgası makamından alınan güvenilir zamana bağlar (rfc3161#p208). Bir doğrulama verisi sözlüğü, bir iptal bilgisi yapısı veya bir arşiv zaman damgası döngüsü eklemez. Bunlar, B-B/B-T yüzeyinin parçası olmayan, ayrı kapsamda ele alınan uzun vadeli düzeylerdir ve bu sayfanın kapsamı dışındadır.
U-1. NextPDF, bağımsız bir ETSI EN 319 142-1 PAdES B-T sertifikasyonu öne sürmez. EN 319 142-1, burada kullanılan doğrulama kaynakları arasında yer almaz. B-T signature-time-stamp gereksinimi, ETSI EN 319 122-1 §5.3’e göre doğrulanır — yani CMS Advanced Electronic Signatures (CAdES) temeline göre; bu temel, EN 319 142 PAdES ailesinin atıf yoluyla içe aktardığı temeldir (
etsi_en_319_122_1#6.x40.p96) — RFC 3161, RFC 5652 ve ISO 32000-2 §12.8 ile birlikte. B-T profili desteği, bir uygunluk sertifikasyonu veya yasal geçerlilik sertifikasyonu değildir. Buna bağımsız bir doğrulayıcı karar verir.
Uç durumlar ve tuzaklar
“Uç durumlar ve tuzaklar” başlıklı bölüm- Şifreleme ≠ bütünlük. Belgeyi açabilen bir okuyucuya yine de kurcalanmış bir kopya verilebilir. Bunu yalnızca bir imza (veya bir belge MAC’i) algılar. “Kurcalamaya dayanıklı”, şifreleme işleyicisinin sağladığı bir özellik değildir ve bu terim ürün iddiası olarak kullanılmaz.
- Bir imzanın varlığı, onun geçerliliği anlamına gelmez. Bir belgenin imza sözlüğü taşıması, sertifikanın güvenilir, süresi dolmamış veya iptal edilmemiş olup olmadığı hakkında hiçbir şey söylemez. Geçerliliği belirleme işlemi, imzalayan tarafından değil, dayanan tarafın ilkesiyle yönetilen doğrulayıcı tarafında yürütülür.
- Zaman damgası güveni dışsaldır. Bir B-T zaman damgası, ancak doğrulayıcının onu veren zaman damgası makamına (TSA) duyduğu güven kadar anlamlıdır. Kitaplık belirteci alıp gömer. TSA’ya kefil olmaz.
- FIPS durumu ortama bağlıdır. FIPS doğrulamasına sahip bir kriptografik modül üzerinde çalışmak, işletim ortamının ve modülün bir özelliğidir (
fips_140_3#x12); bir PHP kitaplığının çağıranı adına öne sürebileceği bir şey değildir.
Performans
“Performans” başlıklı bölümİmza yolu, bir bayt aralığı özeti ve bir CMS yapısı hesaplar. B-T uzantısı, zaman damgası makamına eşzamanlı bir gidiş dönüş ekler. Şifreleme, per-string/per-stream bir simetrik işlemdir. Hiçbiri tipik bir oluşturma işleminde baskın maliyet değildir. B-T için ağ gidiş dönüşü değişken bir maliyettir ve çağıranın TSA seçimine bağlıdır.
Güvenlik notları
“Güvenlik notları” başlıklı bölümSınır beyanları, inceleyenler için uygulanabilir kurallar olarak yeniden ifade edilmiştir:
- Yalnızca gizlilik. AES-256 şifreleme, içeriği parolaya sahip olmayan taraflara karşı korur. Bütünlük, gerçeklik veya erişim denetimi sağlamaz (
iso32000_2_sec7#x1.x65.p29). - İzinler yol göstericidir. İzin bayrakları okuyucu işbirliğine dayalıdır ve kriptografik olarak zorlanmaz (
iso32000_2_sec7#x1.x71.p27). Ürün ifadeleri, bunların bir eylemi engellediğini ileri sürmemelidir. - Bu sayfada yalnızca B-B ve B-T. Burada belgelenen core/Pro imzalama yüzeyi, B-B ve onun B-T zaman damgası uzantısını kapsar; B-T’ye yapılan her atıf, yukarıdaki U-1 uyarısıyla birlikte yer alır. Uzun vadeli arşivleme düzeyleri, ayrı bir ücretli sürüm yüzeyidir ve burada bilinçli olarak açıklanmamıştır. Bu sayfada hiçbir doğrulama verisi, iptal bilgisi veya arşiv zaman damgası yeteneği öne sürülmez.
- Yasal geçerlilik iddiası yok. Üretilen bir imza kriptografik bir yapıdır. Bu imzanın yasal olarak geçerli olup olmadığı, bu kitaplığa değil; yargı yetkisine, sertifika ilkesine ve dayanan tarafa bağlıdır.
Uygunluk
“Uygunluk” başlıklı bölümDestek, uygunluk değildir. Motor, anılan ISO 32000-2, RFC 3161, RFC 5652 ve ETSI EN 319 122-1 yapılarını kullanan çıktı üretir. Motor, PAdES, CAdES veya eIDAS uygunluğu öne sürmez. FIPS 140-3 doğrulaması, bir kitaplık iddiası değil, bir module/environment özelliğidir (fips_140_3#x12). Herhangi bir uygunluk veya yasal geçerlilik belirlemesini bağımsız bir doğrulayıcı ya da değerlendirici yapar.