General

6.79 Utilizzare chiavi hardware con Access.
  AntoGal
Prima di tutto vediamo una breve panoramica sui tipi di chiave hardware che è possibile trovare in commercio. Come è noto, una chiave hardware serve non ad evitare la duplicazione del programma, ma
ad impedirne l'utilizzo nel caso non si possegga la giusta chiave. Ne esistono per porta parallela (si collegano tra la porta ed il cavo stampante), seriale, usb, su scheda ISA (interne al PC), per la rete (una sola chiave per tutti i PC in rete) ecc. Inoltre possono essere con o senza memoria per operazioni di read/write sulla chiave, con un clock interno per testare data e ora, con un numero di serie univoco per avviare solo ed un solo programma ecc. Le chiavi sono naturalmente trasparenti per la stampante e possono anche essere connesse in cascata.
Al momento dell'acquisto viene assegnato un codice sviluppatore che viene "impresso" indelebilmente nella chiave, in modo che chiavi dello stesso tipo e marca, non possano avviare programmi di software house diverse.

In genere ci sono 2 metodi principali di utilizzo:
1) Se si dispone dell'eseguibile (.EXE), ma non è il caso di Access, si può facilmente "impacchettare" il file EXE ed ottenerne uno criptato che richiede la chiave per funzionare, il tutto in pochi secondi. Non bisogna neanche possedere i sorgenti.

2) Richiamare le funzioni di test di presenza della chiave, rilevarne il numero di serie, leggere dalla sua memoria ecc. usando le API. Il sistema è molto semplice perchè in genere viene fornita una DLL che ingloba le funzioni, e nel codice VBA basta mettere una dichiarazione (es. Declare Sub hasp Lib "haspvb32.dll" ...) ed utilizzare le funzioni come se fossero native del VBA. E' scontato che l'applicazione va distribuita come MDE altrimenti con un paio di rem si disattiva il controllo.
Nel caso si vogliano proteggere i dati e non il programma, Access potrebbe tenere gli archivi criptati, e la password di decrittazione sulla memoria della chiave. Niente chiave, niente password.
Si potrebbe anche far partire l'applicazione in due modalità: se la chiave è presente va in modalità "Amministratore" e permette cancellazioni, modifiche ecc., se la chiave non è presente, passa alla modalità "Utente" e si possono solo inserire e modificare i dati cui si vuole dare accesso.

In definitiva:
PRO:
- E' uno dei sistemi di protezione più sicuri.
- Non è legato al PC dell'utente (es. numero seriale dell'HD) quindi non crea problemi nel momento in cui si cambia PC o configurazione.
- Nessun problema di codici di attivazione e password dimenticate per l'utente.
- L'utente può fare tutte le copie di backup che desidera, e utilizzare il programma sia a casa, sia al lavoro (portandosi dietro la chiave, ovviamente).
- Il costo viene ammortizzato anche grazie al numero ridotto di copie pirata che potrebbero circolare.
CONTRO:
- In genere non si sprotegge la chiave, ma il programma. Quindi è compito del programmatore usare dei "trucchetti" per una maggiore protezione, rispetto ad un semplice "If ChiavePresente() Then..."
- Il costo è di circa 70-100 mila a chiave, e si acquistano in genere in lotti da almeno 5. Bisogna valutare anche il ricarico sul costo del programma e quante copie si prevede di vendere.
- Se si acquistano 10 programmi di 10 produttori diversi, si immagini la cascata di chiavi che l'utente deve tenere!


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.