Condivisione delle chiavi RSA tra i protocolli PGP e SSH: questo rappresenta un rischio per la sicurezza?

4

Se creo una sottochiave PGP che ha solo la capacità di autenticazione e la utilizzo per generare una coppia di chiavi SSH per autenticare Git, ad esempio, questo rappresenta una minaccia per la sicurezza?

Quando lo faccio, dovrei usare la mia chiave privata PGP o la sottochiave di autenticazione pubblica?

Quindi quando aggiungo la mia chiave SSH privata protetta da passphrase (./ssh/id_rsa) usando il comando ssh-add, mi viene richiesta la mia passphrase. Ma poi, quando eseguo i commit successivi usando Git, non mi viene richiesto il passaggio per l'agente SSH. Perchè è questo?

Qual è la migliore pratica in merito? Devo tenere le mie chiavi separate?

    
posta matthiasdv 06.06.2015 - 21:22
fonte

2 risposte

3

Per quanto ne so, vuoi convertire una sottochiave di autenticazione in una chiave SSH e autenticarti usando questo.

If I generate a PGP subkey that only has the authentication capablity and use this to generate an SSH keypair to authenticate Git for example, does this pose a security threat?

Se questo è ragionevole o meno dipende da cosa stai cercando di ottenere. Le parti importanti di OpenPGP sono le sue funzionalità chiave e di gestione della fiducia. Quando si desidera utilizzare quelli per l'autenticazione tramite SSH (monkeysphere rende questo possibile, ma richiede qualche configurazione), si passa completamente la gestione delle chiavi da SSH a OpenPGP, rendendo molto più semplice l'aggiunta, lo scambio e la revoca delle chiavi. Se è così; vai per le sottochiavi di autenticazione, offrono un vantaggio reale!

Se non si desidera utilizzare quelle funzionalità estese (o potrebbero semplicemente utilizzarle in qualsiasi momento in futuro senza piani specifici), non farlo. Stai aggiungendo complessità (che è sempre una brutta cosa nella sicurezza delle informazioni) senza in realtà avere un vantaggio. Ad esempio, con GitHub non sarai in grado di utilizzare le funzionalità estese di monkeysphere - quindi meglio attaccare direttamente con una buona vecchia chiave SSH normale, dovrai comunque "revocarla" manualmente (ma rimuoverla dal GitHub pannello dell'account).

Generalmente, il riutilizzo dei segreti comporterà la caduta di più sistemi / servizi per una singola violazione in uno di essi, quindi generalmente farlo è una cattiva idea; ma i vantaggi nella gestione delle chiavi potrebbero valere il rischio leggermente più grande. Se non utilizzi le chiavi di autenticazione di OpenPGP altrimenti comunque, è nessun ulteriore rischio in una sottochiave di sola autenticazione utilizzata per SSH, perché non c'è altro servizio potrebbe essere usato per.

When I do, should I use my PGP private key, or the public authentification subkey?

Dovresti memorizzare la tua sottochiave di autenticazione pubblica sul sistema su cui desideri essere in grado di autenticarsi. La tua chiave privata rimane privata e viene utilizzata per rispondere a una richiesta inviata dal server di autenticazione.

Then when I add my passphrase-proteced private SSH key (./ssh/id_rsa) using te ssh-add command, I am prompted for my passphrase. But then when I make subsequent commits using Git, I am not prompted for my passphase by the SSH Agent. Why is this?

L'autenticazione tramite SSH e la firma con GnuPG non hanno nulla in comune. Non capisco la tua domanda; potresti voler essere più specifico su cosa richiede la tua password (e dove ti aspetteresti) e su come aggiungere la chiave OpenPGP allo ssh-agent.

    
risposta data 06.06.2015 - 21:55
fonte
5

Probabilmente il problema non è tanto la sicurezza algoritmica. Il problema è che se c'è un problema di sicurezza con una delle applicazioni si ha anche un problema di sicurezza con l'altra applicazione. Inoltre, potrebbe essere possibile che alcuni tipi di attacchi sul protocollo possano essere resi possibili perché le chiavi sono condivise. In altre parole, questa non è una buona idea per quanto riguarda la sicurezza del sistema.

Tutto sommato, dovresti provare a tenere le chiavi separate. Di solito viene utilizzata una chiave per una particolare applicazione. La condivisione di chiavi di crittografia e chiavi di autenticazione o di firma può portare ad attacchi all'algoritmo che altrimenti non sarebbero possibili.

Come per la tua domanda secondo , purché la sessione SSH sia autenticata, le chiavi non sono più necessarie.

    
risposta data 06.06.2015 - 21:33
fonte

Leggi altre domande sui tag