Protezione della password nel codice

1

Sto scrivendo un programma in Processing (che è fondamentalmente java), che (tra le altre cose) scarica file da un server FTP. Per connettersi al server il programma ha bisogno della password FTP corretta, che è attualmente salvata come testo normale in una stringa nel codice sorgente. Il programma dovrebbe essere distribuito ad altre persone in seguito, quindi suppongo che questo non sia un modo molto sicuro per memorizzare la password. Quale sarebbe un buon modo per proteggere la password?

    
posta BigAl 19.08.2014 - 12:29
fonte

4 risposte

5

Penso che il tuo impegno sia stato interrotto dalla progettazione. Si desidera installare un programma sul computer di qualcuno che si connette a un server FTP tramite password, ma non si desidera che l'utente conosca la password. Qualunque cosa tu faccia per proteggerlo, l'utente può facilmente intercettare il traffico di rete proveniente dal programma. Ad esempio, l'utente può impostare un proxy e scaricare semplicemente tutto ciò che lo attraversa - la password sarà da qualche parte in questo dump. Crittografare la password da parte dell'utente e decodificarla sul server ritarderà il problema: l'utente invierà semplicemente la password crittografata.

Preferirei impostare un account FTP extra con una directory aggiuntiva solo per questo utente. Lì non può ferire nulla, perché tutto ciò che vede è generato dalle sue stesse azioni.

modifica È vero che con FTPS l'utente non sarebbe in grado di estrarre la password. Ma chi sta impostando la connessione crittografata in primo luogo? La macchina dell'utente. Quindi il certificato viene inviato al server FTP prima che venga eseguita la crittografia, che può essere intercettato nuovamente e utilizzato per decrittografare l'intera comunicazione.

    
risposta data 19.08.2014 - 15:26
fonte
0

Memorizza la password nel codice sorgente è l'approccio peggiore. Ma l'approccio corretto non è facile da definire e dipende dalle procedure scelte.

Un approccio migliore potrebbe essere:

  • Chiedi all'utente di inserire la password ogni volta (interfaccia console / interfaccia grafica)
  • Salva la password in un file di testo (proprietà), in questo caso altri utenti con le giuste autorizzazioni potrebbero leggere il file con la password cleartexr. È comunque possibile crittografare le password con una password principale e un codice crittografico come AES. In questo caso ogni volta che l'utente deve inserire la password principale ma è possibile proteggere più password con quella principale contemporaneamente.
risposta data 19.08.2014 - 12:44
fonte
0

Su quale piattaforma viene eseguito questo?

Idealmente, dovresti usare qualcosa come un archivio di password crittografato o un gestore di password che supporta API o utility da riga di comando.

Su Linux, io uso uno strumento chiamato 'pass' che usa la crittografia gpg per memorizzare le password.

Quando voglio usare una password dal mio archivio di password in uno dei miei script, semplicemente invio l'output a una variabile e assegna quella variabile come password.

Ecco alcuni documenti per il passaggio:

link

Uso anche Password Manager Pro da ManageEngine - hanno una ottima API SSL per il recupero delle password. XML-RPC è anche disponibile. Forniscono librerie java per farlo. PMP non è gratuito, ma è probabilmente uno dei migliori gestori di password che ho visto per il prezzo che paghi.

    
risposta data 19.08.2014 - 14:37
fonte
0

Non puoi.

FTP è un protocollo di testo normale. Indipendentemente da ciò che si fa per rallentare la retroingegnerizzazione della password dal codice del programma, un utente malintenzionato può sempre ottenere la password semplicemente usando uno sniffer di rete per vedere cosa sta mandando il programma sul filo.

Modifica: in risposta al tuo commento, FTPS è un po 'più difficile da rompere: un utente malintenzionato non può afferrare la password con uno sniffer di rete. La password deve ancora essere presente nella RAM ad un certo punto, in modo che l'utente malintenzionato possa cercarlo con un debugger, oppure possono ancora decodificare il programma per estrarre la password.

    
risposta data 19.08.2014 - 12:40
fonte

Leggi altre domande sui tag