Confusione: perché l'autenticazione di due fattori chiave SSH crittografata non è un passphrase?

12

Sto cercando di capire le migliori pratiche per accedere al mio devbox da un terminale pubblico.

La maggior parte delle fonti che ho trovato consigliano di proteggere la scatola con una sorta di autenticazione a due fattori, come aggiungere un prefisso "command=" a authorized_key che impone l'inserimento di una sorta di password monouso.

La mia domanda è: perché è necessario? Supponiamo di avere una chiave SSH crittografata che si trova sulla chiavetta USB. Inserisco l'unità, inserisco la mia parafrasi e mi collego: per entrare nel mio sistema devi avere il file chiave e la frase-chiave.

Diciamo che c'è un keylogger nella casella pubblica. Ora un intruso ha la mia passphrase, ma la mia chiave non è mai stata copiata nel sistema locale.

Ora, ovviamente, una volta collegata la mia chiavetta USB, è possibile copiare la chiave, ma è davvero probabile? Quanti keylogger anche prelevano le chiavi SSH dalle unità USB? Quanti tipi di malintenzionati guardano i loro honeypot 24 ore su 24, 7 giorni su 7, in attesa di attività simili a una connessione SSH?

Per me sembra che una chiave crittografata con una frase passata sia due fattori. Qualcuno può spiegare come non lo è?

    
posta Tammer Ibrahim 21.08.2012 - 17:19
fonte

5 risposte

24

Una chiave crittografata con passphrase fornisce l'autenticazione a due fattori, ma solo se utilizzata correttamente. È facile per l'utente abusare della chiave, fornendo solo un singolo fattore, e il server non può rilevare un utilizzo errato. Quindi una chiave crittografata con passphrase non può essere considerata a due fattori senza ulteriori presupposti. Dal punto di vista del sistema nel suo insieme, la chiave crittografata con passphrase fornisce due fattori, ma dal punto di vista del server, esiste un solo fattore, che è la chiave privata.

La password è ciò che sai. Tuttavia, la password non è visibile al server. Il server non sa se hai usato una password debole o nessuna password. In ogni caso, digitando una password su una macchina che potrebbe essere in esecuzione un keylogger non è valido l'uso di una password per l'autenticazione.

Il file chiave è what-you-have, ma solo se non lo copi volenti o nolenti. A rigor di termini, è la chiavetta USB in cui è memorizzato il file chiave che è un fattore di autenticazione qualcosa-tu-hai. Il file chiave stesso smette di essere un fattore di autenticazione una volta che lo si consente di copiarlo dal bastone.

Nello scenario che descrivi, dove copi la chiave su una macchina che non controlli, non è un uso valido. Trasforma ciò che hai in ciò che ha anche l'attaccante. Se l'utente malintenzionato può installare un keylogger su quella macchina, può anche installare un programma che faccia una copia del contenuto di ogni supporto rimovibile inserito. Quello che hai deve essere legato ad un oggetto fisico reale che non è accessibile all'attaccante. Una chiave memorizzata sul tuo laptop o smartphone va bene. Una smartcard inserita in uno slot per smart card va bene (per l'uso normale della smartcard, in cui i segreti non lasciano la carta). Una penna USB inserita in una macchina pubblica non fornisce un fattore di autenticazione.

E sì, esiste un malware off-the-shelf che cattura il contenuto dei supporti rimovibili. A seconda di dove si collega, potrebbe essere più o meno comune dei keylogger (anche se mi aspetto che i due si incontrino spesso). L'autore dell'attacco che installa un imager del disco rimovibile potrebbe essere dopo i dati di autenticazione o eventualmente dopo altri documenti riservati. Esiste un mercato di rivendita per i segreti aziendali (documenti riservati, elenchi di contatti, ecc.) Che promuove questo tipo di malware e l'acquisizione dei dati di autenticazione è un vantaggio collaterale facile.

Con un utente che può inserire la sua chiavetta USB in una macchina pubblica e digitare lì la sua password, la chiave crittografata con passphrase fornisce zero fattori di autenticazione.

    
risposta data 21.08.2012 - 19:05
fonte
22

Il presupposto di sicurezza generale (*) è:

The attacker is smarter than you, he has a bigger computer, he knows your own software better than you, and he is after you, specifically.

Quindi si deve presumere che il keylogger monitorerà anche la sessione SSH e slurpà le chiavi dalle thumb drive. O, più appropriatamente, non puoi sapere quanto sei sicuro se la radice della sicurezza è un'affermazione del tipo "l'attaccante non ci penserà mai", perché tali affermazioni sono intrinsecamente non quantificabili.

La sicurezza extra fornita dalla password monouso si trova, precisamente, nell'attributo one-time . Nota che la sicurezza si basa qui sull'idea che l'attaccante potrebbe borseggiare e spiare tutti i tuoi dati, ma non trasformarli in un attacco attivo proprio sul posto (cioè dirottare il una connessione SSH che stai facendo, invece di prendere semplicemente i dati necessari per riconnetterti in seguito). Un vero seguace del GAS si rifiuterebbe di utilizzare un sistema pubblico, punto.

(*) Non cercarlo sotto quel nome, l'ho appena inventato. Il concetto generale di paranoia, tuttavia, è la base per la sicurezza.

    
risposta data 21.08.2012 - 17:40
fonte
5

Say there's a keylogger on the public box. Now an intruder has my passphrase, but my key was never copied to the local system.

Se si presume che un utente malintenzionato abbia compromesso un sistema per l'installazione di un keylogger, è inoltre necessario presumere che potrebbero eseguire altre operazioni sul sistema. I keyfile sono ancora considerati "fattori di conoscenza" come le password, perché possono essere copiati all'infinito.

Per essere multi-fattore, i meccanismi di autenticazione devono utilizzare i fattori di due diverse categorie:

  • Fattori di conoscenza: password, file di chiavi, altri dati o informazioni segrete
  • Fattori di possesso: token fisici, smart card
  • Fattori di adesione - dati biometrici
risposta data 21.08.2012 - 19:14
fonte
4

La prima domanda che hai posto è: quali sono le migliori pratiche? Le migliori pratiche sono, accedere tramite SSH utilizzando l'autenticazione della chiave privata. Inserisci una passphrase sulla tua chiave privata. Non copialo su macchine di cui non ti fidi. Configurare l'SSHD sul proprio server per consentire solo l'accesso tramite autenticazione a chiave privata (non tramite autenticazione tramite password). Sei bravo. Non hai bisogno di niente di più divertente.

La seconda domanda che hai posto è: è una passphrase crittografata con autenticazione a due fattori dell'autenticazione a chiave privata? Bene, altri hanno risposto bene a questa domanda. L'unica cosa che vorrei aggiungere è: ti farei notare l'attribuzione di proprietà magiche all'autenticazione a due fattori. Non c'è nulla di magico nell'autenticazione a due fattori che garantisce l'autenticazione a due fattori come sicura e l'autenticazione a un fattore garantita come non sicura. Quindi, chiedere se qualcosa conta come autenticazione a due fattori probabilmente non è la domanda giusta da porre. La domanda giusta è: il mio approccio è abbastanza sicuro per le mie esigenze? (Si potrebbe anche chiedere: perché l'autenticazione a due fattori è generalmente considerata più sicura, quali problemi risolve e quelli che si applicano alla mia situazione particolare?)

La risposta a queste domande è: nella maggior parte dei casi, l'autenticazione SSH a chiave privata con una chiave privata cifrata con passphrase è abbastanza buona. Se conta come fattore a due o a fattore è in un certo senso irrilevante.

    
risposta data 21.08.2012 - 21:24
fonte
3

Qui c'è una certa confusione terminologica ed è comune.

I sistemi multi-fattore più forti sono considerati forti perché richiedono più di un tipo di prova di identità (fattore), mentre la passphrase e la chiave dell'esempio possono entrambi essere classificati come "qualcosa che conosci" e sono dello stesso tipo.

I sistemi multi-fattore comuni usano qualcosa che conosci (passphrase o PIN) e qualcosa che hai (keyfob o dispositivo) e ci sono altre categorie usate come "qualcosa che sei" (usato in biometria) e "da qualche parte" ( geo-localizzazione) in sistemi ancora più complessi.

Una banca può richiedere un nome utente / password e un PIN per l'accesso online, ma questo di solito non è considerato due fattori in termini di resistenza agli attacchi.

Rif: link

    
risposta data 21.08.2012 - 17:35
fonte

Leggi altre domande sui tag