Best practice per proteggere la coppia di chiavi SSH pubblica / privata nell'interfaccia web?

1

Ho un dilemma qui: sto lavorando su un sistema che si connetterà ai server linux remoti per il monitoraggio e l'automazione di alcuni processi. Poiché user + pass è insicuro per ovvi motivi e le coppie di chiavi pubbliche / private esistono per un motivo, il mio sito genera una coppia di chiavi e fornisce la chiave pubblica all'utente (per il caricamento sul proprio server) ma in caso l'utente dimentica la sua chiave pubblica mi piacerebbe dare loro un modo per recuperarlo.

Tuttavia, se crittografo la chiave pubblica con la password dell'utente, se un hacker entra nel database, anche se la password è hash, possono usare quell'hash per decifrare la chiave pubblica, quindi non avrebbe senso. Ho iniziato a pensare di usare OTP e chiedergli la fase di generazione delle chiavi e la fase di visualizzazione delle chiavi.

Che ne pensi? Questo metodo è sicuro? Ci sono modi migliori per garantire questo? In realtà, quello che mi piacerebbe ottenere è qualcosa come usare una password / chiave master per decrittografare quei dati, qualcosa che l'utente ha, ma allo stesso tempo posso usare per decrittografare i dati nel caso il mio sistema ne ha bisogno ... Ad esempio, per l'accesso devo confrontare la password in qualche modo, giusto? e per decrittografare la chiave pubblica per la visualizzazione devo farlo anch'io.

Qualsiasi suggerimento o idea sarebbe molto gradito, dato che ho passato circa due giorni a pensare completamente a questo problema, ma non ho trovato alcun modo per farlo senza l'hacker. So che tutto è hackerabile, ma non mi dispiacerebbe se fosse fatto in qualche modo che ci vorranno circa 10 GTX 1080 per decifrare le informazioni, che mi daranno abbastanza tempo per agire penso. Mi sbaglio?

    
posta Alemar 11.09.2018 - 22:07
fonte

1 risposta

1

Non hai bisogno di troppa protezione per la chiave pubblica. Dopo tutto è pubblico. Un attaccante non può fare molto male se mette le mani su una chiave pubblica.

Puoi semplicemente comprimere la chiave e archiviarla sul tuo filesystem o sul tuo database.

Ciò che devi proteggere è l'interfaccia per l'immissione delle chiavi. Se un utente malintenzionato può caricare la propria chiave nel profilo di qualsiasi utente, può accedere ai server a cui l'utente avrebbe accesso.

    
risposta data 11.09.2018 - 23:05
fonte