Come evitare di condividere le chiavi private SSH via email

2

È possibile impedire la condivisione delle chiavi private SSH via e-mail (Outlook, in particolare), sia all'interno che all'esterno dell'organizzazione?

    
posta Alex Bramford 27.10.2017 - 22:51
fonte

3 risposte

5

TL; DR: usa le smart card.

Per evitare di distribuire la chiave ad altre persone è necessario impedire che l'utente abbia accesso in lettura alla chiave in primo luogo. La chiave è utilizzata in SSH per l'autenticazione. Il processo di autenticazione include operazioni crittografiche (firma) che devono avere accesso in lettura alla chiave. Per proteggere la chiave dell'utente dalla lettura da parte dell'utente, queste operazioni di crittografia devono essere separate dall'utente in modo che l'utente possa solo avviare le operazioni e ottenere il risultato. Questa separazione può essere eseguita ad esempio utilizzando un processo utente in esecuzione con autorizzazioni diverse o anche un processo eseguito su un hardware separato.

Un caso speciale di hardware separato sono le smart card, che sono essenzialmente minuscoli computer che eseguono un sistema operativo minimo con alcune memorie protette di chiavi crittografiche. Un utente può autenticare contro queste smart card tramite un PIN e quindi utilizzare la carta per esempio per firmare alcuni dati utilizzando le chiavi memorizzate sulla smart card. Questo è sufficiente per l'autenticazione, il che significa essenzialmente dimostrare che l'utente è quello che possiede la chiave privata per una chiave pubblica specifica.

Le smart card sono progettate per essere resistenti alla manomissione e non clonabili, il che significa che dovrebbe essere praticamente impossibile estrarre la chiave o creare un'altra smart card con la stessa chiave. Questo è vero anche di fronte a bug di progettazione come ne ha recentemente rilevato uno con i chip Infinion dove gli errori nel sistema operativo sulla scheda hanno portato alla generazione di deboli chiavi private (le chiavi create al di fuori della scheda e solo memorizzate sulla scheda non sono state interessate). Nota che le smart card proteggono solo contro la clonazione e la lettura e non proteggono completamente dalla condivisione della chiave: molti utenti potrebbero comunque condividere la stessa smart card e PIN, ma tutti dovrebbero avere accesso fisico a questa singola scheda che rende più difficile la condivisione.

Diverse implementazioni di SSH supportano l'autenticazione con smart card. I dettagli possono essere facilmente trovati utilizzando un motore di ricerca, ad es. cerca smartcard openssh o simile.

    
risposta data 28.10.2017 - 08:13
fonte
1

Risposta breve, no, non è possibile. L'utente ha bisogno del permesso di leggere la chiave per usarlo e, se può leggere la chiave, può copiarlo.

È possibile limitare l'accesso alla chiave, ad es. se risiede su una casella unix, non dare all'utente il permesso di leggere la chiave, ma consentire loro di eseguire ssh tramite sudo. Oppure utilizza una casella di scorrimento di mswindows bloccata con funzionalità dell'app remota per eseguire un client ssh (ma assicurati che il client ssh non possa esportare le chiavi).

C'è poco chilometraggio nel tentativo di rilevare / contenere l'e-mail quando la chiave è nel controllo dell'utente.

    
risposta data 28.10.2017 - 01:41
fonte
1

Le smart card sono solo una strada da percorrere. Un altro modo sarebbe utilizzare certificati effimeri a vita breve anziché chiavi statiche per l'autenticazione. Esistono numerose implementazioni open source sull'utilizzo di un'autorità di certificazione per SSH invece di chiavi statiche.

Uno di questi sistemi è chiamato Cassa> , attualmente gestito da un SRE di Intercom. Un altro che gestisce i certificati host e di utente finale è chiamato Teleport .

    
risposta data 12.01.2018 - 22:21
fonte

Leggi altre domande sui tag