Proteggi un'applicazione / un software per scadenza con data?

4

Ho lavorato su alcune applicazioni software e le aggiorno ogni 6 mesi. Attualmente, il modo in cui rintraccio la data è estraendo la data dal sistema quando l'utente installa l'applicazione, la crittografa e la archivia in un file localmente. Ogni volta che l'applicazione viene avviata, controlla se sono passati 6 mesi, quindi funziona o no, nel qual caso mostra un messaggio di errore che informa l'utente di aggiornare.

Se l'utente trova la data crittografata nel file, può semplicemente sostituirla con una da un'installazione più recente. Mi chiedo se c'è un modo più sicuro per farlo?

    
posta JNL 27.06.2013 - 15:55
fonte

2 risposte

3

C'è un problema specifico con il modello corrente?

Se l'applicazione è installata su sistemi che normalmente dispongono di accesso a Internet, è possibile farlo su un server per evitare la situazione in cui qualcuno gioca con il proprio orologio di sistema e esegue l'applicazione per più di 6 mesi.

Quando l'applicazione è installata, si registra con il tuo servizio e il tuo servizio registra un identificatore di applicazione (forse una chiave di licenza) e la data di installazione. Ogni volta che inizia, controlla con il server per vedere se sono trascorsi 6 mesi e poi dice all'utente di aggiornarsi se è passato più di 6 mesi.

Possibili svantaggi: è un po 'più complicato. Ora dovrai creare e mantenere il servizio di registrazione / convalida. È inoltre necessario decidere cosa dovrebbe accadere se l'applicazione non è in grado di connettersi al servizio. E qualcuno che è veramente desideroso di andare in giro potrebbe provare ad annusare i dati inviati al servizio e poi creare il proprio servizio che convalida sempre l'applicazione, quindi reindirizzare il traffico destinato al tuo servizio a il loro servizio invece. Quindi, ovviamente, vorrai che tutto il traffico con questo servizio sia crittografato.

If the user finds the encrypted date in the file they can simply replace it with one from a more recent install. I am wondering if there's a more secure way to do this?

Quindi sei preoccupato che capiranno che se sostituiscono il loro file esistente con una copia dello stesso file ma da un'installazione più recente, saranno in grado di aggirare il limite di 6 mesi? La risposta sopra potrebbe ancora aiutare con questo problema, un'altra idea pubblicata qui sotto.

Non so esattamente come si sta creando o crittografando il file, ma un'idea potrebbe essere quella di includere l'installazione datetime nella chiave utilizzata per codificare / decrittografare il file. In questo modo, un file proveniente da un'installazione diversa avrebbe una chiave diversa e quindi non può essere condivisa con altre installazioni. Ora il problema è di memorizzare questa chiave in un posto sicuro, in modo che l'utente non possa accedervi.

    
risposta data 27.06.2013 - 17:02
fonte
3

Potresti fare qualcosa come @Uwe descrive, ma il file contiene una stringa crittografata. La stringa conterrà, come parte del suo valore, la data di installazione (o data di scadenza) e ... altre cose. Ciò che le altre cose non contano davvero, a meno che tu non voglia altre convalide.

Facciamo qualcosa di simile ma memorizziamo il valore nel database della nostra app. La nostra stringa crittografata contiene il numero di revisione dell'app, il "numero di giorni da base-base fino alla scadenza della licenza" e alcune altre cose. All'avvio, decifriamo la stringa e calcoliamo il numero di giorni da -base date- fino a oggi. Se il numero è > rispetto al valore crittografato, ricevono un avviso di licenza. Se il numero supera i 30 giorni dalla data di avviso, riceve un messaggio e l'app si chiude.

Se il file (stringa) non esiste, l'app non parte. Se la stringa viene applicata e il valore decrittografato non corrisponde alla "maschera" che utilizziamo per analizzarlo, l'app non viene avviata.

Non è infallibile per qualcuno determinato a batterlo, ma serve al nostro scopo di "abbastanza sicuro".

    
risposta data 27.06.2013 - 19:42
fonte

Leggi altre domande sui tag