Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - c# file configurazione criptato
Forum - C# / VB.NET - c# file configurazione criptato

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 11:33
Sabato, 12/08/2017
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

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 20:21
Sabato, 12/08/2017
Criptaggio o serializzazione


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 21:54
Sabato, 12/08/2017
Cifrazione è la risposta. Anche se sinceramente non credo tu riesca a costruire un sistema sicuro... Se lasci la pass all'applicazione qualcuno la leggerà....

PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 12:39
Lunedì, 14/08/2017
OK.
Non cerco un sistema sicurissimo.
Il mio intento è quello di studiare.

Come faccio a cifrare il file di configurazione?

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 13:30
Lunedì, 14/08/2017
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.

PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 17:02
Lunedì, 14/08/2017
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.


PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 19:16
Lunedì, 14/08/2017
Testo quotato

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.

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 3:31
Martedì, 15/08/2017
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 :)

PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 12:25
Mercoledì, 16/08/2017
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?

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo