È ragionevole che il software trattiene qualcosa che l'utente non può manomettere?

4

Voglio creare un software che contenga alcune informazioni, il programma funzioni offline e voglio assicurarmi che le informazioni non possano essere manomesse. Il programma può creare o modificare le sue informazioni in qualsiasi momento.

Pensavo che il programma avrebbe creato e mantenuto la propria coppia di chiavi e firmato le informazioni, ma è ragionevole? Ho paura che un utente possa trovare la chiave privata del programma e falsificare le informazioni. Come potrebbe essere evitato?

Grazie.

    
posta Enrique Alcazar 16.10.2017 - 17:54
fonte

1 risposta

6

No, le applicazioni resistenti alle manomissioni implementate esclusivamente nel software sono purtroppo impossibili.

Il software che gira sul computer dell'utente è sotto il controllo dell'utente. L'utente può estrarre qualsiasi chiave segreta dal programma, dalla memoria in fase di esecuzione o dal codice binario del programma. Un programma e / o i dati che utilizza non possono essere crittografati in modo efficace, perché per essere eseguiti e consultati devono essere decrittografati e la chiave di decrittografia e l'algoritmo di decrittografia devono essere disponibili in forma non crittografata.

Esistono degli offuscatori che rendono più difficile decifrare un programma, ma rallentano solo un determinato aggressore. Non possono fermarne uno completamente.

Per fare affidamento sul trusted computing è necessario disporre di hardware affidabile. Esistono soluzioni hardware disponibili per alcuni casi d'uso, come i dongle USB che possono contenere chiavi crittografiche che non espongono al dispositivo host e possono eseguire operazioni crittografiche in modalità black-box. Questi dispositivi sono in genere abbastanza resistenti alla manomissione del software, ma potrebbero comunque essere soggetti a manomissioni dell'hardware fisico.

Inoltre, qualsiasi dato ricevuto o inviato al sistema host può essere intercettato. Quando vuoi che i dati rimangano segreti, non deve lasciare il dispositivo attendibile.

Sfortunatamente non stai scrivendo abbastanza sul tuo caso d'uso esatto per indovinare se questa sarebbe un'opzione nella tua situazione e quali sono le insidie in cui potresti entrare.

    
risposta data 16.10.2017 - 18:21
fonte