Funzionalità di caricamento file - verifica del formato cer

0

Durante il test della funzionalità di caricamento dei file nell'applicazione web, che consente solo i file .cer, ho scoperto che è possibile caricare un file .cer dove alla fine del file, dopo „-----END CERTIFICATE-----„ è possibile aggiungere dati .

Significa che il contenuto del file non è stato verificato correttamente oppure è un comportamento standard? Quando aggiungo dati aggiuntivi prima di „-----END CERTIFICATE-----“ , c'è un errore e non riesco a caricare il file. Anche il caricamento di altri file come i file di immagine con estensione modificata in .cer non è possibile.

    
posta user187205 01.12.2017 - 11:43
fonte

1 risposta

1

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.

    
risposta data 02.12.2017 - 05:56
fonte

Leggi altre domande sui tag