Attivazione del software "per telefono" [chiuso]

0

Sono uno sviluppatore di software e vorrei proteggere la mia applicazione in modo offline, come molti software che attivano telefonicamente. A seguito di uno screenshot tratto da immagini di google su ciò che vorrei ottenere:

Sono interessato a come funziona questa funzionalità dal punto di vista della sicurezza. Quello che ho dovuto dovrebbe funzionare in questo modo (correggimi se sbaglio):

  1. L'applicazione genera un codice casuale e lo mostra all'utente
  2. L'utente telefona al fornitore dell'applicazione e comunica il codice.
  3. La società controlla l'identità dell'utente: possiamo supporre che possa controllare in modo sicuro l'identità dell'utente.
  4. La società possiede una chiave privata, la stessa memorizzata nell'applicazione, quindi con un software interno concatena il codice casuale fornito dall'utente con la chiave privata, genera un hash crittografico (ad esempio SHA-256 hash sum (SHA-2 )) e comunicano il risultato all'utente.
  5. Dopo che l'utente ha inserito quel codice nel modulo, l'applicazione controlla che il codice di sblocco indicato sia uguale a quello che ha calcolato internamente.

Funziona così?

    
posta ABCplus 27.11.2015 - 09:57
fonte

1 risposta

3

La chiave privata non verrà archiviata nel software. Se viene utilizzata una chiave privata, la chiave pubblica corrispondente verrà archiviata nel software. Vedi Wikipedia - Crittografia a chiave pubblica .

Se hai usato un algoritmo di crittografia simmetrica, sarebbe "facile" per estrarre la chiave dal software (la sicurezza dell'offuscamento non conta) e calcolare l'ID di conferma da solo. Ancora peggio, chiunque potrebbe fornire strumenti per calcolare l'ID di conferma.

Quindi cambierei i passaggi 4 e 5 un po '. Effettivamente cancellerei l'ID di installazione e quindi lo ciferei con la mia chiave privata - questo è l'ID di conferma. Il client decifrerebbe quindi l'ID di conferma (con la chiave pubblica) e confronterà il risultato con l'hash calcolato dall'ID di installazione. Se l'hash corrisponde all'ID di conferma è corretto.

    
risposta data 27.11.2015 - 10:13
fonte

Leggi altre domande sui tag