decrittazione automatica

4

Ho bisogno di memorizzare le credenziali sul mio server di root privato per eseguire alcune attività automatizzate come il trasferimento di file da server remoti via sftp ecc. Potrei usare lo scripting di shell o forse php per eseguire quelle attività automatizzate, attivate da un cron job.

Ora devo assicurarmi che nessuno che si intrometta nel mio server sia in grado di leggere le credenziali memorizzate. Il mio primo pensiero è stato semplicemente criptare i dati e decodificarli al volo quando è necessario. Ma poi avrò lo stesso problema con la chiave: deve essere memorizzato da qualche parte sul server. Quindi un invasore sarà in grado di trovare la chiave e usarlo per decrittografare le credenziali comunque.

Esiste un modello o una soluzione standard per questo tipo di problema?

    
posta AvL 01.10.2015 - 19:14
fonte

2 risposte

6

Quello che stai chiedendo è impossibile. Se il server è in grado di decrittografare i dati, può farlo anche un utente malintenzionato con accesso fisico al dispositivo. Prima di pensare a una cripto strong, pensa a una strong sicurezza fisica. Le società di hosting non sono ciò che definirei una strong sicurezza.

Se sei semplicemente preoccupato di difendersi da un accesso root dannoso, un HSM impedirà loro di rubare le chiavi per un successivo riutilizzo, ma saranno comunque in grado di usarle mentre hanno accesso al server.

    
risposta data 02.10.2015 - 06:29
fonte
0

Questa domanda ha molte risposte potenziali, che vanno da sciolte a un'estremità a paranoiche dall'altra.

Le due cose più importanti da considerare in quasi tutte le domande di implementazione relative alla sicurezza sono:

  1. Quanto sono importanti i dati che stai cercando di proteggere?
  2. Quanto è probabile che i tuoi attaccanti siano motivati?

In questo caso, se il tuo aggressore non è un individuo motivato e altamente competente, una soluzione ragionevole potrebbe essere:

  1. Cripta le credenziali di accesso che stai usando per SFTP (username + password) con una passphrase e memorizzale da qualche parte sul disco
  2. Piuttosto che usare cron, usa un tipo di demone a lunga esecuzione per eseguire le tue attività periodiche. Quando avvii per la prima volta questo processo, leggi le credenziali crittografate dal disco e inserisci la passphrase manualmente (in una shell)
  3. Le credenziali decrittografate rimarranno nella memoria del processo per tutta la sua durata (sarà necessario immettere nuovamente la password per le credenziali al riavvio del processo). Sebbene sia possibile, non è banale che un utente malintenzionato esegua il dump della memoria per l'intero processo e lo trascini fino a quando non trova le credenziali decrittografate.

Sebbene questa soluzione non sia impenetrabile, rende almeno abbastanza difficile che un utente malintenzionato che riesca a leggere file arbitrari dal disco non sia in grado di accedere a credenziali non crittografate e persino a qualcuno l'accesso completo al server avrebbe un ragionevole grado di difficoltà.

    
risposta data 02.10.2015 - 07:10
fonte

Leggi altre domande sui tag