SSH authentication chiave pubblica – sempre richiedono agli utenti di generare il proprio keypair?

Ho lavorato con un partner di oggi che avevo bisogno di caricare i file sul mio server utilizzando scp . Ho le password distriggerste nella configuration SSH del server, quindi ho voluto che utilizzassero l'authentication della chiave pubblica. Ho generato la coppia di chiavi per loro sul server e ho dato loro la chiave privata e metto la chiave pubblica nel file appropriato_auth_key.

Dopo un certo numero di problemi con loro creando il loro lavoro, hanno finalmente ottenuto un sysadmin più esperto coinvolto alla loro fine, e mi rimproverò di gestire la generazione di chiave in questo modo. Ha detto che dando loro una chiave privata generata sul mio sistema, avevo permesso loro di fare un attacco di bruto-forza contro altre chiavi generate sullo stesso server.

  • Come posso impostare un login .pem per i miei server?
  • La connessione di inoltro della port tunnel ssh non riesce
  • Gestore tunnel di Windows SSH
  • Porta ssh non standard: dovrei modificare / etc / services?
  • rsync over ssh non funziona più, mentre ssh sta funzionando bene (Write failed: pipe broken)
  • Accesso SFTP Restricted con il nuovo utente Sud Roo
  • Ho anche chiesto a lui "quindi se ho un account su un server e posso accedere con una password, ma voglio automatizzare qualcosa e genero un keypair su quel sistema, allora mi dà un vector d'attacco per il bruto forzando altri chiavi degli utenti? " e ha detto .

    Non ho mai sentito parlare di questo, vero? Qualcuno può dirmi una discussione di questo attacco?

    4 Solutions collect form web for “SSH authentication chiave pubblica – sempre richiedono agli utenti di generare il proprio keypair?”

    Beh … no, questo non è corretto nella grande maggioranza delle circostanze a causa della generazione di random adeguata su un sistema. Tuttavia, è teoricamente ansible per un server generare casualità che abbia un pregiudizio se la cura non viene presa dagli sviluppatori (nel caso di Linux, gli sviluppatori del kernel) per assicurare che la sorgente di casualità sia "buona". Se esiste una polarizzazione nella casualità, un attacco potrebbe essere eseguito in tempi più veloci rispetto ai tempi del server. Tuttavia, questo è molto più di una questione teorica che di una realtà reale – in pratica, la debolezza del RNG (generatore di numbers casuali) è un attacco molto less probabile di un attacco di canali laterali sul software crittografico o di accesso al server modi diversi.

    Quindi, una lunga storia breve, no, non è corretto. Oltre ai fondamenti crittografici fondamentali (sono chiavi DSA generate per impostazione predefinita? RSA?), Un tasto ssh non contiene alcuna informazione su qualsiasi altro codice ssh generato sullo stesso sistema.

    Il punto principale di una chiave privata è che è riservato all'utente e noto solo all'utente. Come utente non vorrei che altre persone generassero la mia chiave privata perché ciò significa che qualcun altro ha accesso alla mia chiave privata e pertanto ha l'opportunità di agire se sono me nei sisthemes che hanno la metà pubblica di quella chiave impostata come credenziali valide.

    Dalla tua PoV hai anche più responsabilità. Non solo è necessario mantenere il sistema sicuro in modo che le chiavi pubbliche inadeguate non possano essere installate in luoghi, ma è responsabilità di mantenere sicuri i chiavi privati ​​generati per tutto il ciclo di vita. Se un'azione indesiderata viene eseguita con una data coppia di chiavi come authentication e l'utente sa che qualcun altro ha (o ha avuto) una copia della chiave o che la chiave è stata trasportta in modo less sicuro, allora possono ruotare (giustamente o erroneamente) e dire che hanno mantenuto la loro copia perfettamente sicura in modo che deve essere la tua copia che è stata compromise sia a tua fine o in transito. Questo potrebbe sembrare solo come copertura del culo, e questo è perché è: sia dal tuo PoV che dagli utenti, mentre stai assicurando chi è responsabile di ciò che è correttamente contrassegnato.

    Quindi se le preoccupazioni sollevate dal tuo esperto sono o non sono valide o non (per la mia comprensione tali attacchi sono teoricamente possibili, ma alla mia conoscenza lontano da pratica implementabile nella prossima generazione o poche a less che un nuovo serio buco nella math o nell'attuazione generale è (che è un po 'improbabile)), sia quando indosso il mio cappello e quando indosso il mio cappello di amministrazione preferisco che gli utenti siano in pieno controllo dei loro chiavi privati ​​e degli amministratori (insieme a tutti gli altri del pianeta, ovviamente) consentiti ovunque.

    Anche se non siete d'accordo con quanto sopra, il problema di trasporto chiave è tutt'altro che banale: come puoi essere al 100% sicuro che la chiave privata sia stata vista dall'utente previsto e solo l'utente previsto e non è stato memorizzato (intenzionalmente o accidentalmente) in maniera less sicura (come lasciata in una cassetta postale di posta elettronica o un file temporaneo che risultasse essere staccata da tale posta e non crittografata). Se utilizzi un metodo di trasporto sicuro che richiede l'authentication dell'utente, come ottieni i dati di authentication per quel sistema all'utente in modo sicuro? Naturalmente ci sono modi per rendere il trasporto chiave "sufficientemente sicuro" (where "abbastanza" dipende molto da ciò che le chiavi danno accesso alle persone) per la maggior parte degli usi, ma se l'utente genera le chiavi e distribuisce le parti pubbliche non avere una questione di distribuzione chiave da preoccuparsi in questo senso (ti basterà solo preoccuparsi degli utenti che mantengano le parti private, ma non c'è niente che possa impedire a un utente veramente sconsiderato di essere insicuro, quindi è un problema non import quello che fai).

    Una nota finale: una cosa che potrebbe essere un problema se le tue chiavi private vengono generate nello stesso posto è se in quel momento è stato trovato che ha avuto un'iniziativa di generazione di chiavi male, come il problema trovato nel pacchetto OpenSSL Debian / Lenny lo scorso anno . In tal caso avresti un lavoro di lavoro che revoca e rigenera un sacco di chiavi private. Questo potrebbe essere parte della tua preoccupazione dell'esperto esterno sulla questione.

    Sono abbastanza sicuro che questo sia BS. Privato dovrebbe essere generato a caso. Finché non ci sono bias in questa casualità, non ci può essere una connessione tra le chiavi private differenti.

    Il seme random viene tipicamente da / dev / random . A less che tu non abbia in qualche modo cambiato ssh-keygen per usare un altro seme random (sapresti se lo hai fatto), è altamente improbabile che qualcuno potrebbe battere contro quella chiave per capire come generare una nuova chiave per rompere il tuo sistema.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.