Beveiligingsmodel voor ondertekening en versleuteling
In een oogopslag
Sectie met titel “In een oogopslag”Deze pagina definieert het beveiligingsmodel voor de twee cryptografische oppervlakken die de core-engine blootstelt: documentversleuteling met Advanced Encryption Standard 256-bit (AES-256) en documentondertekening met Cryptographic Message Syntax (CMS)/PDF Advanced Electronic Signatures (PAdES). De pagina legt uit wat elk mechanisme beschermt, wat het niet beschermt en waar de vertrouwensgrens ligt.
Grens. Ondersteuning voor een cryptografisch mechanisme garandeert geen beveiliging in je implementatie. De sterkte van een versleuteld document hangt af van het wachtwoord en het sleutelbeheer dat je kiest. De betekenis van een handtekening hangt af van het certificaat, het vertrouwensanker, de tijdstempelautoriteit en het verifierbeleid. Die controles bevinden zich buiten deze bibliotheek. Deze pagina beschrijft het mechanisme; de pagina certificeert de uitkomst niet.
Installatie
Sectie met titel “Installatie”composer require nextpdf/core:^3ext-openssl is vereist voor de ondertekenings- en CMS-paden.
Conceptueel overzicht
Sectie met titel “Conceptueel overzicht”In de core-engine gebruikt versleuteling de ISO 32000-2 §7.6 AES-256-beveiligingshandler (AESV3, Revision 6) (iso32000_2_sec7#x1.x65.p29). Die biedt vertrouwelijkheid: een partij zonder het wachtwoord kan string- en stream-inhoud niet lezen. Die biedt geen integriteit of authenticiteit. Een cijfertekst kan nog steeds worden afgekapt of vervangen. Een handtekening of een document message authentication code (MAC) moet dat detecteren; de versleutelingshandler doet dat niet.
Rechten (afdrukken, kopiëren, wijzigen) staan hier los van en worden gemakkelijk verkeerd geïnterpreteerd. De ISO 32000-2-rechtenvlaggen zijn leesprogramma-coöperatief (iso32000_2_sec7#x1.x71.p27). Een conform leesprogramma respecteert ze, maar het zijn adviserende metadata, geen cryptografische toegangscontrole. Een niet-coöperatief hulpmiddel kan ze negeren. De engine geeft ze getrouw weer; afdwingen kan de engine ze niet.
Voor ondertekening sluit de engine een CMS SignedData-structuur in zoals beschreven in ISO 32000-2 §12.8. Het ondertekende bytebereik is een direct object, en de digest sluit doelbewust de waarde van Contents van de handtekening uit (iso32000_2_sec12#x1.x121.p45), zodat de handtekening het document dekt maar niet zichzelf.
API-oppervlak
Sectie met titel “API-oppervlak”Deze pagina herhaalt de ondertekeningsreferentie niet. De versleutelingsingangspunten en de ondertekeningsorkestrator worden beschreven in /modules/core/security/ en /modules/core/security/signing/. Dit model gaat over betekenis en grens, niet over de vorm van methoden.
Codevoorbeeld — Snelstart
Sectie met titel “Codevoorbeeld — Snelstart”Versleuteling beschermt alleen de vertrouwelijkheid tegenover partijen zonder het wachtwoord:
<?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');Codevoorbeeld — Productie
Sectie met titel “Codevoorbeeld — Productie”Een ondertekeningsstroom in productie past een CMS/PAdES-basishandtekening toe met een softwarematig bewaarde sleutel. De Core-editie produceert het PAdES B-B-niveau. Wanneer je een tijdstempelautoriteit configureert, produceert de Core-editie PAdES B-T: B-B plus één enkel RFC 3161 signature-time-stamp niet-ondertekend attribuut:
<?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 is precies B-B plus één RFC 3161 signature-time-stamp niet-ondertekend attribuut dat wordt meegevoerd in de CMS SignerInfo (rfc5652#p603). De tijdstempel bindt de handtekeningwaarde aan een vertrouwde tijd van een tijdstempelautoriteit (rfc3161#p208). Het voegt geen validatiegegevenswoordenboek, geen intrekkingsinformatiestructuur of een archieftijdstempellus toe. Dat zijn afzonderlijke, apart afgebakende langetermijnniveaus die geen deel uitmaken van het B-B/B-T-oppervlak en buiten het bestek van deze pagina vallen.
U-1. NextPDF claimt geen onafhankelijke ETSI EN 319 142-1 certificering voor PAdES B-T. EN 319 142-1 maakt geen deel uit van het hier gebruikte verificatiecorpus. De B-T signature-time-stamp-vereiste wordt getoetst aan ETSI EN 319 122-1 §5.3 — de CMS Advanced Electronic Signatures (CAdES)-basis die de EN 319 142 PAdES-familie via verwijzing importeert (
etsi_en_319_122_1#6.x40.p96) — samen met RFC 3161, RFC 5652 en ISO 32000-2 §12.8. Ondersteuning voor het B-T-profiel is geen conformiteitscertificering of rechtsgeldigheidscertificering. Een onafhankelijke validator doet die vaststelling.
Randgevallen en valkuilen
Sectie met titel “Randgevallen en valkuilen”- Versleuteling ≠ integriteit. Een leesprogramma dat het document kan openen, kan nog steeds een gemanipuleerde kopie ontvangen. Alleen een handtekening (of een document-MAC) detecteert dat. „Tamper-proof” is geen eigenschap die de versleutelingshandler biedt, en de term wordt niet als productclaim gebruikt.
- De aanwezigheid van een handtekening is niet de geldigheid ervan. Dat een document een handtekeningwoordenboek bevat, zegt niets over de vraag of het certificaat vertrouwd, niet verlopen of niet ingetrokken is. Het vaststellen van geldigheid is een controle aan de kant van de verifier die wordt bepaald door het beleid van de vertrouwende partij, niet door de ondertekenaar.
- Tijdstempelvertrouwen is extern. Een B-T-tijdstempel is slechts zo betekenisvol als het vertrouwen dat de verifier stelt in de tijdstempelautoriteit (TSA) die hem heeft uitgegeven. De bibliotheek verkrijgt het token en sluit het in. De bibliotheek staat niet in voor de TSA.
- FIPS-status is omgevingsgebonden. Draaien op een FIPS-gevalideerde cryptografische module is een eigenschap van de uitvoeringsomgeving en de module (
fips_140_3#x12), niet iets wat een PHP-bibliotheek namens de aanroeper kan claimen.
Prestaties
Sectie met titel “Prestaties”Het ondertekeningspad berekent één bytebereik-digest en één CMS-structuur. De B-T-uitbreiding voegt één synchrone retourrit naar de tijdstempelautoriteit toe. Versleuteling is een symmetrische bewerking per string/per stream. Geen van beide is doorgaans bepalend bij een typische weergave. De netwerkretourrit voor B-T is de variabele kostenpost, en die hangt af van de TSA-keuze van de aanroeper.
Beveiligingsnotities
Sectie met titel “Beveiligingsnotities”Uitspraken over de grens, opnieuw geformuleerd als afdwingbare regels voor reviewers:
- Alleen vertrouwelijkheid. AES-256-versleuteling beschermt inhoud tegen partijen zonder het wachtwoord. Het biedt geen integriteit, authenticiteit of toegangscontrole (
iso32000_2_sec7#x1.x65.p29). - Rechten zijn adviserend. Rechtenvlaggen zijn leesprogramma-coöperatief en worden niet cryptografisch afgedwongen (
iso32000_2_sec7#x1.x71.p27). Productteksten mogen niet claimen dat ze een actie verhinderen. - Alleen B-B en B-T op deze pagina. Het hier gedocumenteerde core/Pro-ondertekeningsoppervlak dekt B-B en de bijbehorende B-T-tijdstempeluitbreiding, waarbij elke B-T-vermelding samen met het U-1-voorbehoud hierboven staat. Langetermijnarchiefniveaus zijn een afzonderlijk oppervlak van de betaalde edities en worden hier opzettelijk niet beschreven. Op deze pagina wordt geen functionaliteit voor validatiegegevens, intrekkingsinformatie of archieftijdstempels geclaimd.
- Geen claim van rechtsgeldigheid. Een geproduceerde handtekening is een cryptografisch artefact. Of het rechtsgeldig is, hangt af van de jurisdictie, het certificaatbeleid en de vertrouwende partij, niet van deze bibliotheek.
Conformiteit
Sectie met titel “Conformiteit”Ondersteuning is geen conformiteit. De engine produceert uitvoer die gebruikmaakt van de geciteerde ISO 32000-2-, RFC 3161-, RFC 5652- en ETSI EN 319 122-1-constructies. De engine claimt geen PAdES-, CAdES- of eIDAS-conformiteit. FIPS 140-3-validatie is een module-/omgevingseigenschap (fips_140_3#x12), geen claim van de bibliotheek. Een onafhankelijke validator of beoordelaar doet elke vaststelling over conformiteit of rechtsgeldigheid.