Generalmente non puoi fermare un hacker determinato o con esperienza. Il mio suggerimento non è di preoccuparsi troppo perché, a meno che tu non abbia molti utenti (o soldi), è improbabile che qualcuno possa seriamente impegnarsi a hackerare la tua applicazione; Concentrati sulla consegna di un fantastico software.
Tuttavia puoi:
Evita di memorizzare le password come valori letterali stringa
- Questo dovrebbe essere ovvio.
Oscura i tuoi passphrase
- Usa una raccolta di semplici parole inglesi o caratteri casuali per memorizzare la tua passphrase in modo da confondere l'hacker o rendere meno evidenti le password.
Nomi dei simboli oscuri
- Esiste la possibilità che un hacker possa estrarre i nomi di simboli evidenti dal tuo binario. Ad esempio, class keyChain
. Puoi ingannare mantenendo la leggibilità utilizzando #define keyChain readModule
.
Flusso di applicazioni oscure
- Supponiamo che l'hacker funzioni alla rovescia dalla decifratura del file per trovare la passphrase, è possibile utilizzare i puntatori di funzione per oscurare il flusso dell'applicazione apparso.
Genera la passphrase in fase di runtime
- Scrivi la tua funzione che genera e sputa la passphrase durante il runtime.
Cifra / decripta passphrase con la tua funzione
- Se si utilizza un'altra libreria di terze parti, un utente malintenzionato può cercare le chiamate comuni. Ovviamente sii intelligente con questo e non usare una qualche forma di caesar cipher
, e ricordati di usarlo solo per nascondere la passphrase, cioè usa ancora AES
da OpenSSL
per la tua crittografia e decrittazione dei dati reali. Tuttavia questo ti ricondurrà all'inizio della memorizzazione sicura di una password. Il guadagno è nel tentativo di impedire all'hacker di cercare le chiamate alle funzioni di decrittografia / crittografia più comuni.
Indipendentemente da ciò, nessuno di questi fermerà completamente un hacker. Possono rallentare o impedire un principiante, oppure possono fare assolutamente nulla.
Lavorare per rendere il tuo software così bello da evitarlo direttamente nella decrittografia non è interessante. Convinci gli utenti che vale la pena usare il tuo software.