TLDR: il formato "PEM" utilizza solo la parte tra le linee BEGIN tratteggiate e END
Il cosiddetto formato PEM utilizzato da molti software di crittografia si è evoluto un po 'nel tempo e non è del tutto standard. RFC7468 (nel 2015) documenta e descrive alcune delle varianti per alcuni tipi di dati, incluso il certificato (X.509 / PKIX) . Io chiamo spesso questo formato in stile PEM piuttosto che PEM per enfatizzare la differenza.
Il nucleo del formato in stile PEM era ed è che i dati arbitrari (potenzialmente binari) sono codificati in base64, suddivisi in righe e circondati da -----BEGIN x----
e -----END x-----
righe dove x specifica il tipo di dati. (L'armatura di OpenPGP è la stessa eccetto che aggiunge anche un checksum di base64.) Nella sua applicazione originale per la posta elettronica, PEM aveva bisogno e consentiva altri dati prima, dopo e tra i blocchi PEM. Negli adattamenti più recenti di questo formato, alcuni software consentono tali dati esterni e altri no o non sempre , ma quando sono consentiti dati esterni non influisce mai sull'oggetto PEM, che è sempre solo la parte tra le linee BEGIN e END; ciò che fa il software quando sono presenti dati esterni ma non è consentito non è standard.
Cambiando qualcosa nei dati tra le linee BEGIN e END, in un modo che è ancora base64 valido, cambia i dati rappresentati. È probabile che una modifica arbitraria produca dati che non sono ASN.1 DER validi e quindi non tutti i certificati. Una modifica attentamente elaborata, inclusa quella malevola, può produrre dati che sono la codifica valida di alcuni certificati, ma generalmente non un certificato valido. A seconda di cosa esattamente è stata eseguita la convalida, questo può o non può essere rilevato.
Alcune (molte?) applicazioni che processano i certificati accettano anche la rappresentazione DER / binario da un file, ma mi aspetto che un'applicazione web o GUI sia meno probabile in quanto i dati binari in genere non possono essere tagliati e incollati correttamente. Questi file contengono solo un'infarinatura di testo e non possono essere identificati in modo affidabile, né tanto meno validati da strumenti normali come cat
o more
o un editor di testo.