Quando consegnate un sistema funzionante nelle mani del vostro aggressore, non potete impedirne il reverse engineering. Non ci sono eccezioni.
Ma con una distribuzione intelligente di chiavi e certificati, puoi alleviare alcuni dei problemi. Se ciascun utente riceve la propria chiave e il proprio certificato (firmato da te), allora è possibile identificare in modo univoco quell'utente con qualsiasi cosa egli firmi. Condividere la sua chiave rivelerebbe l'identità della persona che l'ha condivisa.
Allo stesso modo, distribuendo le chiavi pubbliche per la crittografia dei dati in uscita, è possibile limitare la decrittografia solo alle macchine che possiedono la chiave privata associata.
IN RISPOSTA AL COMMENTO
only need the strictly confidential data somehow stored on the harddrive encrypted and the decryption should be only possible through my software.
Hai perso con "la decrittografia dovrebbe essere possibile solo attraverso il mio software" . Questo è assolutamente impossibile al 100%. Quello che hai descritto è, esattamente, DRM. Leggi la spiegazione di questo di Cory Doctrow da quasi dieci anni. Alcune delle persone più intelligenti e più motivate dal punto di vista finanziario hanno lavorato su questo e continuano a lavorare su questo fino ad oggi, e in nessun momento ha mai realmente funzionato. Perché non può.
Quello che puoi fare è decifrare solo sul tuo server o una soluzione simile. Il modo (l'UNICO modo) per impedire al client di decifrare i tuoi dati è di non dargli la chiave . Il che significa che non può essere lui a decrittografarlo.