Domanda

Al momento sto lavorando su un progetto in cui ho creato un certificato CA e un paio di certs bambino a quella CA cert. I certificati stanno per essere utilizzato per proteggere le comunicazioni tra server in una configurazione SAMLV2 così ho intenzione di avere un cert per il provider di identità e un CERT per il fornitore del servizio. L'utente / browser non è intenzione di convalidare i certs quindi è solo i server che hanno bisogno di fiducia nel mio CA. personalizzato Il mio albero cert simile a questa:

  • CustomRootCACert
    • CustomIdentityProviderCert
    • CustomServiceProviderCert

Ora, ho sentito un sacco di gente dicendo che è male per utilizzare un certificato fatta in casa in produzione. Ma quando chiedo il motivo per cui, la gente di solito solo borbotta qualcosa riguardo la sicurezza, ma non vanno mai nei dettagli. Ci sono ragioni tecniche per non usare il mio certs in produzione? Non riesco a pensare di qualsiasi ... Naturalmente mi rendo conto che se perdo il controllo della mia radice cert chiunque potrebbe iniziare a creare tutti i tipi di certificati. Ma in questo caso avrebbero anche necessario installare i certificati sul mio server e configurare l'applicazione SAML di usarli. Solo allora potrebbe cominciano a generare richieste SAML falsi e le risposte alle mie applicazioni.

Se questo è l'unico problema, questa soluzione (usando certs fatti in casa in produzione) sarebbe ancora meglio che la messa a punto di accesso che abbiamo oggi.

È stato utile?

Soluzione

Chiedetevi che cosa un certificato di prova.

Se si ottiene un certificato rilasciato da una CA affidabile, allora si dimostra che il titolare del certificato ha verificato la propria identità a quella CA, ai loro standard di prova.

Se si ottiene un certificato rilasciato da una CA ad hoc, allora si dimostra che qualcuno sa come fare i certificati.

Se controlli entrambe le estremità della conversazione, penso che sia bene avere il proprio CA privata per lo scopo. Vi fidereste la propria CA. Probabilmente si può fare questo molto sicuro in effetti (tenendo la chiave privata CA in un luogo in linea di sicurezza, e fare la firma di un esercizio sneakernet).

La difficoltà sarebbe se si ha bisogno di convincere nessuno a fidarsi di CA. Perché dovrebbero? Si avrebbe bisogno di convincerli che era sicuro di farlo, e che avrebbe l'overhead di amministrazione di aggiungere il certificato CA ai propri clienti.

Altri suggerimenti

Dal momento che si sta utilizzando solo il certificato per proteggere il traffico di rete e non autenticare gli utenti / computer allora suona come si dispone di un uso legittimo per l'utilizzo di MakeCert.exe.

mi sembra che ci sia una cosa vale la pena menzionare. Dopo aver trascorrere del tempo a lavorare con l'interfaccia MakeCert.exe si potrebbe considerare l'utilizzo di un server Root Certificate Stand-Alone, invece.

Prendere in considerazione questi punti:

  • (quasi) tutte le versioni di Windows Server sono servizi di Certificate Server gratis
  • di Windows CA autonoma Server è estremamente semplice da installare e configurare
  • di Windows Stand-Alone CA Server può essere installato su una macchina virtuale e acceso / spento ogni volta che è necessario rilasciare un certificato aggiuntivo
  • un Windows Based VM CA autonoma Server può essere eseguito utilizzando poca memoria (es. 256)
  • di Windows Stand-Alone CA Server include una bella e pulita interfaccia di iscrizione basata sul Web per semplificare la richiesta di certificati.
  • controllo CRL può essere utilizzato o non utilizzato, a seconda delle esigenze.

In passato ho iniziato con SelfSSL.exe e, infine, si trasferisce a MakeCert.exe per generare un certificato di origine e poi rilasciato i miei certificati client. Ma dopo aver lottato con la sintassi e sempre dover ricordare dove ho messo che Root Certificate sono passato ad usare un autonomo CA principale in una macchina virtuale.

Se i certificati sono passati soltanto intorno internamente, tra i propri server (e non utilizzati dal cliente, in un modo o l'altro) - allora è perfettamente accettabile utilizzare il proprio interno CA.
TUTTAVIA, un suggerimento - non hanno il tuo Root CA la vostra certs provider. Invece, utilizzare il Root CA per creare una CA Intermedio - quindi utilizzare tale a rilasciare certificati provider. Questo vi aiuterà a più lungo termine, quando si deve iniziare a gestire scadenza del certificato, l'estensione delle liste di sistema / infrastrutture, revoca, ecc.

Non v'è alcun vero problema con l'utilizzo di un certificato firmato di auto in uso privato, cioè l'uso, quando è possibile controllare tutti i sistemi che hanno bisogno di fidarsi del certificato principale homebrew.

È possibile installare manualmente il CERT della radice su ciascuno dei sistemi che hanno bisogno di fidarsi di esso.

Si può fare questo nella produzione, nonché per l'utilizzo del browser - per esempio all'interno di un'organizzazione in cui la CA principale può essere implementato tramite il metodo distrubuzione software - non v'è alcun motivo per andare a scapito di pagare un Certificate Authority che Microsoft accade a fidarsi.

[modifica] In termini di secruity la questione è una delle contenente la chiave privata per il certificato principale, fino a quando è possibile garantire che rimane privato, è possibile convalidare qualsiasi certificato fuori quella radice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top