Ciao, in linea di principio il meccanismo è lo stesso per chi non utilizza windows ma linux. Ogni disco rigido è identificato da una sigla o un numero di matricola quindi puoi sempre prevedere una routine in java o javascript che lo vada a leggere.
Il modo migliore per evitare che un utente cancelli queste informazioni è non memorizzare niente sul suo PC ma tenere i dati identificativi dell'hard disk memorizzati sul tuo server. In pratica il meccanismo con cui ti proteggi è questo.
1) Il meccanismo di sicurezza si basa su un sistema doppia chiave pubblica/privata.
In pratica un messaggio codificato con una chiave puo essere letto con l'altra chiave
La chiave privata te la tieni tu e non la diffondi
La chiave pubblica viene cablata nella routine che fai girare sul pc utente
2) Fai scaricare sul pc dell'utente una routine che legge il codice del disco rigido e genera un messaggio detto
challenge con un algoritmo che utilizza il codice del disco e la tua chiave pubblica.
3) Questo messaggio viene uploadato sul tuo sito e li tu con la tua chiave privata decrittografi il codice del disco.
usi questo codice come chiave per codificare in base ad un tuo algoritmo il codice di autorizzazione.
4) Cifri questo codice di autorizzazione con la tua chiave privata e mandi questo messaggio all'utente.
5) la routine di autorizzazione sul pc utente decodifica il messaggio ricevuto con la chiave pubblica cablata. Se questa
verifica è positiva l'utente è autorizzato a procedere oltre.
L'utilizzatore non puo farti credere di avere un disco diverso perchè per poter generare un messaggio di challenge con un numero di codice differente dovrebbe conoscere la chiave pubblica che è cablata nella routine di lettura del disco.
Non può inoltre fare tampering del messaggio che ti invia in quanto se modifica anche un solo bit del messaggio questo non passerà piu il check che tu farai sul server con la tua chiave privata e che lui non conosce.
Non puo fare tampering del messaggio ricevuto in quanto se modifica anche un solo bit del codice di autorizzazione cifrato che tu gli mandi indietro la routine di verifica fallirà il check con la chiave pubblica.
Se dovesse mettere temporaneamente un altro disco rigido per generare il mesasggio di challenge e autorizzazione poi quando cerca di utilzzare l'altro disco non gli funzionerà.
Non funzioneranno nemmeno dei key generator in quanto anche se un hacker bravissimo disassemblasse il codice del programma che genera il messaggio di challenge e identificasse la chiave pubblica e con questa codificasse un messaggio di challenge modificato non potrebbe mai conoscere la tua chiave privata in quanto l'algoritmo a chiave doppia pubblica non consente matematicamente di ricavare una chiave nota l'altra in quanto usa funzioni non lineari. Non potrebbe quindi generare il codice di autorizzazione.
Ovviamente nessun sistema è perfetto e quindi utenti molto esperti in crittografia, assembler, programmazione sicuramente potrebbero trovare un punto di vulnerabilità magari per come poi scrivi in pratica queste funzioni.
l'uso di questo sistema pero' ti elimina la maggior parte degli utenti smanettoni di primo pelo e anche di secondo pelo ma non i veri esperti informatici.
Comunque ... se dovessi trovare un vero esperto informarico che bypassa i tuoi sistemi ... fallo lavorare per te è il miglior investimento che puoi fare.
Ciaoooooooo.