Come memorizzare i dati sensibili

0

Ho creato un programma che contiene dati sensibili inseriti in esso. Immaginiamo che i dati sensitivi siano la password per la mia cassastrong a casa.

Mi sono reso conto che è poco sicuro avere i dati codificati nel codice sorgente dell'applicazione. Se qualcuno fosse in grado di entrare nel mio sistema, potrebbe usare un editor / debugger esadecimale per trovare quella stringa. Così mi è venuta l'idea di creare un file sull'harddrive contenente la password, crittografarlo con un strong algoritmo e quindi lasciare che il programma chieda la chiave all'avvio. Se viene inserita la chiave corretta, l'applicazione sarà in grado di analizzare il contenuto. Se viene immessa una chiave errata, l'applicazione analizzerà i dati inutili e si bloccherà, ma l'utente malintenzionato non potrà ottenere la password. Per essere sicuro che nessun altro possa impossessarsi di quella chiave, stamperei su un pezzo di carta e lo conserverei a casa. Il mio problema principale è:

Voglio utilizzare un algoritmo sicuro per la crittografia e allo stesso tempo avere una chiave relativamente piccola. Gli algoithmi che ho visto finora ( RSA, AES ) usano i tasti lunghi che non voglio digitare ogni volta che avvio l'applicazione. C'è un algoritmo che si adatta alle mie esigenze, o forse un altro "piano" che è sicuro come l'idea che ho avuto?

PS: So che quando l'applicazione ha caricato la password in memoria dopo un avvio riuscito, un utente malintenzionato potrebbe impossessarsene. Ma questo è un altro argomento per un altro giorno.

    
posta thesys 14.03.2017 - 22:12
fonte

1 risposta

1

Dato che hai menzionato nei commenti che questa è una macchina Linux remota accessibile su Internet. Vorrei configurare SSH con autenticazione a 2 fattori.

Esempio di SSH-2FA: collegamento

Inoltre, hai detto che è per uso personale, quindi se sono stati in grado di accedere alla macchina in primo luogo, come hai detto, sarebbero in grado di decodificare il tuo programma anche con l'approccio della password, dal momento che hanno accesso alla tua macchina, possono semplicemente installare una sorta di software di monitoraggio / keylogger e acquisire la password.

Come accennato da dandavis, è possibile utilizzare PBKDF2:

"PBKDF2 applica una funzione pseudocasuale, come il codice di autenticazione dei messaggi basato su hash (HMAC), alla password o passphrase di input insieme a un valore salt e ripete il processo molte volte per produrre una chiave derivata, che può quindi essere utilizzata come chiave crittografica nelle operazioni successive: il lavoro di computazione aggiunto rende molto più difficile il crack delle password, ed è noto come estensione chiave ". Fonte: link

Ma nel complesso, dal momento che è in esecuzione solo sulla tua macchina personale, mi concentrerei sulla messa in sicurezza della macchina stessa, quindi mi preoccupo dell'applicazione. Installare alcune regole di firewall e SSH con 2FA sarebbero i miei suggerimenti.

    
risposta data 14.03.2017 - 22:29
fonte

Leggi altre domande sui tag