In pratica, quando vengono utilizzate buone politiche relative alle password, quanto viene ricavato dalle chiavi SSH? [duplicare]

4

Background: utilizzo i miei server per uso personale, ho il controllo completo su tutte le password utilizzate e per il prossimo futuro le cose rimarranno in questo modo.

Capisco gli argomenti per cui le chiavi SSH sono un'opzione più strong, in particolare che l'entropia è molto più grande e la bruteforcing è effettivamente impossibile. Ovviamente, anche con una buona password, l'entropia sarà inferiore.

La mia domanda è questa: se si usa una buona password e tutte le altre pratiche di sicurezza sono uguali, un server amministrato da una singola persona guadagna molto praticamente passando alle chiavi SSH? cioè, l'aumento di entropia influisce sulla probabilità di successo di un attacco in modo significativo? Ci sono dei fattori che non ho considerato qui, che darebbero una preferenza per un metodo rispetto all'altro?

Per chiarire, chiedo in termini di minacce comuni che un server web relativamente piccolo senza informazioni finanziarie o personali interessanti potrebbe essere affrontato, meno di un attacco motivato e mirato.

    
posta Davis 23.06.2017 - 21:26
fonte

3 risposte

4

Potrebbe essere utile pensare all'autenticazione di SSH in stadi e livelli.

Il primo stadio (la costruzione del primo strato) prevede la creazione di un canale di crittografia simmetrico. Questo viene fatto usando qualcosa chiamato Diffie-Hellman ( spiegazione qui .) Una volta che il canale crittografato è formato autenticazione avvia.

Autenticazione password

In un esempio di password tradizionale, la password viene quindi passata al server tramite questo canale crittografato.

Il rischio qui è che la password è reversibile se si ha conoscenza della chiave simmetrica che è stata negoziata. Inoltre, la password deve esistere in alcuni stati su entrambi i sistemi.

Autenticazione chiave

Nel modello chiave, è più complicato ma al centro utilizza le proprietà crypto asimmetriche: il server crittografa un nonce con il componente chiave pubblica, e poiché il client deve avere la chiave privata può decrittografare il nonce e rimandare indietro md5hash al server per verificare la sua identità. ( Digital Ocean ha una buona spiegazione .)

Tl; DR: nel caso della password, entrambi i lati devono avere conoscenza della password. Questo ti porta ad aprire un attacco stile di perdita / riutilizzo sulla password.

Nel caso della chiave, è richiesta solo la chiave pubblica per verificare l'utente. La chiave privata rimane privata e deve solo esistere sul lato client. Puoi condividere la chiave pubblica con tutti i servizi che desideri e non modificare il rischio associato all'utilizzo della coppia di chiavi.

    
risposta data 23.06.2017 - 21:56
fonte
1

My question is this: If a good password is used, and all other security practices held equal, does a server administered by a single person gain much practically by switching to SSH keys?

Il problema con questa domanda è che è basato sulla premessa di persone che usano buone password, qualcosa che le persone, nella pratica, non fanno. Ci stai chiedendo di trarre una conclusione "pratica" da una premessa teorica che non regge in pratica.

In entrambi i casi, ritengo che il più grande rischio sia che un utente malintenzionato possa ottenere il segreto di un utente e utilizzarlo per l'autenticazione come tale utente. Con l'autenticazione basata su password potrebbero:

  • Indirizza i tuoi utenti a un attacco di phishing. Come ha dimostrato il 2016, questo può avere molto successo.
  • Ruba il tuo database delle password e decifra le voci per trovare password deboli.
  • Indirizza i tuoi utenti a rubare le loro password su altri servizi, nella speranza che alcuni di essi riutilizzino quelle password nel tuo sistema.

Con l'autenticazione basata su chiave (come di solito praticata, con le chiavi memorizzate sui PC degli utenti con passphrase debole o assente), i modi in cui un utente malintenzionato può ottenere le chiavi degli utenti è hackerando nel loro computer che memorizza la chiave privata . Questo potrebbe essere ottenuto bersagliando i tuoi utenti con malware, che è un altro attacco realistico.

Se sei veramente serio riguardo alla sicurezza dell'autenticazione SSH, devi guardare non solo all'utilizzo delle chiavi private, ma anche a come memorizzarle in modo sicuro in modo che gli attaccanti non possano facilmente rubarle da i tuoi utenti. Le smartcard sono la soluzione classica qui; un dispositivo hardware dedicato che genera internamente una coppia di chiavi e promette di non rivelare mai la chiave privata; il client SSH deve inoltrare la richiesta di autenticazione affinché la smartcard firmi.

Una variante più recente consiste nell'utilizzare un'applicazione per smartphone per generare e archiviare i tasti SSH sul telefono e un client SSH che inoltra richieste di autorizzazione al telefono, in modo che possa autenticare l'utente senza rivelare la chiave privata. Non ho alcuna connessione con la compagnia, ma ho utilizzato la versione gratuita di Kryptonite di recente e, sebbene sia uno strumento giovane, si sta dimostrando abbastanza bene .

    
risposta data 23.06.2017 - 23:52
fonte
1

Le chiavi sono immuni agli attacchi dell'uomo nel mezzo poiché la chiave privata non viene mai trasmessa.

Le password non sono realisticamente, non importa quanto siano buone. Se si utilizza una password, esistono metodi di cracking molto più semplici rispetto alla forzatura bruta, quindi la qualità della password è probabilmente priva di significato.

vedi anche È più sicuro per i client SSH utilizzare una chiave privata (RSA-2048) o una password casuale lunga (256 bit di entropia)?

    
risposta data 24.06.2017 - 03:14
fonte

Leggi altre domande sui tag