Memorizzazione di dati "sensibili" nel file delle impostazioni

2

Sto scrivendo una piccola utility in AutoIt che si connette a Twitter. Vorrei memorizzare nome utente e password nel file di impostazione dei programmi, ma so che è necessario crittografarlo ovviamente. Precedentemente, quando l'ho fatto per uso personale, ho appena adottato un formato ini - scritto in un file temporaneo e poi crittografato usando una password ridicolmente lunga e una crittografia AES a 256 bit, semplicemente chiamando il file "settings.eini" .

Tuttavia, offrirò questa utilità al pubblico. Non mi aspetto che una grande quantità di persone lo usino o che diventi un bersaglio, ma ho pensato che fosse meglio non rischiare. Ho letto sulla creazione di estensioni di file personalizzate e mi sembra una cosa che voglio evitare per ora, quindi c'è un modo standard / accettabile per farlo?

    
posta Andy 21.02.2013 - 14:39
fonte

1 risposta

1

La crittografia è valida solo quanto i mezzi per decrittografarla. Mentre tiene fuori la maggior parte delle persone, chiunque abbia una conoscenza ragionevole della crittografia può decodificare il nome utente e la password. Quindi logicamente, la soluzione è rendere difficile il reverse engineering. La migliore mentalità da adottare quando cerchi di raggiungere questo obiettivo presuppone che qualcuno che desideri decifrare il tuo programma sappia tutto ciò che sai, in che modo puoi rendere difficile la decodifica anche in quel momento?

Una soluzione che ho trovato è quella di ricavare da alcune informazioni che sono uniche per quel computer come, ad esempio, il numero di serie del disco rigido. Usandolo come chiave, puoi criptare e decodificare il nome utente e la password e finché il tuo codice sorgente è protetto e il tuo programma è offuscato, nessuno sarebbe più saggio. Ha solo il lato negativo minore che non può decifrare questi valori se la cartella viene copiata su un altro computer (quindi un numero di serie del disco rigido diverso).

Un altro approccio consiste nel fare una richiesta https formale a un server che fornisce una chiave utilizzata per crittografare e decrittografare, rendendo impossibile la decodifica utilizzando la chiave, poiché la chiave non viene salvata localmente. Ha lo svantaggio di richiedere che il computer sia online, ma dal momento che deve accedere comunque a Twitter, direi che lo svantaggio non si applica a te. Inoltre, consente di autenticare l'utilizzo del programma dimostrando che la licenza utilizzata per quel programma non viene utilizzata con un IP diverso. Questo sta diventando un approccio sempre più popolare dal momento che il numero di computer che lavorano offline sono sempre meno numerosi.

    
risposta data 21.02.2013 - 16:02
fonte

Leggi altre domande sui tag