Doppia crittografia con chiavi diverse [duplicato]

0

Ho un kit di sviluppo software che raggruppa i dati per il programma finito in una serie di pacchetti LZMA. Voglio assicurarmi che il mio software sia l'unico programma in grado di leggere i pacchetti, anche se sono compressi in un formato open source. Voglio anche essere in grado di crittografarlo, se l'utente lo desidera, ulteriormente in modo che solo il programma finito possa leggerlo e non l'SDK originale. Se eseguo semplicemente due volte un metodo di crittografia, funzionerà?

Per inserirlo in pseudo-codice:

encrypt_file(filename, "SDK key")
user_key = get_input()
encrypt_file(filename, user_key)

I pacchetti compressi contengono formati di file comuni come immagini PNG, file audio MP3, ecc. Questo metodo funziona correttamente, in modo tale che io possa decodificarlo semplicemente facendo qualcosa del genere:

user_key = getkey() //Retrieve it from some configuration setting
decrypt_file(filename, user_key)
decrypt_file(filename, "SDK key")
    
posta Morgan Patch 13.09.2013 - 17:35
fonte

2 risposte

1

Se vuoi assicurarti che solo le persone che hanno il tuo software siano in grado di decrittografarlo e se solo le persone con il programma finito debbano essere in grado di decodificarlo, allora dovresti essere ok visto che solo le persone con quelle particolari versioni del i programmi hanno la chiave.

Non può essere enfatizzato abbastanza, tuttavia, che chiunque possieda un'installazione del software possieda anche una copia della chiave. Se il software è in grado di decodificarlo, può farlo anche chi esegue l'hardware su cui è in esecuzione il software. Per provare a farlo in modo che l'utente non possa accedervi, entra nel regno di DRM ed è davvero una causa senza speranza a meno che tu non controlli l'hardware.

Nota, per i guadagni in termini di efficienza, potresti ottenere lo stesso risultato eseguendo la crittografia con una chiave univoca ogni volta e quindi solo crittografando la chiave due volte. Ciò migliorerebbe notevolmente la velocità di crittografia e decodifica in quanto una quantità di dati molto ridotta (la chiave) deve essere crittografata / decrittografata due volte. Semplifica anche la modifica di una delle chiavi se una chiave viene compromessa dal momento che solo le chiavi dei file devono essere nuovamente crittografate.

    
risposta data 13.09.2013 - 17:41
fonte
0

Mentre in superficie ciò che stai proponendo funzionerà, è importante capire che è banale estrarre la chiave di decodifica dal software in modo che l'utente possa decodificare il file senza il tuo programma, e distribuisci quella chiave al mondo in generale, consentendo a chiunque di fare lo stesso.

Non c'è modo di aggirare questo.

    
risposta data 13.09.2013 - 18:33
fonte

Leggi altre domande sui tag