Protezione delle credenziali di connessione su un server web

2

Sono in procinto di creare una piccola piattaforma blog e ho riscontrato un argomento piuttosto controverso di archiviazione di stringhe di connessione su un DB in modo sicuro su un host. Ecco una domanda di riferimento: Come crittografare il database credenziali di connessione su un server web? .

Alla mia domanda: ho pensato di archiviare le credenziali nel file gpg-encrypted da qualche parte nella cartella /etc dell'host di Ubuntu 14.04. Ogni volta che il server viene avviato, viene richiesto a un sysadmin (me) di decrittografare un file e quindi è necessario un servizio che venga eseguito in background in attesa di un back-end del sito per interrogarlo per una stringa di connessione. Quindi restituirebbe tutto il necessario per le informazioni sulla connessione DB e il back-end procederebbe con l'interrogazione di un DB stesso.

IMO con questo approccio l'unico posto in cui è memorizzata una password sul server attivo è la RAM. Ogni volta che il server si arresta in modo anomalo a causa di attacchi o attacchi malintenzionati riusciti a eseguire il dump della web root, non è ancora possibile ottenere la password poiché il servizio di concessione della password funziona a livello di sistema.

È un buon piano di sicurezza? Quali alternative proporresti (Python Flask, MySQL e peewee)? Inoltre, se la mia idea non è così negativa, come posso implementare quel "servizio" per l'esecuzione in background e attendere una richiesta di credenziali (preferibilmente una sorta di script bash)?

Grazie in anticipo!

    
posta ddnomad 11.02.2017 - 19:45
fonte

1 risposta

2

Is it a good security scheme?

Sì, è ragionevole. Di solito le persone non lo fanno perché vogliono sistemi automatizzati e il tempo di inattività causato dalla necessità di inserire manualmente una password ogni volta che l'app viene riavviata va oltre ciò che considererebbero accettabile.

What alternatives would you propose (Python Flask, MySQL and peewee)?

Sostanzialmente tutte le cose menzionate in la domanda che hai collegato a . Personalmente, sono un fan di Vault , che è un server HTTP separato che memorizza i tuoi segreti. Non è affatto una soluzione perfetta: devi ancora autenticarti a it , il che significa praticamente che ti ritroverai con un token di sessione temporaneo che archivierai in chiaro sul tuo server.

Also if my idea is not that bad how can I implement that "service" to run in a background and wait for a credentials query (preferably some kind of a bash script)?

Con la programmazione? Probabilmente vorrai farlo nel codice dell'applicazione come parte del processo di avvio.

    
risposta data 11.02.2017 - 20:39
fonte

Leggi altre domande sui tag