Ho questo problema:
- L'app della mia console deve connettersi a un server. Tuttavia, il server richiede password in testo normale per HTTP POST per l'accesso. La connessione è HTTPS.
- L'app viene chiamata solo di tanto in tanto, ma non viene eseguita in modo permanente.
Ora, non voglio che l'utente inserisca la sua password per ogni esecuzione dell'app. La mia idea era:
- Quando l'utente avvia l'app per la prima volta, all'utente viene chiesta una password. È in corso l'avvio di un nuovo deamon (ovvero un programma eseguito dall'utente, che può essere eseguito per più settimane) e la password immessa viene passata direttamente al demone.
- Per accedere alla homepage, l'app dice solo al demone "login". Il demone, che ha la password nella RAM, chiama wget per accedere al sito web [1].
La mia principale preoccupazione è che il demone abbia la password nella RAM. Quali pericoli potrebbero arrendersi da questo?
Vedo tre rischi:
- Qualcuno potrebbe accedere alla RAM. Probabilmente costringendo il computer a sostituirlo, quindi premendo il pulsante di accensione, e quindi esaminando il disco rigido. È possibile, ma probabilmente non è efficace.
- Il demone potrebbe usare i file temporanei per archiviare la memoria. Probabilmente è vero per bash? Tuttavia, se scriverò un programma in C, questo non dovrebbe essere possibile?
- Qualcuno potrebbe usare uno script che dice "Ciao deamone, sono wget / internet, dammi la password". Finché chiamerò "/ usr / bin / wget" e finché l'utente non è root, penso che non sarà possibile?
Altri problemi?
Note:
[1] wget ottiene la password tramite un file, quindi la password non si trova in ps
-table. Il file sarebbe costruito dal demone con diritti di lettura solo per l'utente, e sarebbe cancellato dopo il login.