Scadenza / applica la modifica della passphrase per le chiavi ssh private

7

Per curiosità, e anche per verificare se ciò è fattibile:

È possibile utilizzare strumenti standard per assegnare una data di scadenza [solo] alla passphrase di una chiave privata ssh, o per forzare la scadenza e la modifica della passphrase senza cambiare la chiave privata stessa? (Non sto parlando di script che controllano il tempo [a, c, m] della coppia di chiavi o qualcosa del genere ...)

O esiste una soluzione standard che ottenga un risultato simile, ovvero che imponga / assicuri una modifica regolare della passphrase per l'autenticazione basata su chiave?

Per favore non chiedere PERCHÉ voglio farlo, ma non esitare a commentare la sicurezza aggiunta / l'inconveniente / l'insicurezza che questo potrebbe fornire.

L'unica cosa liberamente correlata sembra essere l'intervallo di validità che può essere specificato durante la creazione della coppia di chiavi tramite ssh-keygen. Anche se l'ho capito correttamente, sarebbe scaduto il certificato di firma che è stato utilizzato per firmare la coppia di chiavi, quindi scaduto in modo efficace la chiave stessa.

    
posta doktor5000 07.09.2014 - 16:24
fonte

3 risposte

6

Risposta semplice, no. Le chiavi SSH sono semplici chiavi crittografiche, se si desidera aggiungere un periodo di validità, si finisce in territorio PKI.

C'è una risposta sul sito di Ubuntu Stack Exchange, che chiede come per far scadere automaticamente le chiavi SSH, ma con lo strumento ssh-agent .

In alternativa, puoi utilizzare un'app di terze parti installata sul tuo server per scadere automaticamente le chiavi SSH in base alle impostazioni personalizzate. Un bell'esempio è lo strumento SSHARK , che utilizza record DNS personalizzati per registrare la validità della chiave e utilizza la funzione command= nel authorized_keys file.

    
risposta data 18.03.2015 - 17:37
fonte
5

Tieni presente che non c'è nessun modo per dire dalla sola chiave pubblica se la chiave privata ha anche una passphrase ad essa associata, e non c'è modo di sapere quale sia la passphrase o quando era l'ultima è cambiata anche con l'accesso alla chiave privata (anche se una buona ipotesi può essere che se la chiave privata è stata riscritta per il suo ultimo timestamp modificato da quando è stata generata per la prima volta, è stato necessario modificare la passphrase sulla chiave).

Un approccio che non richiede l'accesso alle chiavi private potrebbe essere simile a questo:

  • richiede per policy l'utilizzo di uno strumento esterno per la distribuzione pubblica chiavi,
  • registra in quello strumento quando è stata inviata una chiave pubblica e
  • rimuove attivamente la chiave pubblica da tutti i sistemi alla data di scadenza o quando esplicitamente revocata.

Il repository centralizzato di chiavi pubbliche deve conservare le chiavi scadute per tutto il tempo necessario per impedire il riutilizzo, idealmente per sempre, ma sappiamo tutti come funziona.

    
risposta data 19.03.2015 - 23:21
fonte
2

Qualcosa che assomiglia a quello che vuoi è usare una CA utente SSH, che ti permette di impostare una durata sulla chiave firmata. Qualunque automazione tu metta in giro con la firma delle chiavi può rifiutare di firmare per più di 90 giorni. Quindi, aggiungi la chiave pubblica per la tua CA utente a TrustedUserCAKeys in / etc / ssh / sshd_config e imposta AuthorizedKeysFile su none.

L'intervallo di validità che menzioni fa parte del sistema CA SSH e AFAIK è applicabile solo in una CA SSH.

    
risposta data 18.09.2018 - 22:56
fonte

Leggi altre domande sui tag