www.progettihwsw.com english

Proteggi il tuo software con una chiave USB
con solo 19 euro

Spesso e' necessario proteggere il proprio software, dalla creazione di copie, la chiave USB proposta ha un costo di soli 19 euro e permette di evitare che il vostro software possa essere copiato in modo non autorizzato.
La chiave USB contiene un microprocessore configurabile ed un contatore che permette l'esecuzione del vostro software un numero limitato di volte, e' possibile anche memorizzare una password all'interno della chiavetta.
Modificando, in modo semplice, il proprio software in modo che verifichi la presenza della chiave USB e in assenza della chiave possa bloccare in modo totale o parziale il programma, all'interno della chiave USB e' possibile incrementare un contatore che indica al software quante volte la scheda e' stata accesa, eventualmente bloccando l'esecuzione del programma se si superano un certo numero di esecuzioni.
La scheda e' autoalimentata dalla porta USB.

chiave protezione USB chiave protezione USB
E' possibile, in fase di realizzazione del programma, effettuare nel codice sorgente un semplice controllo della presenza della chiave.
Al momento dell'inserimento della chiave USB viene creata una seriale RS232 virtuale tramite la quale e' possibile inviare e ricevere comandi dalla scheda. E' disponibile anche il codice sorgente in VB.NET per capire come verificare la presenza della chiave USB. E' sufficiente inviare periodicamente un comando sulla seriale RS232 virtuale e attendere la risposta della scheda, ecco un esempio di codice scritto in VB.NET

Display USB

Clicca qui per scaricare il codice sorgente

La chiavetta USB viene vista dal PC come una porta seriale RS232, e' molto semplice quindi inviare e ricevere dati dalla chiavetta in quanto qualsiasi sia il linguaggio di programmazione che usate ci sono delle librerie semplici per la gestione della seriale RS232.
Il protocollo di comunicazione con la chiavetta USB e' semplicissimo, il PC deve sempre inviare 7 caratteri, se il primo carattere e' "?" la scheda esegue lo XOR tra i rimanenti 6 numeri inviati dal PC ed esegue lo XOR con una password memorizzata nelle prime 6 celle di memoria eeprom.
Ad esempio, il PC invia "?632319" la chiavetta effettua lo XOR con la password e risponde al PC inviando "?555306" infatti il numero 555306 e' lo XOR tra i numeri 632319 (inviato dal PC) e B631D5 (che e' la password memorizzata nelle prime 6 celle della chiavetta)
All'interno del proprio software, per verificare la presenza della chiavetta, basta inviare alla chiavetta, ad esempio, "?632319" e attendere che la chiavetta risponda "?555306"
Ovviamente e' possibile cambiare la password con la quale la chiavetta genera lo XOR, prima di cambiare la password occorre inviare un comando che ne abiliti il cambiamento, il comando per abilitare il cambio di password e' p + password attuale, ad esempio, la password di default e' B631D5

Display USB

a questo punto, dopo aver inviato il comando per abilitare il cambio password, adesso si puo' inviare la nuova password inviando il comando h seguito dalla nuova password

Display USB

E' possibile anche memorizzare dei numeri all'interno della chiavetta USB. La chiavetta ha 256 celle di memoria eeprom, le prime 6 celle sono riservate alla password, la settima e l'ottava cella eeprom sono riservate al conteggio del numero di riavvii, la 256-esima cella e' riservata al bootloader della chiavetta che permette di aggiornare il firmware della chiavetta

Display USB

Il protocollo per memorizzare un numero all'interno della chiavetta e' "w_num_riga_num_colonna_numero_da_memorizzare"

Display USB

Il protocollo per leggere i dati memorizzati all'interno della chiavetta e' "r_num_riga_num_colonna_xxx" la scheda risponde inviando il dato memorizzato nella eeprom

Per quanto riguarda la gestione della seriale RS232 un esempio di codice scritto in VB.NET

Private Sub Timer1_Tick(ByVal sender As System.Object , ByVal e As System.EventArgs)
   _serialPort.Write("?632319")
End Sub

Per un esempio di codice scritto in VB6 Clicca Qui: RS-232_Visual_Basic_VB6.htm

Si consiglia di inserire il controllo della presenza della chiave all'interno di un Timer in modo da controllare, periodicamente, che la chiave non venga disinserita.
E' anche possibile inviare dei comandi standard indipendenti dalla password memorizzata all'interno della chiavetta, ad esempio, inviando "abcdefg" la chiavetta rispondera' "rstuv" a prescindere da quale sia la password memorizzata, inviando "1234567" la chiavetta rispondera' "fghi"
L'installazione della chiave e' molto semplice, al momento dell'inserimento della chiave viene rilevato un nuovo hardware, vedi fig 1 (al posto della scritta Progetti HW SW comparira' il nome della vostra software house)

Display USB
Fig 1

A questo punto selezionate il driver che e' un semplice file di testo .inf le cui righe finali possono essere modificate con un editor di testo, Clicca Qui per scaricare il driver Driver_USB_RS232.zip
La chiavetta e' compatibile con Win2000, WinXP, Vista, Windows 7,8,10, Linux


E' possibile acquistare anche una singola chiave USB per effettuare prove, il costo della chiave USB di protezione e' di 19 euro.
E' possibile anche personalizzare la chiavetta inserendo il logo della propria ditta. Le spese di spedizione sono di 9 euro ed e' possibile anche pagare in contrassegno.

Per qualsiasi ulteriore spiegazione un tecnico e' a vostra disposizione, sara' lieto di fornirvi il supporto necessario Tel 0331730164 Cel 347-6651065 Chiamaci su Skype [username ProgettiHWSW]

chiavetta USB protezione software Leggi l'articolo sulla rivista IoProgrammo numero 135 (Febbraio 2009)

Impostando un algoritmo di domande e risposte alla scheda e' possibile proteggere il proprio software