Le migliori pratiche per proteggersi da un'app che copia le chiavi ssh private archiviate in ~ / .ssh?

2

Dato che qualsiasi applicazione in esecuzione come utente connesso avrà accesso in lettura alla cartella ~/.ssh di quell'utente, sembra banale che l'applicazione copi la chiave privata di quell'utente e la invii tramite la rete.

Il mantenimento delle chiavi SSH sotto ~/.ssh è considerato non sicuro per questo motivo? In tal caso, qual è il modo consigliato per gestire le chiavi SSH?

    
posta Amol D 26.08.2015 - 02:50
fonte

5 risposte

4

Come Naftuli Tzvi Kay ha dichiarato che una soluzione ben usurata sta usando un dispositivo hardware per gestire le tue chiavi. Alcune alternative per una soluzione software includono:

risposta data 26.08.2015 - 04:48
fonte
0

Memorizza le tue chiavi private su un dispositivo di sicurezza hardware .

    
risposta data 26.08.2015 - 04:00
fonte
0

Semplicemente non mantenere leggibili le tue chiavi private. Non tutto in ~/.ssh è chiave privata. authorized_keys e roba va bene leggere.

Inoltre, potresti trarre vantaggio da una sorta di monitoraggio della rete (magari persino un'analisi approfondita dei pacchetti, anche se probabilmente non è così efficiente) e / o auditing riguardo alle sessioni utente, così almeno puoi scoprire se inviano le chiavi alla nave madre puoi generarne di nuovi.

In alternativa, come indicato in precedenza, è possibile memorizzarlo su un dispositivo hardware, ma il mio problema è che potresti perdere il dispositivo.

    
risposta data 26.08.2015 - 02:56
fonte
0

Given that any application running as the logged in user will have read access to that user's ~/.ssh folder, it seems trivial for the application to copy that user's private key and send it over the network.

Sì, è corretto. Alcune protezioni per impedire l'ex-filtraggio della tua chiave privata sono:

  • Account ruolo : esegui qualsiasi programma non attendibile utilizzando un proprio account di ruolo. In questo modo un'applicazione non avrà permessi di lettura sulla tua chiave privata. Questo è il motivo per cui la maggior parte delle applicazioni server standard vengono eseguite con i propri account con ruolo limitato. Per esempio. nginx, mysql, apache, PassengerAgent funzionano come nginx, mysql, www-data, nessuno rispettivamente

  • Proteggi la tua chiave privata con una passphrase strong. In questo modo, anche se è compromesso, renderà difficile decodificarlo usando la forza bruta. Puoi utilizzare ssh-agent per evitare di inserire ogni volta la password.

  • Assicurati che le autorizzazioni sulla tua chiave privata siano impostate al 400% di-r--------.

Ci sono applicazioni che devono essere eseguite come utente (utente), ad es. applicazioni desktop come google chrome e media player. Assicurati di scaricare queste applicazioni da una fonte attendibile. Non installare programmi da fonti non attendibili o aggiungere ciecamente PPA al tuo catalogo software senza verifica dell'autenticità .

    
risposta data 26.08.2015 - 06:24
fonte
0

Oltre alle autorizzazioni sui file in ~ / .ssh, a seconda della piattaforma, è possibile monitorare qualsiasi accesso dei file all'interno della directory utilizzando auditd. Ciò ti consentirebbe di vedere chi / cosa sta accedendo a quei file in qualsiasi momento e ti avviserà di qualsiasi attività sconosciuta / sgradevole.

    
risposta data 26.08.2015 - 17:49
fonte

Leggi altre domande sui tag