È ok avere certificati autofirmati nel controllo del codice sorgente?

7

Ho appena fatto la domanda

certificati autofirmati SSL in sviluppo vs cert acquisito in produzione?

a cui è stata prontamente risposto (GRAZIE!).

Al di fuori di questo, ho la seguente domanda:

  • È consentito avere i certificati autogenerati e autofirmati nel controllo del codice sorgente?

In genere so che le password, ecc. non dovrebbero essere nel controllo del codice sorgente. Ma visto che questi certificati sono usati solo per lo sviluppo e il test, ho pensato che non ci sarebbe stato un problema?

Il problema è che usiamo codeship per la distribuzione, e lì non posso eseguire script per copiare le cose intorno ... quindi l'unico modo Vedo che distribuire gli sviluppatori è averli nel controllo del codice sorgente (dovrò capire come farlo per la produzione, ma questo è un altro problema).

    
posta fablife 26.01.2016 - 23:36
fonte

3 risposte

10

I segreti - chiavi e password private allo stesso modo - non dovrebbero essere archiviati nel controllo del codice sorgente. Ove possibile, i certificati autofirmati dovrebbero essere sostituiti anche con certificati firmati a livello centrale.

Software come Vault facilitano la distribuzione dei segreti e, soprattutto, il loro rollover.

In questo modo puoi configurare le tue macchine di sviluppo con un livello di controllo e stare lontano dalla cattiva abitudine dei segreti nel controllo del codice sorgente perché anche se sono un certificato autofirmato, sono ancora una cattiva abitudine. Le cose che sono considerate di basso valore o sicure cose non importanti spesso diventano importanti in seguito e dimenticate.

Configuralo e rimani nel modo giusto.

    
risposta data 26.01.2016 - 23:47
fonte
2

Se stai parlando solo del certificato, non esiste alcun motivo crittografico per non metterlo sotto il controllo del codice sorgente, in quanto i certificati sono progettati per essere pubblici. Dovresti comunque assicurarti di non divulgare alcuna informazione proprietaria nei metadati del certificato, come i nomi X.509 di entità privilegiate.

Se si pensa di memorizzare anche la chiave segreta nel repository, è come memorizzare una password. Quindi, in effetti, hai creato un "account" condiviso tra tutti gli utenti che hanno accesso al repository o una copia funzionante, quindi si applicano tutti i problemi degli account condivisi. Le implicazioni sulla sicurezza dipendono da ciò che può fare il possessore della chiave segreta. Se quel certificato consente l'accesso in alcuni sistemi di produzione, sei condannato, mentre all'estremo opposto, se l'unico utilizzo per la chiave e il certificato è nel test del tuo prodotto, e non è accettato da nessun'altra parte, non viene fatto alcun danno. In quest'ultimo caso, potresti prendere in considerazione la possibilità di generare il certificato durante la prova al volo. Esistono punti validi sia per l'utilizzo di un certificato / chiave di test fisso che per la generazione in tempo reale, ma questa discussione non è più correlata alla sicurezza IT, ma al codice sorgente e alla gestione della build.

    
risposta data 27.01.2016 - 17:47
fonte
0

Parlando dall'esperienza, è normale avere certificati autofirmati per l'indirizzo della propria macchina locale per testare TLS / SSL prima di effettuare l'investimento di acquisto di un certificato. Dovrai inserire manualmente il certificato nel browser che utilizzerai per testare il sito web se stai parlando di una connessione al sito web.

Non vorrei ancora pubblicare la chiave privata del tuo server nel controllo del codice sorgente se è accessibile al pubblico, ma finché la chiave privata del certificato è diversa da quella che viene distribuita non vedo molti danni come generare nuovi autofirmati i certificati è una procedura semplice.

    
risposta data 26.01.2016 - 23:47
fonte

Leggi altre domande sui tag