fosforo (Normal User)
Expert
Messaggi: 391
Iscritto: 06/04/2009
|
Ciao
Ho fatto un programmino per la gestione dei file.
Il programma ha un file di testo come file di configurazione.
Al suo interno ci sono delle informazioni come User e Pass sensibili.
Come posso renderlo leggibile solo al programma?
Grazie
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
Criptaggio o serializzazione
|
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
Cifrazione è la risposta. Anche se sinceramente non credo tu riesca a costruire un sistema sicuro... Se lasci la pass all'applicazione qualcuno la leggerà....
|
|
fosforo (Normal User)
Expert
Messaggi: 391
Iscritto: 06/04/2009
|
OK.
Non cerco un sistema sicurissimo.
Il mio intento è quello di studiare.
Come faccio a cifrare il file di configurazione?
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Dipende se i dati sono utilizzati all'interno del programma da te sviluppato o meno.
Nel primo caso un servizio che richiede un autenticazione non dovrebbe mai poter recuperare i suddetti dati di accesso, nemmeno sotto richiesta esplicita dell'utente, le password andrebbero sempre sottoposte ad un processo di hash, cosi da non compromettere la password in caso di un accesso fraudolento al database.
Nel secondo caso come ti è già stato detto dipende dal grado di sicurezza che ti serve, in alcuni casi basta anche solo scrivere il file in binario e non come file testuale(come dice Thejuster). Se invece vuoi un sistema con una buona resistenza devi passare ad una cifratura piu ricercata ma in ogni caso un disassembly del tuo programma può svelare l'algoritmo di cifratura e la/e relativa/i chiave/i. Se vuoi un ottimo grado di sicurezza non ti rimane che lasciare all'utente l'ingrato compito di reinserire ogni volta la chiave di cifratura dei dati sensibili, cosi come viene fatto per le chiavi RSA.
|
|
fosforo (Normal User)
Expert
Messaggi: 391
Iscritto: 06/04/2009
|
Ciao Roby
In parole povere potrei prendere come esempio un normalissimo client FTP.
Vorrei creare un file dove mettere gli ultimi 10 siti utilizzati.
Chiaramente il più sicuro possibile.
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Postato originariamente da fosforo:
Chiaramente il più sicuro possibile.
|
Parti dal concetto che esistono due modi per decifrare delle informazioni, "rompere" la cifratura, avere a disposizione chiavi e algoritmo. Per il primo caso ci sono matematici che non fanno altro che sviluppare sistemi di cifratura sempre più difficili da bypassare, ne scegli uno e stai tranquillo che nessuno riuscirà mai a decifrare i tuoi dati sensibili senza le chiavi di cifratura. Il punto debole della tua applicazione sta nel secondo, se l'applicazione deve cifrare e decifrare dei dati localmente dovrà conoscere algoritmo e chiavi, che possono sempre essere ottenute dallo stesso applicativo con un po' di lavoro. L'importante è che tu abbia ben chiara questa limitazione. |
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
Credo che costruire una applicazione che tratti dati personali che vanno cifrati sia fuori dalla tua portata. Non lo dico per scoraggiarti, ma semplicemente per farti riflettere.
Ora partiamo dal fatto che tu vuoi maneggiare un agglomerato di dati contigui x. Ad esempio la stringa che contiene il vero nome di un utente.... Per poter manipolare queste informazioni devono essere presenti in memoria.
Quando qualcosa è presente in memoria con tecniche di debugging può essere trovata, e già questo è un enorme problema.
Ora, fingiamo tu abbia costruito un programma che non si può debuggare e la sua memoria non puoi essere letta: hai bisogno di un algoritmo per cifrare/decifrare le informazioni, e ti trovi davanti due opzioni: crittografia simmetrica e asimmetrica.
Nella crittografia simmetrica una chiave cifra e decifra. In questo caso se la chiave è all'interno dell'applicazione (eseguibile) può essere letta, se arriva da internet può essere spooferata. Se la chiave viene chiesta all'utente un keylogger può intercettarla.
Nella crittografia asimmetrica hai una coppia di chiavi: una cifra, l'altra decifra. Se ti viene rubata una chiave non potrai svolgere una delle due funzioni... Il punto è che SR la chiave privata tuo viene rubata l'attaccante può decifrare i file.
L'argomento è lungo e complesso, la cosa "più sicura possibile" non è alla tua (e credo nemmeno alla mia) portata.
Però puoi comunque usare la cifrazione per nascondere dati ad occhi curiosi ma inhenui, fare uso di software offuscatori sul prodotto finale, e tenere la chiave del file cifrata con una chiave secondaria
|
|
fosforo (Normal User)
Expert
Messaggi: 391
Iscritto: 06/04/2009
|
Capisco di essere entrato in un campo difficile.
Ma ad esempio, come fa un programma tipo FileZilla a mantenere i dati tipo
Indirizzo FTP, User e Pass con un minimo di sicurezza?
|
|