2012-06-04 14 views
5

Ho appena iniziato a utilizzare le chiavi RSA nel mio lavoro quotidiano e ho alcune domande relative ai modi migliori per utilizzarle.Best practice per chiavi private personali

La domanda più grande ruota attorno all'idea di più client e più server. Ecco uno scenario:

Ho due computer client:

  1. desktop
  2. Laptop

E ci sono due server che sarò l'autenticazione:

  1. mia server locale
  2. Servizio remoto (ad es. Git hub)

Quindi, in generale, quante coppie di chiavi consiglieresti in questa situazione?

  • Una coppia di chiavi: questa chiave è "Io" e io la uso ovunque.
  • Uno per client: questa chiave è "Questo client" e la inserisco su ciascun server con cui intendo connettermi da quel client.
  • Una coppia di chiavi per server: questa è la chiave "per questo servizio" e porto la chiave privata a ciascun client da cui desidero connettermi.
  • Uno per ogni combinazione: ogni abbinamento client-server unico ha una propria coppia di chiavi.

Se nessuno di questi è significativamente superiore o peggio a qualsiasi altro, è possibile delineare i pro ei contro di ogni modo che una persona poteva scegliere per se stessi?

risposta

2

Dei tuoi quattro opzioni, i due mi piacciono sono:

  • Uno per client: Questa chiave è "Questo client" e ho messo su ciascun server intendo per connettersi a da quel cliente.

    Questo ti dà la possibilità di revocare tutte le chiavi per un client specifico nel caso in cui venga compromessa. Elimina la chiave su ogni servizio. Inoltre, si adatta linearmente solo al numero di client, il che probabilmente renderà più semplice la gestione delle chiavi. Si adatta perfettamente anche al modello di chiavi OpenSSH, che consiste nel fornire a ogni client una chiave utilizzata su più server. (È possibile fare altri modelli con OpenSSH, che è bello, ma questa è la cosa più facile da fare come accade senza alcuno sforzo da parte vostra..)

  • Uno per ogni combinazione: Ogni accoppiamento client-server unico ha una sua coppia di chiavi.

    Questo ha lo svantaggio di costringervi a revocare più chiavi quando un singolo client è compromesso, ma sarà comunque una chiave per servizio, quindi non è significativamente peggiore. Il vantaggio migliore è che sarà significativamente più difficile per un servizio servire da intermediario tra te e un altro servizio. Questa non è una preoccupazione reale per la maggior parte del tempo, ma se la tua chiave (laptop, server, SMTP) fosse improvvisamente utilizzata per (laptop, server, SSH), avresti qualche possibilità di notare la stranezza. Non sono sicuro che questa capacità valga il quadratico aumento delle chiavi da gestire.

2

Il modo normale per farlo è l'opzione "Uno per cliente". In questo modo, in caso di chiave del client compromessa, è possibile revocare solo quella chiave dai server in cui è consentita. Se vuoi un lavoro extra, puoi fare "Uno per ogni combinazione".

Le opzioni di cui sopra evitano di copiare i dati delle chiavi private tra gli host.