Affidarsi all'elenco delle autorità di certificazione di openssl o fornire il mio

1

Le mie scuse se questo è troppo soggettivo, ma sto cercando consigli sulle migliori pratiche. Gestiamo un piccolo programma scritto in Python che funziona sui server dei nostri clienti e comunica con i nostri server. Stiamo usando il modulo ssl di Python che si basa su openssl per proteggere questa comunicazione sui nostri server. Questo programma è eseguito su sistemi Linux precedenti (si pensi a RHEL5) e su varianti di Windows. (Sì, il modulo ssl non viene fornito di default con Python 2.4, ma per favore ignora questo problema per il gusto di questa domanda.)

Il nostro piano è includere un file con il programma contenente l'autorità di certificazione che ha emesso il nostro attuale certificato SSL, così come alcune altre autorità che potremmo usare in futuro. In questo modo, sappiamo che a prescindere dai server del cliente, la nostra autorità di certificazione sarà affidabile.

È ragionevole o openssl fornisce un elenco abbastanza buono di autorità di certificazione anche per le vecchie versioni di openssl di cui non dovremmo aver bisogno di preoccuparci di ciò? Ci sono problemi che dovremmo prendere in considerazione anche per quanto riguarda la fornitura del nostro elenco di autorità di certificazione, oltre a bloccarci nell'elenco per futuri certificati SSL?

    
posta Steven 27.08.2014 - 23:33
fonte

2 risposte

3

OpenSSL non viene fornito con un elenco di agenzie di certificazione attendibili, ha solo un percorso predefinito in cui cerca tali CA. Su Linux e * BSD questo percorso è solitamente popolato dal sistema operativo, spesso basato sull'elenco degli usi di Mozilla nel browser Firefox.

Tuttavia, non esiste un elenco di questo tipo su Windows, poiché OpenSSL non può gestire il modo in cui Windows memorizza i certificati. Non c'è nemmeno una lista simile su OS X, ma Apple ha aggiunto un trucco a OpenSSL come spedito su Mac OS X per integrarsi in qualche modo nella loro catena di chiavi nativa.

Ciò significa che, se si desidera avere un comportamento controllato, è meglio spedire con il proprio elenco di CA attendibile. E se il programma dovrebbe connettersi solo al tuo server, potrebbe essere il migliore per includere solo le CA rilevanti per questa attività.

    
risposta data 28.08.2014 - 06:22
fonte
1

In genere è possibile affermare che il mantenimento dell'elenco CA del sistema operativo è responsabilità degli amministratori dei server client. Anche se non fosse per la tua applicazione, dovrebbero mantenere quella lista, a patto che ci siano applicazioni che si basano su di essa. Se hai requisiti speciali per la sicurezza della connessione https, puoi eseguire la tua CA e creare un sottodominio speciale sul tuo server per pubblicare un certificato firmato dalla tua CA.

Ogni CA aggiuntiva nell'elenco è un rischio per la sicurezza in più. Soprattutto quando l'elenco è mal gestito, eventi come il problema con la CA indiana passare inosservato.

Tuttavia, lascia sempre un'opzione per aggiungere certificati personalizzati sul lato client, in quanto alcune società hanno proxy che intercettano il traffico https in uscita, decrittografandolo e quindi ricodificandolo. Una CA personalizzata potrebbe essere un problema per questi proxy, quindi quando crei la CA, assicurati che solo le coperture il tuo dominio , in modo da convincere i tuoi clienti ad aggiungere la tua CA alle CA di fiducia del proxie.

    
risposta data 28.08.2014 - 06:36
fonte

Leggi altre domande sui tag