SSH password vs. autenticazione chiave

22

In genere mi è stato detto che l'autenticazione della chiave pubblica è strongmente preferita all'autenticazione tramite password per SSH. Tuttavia il nostro amministratore precedente era contro le chiavi pubbliche e ha solo emesso password e si è preso cura di utilizzare password diverse per server diversi (password generate da pwgen, ragionevolmente difficili da applicare a forza bruta, ma garantite per essere scritte da l'utente). Quindi vorrei chiedere:

  1. L'uso della password ha più senso per l'amministrazione (non root con più o meno capacità sudo) per l'accesso alla shell completa. Dato che le password sono diverse in cui probabilmente la chiave non sarebbe e la password è usata per sudo.
  2. Era OK anche per account speciali per il caricamento di sftp (limitato a una directory specifica) in cui la password finisce in un file su un altro server, perché il caricamento deve essere automatico? La chiave pubblica verrebbe archiviata non crittografata sullo stesso server.
posta Jan Hudec 29.03.2013 - 15:46
fonte

5 risposte

20

È un po 'come questo ... Sono divorziato e ho una ex moglie al vetriolo. Ho anche tre grandi ragazzi, che come la maggior parte dei ragazzi possono essere smemorati, perdere le cose e che amano anche la loro mamma. Quando i miei ragazzi sono diventati abbastanza grandi da avere bisogno di una chiave per la mia casa, ho deciso di farlo: devo usare un lucchetto con chiave o uno di quei tasti numerici? Se uso il lucchetto a chiave, era certo che i miei figli avrebbero regolarmente perso le chiavi; Avrei ricevuto chiamate per tornare a casa dal lavoro per farli entrare; e c'era una grande possibilità che avrei dovuto sostituire il lucchetto o averlo riscritto di tanto in tanto perché il numero di "chiavi perse" (o probabilità che la mia ex moglie al vetriolo possedeva ora) ha raggiunto un limite scomodo. / p>

Sebbene non sia forse il più sicuro al mondo, con il blocco numerico non ho avuto dubbi sul fatto che le chiavi siano state perse; Potevo mandare i miei figli al combo dal lavoro (senza tornare a casa) quando se ne sono dimenticati; e potevo cambiarlo periodicamente quando sentivo che era compromesso. Potrei anche decidere quanto a lungo e / o complesso lo volevo. Se pensassi che il mio ex ce l'avesse, potrei cambiarlo anch'io. Molto più semplice e meno costo totale di proprietà.

Il blocco con chiave è come PK. Il blocco numerico è come le password. Alla fine, posso dirvi, sono molto più sicuro con il blocco numerico, perché scelgo il mio destino e posso farlo in modo dinamico come voglio. E ricorda, la realtà è che la porta è solo una delle vie di casa mia.

    
risposta data 29.03.2013 - 16:21
fonte
11

Nel caso dell'autenticazione della password, l'utente ricorda la password ed è responsabile di non rivelarlo a nessuno. Con l'autenticazione basata su chiave pubblica, l'utente ha la chiave privata da qualche parte, archiviata come un file .

Gli utenti preferiscono l'autenticazione basata su chiavi perché è più pratico da usare nella pratica (i client SSH useranno la chiave in modo trasparente, quindi questo è lo sforzo zero per l'utente umano). Tuttavia, l'autenticazione basata su chiave implica quanto segue:

  • L'utente stesso gestisce le chiavi e quali chiavi sono accettate o meno, inserendo le chiavi pubbliche nel suo file .ssh/authorized_keys .
  • La chiave privata è necessariamente memorizzata come file da qualche parte, forse (ma non necessariamente) protetta da una passphrase.
  • La scelta della passphrase locale (o la sua mancanza) è completamente fuori dalla portata del server sysadmin.

Alcuni amministratori di sistema preferiscono che gli utenti utilizzino l'autenticazione basata su chiavi perché non si fidano degli utenti umani per ricordare una password complessa; credono che la sicurezza di un file di chiavi private sarà più facile da mantenere da parte degli utenti medi rispetto alla generazione e all'utilizzo di una password complessa. La maggior parte degli amministratori di sistema, tuttavia, ritiene che i file di chiavi private siano una vulnerabilità evidente, mentre con le password hanno meccanismi di mitigazione: possono imporre "regole password" quando viene scelta la password e possono bloccare o reimpostare centralmente le password quando vogliono. E 'davvero un equilibrio tra quanto il sysadmin si fida degli utenti (confida nella loro competenza , non nella loro onestà ) e quanto sia un maniaco del controllo il sysadmin.

    
risposta data 29.03.2013 - 16:02
fonte
8

password

  • può essere facile da dimenticare.
  • può essere facile da indovinare / crack.
  • può avere diversi punti di contatto in termini di caratteri che puoi usare, lunghezza ...
  • sono molto spesso riutilizzati su diversi servizi.
  • hai sentito che il database di queste password è trapelato?

Challenge-Response

  • può comprendere qualsiasi ammontare di difficoltà (ad es. inserire 3 password di seguito)
  • può supportare password monouso (OTP - link )

Chiavi SSH (o token API)

  • non deve essere ricordato (memorizzato sul tuo computer).
  • sono più difficili da indovinare / crack (rispetto all'attacco del dizionario).
  • non deve essere condiviso su servizi diversi.

Asimmetria / forza della password.

  • La maggior parte delle soluzioni chiave pubbliche / private utilizza chiavi asimmetriche (non ho sentito altro ma non ci ha messo i miei soldi). Se la tua chiave pubblica è compromessa, ciò non autorizza l'utente malintenzionato ad accedere al sistema.
  • I database delle password devono avere la crittografia unidirezionale; e uno che è abbastanza strong o che spreca abbastanza cicli di calcolo da rendere difficile la forza bruta.

Reimposta il flusso di lavoro

L'utilizzo di password o chiavi ssh è irrilevante qui, a un certo punto un utente dimenticherà la propria password (ad esempio ha BLOC MAIUSC quando lo ha creato ...) o reinstallerà il proprio sistema (ad es. macchina del tempo / aggiornamenti .. .). Come gestisci queste situazioni? Dovrai modificare la password / il tasto (supponendo che il precedente sia stato compromesso) e comunicare in modo sicuro il nuovo all'utente.

Vedi la risposta accettata . Se tuo figlio sta cercando di entrare in casa tua. La sfida è che prima devi confermare che è tuo figlio (ad esempio sai che è il loro numero di telefono, riconosci la loro voce, questa è la parte challenge ). Il flusso di lavoro molto comune è generare una password temporanea / una password unica e far cambiare la password a tuo figlio. Ma potrebbe essere molto utile: dare loro una password unica e lasciare che caricino il loro nuovo token key / api ssh. Diamine, non puoi nemmeno preoccuparti di lasciare che cambino le loro credenziali e lasciarli in remoto se la tua tastiera / keylock è collegata.

Nota: nulla impedisce alla tua ex moglie di entrare in collusione con tuo figlio per ingannarti e accedere alla casa.

Qual è il migliore?

Dipende dal tuo caso d'uso e da perdite accettabili. Poiché entrambe le password / chiavi ssh / token API sono possedute da un utente, l'utente può condividerle. Se si supporta l'autenticazione della password e le password vengono filtrate, è possibile che alcuni utenti debbano modificare le proprie password su siti Web esterni solo perché riutilizzano le stesse password altrove. Se utilizzi le chiavi pubbliche / private, devi preoccuparti di meno.

Non devi scegliere l'uno o l'altro. Puoi usare entrambi! E.g. puoi avere sia un blocco tasti (la tua copia personale) sia un lucchetto numerico (ospiti).

    
risposta data 15.12.2014 - 00:20
fonte
5

Le password possono essere forzate brute. Indovinare una chiave pubblica è così essenzialmente impossibile che possono essere considerati perfettamente sicuri. Le password possono essere assegnate solo una per utente, mentre un singolo account utente può avere più chiavi installate. Se perdo il mio portatile, devo solo cancellare la voce per la chiave del mio portatile nel file authorised_keys e quell'account è ancora accessibile dagli altri dispositivi con le loro chiavi. Alle singole chiavi possono anche essere assegnate restrizioni di comando, consentendo una connessione automatica che esegue un comando specifico ma non una shell completa. L'unico modo in cui le password sono di qualsiasi beneficio è la condivisione dell'accesso a un account esistente senza accedere (per caricare la nuova chiave) e questo apre il buco di sicurezza di dover cambiare quella password se è necessario rimuovere quell'accesso dove una chiave è individuale.

    
risposta data 06.02.2014 - 17:31
fonte
3

Argomento interessante, per me la più sicura è la password, io uso 4 password diverse per cose diverse a seconda della sicurezza richiesta, ad esempio per un sito come questo userò qualcosa come (mexico1970) di cui non mi interessa se si rompe dato che ho appena postato sul sito e non ci sono informazioni sulla carta di credito o altre informazioni importanti da proteggere, allora avrò un'altra password per i problemi più importanti, diciamo per email qualcosa come (!! carmelita.99) poi ne avrò una per l'accesso utente del server (XrE.67-73up) poi un altro per l'accesso root e per materiale bancario, (!!. CeRto-49er) quindi mi assicuro di non scrivere queste password, le memorizzo, ogni volta che mi collego al mio server Mi assicuro che l'impronta digitale ssh sia già stata aggiunta ai miei host conosciuti, altrimenti potrebbe esserci un attacco MITM in corso, inoltre assicurati che il certificato TLS / SSL bancario sia valido e non condividi mai le password.

Quello che odio sono quei servizi che richiedono di impostare una password così imposibile da doverla scrivere, o altri che hanno politiche password dove devo usare una password diversa ogni mese e non posso usare le ultime 5 password usato, è semplicemente stupido, dato che non c'è sicurezza nella scrittura delle password, cambiare le password è qualcosa di buono ma non dovrebbe essere applicato, d'altra parte, i certificati sono inclini a perdersi o addirittura a compromessi, pensate di avere qualcuno con accesso al tuo computer possono installare keylogger o anche ottenere i certificati. quindi non c'è una cosa che ti manterrà al sicuro, ma i certificati di sicuro non sono più sicuri delle password. con i server ho una sensazione di sicurezza quando sono impostati più meccanismi, diciamo una VPN per accedere a una macchina da cui è possibile connettersi ai server tramite SSH, oscurità? forse, ma non sono mai stati violati.

Ciao, mi piace un sito dove posso pubblicare senza password.

    
risposta data 19.03.2015 - 02:47
fonte

Leggi altre domande sui tag