Home

SmartKey Manuale Utente v12.0

image

Contents

1. int main KEY_NET k Scrambling k net_command NET_KEY_ACCESS k command SCRAMBLING_MODE memcpy k data scrambling in SCRAMBLE LENGTH smartlink amp k if k status ST 1 printf Error in SCRAMBLING_MODE n exit EXIT_FAILURE H if memcmp k data scrambling_out SCRAMBLE printf Wrong SCRAMBLING n exit EXIT_FAILURE ENGTH 0 printf Scramble ok n 10 2 3 Esempio 3 4 Memorizzare e utilizzare una funzione nella memoria di SmartKey Questo esempio mostra come memorizzare e utilizzare un codice binario di una funzione nella memoria di SmartKey Vi sono alcune limitazioni e Le dimensioni della funzione devono essere inferiori o uguali a quelle della memoria di SmartKey e possibile chiamare direttamente delle funzioni esterne ma esse possono essere chiamate indirettamente passando come argomento un puntatore a funzione e possibile usare direttamente delle variabili esterne ma esse possono essere usate indirettamente passando come argomento un puntatore e vostro progetto deve essere collegato all opzione FIXED per evitare una nuova collocazione nel vostro codice Memorizzare la funzione Questo esempio memorizza la funzione func nella memoria di SmartKey include skeylink h include lt stdio h gt include lt stdlib h gt incl
2. Models NET Input NET COMMAND LABEL Label PASSWORD Password Output NET PASS Net Password DATA 0 Tipo di protocollo di rete utilizzato nella connessione 0 LOCAL 2 ANP 3 TCPIP STATUS Status 0 Successo 0 Error Tabella 33 Scambio di informazioni per Open Mode 11 2 Access mode La modalita ACCESS permette il vero e proprio accesso alla chiave selezionata tramite la Label che dovra sempre essere passata prima di effettuare ogni operazione standard di interrogazione della chiave Questa modalita richiede la NET Password che identifica il Client richiedente l accesso e la Label che identifica la chiave a cui si vuole accedere Lo scambio di informazioni cosi organizzato Models NET Input NET COMMAND A NET_PASS Net Password COMMAND SmartKey Command Output STATUS Status 0 Successo 0 Error 63 Tabella 34 Scambio di informazioni per Access Mode Per il resto si seguono le medesime modalita gia analizzate nel caso di protezione manuale con applicazioni standalone 11 3 User number mode Il comando consente di ottenere il numero di utenti connessi al server che utilizzano la chiave specificata con il campo Label Questo comando funziona solo se si sta utilizzando un protocollo di rete e non il procollo LOCAL Se usato con il protocollo LOCAL ritornato 2 SYNT_ERR Per utilizzare questo comando con la protezione Map necessa
3. Scrambled input unsigned char scrambling_in SCRAMBLE_LENGTH 0x45 0x34 0x67 0x23 0xa5 0x8f 0x2c 0x6d int unsigned 1 double Scrambling k net_command NET_KEY_ACCESS k command SCRAMBLING_MODE memcpy k data scrambling_in SCRAMBLE_LENGTH smartlink amp k if k status ST_OK printf Error in SCRAMBLING_MODE n exit EXIT_FAILURE for 1 0 i lt sizeof 1 unsigned char amp pi i k data i scrambled data il printf Pi greco is g n pi Close k net command NET KEY CLOSE smartlink amp k if k status ST OK 55 printf Error NET_KEY_CLOSE n exit EXIT_FAILURE return EXIT_SUCCESS 10 2 7 Esempio 8 9 e utilizzo di una grande tabella Scrambling Questo esempio mostra come generare e utilizzare una grande tabella scrambling I valori di input dell operazione scrambling sono calcolati in fase d esecuzione utilizzando l indice come inizializzazione di una semplice funzione casuale Generazione del file table h Questo esempio genera il file table h include skeylink h include stdio h include stdlib h include string h include time h define SCRAMBLE MAX 1024 void scramble in unsigne
4. Il A static unsigned char hidden password PASSWORD LENGTH 0 0 0x91 Oxbl Ox5a 0x62 Oxla 0x7d 0xa8 Oxd5 0x04 0x35 0x68 0x9d Oxd4 0 0 0x48 int main KEY_NET k unsigned i memset amp k 0 sizeof k Calcola la label la password corrette for 1 0 i lt LABEL_ LENGTH i k label i hidden label i i i 0x7 0x5a for i1 0 i lt PASSWORD_LENGTH i k password i hidden password i i i 0xle 0xa5 Open k net command NET KEY OPEN smartlink amp k if k status ST OK printf Error in NET KEY exit EXIT FAILURE printf Net password dWMn k net password Close k net command NET KEY CLOSE smartlink amp k 54 if k status 5 printf Error in NET_KEY_CLOSE n exit EXIT_FAILURE return EXIT_SUCCESS 10 2 6 Esempio 7 Scrambling di dati riservati Questo esempio mostra come nascondere riservati con l operazione Scrambling Nell esempio il valore di pi greco memorizzato nel modo seguente include skeylink h tinclude lt stdio h gt tinclude lt stdlib h gt include lt string h gt include lt math h gt Scrambled data unsigned char scrambled data SCRAMBLE LENGTH 0x0c 0xd8 Oxb3 Oxf6 0x57 Ox6f 0x4d 0xe5
5. m Parametri chiave Label___ Inserisci la LABEL e la PASSWORD SMARTKEY richieste per l accesso alla chiave Password EUTRON Per il modello FX della SmartKey la PASSWORD non richiesta Formato esadecimale Map Opzioni di protezione Abilitando l utilizzo del Map possibile Abilita il controllo periodico utilizzare il modello NET della v della presenza della chiave SmartKey in una rete locale SmartKey Numero applicazione Abilita il controllo del Map contenuto della memoria della SmartKey Figura 1 Interfaccia di GSS 8 11 Protezione automatica con GSS La protezione offerta da SmartKey si avvale della tecnologia GSS che fornita in un pacchetto d utilita GSS EXE fornito insieme al Kit SmartKey Alcuni dei vantaggi che questa utility offre sono riassunti nel seguente elenco e Protezione automatica dei file eseguibili e Crittografia opzionale dei file dati associati ai programmi protetti Protezione basata su Label Password e Memoria e Controllo periodico della presenza della SmartKey e Scelta dei messaggi da visualizzare 29 8 2 Protezione su piattaforme Windows con GSS Global Security System permette di proteggere tutti i file eseguibili realizzati per le piattaforme Windows 9x Windows Me Windows NT Windows 2000 Windows XP Windows 2003 Windows Vista e superiori Per avviare programmi Windows protetti necessario che siano presenti nella stessa directory dell eseg
6. e Id Code register e Label register 16 byte e Password register 16 byte e Secure Data register 64 128 416 896 8192 byte e Fail Counter register 2 byte 7 1 Id Code register il codice personale L Id Code un registro programmato in fabbrica durante il test di ogni singola chiave e non pi modificabile Ogni utilizzatore di SmartKey ha un codice di identificazione diverso ed il numero totale di possibili codici 292 4 000 000 000 L Id Code presente in tutti i modelli SmartKey e garantisce che chiavi di diversi utilizzatori siano sicuramente diverse tra loro Di fatto assegna un codice personale ed unico ad ogni possessore di chiavi di protezione pari a circa Per ragioni di sicurezza il codice di identificazione riportato nell Id Code register non leggibile direttamente ma il suo valore condiziona il risultato dell interrogazione algoritmica della chiave Utenti diversi hanno differenti Jd Code e quindi le relative chiavi forniscono risposte differenti all interrogazione algoritmica da parte del software protetto 7 2 Label register l etichetta di identificazione e accesso Il registro Label contiene uno dei due codici di accesso alla chiave ed ha la funzione di identificazione della chiave corretta per la particolare applicazione in esecuzione Di fatto la Label costituisce un etichetta elettronica di identificazione interna alla chiave La funzione della Label amp particolarmente importante q
7. Lo scambio di informazioni tra PC e SmartKey cosi organizzato Models PR EP SP XM NET Input COMMAND We 36 LPT Porta LABEL Label PASSWORD Password DATA Dati da scrivere EXT_DATA Dati estesi da scrivere solo per modelli SP XM e NET Output STATUS Stato 0 Successo 0 Errore Tabella 13 Parametri per il comando Writing Se la chiave trovata sulla porta indicata e con valori di Label e Password corretti il campo data ed eventualmente il campo ext_data se la chiave ha sufficiente memoria sara trasferito nei Secure Data della chiave Se la password passata alla chiave non corretta i dati presenti nel Secure Data register non sono alterati 9 5 1 Passaggio parametri Parametri da trasferire per eseguire un operazione di Writing su una chiave inserita nella porta parallela LPT 01 00 Porta COMMAND 57 00 Reading W LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 PASSWORD 45 55 54 52 4F 4E 00 00 Password EUTRON 00 00 00 00 00 00 00 00 DATA XX XX XX XX XX XX XX XX Data EXT_DATA XX XX XX XX XX XX XX XX Ext Data Tabella 14 Scambio di informazioni per il comando Writing 9 6 Block Reading La funzione BlockReading consente di leggere porzioni dei Secure Data ad esempio una due o poche word piuttosto che l intero campo Cid consente di risparmiare qualche frazione di secondo rispett
8. stato programmato possibile accedere ai dati contenuti nella memoria non volatile della chiave Analogamente alla combinazione di una cassaforte la conoscenza della Password corretta consente l apertura della chiave e quindi l accesso al contenuto Il registro Password che ha una dimensione di 16 byte pu essere programmato tramite l utility SPC selezionando la modalit di programmazione Non mai possibile rileggere direttamente il contenuto della Password impostata nella chiave l accesso alla Password avviene solo in scrittura durante la fase di programmazione E possibile anche riprogrammare la Password pur non conoscendo quella precedente in tal caso il contenuto della memoria dati Secure Data automaticamente azzerato 27 7 44 Secure Data register i dati della memoria non volatile Il registro Secure Data dotato di una memoria non volatile interna alla chiave a cui possibile accedere solo con la preventiva conoscenza della Password Controllando il contenuto del registro possibile evidenziare se si alla presenza di un tentativo d effrazione oppure di un installazione legittima del software Modello Memoria FX Parallela USB 0 PR EP Parallela USB 64 PR EP USB Driver Less 128 SP Parallela 416 SP USB 896 XM USB 8192 NET Parallela USB 416 Tabella 5 Dimensione della memoria di SmartKey i Secure Data T i diversi E L intervento dei S Data ne
9. Questo comando legge le informazioni estese sul modello di SmartKey Lo scambio di informazioni cosi organizzato Models ALL Input COMMAND LPT LABEL H Porta Label Output DATA 0 DATA 1 DATA 2 DATA 3 STATUS Modello 1 FX 2 PR 3 EP 9 SP lt NET D XM Memoria disponibile sulla chiave 0 0 byte 1 64 byte 2 128 byte 3 416 byte 4 896 byte 8 8192 byte Modello hardware 2 Parallel 3 USB 4 USB DL Driver Less Funzionalita organizzata come una maschera di bit e bitO valore 1 comandi AES SET MODE e AES_SCRAMBLE_MODE supportati e bit 1 valore 2 protezione anti condivisione ed anti emulazione attivo e valore 8 le chiavi AES sono impostate tramite il comando AES SET MODE Stato 0 Successo 0 Errore Tabella 28 Parametri per il comando ExtModelReading 9 14 Fix Reading Questo comando legge il valore del registro di Fix Lo scambio di informazioni cos organizzato Models EP SP XM NET Input COMMAND 43 LPT Porta LABEL Label PASSWORD Password Output DATA 0 1 La SmartKey Fixed 0 La SmartKey non Fixed STATUS Stato 0 Successo 1 0 Errore Tabella 29 Parametri per il comando FixReading 9 15 Fail Counter Reading Questo comando legge il valore del registro Fail Counter Questo 8 lo stesso valore che si ottiene c
10. di SmartKey consente la definizione di diversi livelli di protezione Essi usano le risorse della chiave in modo diverso e richiedono un maggiore o minore tempo d implementazione Pochi minuti grazie al programma Global Security System GSS un programma in dotazione si pu proteggere direttamente il vostro file eseguibile in breve tempo senza intervenire su sorgenti Di fatto possibile realizzare l intero processo di protezione cio predisporre i codici personalizzati programmarli nella chiave selezionare l applicazione e proteggerla in pochi minuti e Alcune ore il caso pi comune Non avete molto tempo a disposizione ma non preoccupatevene poche ore sono pi che sufficienti per implementare le principali funzioni di sicurezza della chiave per uno schema di protezione personale utilizzando i software driver in dotazione e ottenendo un programma con un elevatissimo livello di protezione e Qualche giorno in pochi giorni si pu scrivere un software quasi impossibile da violare sfruttando appieno le caratteristiche di SmartKey e adattandole alle proprie esigenze di sicurezza 3 5 Qual il grado di sicurezza di SmartKey SmartKey rappresenta lo stato dell arte in termini di sicurezza del software L uso di microprocessori e di sofisticati algoritmi di crittografia rende virtualmente impossibile la clonazione della chiave Sia che si decida di proteggere le applicazioni tramite l utilizzo delle funzioni in dotazione o tram
11. e Sivuole fare eseguire l applicazione 1 al massimo da 10 persone contemporaneamente N Applicazione 1 N di esecuzione 1 N di licenze 10 L ultimo esempio vale solo per SmartKey NET 16 5 Pannello scrambling Il pannello Scrambling permette di vedere dell algoritmo di scrambling dati valori d ingresso conosciuti I dati sia quelli di ingresso sia quelli d uscita possono essere visualizzati in formato ascii o formato esadecimale La selezione avviene con i pulsanti Ascii e Hex Questa funzione utile per i programmatori che vogliono inserire nel proprio codice le funzioni per lo scrambling La figura 14 mostra il pannello di Scrambling con i dati visualizzati in formato esadecimale 81 SmartKey Programming Central SP demo USB Elenco Smartkey Ripristina Defaut Map Diagnostica info Analisi Locale Identificazione g Contenuto Programmazione Fixing 7 LPT Questo pannello permette di eseguire la funzione di scrambling sui c USB dati inseriti di verificare la della Label SP demo USB DL Scramble 12345678 Scramble 12345678 Scramble 8 bytes 2 gt 12345678 Scramble 12345678 em Aggiorna Uscita Figura 14 Pannello Scrambling 16 6 Pannello contenuto Il pannello Contenuto permette di leggere e scrivere la memoria interna della SmartKey I valori possono essere visualizzati in formato decimale selezionando il tasto Dec
12. Label Output LPT Porta STATUS Stato 0 SmartKey trovata 0 SmartKey non trovata Tabella 7 Parametri per il comando Locating 34 9 2 1 Passaggio parametri Parametri da trasferire per eseguire un operazione di Locating con ricerca su tutte le porte parallele ed USB di una chiave avente come Label SMARTKEY COMMAND 4C 00 Locating L LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 Tabella 8 Scambio di informazioni per il comando Locating Se presente una chiave contenente la Label passata su una porta il campo lpt ne conterr l identificatore 9 3 Scrambling La modalit di Scrambling supportata da tutti i modelli di chiavi SmartKey si basa sulla singola personalizzazione per ogni cliente d Code register Ha la funzione di individuare per via algoritmica se l Id Code corretto Il codice di identificazione contenuto nel registro d Code utilizzato come parametro fondamentale di una funzione matematica di codifica un insieme di dati inviato elaborato e restituito opportunamente crittografato in modo unico per ogni 14 La verifica sulla presenza della chiave pu pertanto essere effettuata confrontando il dato elaborato con quello atteso Chiavi con differenti 14 utilizzano codifiche differenti e quindi a parit di dati in ingresso i dati restituiti saranno diversi Ad ogni diverso 14 pertanto associabi
13. Lo scopo del presente manuale di fornire una panoramica completa degli ambiti applicativi di SmartKey e delle potenzialit operative del prodotto in generale Gli argomenti trattati in questo manuale sono e l importanza di proteggere il software e le modalit d uso di SmartKey per quanto riguarda la protezione manuale e modalit d uso per quanto riguarda la protezione automatica il presente manuale tratta in modo esaustivo le tecniche e gli strumenti per la protezione automatica del software e dei dati le diverse situazioni applicative e modalit d implementazione della protezione nell ambito di reti locali 1 2 A chi rivolto il manuale La consultazione del presente manuale utile a coloro che e si avvicinano per la prima volta alle tecniche di protezione del software e vogliono una panoramica completa sullo stato dell arte e indicazioni pratiche ed efficaci vogliono avere a disposizione le tecnologie tradizionali di protezione manuale ma allo stesso tempo strumenti sicuri e versatili per la protezione automatica del software e dei dati hannol esigenza di controllare l autorizzazione esecuzione del software con poche operazioni la tecnologia SmartKey consente infatti utilizzando gli strumenti forniti con il Developer Kit di realizzare sofisticati meccanismi di controllo licenze e parametri d esecuzioni con il semplice utilizzo di una chiave SmartKey NET 1 3 Come contattare Aladdin Il modo migli
14. in formato Ascii selezionando il tasto Ascii oppure in formato esadecimale selezionando il tasto Hex valori da inserire vanno scritti direttamente nella tabella che si trova al centro Ogni cella della tabella corrisponde ad una cella di memoria della SmartKey La scrittura dei valori nella SmartKey avviene dopo che si preme il tasto Scrivi Il pannello permette di visualizzare inoltre il numero seriale della SmartKey e il numero di accessi falliti La figura 15 mostra un pannello Contenuto con i valori visualizzati in formato testo Il numero della cella determinato dalla somma del numero che si trova sulla colonna a sinistra e il numero che si trova in alto Ad esempio il valore si trova nella cella 9 8 1 il valore U nella cella 10 8 2 SmartKey Programming Central NET demo USB Elenco SmartKey Ripristina Defaut Map Diagnostica Info Analisi Identificazione Scrambling Contenuto Programmazione Fixing Locale M LPT ce USB NET demo USB DL Dec Ascil Hex PF Numero Seriale 3143309233 Numero accessi errati i Aggiorna Uscita 82 Figura 15 Pannello Contenuto di una SmartKey USB di tipo ATTENZIONE L accesso alla memoria della SmartKey avviene in modo diretto e senza filtro Si consiglia di non inserire dati nella memoria se si vuole usare SmartKey per limitare il numero di licenze multi utente o il numero di esecuzio
15. situazioni gssline exe che la versione di riga di comando di GSS si rivela molto utile La sintassi per l esecuzione di GSSLINE gssline CFG FILE EXE FILE DATA FIL DESTINATION DIR CFG FILE E il file di configurazione EXE FILE or DATA FILE E il nome dell EXE o file di dati da proteggere DESTINATION DIR E il percorso dove si trova il file EXE finale protetto Tabella 6 Nel digitare la riga di comando occorre tenere in considerazione quanto segue e percorso del file protetto DESTINATION DIR che deve essere prodotto da GSSLINE deve essere diverso dal percorso in cui si trova il file originale EXE FILEIDATA FILE Indicare chiaramente l estensione di ciascun file CFG e EXE 8 4 Implementazione rapida della protezione dell applicazione Fino ad ora in questo capitolo ci siamo occupati in dettaglio della protezione automatica del software A seguire potrete trovare un insieme di passi chiave necessari per implementare rapidamente la protezione della vostra applicazione e Inserire Label e Password della vostra SmartKey ed attivare la protezione basata sulla Memoria e Nel caso di SmartKey NET possibile attivare la protezione Map per controllare le licenze e le esecuzioni della vostra applicazione e Scegliere il file da proteggere nel pannello Applicazione e Scegliere un file Icona se esistente e Scegliere gli eventuali file di dati da proteggere relativ
16. smartlink amp k if k status ST OK printf Error in NET KEY CLOSEMn exit EXIT FAILURE return EXIT SUCCESS Uso della tabella Scrambling Questo esempio usa il file generato per controllare la presenza della chiave SmartKey include include include include include include skeylink h stdio h lt stdlib h gt lt string h gt lt time h gt table h Return a random index in the table 57 unsigned get_scrambling_index void 1 time_t t struct tm ptm unsigned 1 time 8t ptm localtime amp t H Il rand SCRAMBLE_MAX 31 31 i ptm gt tm_mday i SCRAMBLE_MAX H Il return i int main 1 KEY_NET k unsigned i Initialized the random number generator srand time 0 Get the random index in the table i get scrambling index printf Scramble index d n i Do the scrambling k net command NET KEY ACCESS k command SCRAMBLING MODE scramble_in k data 1 smartlink amp k if k status ST_OK printf Error in SCRAMBLING_MODE n exit EXIT_FAILURE Check the scramble if memcmp k data SCRAMBLE 1 LENGTH 0 printf Wrong SCRAMBLING n exit EXIT_FAILURE printf Scramble ok n Close k net_command
17. 4 1 QUALESMARTKEY ADOTTARE 5 PROTEGGERE UN APPLICAZIONE CON 5 1 en oe esten aset en sees 24 51 PROTEZIONE MANUALE oio doeet LL AE LE a es 5 2 PROTEZIONE AUTOMATICA 5 3 UTILIZZARE LA PROTEZIONE MANUALE O LA PROTEZIONE AUTOMATICA 0 0048000 25 6 PROTEZIONE TIN RETE LOCALE sisssscccoscscossssessoicsossossenatesossssossseonetscheisssossesstsesnesesscesosecsesescsodscossecsseseseeneceste 26 6 1 LA PROTEZIONE AUTOMATICA IN RETE LOCALE ii 26 6 2 LA PROTEZIONE MANUALE IN RETE 26 6 3 PROTEZIONE DI PI APPLICATIVI CON SMARTKEY i 26 7 LA STRUTTURA INTERNA DI SMARTKEY 27 7 1 ID CODEREGISTER IL CODICE PERSONALE iii 27 7 2 LABEL REGISTER L ETICHETTA DI IDENTIFICAZIONE E ACCESSO rtr nens 27 73 PASSWORD REGISTER LA CHIAVE ACCESSO AI DATI cscscssssssssesssesesssscssscscscscsssscsssssescscscsusucscsescscsesescscscsescscees 27 7 4 SECURE DATA REGISTER I DATI DELLA MEMORIA NON VOLATILE cri 28 7 5 FAIL COUNTER REGISTER L ALLARME SUGLI ACCESSI ERRATI 8 PROTEZIONE 0 29 8 1 PROTEZIONE AUTOMATICA CON GSS c iii 29 8 2 PROTEZIONE SU PIATTAFORME
18. CEI EN 55022 come richiesto da EN 61000 6 1 CEI EN 61000 6 2 CEI EN 61000 6 3 CEI EN 61000 6 4 che sono specifiche per i seguenti test Test di immunit ESD Test di immunit ai campi EM a radio frequenza irradiati Test di Emissione Irradiata In conformit ai Requisiti Essenziali delle Direttive Europee EMC 89 336 CE e 2004 108 CE CONFORMITA ALLA CEl EN 60529 67 Questa chiave elettronica conforme con requisiti essenziali definiti nella CEI 60529 67 concernenti la sicurezza EN 60529 1991 10 EN 60529 corr 1993 05 EN 60529 A1 2000 02 cos come richiesti dalla direttiva BT FCC Compliance C FCC ID TFC AAI Eutronsec Spa SmartKey Supply 5V DC Absorption 30 mA This device complies with Part 15 of the FCC Rules Operation is subject to the following two conditions 1 this device may not cause harmful interference and 2 this device must accept any interference received including interference that may cause undesired operation NOTE This equipment has been tested and found to comply with the limits for a Class B digital device pursuant to Part 15 of the FCC Rules These limits are designed to provide reasonable protection against harmful interference in a residential installation This equipment generates uses and can radiate radio frequency energy and if not installed and used in accordance with the instructions may cause harmful interference to ra
19. Il presente Contratto di Licenza non Le concede la propriet del Software ma solo un diritto limitato di uso revocabile in conformit con i termini del presente Contratto di Licenza Nessuna disposizione del presente Contratto costituisce una rinuncia da parte di Aladdin ai diritti di propriet intellettuale in base a qualsivoglia legge Registrazioni amp Verifiche Nel corso del presente Contratto di Licenza con l Utente Finale Lei si impegna a conservare le registrazioni e lo schedario relativi a tutte le Attivazioni del Prodotto e delle floating network seats utilizzate attraverso i Suoi servizi Registrazioni Aladdin avr diritto di controllare le sue registrazioni in ogni momento previa comunicazione scritta Ognuna di queste verifiche verr effettuata durante l ordinario orario lavorativo Risoluzione Senza recare pregiudizio a qualsiasi altro diritto Aladdin potr risolvere la presente licenza in caso di violazione da parte Sua di qualsiasi termine del presente contratto In caso di risoluzione da parte di Aladdin Lei accetta di distruggere o di restituire ad Aladdin il Prodotto e la Documentazione e tutte le copie e le parti del medesimo Limitazione di Responsabilit La responsabilit complessiva di Aladdin nei Suoi confronti o nei confronti di qualunque altra parte per qualsivoglia perdita o per danni derivanti da pretese richieste o azioni relative al presente Contratto e o per le controversie giudiziarie aventi ad ogg
20. WINDOWS 585 1 2 40000200000000000000000000000005050000 30 9 3 SS EE OPZIONI COMUN 30 8 3 1 Controllo della presenza della chiave iii 30 8 3 2 Programmazione dei Messaggi di Errore eese eene nee enne innen 30 8 3 3 Crittografia del codice eseguibile 8 3 4 Protezione basata su parametri iii 8 3 5 Messaggio visualizzato in assenza della chiave eese eerte 31 8 3 6 Limitazione del numero di esecuzioni e licenze 31 8 3 7 Crittografia automatica dei file di dati 31 8 3 8 Protezione delle applicazioni sul network ii 8 3 9 Protezione dei file eseguibili in serie 8 4 IMPLEMENTAZIONE RAPIDA DELLA PROTEZIONE DELL APPLICAZIONE PROTEZIONE 22 2 1 tintas enses ceo ninna serio sene nere con een ne 91 MODALIT D ESECUZIONE DEI COMANDI SMARTKEY i 33 02 EOGATINGZ ii ee ea it eec aeterne eter NE BR o 9 2 1 Passaggio parametri 9 3 SCRAMBLING 550 cei b iem e eim Dl rere cbe TT ims 9 3 1 Passaggio parametri 9 4 gt READING 9 4 1 Passaggio parametri 9 5 WRITING MODE UE E EY IN REA ERE D 9 5 1 Passaggio parametri 9 6 BLOCK READING 3 ene urne RE pee ENIM rit 9 6 1 Passaggio parametri 9 7 BLOCK
21. WRITING 43 censere lv e pete EE 9 7 1 Passaggio parametri 9 8 BPXING S ees eite e rever E Ene 9 6 1 Passaggio parametri 9 0 PROGRAMMING 9 9 Passaggio parametri 9 10 COMPARING 9 10 1 Passaggio parametri 9 11 MODEL READING asc Tat Ep ed oix ll E E a ia 9 11 1 Passaggio parametri 9 12 SERIAL NUMBER READING eco pd sk ese EU even ERR TUR ran 42 9 13 EXT MODEL READING 9 14 BIX READING Greed a etu E Coe nU 9 15 FATE COUNTER READING Ee er ROT FU RHOD HE ERU OP RR 44 9 16 AUTENTICAZIONE RA te ee NO Rte eterne rebate erected 44 TOS E TI Tero P n 44 9 16 27 v II e ie 45 9 17 AE dd suites 45 9 18 AES SCRAMBLE oi e 45 9 19 Izd nale 45 9 20 ALCUNI SUGGERIMENTI PER L UTILIZZO DELLE FUNZIONI DI 46 TECNICHE DI PROTEZIONE DEI PROGRAMMI ED 0 47 10 1 EINEE DI GUIDA GENERA LL E Ee REE A 47 10 1 1 10 1 2 10 1 3 10 1 4 10 1 5 10 1 6 10 1 7 10 2 10 2 1 10 2 2 10 2 3 10 2 4 10 2 5 10 2 6 10 2 7 10 2 8 10 2 9 11 PROTEZIONE MANUALE IN Con
22. chiave ma dispone del file oggetto da compilare staticamente con l applicazione per comunicare con il dispositivo Questo package supporta solo la SmartKey 3 USB ela SmartKey 3 USB DL 13 4 2 Linux user level Il package user level lpt non richiede l installazione di nessun driver per l accesso alla chiave ma dispone del file oggetto da compilare staticamente con l applicazione per comunicare con il dispositivo Questo package supporta solo la SmartKey Parallela ed amp necessario avere i privilegi di root per l accesso al dispositivo 13 4 3 Utilizzo delle API per Linux I prototipi delle API si trovano in clink h A seconda del package utilizzato disponibile un file oggetto da compilare staticamente con la propria applicazione Non possibile fare il link dinamico Consultare il file LEGGIMI allegato al package per maggiori informazioni 13 5 Installazione di SmartKey sotto Mac OS X In Mac OS X sono supportate le chiavi SmartKey 3 USB e SmartKey 3 USB DL Non richiesta l installazione di nessun driver per l accesso al dispositivo SmartKey disponibile una libreria statica e una dinamica per l accesso al dispositivo SmartKey Per l installazione della libreria dinamica disponibile un package per l installazione automatica Sono disponibili versioni delle librerie sia per applicazioni per Mac OS X PPC che per applicazioni Universal Mac OS X PPC e Mac OS X Intel Il package da utilizzare la Mac OS X disk image smartkey sdk ma
23. dei comandi per mantenere un tabulato della presenza della chiave grazie all opzione Abilita il controllo periodico della presenza della chiave SmartKey Questa garantisce agli utenti che la chiave sia presente durante l intera esecuzione del programma protetto L opzione di controllo periodico impedisce anche agli utenti di rimuovere la chiave dopo l avvio dell applicazione In sua assenza l applicazione protetta continuerebbe a lavorare poich non sarebbe inoltrata nessuna richiesta di controllare la presenza della chiave 8 3 2 Programmazione dei Messaggi di Errore SmartKey consente agli utenti di personalizzare messaggi di errore che sono visualizzati in particolari condizioni Utilizzando questa funzione possibile definire i messaggi d errore di proprio gradimento Le condizioni per le quali possibile programmare i messaggi d errore sono le seguenti e La chiave SmartKey non presente e Il codice di programma stato alterato L elenco dei messaggi che si possono programmare dipende sia dal modello di SmartKey sia dal carattere di Configurazione della Protezione Anche l utility GSS suggerisce alcuni messaggi di default per ciascuna situazione d errore elencata sopra 8 3 3 Crittografia del codice eseguibile Di default GSS crittografa completamente il file originale in modo tale che il nuovo file eseguibile sia completamente crittografato Questo difende il programma dagli attacchi degli hacker perch virtualmente
24. di generare chiavi totalmente personalizzate e non pi alterabili sono pertanto dissuasi i tentativi di alterazione del contenuto al fine di variare ad esempio priorit di accessi a banche dati oppure di abilitare moduli software non previsti E opportuno che l operazione Fixing non sia effettuata durante la fase di test perch altrimenti non potrete pi programmare la chiave Consigliamo quindi che solo nella fase finale di implementazione della protezione sia valutata l opportunit o meno di fissare i contenuti programmati nella chiave E importante tenere conto che le funzionalit aggiuntive che coinvolgono la scrittura della memoria non saranno pi disponibili Questo comando non pu essere eseguito in rete ma solo con la chiave usata localmente Lo scambio di informazioni cosi organizzato Models EP SP XM NET Input COMMAND P LPT Porta LABEL Label PASSWORD Password DATA Dati contenuti sulla chiave EXP_DATA Dati estesi contenuti sulla chiave solo per modelli SP XM e NET Output STATUS Stato 0 Successo 0 Errore Tabella 19 Parametri per il comando Fixing Il Fixing della memoria eseguito soltanto se i parametri inviati Label Password e Secure Data coincidono con il contenuto dei rispettivi registri 981 Passaggio parametri Parametri da trasferire per eseguire un operazione di Fixing con chiave sulla porta parallela LPT1 con invio dei campi label password e data e confronto con il cont
25. gt include lt windows h gt Serial unsigned char serial 16 0x39 Ox9d 0x81 0xd0 Ox6f 0x78 0x94 0x41 Oxfe 0x71 Oxal 0x21 Oxd4 Oxel 0x6d 20 AES keys unsigned char aeskey 16 20 0x27 Oxel Ox4e Oxf4 0x82 0x1d 0xa2 Oxbd Oxee 0xc7 Oxd2 0x50 Oxel 0x37 0x66 stripped 0x57 Ox4b 0x21 0x94 0x82 0x38 0x68 0xf8 Oxf8 0x54 0x38 0 1 0x6d 0x05 0x70 0x39 int main 59 SKEY_DATA key printf SmartKey memset amp key 0 strncpy key label key command msclink amp key if key status MB_SYSTEMMODAL exit 1 ES example n sizeof key SMARTKEY EL LOCATING MODE 0 MessageBox NULL key command msclink amp key if key status exit 1 0 4 MessageBox NULL MB_SYSTEMMODAL Fl EXT_MODEL_READING_MODE if key data 3 0x1 0 MessageBox NULL Error MB_ICONERROR MB_SYSTEMMODAL exit 1 if MB_YESNO exit 1 MessageBox NULL Warning MB_ICONWARNING memcpy key ext data serial 16 memcpy key ext_data 16 aeskey key command AES_SET_MODE msclink amp key if key status 0 MessageBox NULL note that you can set them ONLY ONE MB_SYSTEMMODAL MB_ICONINFORMATION ex
26. i prototipi delle funzioni sono contenuti in skeyinst h e le funzioni in skeyinst dll La libreria pu essere usata sia per scrivere programmi sia per scrivere script di setup delle installazioni Le funzioni della libreria sono SkeyInstallUSB Installa i driver per SmartKey USB SkeyInstallPar Installa i driver per SmartKey Parallela SkeyInstallGSS2 Installa i driver per Global Security System SkeyUnInstallUSB Disinstalla i driver per SmartKey USB SkeyUnInstallPar Disinstalla i driver per SmartKey Parallela SkeyUnInstallGSS2 Disinstalla i driver per Global Security System SkeyForceUnInstallUSB Forza la rimozione dei driver per SmartKey USB SkeyForceUnInstallPar Forza la rimozione dei driver per SmartKey Parallela SkeyForceUnInstallGSS2 Forza la rimozione dei driver per Global Security System SkeyLogFile Attiva la scrittura di un file di log di tutte le operazioni effettuate SkeyGetLastError Ritorna l ultimo codice d errore Le funzioni d installazione SkeyInstallUSB SkeyInstallPar e SkeyInstallGSS2 controllano automaticamente lo stato dei driver prima di eseguire l installazione Per la creazione di script d installazione e disinstallazione vivamente consigliato non usare le funzioni SkeyForceUnInstallUSB SkeyForceUnInstallPar e SkeyForceUnInstallGSS2 Queste funzioni sono state implementate solo per risolvere situazioni anomale e non per l utilizzo normale 70 E
27. il programmatore lo ritiene pi opportuno La SmartKey disponibile in due versioni e SmartKey Parallela la SmartKey si collega al computer tramite la porta parallela e SmartKey USB la SmartKey collegata al computer tramite la porta USB Entrambe i modelli sono piccoli e occupano poco spazio meno di una scatola di fiammiferi L uso di SmartKey Parallela non pregiudica l uso della porta parallela per la stampante Infatti alla SmartKey Parallela si possono collegare altre SmartKey Parallele e il cavo della stampante o di un qualsiasi altro dispositivo che usa la porta parallela Pi SmartKey USB possono essere collegate al sistema usando hub USB L uso di SmartKey non rallenta il sistema n crea conflitti hardware o software con altri dispositivi e applicativi martKey Parallela deve essere inserita nella porta parallela e collegata agli altri dispositivi prima dell accensione del computer SmartKey USB invece essere inserita o tolta anche durante il funzionamento del computer A livello d applicativi l uso dei due tipi di SmartKey uguale un programma protetto con una SmartKey Parallela pu essere usato con una SmartKey USB e viceversa senza fare alcuna modifica al software La gestione hardware dei due tipi di SmartKey completamente delegata ai driver forniti I dispositivi SmartKey sono disponibili in cinque modelli differenti che si distinguono per le funzionalit offerte e SmartKey FX Fixed Con algoritmi e cod
28. installazione 69 Installation Log Fallimento Controlla il log per identificare il problema SkeyError GetLastError SKEYINST ERROR FAI 2 Log install 3591 InstallLoglnit Version Jan 10 2006 install 3592 Started 02 14 06 11 48 37 install Call 77MM install 109 LogOpen call setup update init install 115 LogOpen call setup is wowB4 instal 121 LogOpen call setup wowB4 redirection disable install 2180 SkeyProbe enter code 1 install 4933 setup is installed LISB Vid O73d amp Pid 0025 install 68 setup probe USB Vid_073d amp Pid_0025 install 143 setup probe found install 143 setup probe found install 143 setup probe found install 143 setup probe found install 321 setup probe leave Cancel Figura 3 Pop up con log e numero di errore del sistema operativo Normalmente le funzioni da utilizzare sono solo nstalla e Disinstalla La funzione Elimina deve essere usata solo se si presentano problemi nell esecuzione delle altre funzioni La funzione Elimina rimuove ogni riferimento dei driver SmartKey dal sistema rendendo possibile il recupero di tutte quelle condizioni di errore che possono presentarsi durante l installazione di un driver L uso di Elimina richiede sempre il reboot del sistema 13 3 La libreria SDI Le funzioni usate per il programma SDI sono contenute nella libreria skeyinst dll messa a disposizione nel kit di sviluppo fornito Pi precisamente
29. memoria in una SmartKey con attivato il flag di Fixing della memoria ST_LABEL_FAILED 3 La LABEL utilizzata 6 errata A seconda del comando del modello di SmartKey pu essere ritornato questo errore ST_NONE_KEY ST_PW_DATA_FAILED 4 La PASSWORD utilizzata errata ST_HW_FAILURE 20 Un controllo di integrita sul dispositivo hardware fallito 9 20 Alcuni suggerimenti per l utilizzo delle funzioni di SmartKey Un utilizzo combinato delle funzioni elencate consente la messa a punto di criteri di protezione di elevata sicurezza e flessibilit Riteniamo comunque opportuno indicare alcuni suggerimenti minimi per un implementazione sicura della protezione e Utilizzare sempre la modalit Locating per individuare la presenza della chiave ci vi consentir di rendere l applicativo indipendente dalla porta parallela sulla quale installata SmartKey e Utilizzare in diversi punti del programma la modalit Scrambling con valori differenti o ancora meglio la modalit AESScrambling Se l esito dei confronti con sar positivo sarete certi che nel PC installata una chiave col vostro d Code e Seutilizzate chiavi programmabili effettuate in diversi punti del programma un operazione di Reading potrete confrontare i valori letti con quelli attesi ed assicurarvi che il software che sta funzionando e effettivamente autorizzato grazie alla particolare programmazione della chiave SmartKey presente Il capitolo 10 in
30. non di tipo NET il numero di colonne limitato a due N applicazione e N esecuzione Con il pannello Map si possono fare due tipi di configurazione quella per la gestione del numero di esecuzioni e quella per la gestione del numero di licenze se si usa una SmartKey NET Di seguito sono mostrate le operazioni da compiere per le due configurazioni Configurazione SmartKey per la gestione del numero di esecuzioni e Inserire nella colonna di esecuzione il numero massimo di esecuzioni sulla riga corrispondente all applicazione Il valore pu variare tra 1 e 65 535 Il valore 1 interpretato da SmartKey come Infinite esecuzioni e Non mettere nessun valore nella colonna N di licenze Questa colonna 8 visualizzata solo se si sta configurando una SmartKey NET e Sistemate tutte le applicazioni premere il pulsante Scrivi per scrivere su SmartKey i valori della configurazione Configurazione SmartKey per la gestione del numero di licenze Solo per SmartKey NET e Inserire nella colonna di esecuzione il valore 1 sulla riga corrispondente all applicazione e Inserire nella colonna di licenze numero di licenze sulla riga corrispondente Il numero pu variare tra 0 e 50 e Sistemate tutte le applicazioni premere il pulsante Scrivi per scrivere su SmartKey i valori della configurazione 80 Elenco SmartKey Identificazione Scrambling Contenuto Programmazione Fix
31. per lo scrambling tra PC e SmartKey La funzione Scrambling usa il campo data solo come variabile d appoggio per lo svolgimento delle proprie operazioni e non modifica il contenuto della memoria della SmartKey Per l esecuzione di un comando occorre Dichiarare una variabile di tipo struttura con i campi SmartKey Riempire i campi della variabile con i valori richiesti dal comando In particolare deve essere impostato il campo command con comando da eseguire e ogni altro campo necessario all esecuzione del comando stesso e Chiamare la funzione definita nel driver SmartKey passando come argomento la variabile struttura nome della funzione e la modalit di passaggio della struttura dipendono dall ambiente di sviluppo utilizzato Generalmente la funzione chiamata msclink e la variabile passata per indirizzo e non per valore e Leggere dal campo status il risultato del comando e ogni altro valore di output Nell SDK SmartKey sono presenti esempi per i principali ambienti di sviluppo Riferirsi al file leggimi txt di ogni esempio per maggiori dettagli su come utilizzare il driver SmartKey in quello specifico ambiente Nel caso si voglia utilizzare un ambiente di sviluppo diverso da quelli esplicitamente supportati comunque possibile utilizzare direttamente le librerie disponibili se il linguaggio utilizzato in grado di importare librerie esterne statiche in formato OBJ LIB o dinamiche in formato DLL 9 2 Locat
32. propriet intellettuale di valore La pirateria informatica si manifesta in diversi modi Di seguito sono spiegati alcuni casi e Furto del software significa comprare una singola licenza e caricare il software su pi computer contrariamente alle clausole del contratto e Upload e download rendere disponibili copie non autorizzate del software ad utenti collegati con modem ad un provider o ad Internet e Contraffazione del software duplicare illegalmente il software e venderlo facendolo apparire come originale OEM unbundling vendere software originariamente standalone facendolo passare come parte integrante del proprio hardware e Hard disk loading installazione illegale su hard disk dei personal computer spesso come incentivo per gli utenti finali a comprare l hardware da un particolare rivenditore di hardware e Noleggio vendita non autorizzata di software per uso temporaneo come si noleggiasse una videocassetta 14 Esistono anche diverse tipologie di pirati informatici e Rivenditori che vendono hardware con software illegale preinstallato e Aziende che usano copie non autorizzate del software per uso interno e Persone che guadagnano contraffacendo il software e Una qualsiasi persona che fa una copia illegale di un programma di un altra persona 2 4 Storia dei sistemi di protezione del software Durante gli anni settanta la maggior parte del software era di propriet di uno specifico ambiente commerciale
33. proteggersi dai pirati informatici che alterano e distribuiscono il software ad utenti senza licenza e senza registrazione D altra parte i mancati guadagni dovuti alla pirateria hanno un effetto a catena con il risultato di minori ritorni economici per gli sviluppatori i dipendenti e tutti coloro che lavorano nel settore dell informatica Questo mette un punto di domanda sulla disponibilit ulteriori fondi per la ricerca e lo sviluppo per il pagamento di sviluppatori qualificati e perfino per il marketing di nuovi prodotti Un altra ragione per cui la pirateria diventata cosi diffusa che la falsificazione di questo tipo di propriet intellettuale permette la produzione di copie perfette e funzionali A questo si aggiunge la possibilit di grandi profitti dalla vendita illecita di software Mentre i singoli paesi hanno differenti livelli di pirateria la Business Software Alliance BSA ha reso noto che nel 2005 circa il 40 del software in uso nel mondo era pirata Questo ha portato in quello stesso anno alla perdita di beni per oltre 10 miliardi di dollari Negli Stati Uniti BSA stima che nel 2005 il 2596 del software fosse pirata Leggi lassiste e l assenza di volont politica nei paesi in via di sviluppo di prevenire la pirateria hanno solo peggiorato il problema 22 Ragioni commerciali per proteggere il software La pirateria ha messo gli sviluppatori di software sulla difensiva I dirigenti considerano nei loro business plan
34. protezione manuale il meccanismo che consente la massima flessibilit e sicurezza La spiegazione delle funzionalit atomiche delle API contenuta nel capitolo 9 Un utilizzo naif delle API tuttavia non sufficiente a garantire che programmi protetti con SmartKey realizzino un adeguato livello di sicurezza Occorre avvalersi anche di tecniche di protezione descritte nel capitolo 10 che suggeriscono strategie di protezione robuste La lettura del capitolo 10 fortemente consigliata anche una sola apparentemente innocua strutturazione del codice pu vanificare tutto il lavoro di protezione se essa espone elementi critici per la sicurezza Un semplice esempio bisogna evitare che la password sia memorizzata su hard disk in chiaro o che sia trasmessa in chiaro tra server e client Le API sono disponibili per Linux Mac OS X e Windows e la loro sintassi identica per tutti e tre i sistemi operativi Questo rende veloce e semplice il porting delle porzioni di codice relative alla protezione del proprio programma da un sistema operativo all altro 5 2 Protezione automatica Con protezione automatica s intende la possibilit di automatizzare completamente la procedura di protezione di un file eseguibile senza dover intervenire manualmente nella struttura del programma originario sollevando il programmatore da un lavoro talvolta impegnativo utilizzata a questo scopo la tecnologia proprietaria Global Security System GSS che implement
35. register non sono alterati 9 7 1 Passaggio parametri Parametri da trasferire per eseguire un operazione di BlockWriting su una chiave presente sulla porta parallela richiesta la scrittura di 10 word 000A hex 20 byte a partire dalla prima word 0000 hex indirizzo 0 Si ricorda che nella struttura di passaggio parametri i primi due byte del campo data sono riservati all indirizzo della prima word da scrivere i successivi due byte contengono il numero di word dal quinto byte in poi sono contenuti i byte da scrivere LPT 01 00 Porta COMMAND 46 00 Fixing Mode 38 LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 PASSWORD 45 55 54 52 4E 00 00 Password EUTRON 00 00 00 00 00 00 00 00 DATA 0B 00 0F 00 XX XX XX XX Address Number of Words and Data XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX Tabella 18 Scambio di informazioni per il comando BlockWriting 9 8 Fixing Fissare i dati significa rendere i registri Label Password e Secure Data non pit riprogrammabili possibile in pratica congelare i dati preventivamente programmati Dopo aver eseguito la modalit di Fixing non pi possibile cambiare in alcun modo il contenuto di SmartKey La modalit di fissaggio dei dati disponibile unitamente al Fail Counter solo sui modelli EP SP XM e NET La possibilit di fissare i dati permette alla software house
36. utenti contemporanei potranno utilizzare l applicativo NET COMMAND 4F 00 Open O LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 PASSWORD 45 55 54 52 4E 00 00 Password EUTRON 00 00 00 00 00 00 00 00 DATA 4D 41 02 Map 2 applicazione Tabella 42 Esempio impostazione Open Mode Map 68 13 Installazione di SmartKey L installazione dei driver SmartKey eseguita dall applicazione SmartKey Driver Installer SDI SDI permette di installare disinstallare tutti 1 driver necessari al corretto funzionamento di SmartKey i driver per SmartKey Parallela quelli per SmartKey USB e quelli per Global Security System GSS il programma per la protezione automatica Si ricorda che se si sta utilizzando una SmartKey 3 USB DL Driver Less non necessario installare nessun driver Inoltre possibile integrare nel pacchetto d installazione del proprio programma le procedure d installazione di SmartKey grazie alle librerie fornite nel kit di sviluppo fornito Le funzioni possono essere integrate con i principali software che generano pacchetti di distribuzione come InstallShield 13 1 Avvertenze per l installazione SmartKey USB pu essere inserita e tolta mentre il computer funzionante come previsto dallo standard USB SmartKey Parallela deve essere inserita prima di accendere il computer e la stampante collegata in cascata In caso contrario sia Smart
37. 0 00905 467 5778701 86032537 7 83962 1C3E 2967806047053 E1454B4F2E83B737AF493878028FF3D7 BA amp F230020D121FF862C82643177600C 7A36498FA82344BA2CFD 35581AD8FB9E 048 68055441 0 041926 830095158 0961 6C3280ED806B15B82E792992 438 eso 28D 342BB543CD137329FDEC1434B D9FCFC747994E 9D 7E S856E C2FA7544C Figura 18 Pannello Dati Clienti Il pannello per l impostazione della configurazione I campi di configurazione sono i seguenti e cliente il nome del cliente a cui la SmartKey destinata e Label Label della SmartKey e Password Password della chiave Nella tabella dati sono visualizzate le celle di memoria 84 e Fissa dopo la scrittura Se si seleziona l opzione la scrittura della configurazione su SmartKey sar indelebile La scelta dell opzione visibile anche dalla tabella centrale del pannello configurazione Se FIX uguale a 1 significa che l opzione Fissa dopo la scrittura stata selezionata se uguale a 0 significa che l opzione stata selezionata e Imposta AES selezionare questa opzione significa scrivere le chiavi AES e il seriale AES all interno della SmartKey Le chiavi e il seriale AES sono utilizzati per l autenticazione AES vedi capitolo 9 16 e una volta impostati non sono pi modificabili La scelta dell opzione visibile anche dalla tabella centrale del pannello configurazione Se AES uguale a 1 significa che l opzione
38. 17 3 SmartKey 2 Parallela Numero di scritture 100 000 tipico Memorizzazione dei dati 10 anni tipico Dimensioni della chiave 48 x 52 x 15 mm Interconnessione porta parallela standard Centronics Connettore lato computer D type 25 poli maschio Connettore lato stampante D type 25 poli femmina Alimentazione autoalimentata da porta parallela Expected MTBF 2 800 000 ore Temperatura di funzionamento 0 70 C 32 158 F Umidita 20 80 umidita relativa 17 4 SmartKey 3 USB SmartKey USB DL Numero di scritture 100 000 tipico Memorizzazione dei dati 10 anni tipico Interconnessione USB 2 0 LowSpeed Connettore USB Male Type A Alimentazione autoalimentata da porta USB Expected MTBF 3 000 000 ore Temperatura 20 80 C Umidita 20 95 umidita relativa 87
39. ANZIA i Qualora Lei apporti modifiche al Software o ad una qualunque altra parte del Prodotto durante il periodo di garanzia ii qualora i supporti SMARTKEY e SMARTPICO siano oggetto di incidente abuso od uso improprio iii o qualora Lei violi i termini del presente Contratto allora la Garanzia di cui alla Parte 2 paragrafo 3 di cui sopra cesser immediatamente Non si applicher la garanzia qualora il Software venga utilizzato insieme ad un hardware o ad un programma diverso dalla versione dell hardware e del programma con cui il Software dovrebbe essere utilizzato come descritto nella guida di SMARTKEY e SMARTPICO Limitazione di tutela In caso di violazione della suddetta garanzia il solo obbligo di Aladdin e la Sua unica tutela sar a sola discrezione di Aladdin i sostituire o riparare gratuitamente il Prodotto o il Suo componente che non soddisfa la precedente garanzia limitata o ii restituire il prezzo pagato per il Prodotto o per il suo componente Ogni sostituzione o componente riparato verr garantito per il restante periodo di garanzia originale o per 30 giorni indipendentemente da quale dei due periodi sia lungo Reclami relativi alla garanzia devono essere inoltrati per iscritto entro sette 7 giorni dalla scoperta del difetto ed accompagnati da elementi di prova adeguati Tutti i Prodotti dovrebbero essere restituiti al distributore da cui sono stati acquistati qualora non siano stati acquistati d
40. Correct serial Information MB ICONINFORMATION MB SYSTEMMODAL return 0 62 11 Protezione manuale in rete SmartKey NET supporta comandi standard del modello SP e un set di comandi asserviti alla rete Open ACCESS CLOSE e USER NUMBER Tutte le funzioni spiegate paragrafi successivi sono state usate nel programma per Windows smartdem c che si trova nelle directory Sdk Manual_Protection Client_Windows_Libraries_And_Examples GenericWin32DIll e Sdk Manual_Protection Client_Windows_Libraries_And_Examples GenericWin32Obj Il programma pu essere compilato con un qualsiasi compilatore C 11 1 Open Mode La modalit Open utilizzata dall utente per attivare la comunicazione con SmartKey L operazione di Open deve essere effettuata prima d ogni operazione di accesso alla memoria della chiave Il comando Open genera una speciale password denominata Net Password che deve essere utilizzata in tutti i successivi comandi Nel primo byte del campo data riportato il tipo di protocollo usato nella connessione Se si vuole prevenire l utilizzo del protocollo LOCAL sufficiente controllare questo byte Generalmente questo utile per forzare l utilizzo del Server SmartKey per la sua gestione delle licenze Per utilizzare questo comando con la protezione necessario specificare il codice di applicazione Map nel campo Data come descritto nel capitolo riguardante il Map Lo scambio di informazioni cosi organizzato
41. Data Output FAIL_CTR Fail Counter STATUS Stato gt 0 Successo numero della porta su cui si trova la chiave lt 0 Errore Tabella 23 Parametri per il comando Comparing Lo campo status indica se l operazione andata a buon fine ritornando il numero di porta o un valore minore di 0 in caso d errore 9 10 1 Passaggio parametri Parametri da trasferire per eseguire un operazione di Comparing con ricerca della chiave su tutte le porte parallele presenti COMMAND 50 00 Comparing C LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 PASSWORD 45 55 54 52 4F 4E 00 00 Password EUTRON 00 00 00 00 00 00 00 00 DATA 53 45 43 55 52 49 54 59 Data SECURITY DATA 20 44 41 54 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Tabella 24 Scambio di informazioni per il comando Comparing Se la chiave trovata su una qualunque delle porte presenti nel sistema e coni valori di Label Password e Secure Data corretti la variabile di status assumer al termine dell operazione il valore 1 2 o 3 in funzione della LPT 4l 9 11 Model Reading La funzione ModelReading permette di identificare il modello della SmartKey inserita Si tratta di una funzione accessoria che essere utilizzata ad esempio per attivare un comportamento diverso per pacchetti sof
42. IALI PER PROTEGGERE IL 2 3 PIRATERIA UNA ROVINA PER L INDUSTRIA DEL SOFTWARE 2 4 STORIA DEI SISTEMI DI PROTEZIONE DEL SOFTWARE iii 2 5 SMARTKEY INTRODUCE UNA NUOVA ERA NELLA PROTEZIONE DEL SOFTWARE iii 15 3 INTRODUZIONE SMARTKEY aono en pee goa ee oues euo eee ara ee Se 16 rad oit OS oot et e tU caus a certe tene Ded ia 17 3 20 QUALI SONO LE CARATTERISTICHE DI SMARTKEY ii 17 3 3 COME FUNZIONA SMARTRKEYV Pi A AE 18 3 4 QUANTO TEMPO SERVE PER PROTEGGERE UN APPLICAZIONE ci 18 3 5 QUAL IL GRADO DI SICUREZZA DI 5 2 i 18 3 6 APPLICATIVI PER inire ER en ue e e e ERES 18 3 71 SMARTKEY PERLINUX EMACOSX rita appe a e e en an eA ed 19 3 8 GETTING STARTED 3 8 1 Installazione 4 TMODELLIDISMARTKNENY eren inen ehe e n eoe eno sno ae Ves eni eeu da eonun e aene nara 20 Ln ME D quer CEPR EE 20 2 25 DRE a Raten E tte A cx Nt uc oma EU cedri i eL RES a 20 4 3 Ep 20 44 SPEXM UI 21 4 N e 4 6 COMPARAZIONE DEI MODELLI SMARTKEY ii
43. IANO IN RELAZIONE ALLA GIURISDIZIONE L intero rischio legato alla qualit e alla prestazione del Prodotto a Suo carico La presente esclusione di garanzia costituisce un parte essenziale del contratto Qualora Lei abbia inizialmente acquistato una copia del Prodotto senza acquistare una licenza e desidera acquistare una licenza contatti Aladdin o un qualunque rappresentante Aladdin PARTE Il NORME APPLICABILI QUANDO VIENE CONCESSA UNA LICENZA Concessione di Licenza A seguito del pagamento da parte Sua dei canoni di licenza applicabili al tipo ed alla quantit di licenze da Lei acquistate ed indicate nel Suo ordine di acquisto Aladdin con il presente contratto Le concede e Lei accetta una licenza personale limitata non esclusiva e interamente revocabile per utilizzare il Software secondo la definizione del termine contenuta nella Parte III di cui sotto nel paragrafo Propriet Intellettuale nella sola forma eseguibile come descritta nella documentazione di accompagnamento del Software per l utente e solo secondo i termini del presente Contratto i Lei potr installare il Software ed utilizzarlo su computer ubicati nel suo posto di lavoro come descritto nella relativa documentazione di Aladdin ii Lei potr integrare e collegare il Software con i programmi del Suo computer per il solo scopo descritto nella Guida di SMARTKEY e SMARTPICO comunque qualunque parte del Software confluita in un altro programma verr consider
44. Imposta AES stata selezionata se uguale a 0 significa che l opzione non stata selezionata I valori di Nome Cliente Label e Password possono essere visualizzati in formato ascii o esadecimale selezionando i pulsanti Ascii e Hex I valori di Dati possono essere visualizzati in formato decimale o ascii o esadecimale selezionando i pulsanti Dec Ascii e Hex 16 9 Pannello AES Scrambling Il pannello AES Scrambling permette di autenticare la chiave utilizzando l algoritmo AES a 128 bit anzich il comando Scrambling Questo pannello visualizzato solo se le chiavi AES sulla SmartKey sono state impostate Per eseguire l autenticazione necessario utilizzare il comando AES SCRAMBLE e la decrittografia AES Il comando AES SCRAMBLE necessita in ingresso di una stringa di 16 byte casuali e dell indice della chiave AES presente sulla SmartKey che si vuol utilizzare per l autenticazione L applicativo deve conoscere il valore della chiave AES perch deve decrittografare il risultato ottenuto dalla ABS SCRAMBLE Dopodich i dati decrittografati devono eseguire l operazione di XOR con i dati casuali gi utilizzati in ingresso al comando AES SCRAMBLE Se il valore ottenuto uguale al numero seriale AES l autenticazione della chiave SmartKey si conclusa con successo Maggiori dettagli sull autenticazione AES sono illustrati nel capito 9 16 La figura 19 visualizza i dati e l esito di un autenticazione AES SmartKey Programming Central NE
45. Interfacciamento al software SmartKey utilizzabile con i principali ambienti di sviluppo e sistemi operativi Tra cui Windows98 Windows Me Windows NT Windows 2000 Windows XP Windows 2003 Windows Vista Linux Mac OS X AutoCAD e Autoalimentazione non usa batterie interne n necessita di un alimentazione esterna e Dimensioni ridotte Le dimensioni esterne sono molto contenute e adatte anche per applicazioni con notebook e laptop 17 e Impilabilit solo per SmartKey Parallele Pi dispositivi SmartKey Parallele possono essere impilate sulla medesima porta parallela con una connessione in cascata daisy chain Questa caratteristica non stata implementata nella SmartKey USB perch il protocollo USB stesso permette di collegare in cascata dispositivi tramite HUB USB Trasparenza solo per SmartKey Parallela SmartKey Parallela non sottrae l uso della porta parallela perch passante In cascata alla chiave essere connessa la stampante o la maggior parte delle numerose periferiche per porta parallela adattatore di rete adattatore SCSI harddisk portatile altre chiavi di protezione etc L unico vincolo che SmartKey Parallela e i dispositivi ad essa connessi vanno installati prima di accendere il computer 3 8 Come funziona SmartKey Il principio d utilizzo di SmartKey consiste nella sua inserzione nella porta parallela o nella porta USB del PC e nel controllo della sua presenza da parte del softw
46. Key Parallela sia la stampante potrebbero non funzionare correttamente 13 2 Opzioni di SmartKey Driver Installer SDI SDI mette a disposizione tre opzioni per i tre tipi d installazione e disinstallazione SmartKey Parallela SmartKey USB e Global Security System La figura 2 mostra interfaccia grafica per la SmartKey USB che uguale a quella per SmartKey Parallela e Global Security System Smartkey Driver Installation Parallela USB 655 In questo pannello possibile installare il driver per la SmartKey USB Installa o aggiorna il driver per la SmartKey USB Disinstalla Disinstalla il driver per la SmartKey USB Forza la rimozione del driver della SmartKey USB Elimina Un reboot della macchina amp sempre richiesto Usare questo comando solo per recuperare un installazione errata Status Installato Versione 1 420 Aggiorna OK Cancel Apply Figura 2 L interfaccia grafica di SDI per la SmartKey USB L interfaccia grafica di SDI mette a disposizione tre opzioni e Installa installa i driver del selezionato e Disintalla disinstalla i driver del tipo selezionato e Elimina disinstalla i driver senza controllare eventuali dipendenze Se l installazione non va a buon fine DI apre un pannello in cui mostra dettagliatamente le operazioni che sono fallite e il numero dell errore del sistema operativo La figura 3 mostra un esempio di up dovuto al fallimento di un
47. LABELOLD 40 00 00 00 00 00 00 00 00 Tabella 22 Scambio di informazioni per il comando Programming Se la chiave trovata sulla porta indicata i valori di Label e Password sono trasferiti alla chiave mentre il registro Secure Data nella chiave sono azzerati automaticamente La Label corrente utilizza i primi 16 byte del campo data normalmente utilizzati per il trasferimento dei Secure Data 9 10 Comparing Per rendere pi semplice l utilizzo delle chiavi a chi per la prima volta si avvicina alle tecniche di protezione del software stato introdotto il Comparing mode Si tratta del meccanismo pi semplice per utilizzare le chiavi SmartKey di tipo programmabile stand alone cio i modelli PR EP SP e XM Esso consente di effettuare la verifica automatica su tutte le porte del sistema della presenza di una chiave di protezione con Label Password e Secure Data assegnati ottenendone un informazione che indica se la chiave presente e su quale porta Il Comparing pertanto un estensione della modalit di Locating valida solo per le chiavi programmabili Pu essere utile nelle applicazioni ove e sufficiente una verifica della presenza della chiave senza la necessit di aggiornarne il contenuto tramite operazioni di riscrittura dei Secure Data Lo scambio di informazioni cosi organizzato Models PR EP SP XM Input COMMAND Label PASSWORD Password DATA
48. LONE O MULTILAN 65 12 PROTEZIONE DI PI APPLICATIVI CON SMARTKEY ssssssssssssssesssesssssssssessecsseesssecsscessnecaneceseesseees 66 12 1 LE MODALITA OPERATIVE silla ii ANR 66 12 2 PROGRAMMAZIONE DEL NUMERO DI LICENZE E DEL NUMERO DI 0 66 12 3 LA PROTEZIONE AUTOMATICA MAP 12 4 LAPROTEZIONE MANUALE 12 4 1 Open Mode unesempi0 iii 13 INSTALLAZIONE DI SMARTK BEY tree eene 69 13 1 AVVERTENZE PER L INSTALLAZIONE eene esee teer eee ak A 69 13 2 OPZIONI DI SMARTKEY DRIVER INSTALLER SDI i 69 13 3 LA LIBRERIA SDI 13 4 INSTALLAZIONE DI SMARTKEY SOTTO LINUX 13 41 Dinux user level usb ise se atas ane ee en a cee ca ARAN 71 134 2 Eimux userlevel Ipi ob E 71 13 4 3 Utilizzo dele API per Linux e er eit ERE Eth RUE EORR e hen 71 13 5 INSTALLAZIONE DI SMARTKEY SOTTO MAC OS X 71 13 5 L Utilizzo delle API per Mae OS X RH REPE 71 14 INSTALLAZIONE DI SMARTKEY IN 2 1 110101 72 14 1 PROTOCOLLO TCPIDP iaia E RU aba 72 14 2 PROTOCOLEQUANP 24 eR a AESA 72 14 3 INSTALLAZIONE
49. LOSE return EXIT SUCCESS 10 2 4 Esempio 5 Controllo del checksum DLL Questo esempio mostra come calcolare e controllare un semplice checksum del file smartlink dll tinclude lt stdio h gt tinclude lt stdlib h gt tinclude lt string h gt int main ye ef FILE int unsigned checksum Initialize the checksum checksum 0 Compute the checksum of the DLL fopen skeylink dll rb Lf CLEN A printf Error opening the DLL n exit EXIT_FAILURE c fgetc f while c EOF checksum c fgetc f fclose f printf DLL checksum 08X n checksum if checksum 0x007ffcf1 printf Error invalid checksumin exit EXIT_FAILURE 53 return EXIT_SUCCESS 10 2 5 Esempio 6 Nascondere le informazioni Label e Password Questo esempio mostra come nascondere le informazioni Label e Password utilizzando un semplice algoritmo di mascheramento Questo algoritmo deve essere usato per evitare che dal file eseguibile si possa risalire a Label e Password rendendo vani tutte le protezioni di SmartKey include skeylink h include lt stdio h gt include lt stdlib h gt include lt string h gt Hidden values static unsigned char hidden label LABEL LENGTH 0x09 Ox2f 0x2d 0x2a 0xd2 Oxdd Oxed Oxe5 0xd2 Oxea 0x04 0x20 Ox5e 0x80 0xa4
50. Multi Application Protection SmartKey NET consente anche di e Proteggere pi applicativi diversi operanti in rete fino 116 e Limitare per ogni applicativo protetto il numero massimo di utenti che contemporaneamente possono utilizzare l applicativo in modo da porre sotto controllo le licenze d utilizzo Ad esempio PROGI pu essere abilitato per 12 licenze PROG2 per 27 PROG3 per un numero di licenze illimitato etc e Limitare il numero di esecuzioni di ciascuno dei programmi protetti Questa caratteristica pu rivelarsi utile qualora si debbano creare versioni demo del software o si desideri adottare la politica del software a noleggio consentendo all utente un numero d esecuzioni prestabilito 6 1 La protezione automatica in rete locale Oltre agli applicativi funzionanti in modalit standalone GSS in grado di proteggere anche gli applicativi di rete L utilizzo del programma protetto assolutamente trasparente all utente finale che utilizzare sia una chiave locale sia una di rete GSS inizialmente ricercher la chiave sulle porte locali e qualora la ricerca dovesse continuer tentando la comunicazione con una chiave di rete 6 2 La protezione manuale in rete locale La gran diffusione delle reti locali richiede un approccio semplice ed intuitivo per l interfacciamento verso la chiave SmartKey adotta la tecnologia MultiLan che consente a chi sviluppa software di proteggere gli applicativi con un unico d
51. NET_KEY_CLOSE smartlink amp k if k status 5 printf Error in NET_KEY_CLOSE n exit EXIT_FAILURE 58 return EXIT_SUCCESS Il file generato table h Questo il file generato table h void scramble_in unsigned char dst unsigned src unsigned 1 for i 0 i lt SCRAMBLE_LENGTH i dst i src 0x5a gt gt i i 0x13 7 0x3e define SCRAMBLE_MAX 1024 unsigned char SCRAMBLE SCRAMBLE MAX SCRAMBLE LENGTH Oxa2 0x43 0 2 0xdc Oxf0 0x49 0x4b 0x5c 0x00 0 24 0x9f 0x6e 0 51 0x10 0x9c Oxla Stripped 0x10 0 0 Ox5e Ox8e 0x5b 0x44 0x67 0x11 Oxcd 0x74 Oxed 0x78 0 0 0x0a 0x97 10 2 8 Esempio 10 Crittografare il codice Inoltre possibile utilizzare SmartKey per crittografare il codice dei vostri file eseguibili o le librerie dinamiche DLL se questi sono sviluppati in Visual C Un esempio completo ed estensivo si trova nell archivio SmartKeyEncryptionGuidelinesExample zip Per ulteriori dettagli si rimanda al leggimi txt 10 2 9 Esempio 11 Autenticazione AES I seguenti sono due esempi per impostare le chiavi AES e per utilizzarle Setkey Questo esempio imposta le chiavi AES Attenzione le chiavi AES possono essere impostate SOLO UNA VOLTA finclude skeydrv h include lt stdlib h gt include lt stdio h
52. PER WINDOWS 45 c rotae a RE EE MER ev EE etai ere elo eva 73 14 4 INSTALLAZIONE SU LINUX E MAC OS i 73 15 SMARTKEY CONFIGURATION CENTRAL 8 74 11 15 1 CONFIGURAZIONE DEL SERVER a lend 74 15 2 CONFIGURAZIONE DEL CLIENT ii 75 15 2 1 Fasi per la selezione e la configurazione ii 76 16 SMARTKEY PROGRAMMING CENTRAL SPC eee eese res ree earn rene seen 78 16 1 PANNELLO IDENTIFICAZIONE 16 2 PANNELLO INFO aa 16 3 PANNELLO RIPRISTINA DEFAULT gal nada paia 79 16 4 RR RE III IRA 16 5 PANNELLO SCRAMBLING ele mette ted 16 6 PANNELLO CONTENU T Orense 656 16 7 PANNELLO FIXING E cda dis 16 8 PANNELLO PROGRAMMAZIONE 16 9 PANNELLO AES SCRAMBLING 16 10 PANNELLO DIAGNOSTIC A ao ERROR UE ER Ee ee Etat s 16 11 IPANNBEDO ANAEISI 2S cere eei e e dee t ere ete m Ob ees 17 5 87 171 AVVERTENZE a Na 17 2 FUNZIONALITA 17 3 SMARTKEY 2 PARALELA ii ORI IO RR 87 17 4 SMARTKEY 3 USB SMARTKEY 3 USB DL enr E FER URN OR FPE E er epe eai 87 12 1 Introduzione 1 1 Obiettivi del manuale
53. SO DAL SUO COMPUTER E NON LO UTILIZZI IN NESSUNA MANIERA Il presente Contratto si compone di 3 parti Parte si applica se Lei scarica o utilizza il Prodotto gratuitamente solo per provarlo Parte Il si applica se Lei ha acquistato o comunque avuto da Aladdin una licenza per utilizzare il Prodotto Parte si applica a tutte le concessioni di licenza PARTE I NORME APPLICABILI ALLA CONCESSIONE DI UNA LICENZA DI PROVA Concessione di Licenza Con il presente contratto Aladdin Le garantisce e Lei accetta una licenza non esclusiva di utilizzare il Prodotto in linguaggio macchina solo in forma di codice oggetto gratuitamente al fine di valutare se acquistare una licenza per continuare ad utilizzare il Prodotto e solo nella misura in cui autorizzato dal presente Contratto di Licenza Il periodo di prova limitato ad una durata massima di giorni specificata nel pacchetto di prova a Lei applicabile Lei pu utilizzare il Prodotto durante il periodo di prova nel modo descritto nella Parte Ill paragrafo rubricato Estensione della concessione ESCLUSIONE DI GARANZIA Il Prodotto fornito COSI COM E SENZA GARANZIA DI ALCUN TIPO NON SI APPLICHERANNO GARANZIE IMPLICITE DI IDONEITA PER UNO SCOPO SPECIFICO SODDISFAZIONE E COMMERCIABILITA ALCUNE GIURISDIZIONI NON PERMETTONO LE ESCLUSIONI DI GARANZIA IMPLICITA E DUNQUE LE SUDDETTE ESCLUSIONI DI GARANZIA POTREBBERO NON APPLICARSI A LEI E LEI POTREBBE AVERE ALTRI DIRITTI CHE VAR
54. SmartKey Manuale Utente v12 0 Copyright marchi registrati L SDK SmartKey e la sua documentazione sono copyright O 1985 2008 di Aladdin Knowledge Systems Ltd Tutti i diritti riservati I marchi e i nomi dei prodotti menzionati in questa guida sono marchi registrati dai propri legittimi proprietari CONTRATTO DI LICENZA CON L UTENTE FINALE PER IL PRODOTTO SMARTKEY E SMARTPICO INFORMAZIONE IMPORTANTE LEGGERE CON ATTENZIONE IL PRESENTE CONTRATTO PRIMA DI UTILIZZARE CONTENUTI DEL PACCHETTO E O PRIMA DI SCARICARE O INSTALLARE IL PRODOTTO SOFTWARE TUTTI GLI ORDINI E L UTILIZZO DEI PRODOTTI SMARTKEY E SMARTPICO DI SEGUITO IL PRODOTTO FORNITI DA EUTRONSEC S P A SOCIET INTERAMENTE POSSEDUTA DA ALADDIN KNOWLEDGE SYSTEMS LTD DI SEGUITO ALADDIN SONO E SARANNO SOGGETTI AI TERMINI E ALLE CONDIZIONI INDICATE NEL PRESENTE CONTRATTO CON L APERTURA DEL PACCHETTO CONTENENTE PRODOTTI E O SCARICANDO IL SOFTWARE COME DEFINITO PIU SOTTO E O CON L INSTALLAZIONE DEL SOFTWARE SUL SUO COMPUTER E O UTILIZZANDO IL PRODOTTO LEI ACCETTA IL PRESENTE CONTRATTO E DI ESSERE VINCOLATO DAI SUOI TERMINI E CONDIZIONI QUALORA LEI NON ACCETTI IL PRESENTE CONTRATTO O NON VOGLIA ESSERE VINCOLATO DAL MEDESIMO NON APRA IL PACCHETTO E O NON SCARICHI E O INSTALLI IL SOFTWARE E RESTITUISCA TEMPESTIVAMENTE AL MASSIMO ENTRO 10 GIORNI DALLA DATA IN CUI RICEVUTO QUESTO PACCHETTO PRODOTTI AD ALADDIN CANCELLI IL SOFTWARE ED OGNI PARTE DI ES
55. T demo USB DL Elenco SmartKey Fixing Ripristina Default Map Diagnostica Info Analisi Identificazione Scrambling AES Scrambling Contenuto Programmazione Locale 7 LPT Questo pannello esegue l operazione di AES scramble per venficare amp USB validare la presenza della chiave USB DL 16 bytes in formato esadecimali sono richiesti in ogni campo demo Dati casuali 5 scramble 0D82878E3AS8CAAF06C4020358842F0B Genera Indice chiave AES presente nella SmartKey a Chiave AES per decifrare il risultato di AES scramble DBEDA31 596A051C1B8F66C27A87A085D Numero seriale AES da validare 21 13E58E2B34F47A1512DDC32D5C33DC Aggiorna Uscita Figura 19 Pannello Scrambling 16 10 Pannello diagnostica SPC permette di analizzare l intera memoria della SmartKey eseguendo cicli di lettura e scrittura in modo di diagnosticare se SmartKey installata e funzionante correttamente La figura 20 mostra il pannello Diagnostica per una SmartKey NET In cui sono stati selezionati 3 cicli di scrittura e lettura La lettura e la scrittura sono selezionate tramite le opzioni Test di scrittura Test di lettura Il numero di cicli impostato tramite Numeri di cicli Il tasto Esegui fa iniziare il processo di diagnostica e il tasto Interrompi termina anzitempo il processo 85 lt SmartKey Programming Central NET demo USB Elenco SmartKey Identific
56. XM Y Y 8192 byte v v v 416 byte v Tabella 2 Tabella riassuntiva dei modelli di SmartKey 47 Quale SmartKey adottare Non facile dare una risposta a questa domanda perch vi sono molteplici ragioni sia tecniche sia economiche che concorrono ad orientare la scelta verso un modello piuttosto che verso un altro Soltanto un esame caso per caso permette di definire il problema tenendo conto di variabili quali e I costo del pacchetto e L ambiente in cui il software protetto si colloca e L area geografica di diffusione del prodotto a disposizione per implementare la protezione A questo proposito bene ricordare che proteggere il software comporta problematiche e scelte simili a quelle dei contratti assicurazione contro il furto Per quale importo devo assicurare Quali garanzie accessorie devo includere nel pacchetto assicurativo Qual la probabilit di furto Ecco alcune considerazioni generali che possono fornire indicazioni per la scelta di SmartKey La chiave SmartKey FX amp semplice veloce da implementare ed economica E adatta alla protezione di programmi a basso costo o di tipo pacchettizzato ove non necessario distinguere tra loro i vari applicativi o le varie versioni del software Tenete presente che in questo caso il meccanismo di protezione di tipo algoritmico si basa su un codice univoco e personalizzato assegnato in fabbrica 4 Code e non pi mod
57. a di una connessione MAP senza l utilizzo di un dispositivo configurato MAP 11 7 Driver Standalone o Multilan E stato illustrato nel capitolo sulla protezione manuale l utilizzo dei driver relativi ad applicativi standalone Nel capitolo attuale invece stata discussa la tecnologia Multilan che permette di utilizzare driver sia per ambiente standalone che di rete Ecco alcuni consigli su quali dei due tipi di driver opportuno utilizzare e Applicativi sicuramente solo standalone utilizzare un driver di tipo standalone perch la dimensione inferiore circa la met dell analogo MultiLan perch non include il supporto di rete e Applicativi standalone e rete utilizzare un driver di tipo MultiLan perch rende indipendente l applicativo dalla modalit di funzionamento standalone o rete 65 12 Protezione di applicativi con SmartKey In ambiente Lan possibile utilizzare un unica SmartKey NET per la protezione di applicativi software La tecnologia utilizzata denominata Map Multi Application Protection e consente di e Proteggere pi di un applicativo in ambiente standalone o rete Nel caso di rete locale anche possibile definire per ciascun applicativo protetto un differente numero di licenze abilitate e Limitare il numero d esecuzioni di ciascuno dei programmi protetti Questa caratteristica pu rivelarsi utile qualora si debbano creare versioni demo del software o si deside
58. a la protezione automatica trasformando un programma in modo che questo non possa funzionare se non alla presenza dell opportuna chiave di protezione Tramite il software GSS in dotazione non necessario preoccuparsi di modificare il programma da proteggere n possederne il sorgente partendo dal file originario in formato eseguibile generato un secondo file eseguibile che espleta le stesse funzioni del file originale purch sia inserita nel sistema la chiave SmartKey corretta Il funzionamento di GSS estremamente sofisticato in quanto non si limita ad aggiungere al programma da proteggere la chiamata a SmartKey esso inoltre opera una vera e propria crittografia del programma originario decodificabile se il programma eseguito alla presenza della chiave SmartKey corretta Quando mandata in esecuzione l applicazione trattata con GSS essa istantaneamente si autodecodifica Senza SmartKey l applicazione non potr essere decodificata L operazione di codifica non rallenta l esecuzione del programma protetto L analisi di un file codificato da GSS virtualmente impossibile perch il reverse engineering del software risulta privo di significato fin tanto che non decodificato run time Anche tutti i messaggi in formato testuale nel file eseguibile originale contenenti ad esempio il nome della software house quello del cliente il numero di serie i valori di alcune costanti sono tramutati in una sequenza di caratteri indecifra
59. a programmabile Secure Data 128 byte per il modello SmartKey 3 USB DL Driver Less Contatore dei tentativi d accesso fraudolento Fail Counter e Congelamento dei dati programmati e Limitazione opzionale del numero d esecuzioni del programma da proteggere 44 SPeXM SmartKey SP e XM sono i modelli pi sofisticato della famiglia SmartKey Sono adatte alle applicazioni di top security per programmi costosi e per ambienti a rischio ove le probabilit di diffusione di copie illegali molto alta SmartKey SP un evoluzione di SmartKey EP ne estende la memoria interna Secure Data da 64 byte a 416 896 byte SmartKey XM aggiunge una elevata capienza di memoria di 8192 byte e Protezione algoritmica basata su un codice univoco e personale 14 e Protezione algoritmica con 20 chiavi personalizzabili dall utente usando l algoritmo di crittografia AES per il modello SmartKey USB 3 e Codici di sicurezza addizionali programmabili a 16 byte Label e Password e 416 byte di memoria interna programmabile 896 per SmartKey USB 3 8192 per SmartKey XM Secure Data Contatore dei tentativi di accesso fraudolento Fail Counter e Congelamento dei dati programmati e Limitazione opzionale del numero di esecuzioni del programma da proteggere 45 NET SmartKey NET il modello per le applicazioni in rete locale SmartKey NET ha lo scopo di e Proteggere il software scritto per reti locali dalla copia abusiva Permettere il co
60. agliata e Fix indica se la configurazione pu essere modificata o Fixed non essere modificata o Not Fixed pu essere modificata e AES indica quale livello di supporto AES la chiave possiede o la chiave non supporta le funzioni AES o Basic la chiave supporta le funzioni AES SET e AES SCRAMBLE AES Keys indica se le chiavi AES sono state impostate o Yes le chiavi sono impostate e non possono pi essere modificate o No le chiavi non sono impostate e Scrambling mostra un esempio di scrambling Jn il valore d ingresso e Out il valore d uscita I due valori In e Out identificano la chiave in modo univoco dato che lo scrambling dipende dall id Code della chiave La figura 11 mostra un pannello di tipo info relativo ad una SmartKey USB DL di tipo NET SmartKey Programming Central NET demo USB DL 3 xi Elenco SmartKey Identificazione Scrambling AES Scrambling Contenuto Programmazione Feing Ripristina Defaut Map Diagnostica Locale F LPT amp USB USB DL Informazioni sulla SmartKey NET demo 3132333435363738 31FE3DEFC2164D16 Premi il tasto Aggioma o premi F5 per rileggere i token Aggiorna Uscita Figura 11 Pannello Info della SmartKey 16 3 Pannello ripristina default Il pannello Ripristino Default permette di ripristinare i valori di default e resettare la memoria di SmartKey Per fare questo basta premere il pulsan
61. aratteristiche dei modelli di SmartKey e i criteri di scelta per usare la chiave che meglio si adatta alle proprie esigenze 41 FX SmartKey FX il modello semplice e a basso costo usa un meccanismo di protezione basato sull assegnazione di un codice interno d identificazione univoco e personale il Codice d Identificazione o 14 La protezione di tipo algoritmico quindi non a risposta fissa ed utilizza operazioni di codifica criptata che fanno riferimento al codice interno L d Code utilizzato come parametro principale per la codifica inviato un insieme di dati che restituito opportunamente crittografato in modo diverso in funzione dell d Code La verifica della presenza della chiave pu pertanto essere effettuata confrontando il dato restituito con quello atteso se i due dati coincidono l esecuzione del programma continua regolarmente mentre in caso contrario l esecuzione pu essere arrestata e Protezione algoritmica basata su un codice univoco e personale Id Code e Protezione algoritmica con 20 chiavi personalizzabili dall utente usando l algoritmo di crittografia AES per il modello SmartKey USB 3 42 SmartKey PR il modello per le applicazioni pi versatili ove necessario procedere alla personalizzazione d ogni singolo pacchetto come ad esempio nelle operazioni di serializzazione dei programmi SmartKey PR infatti oltre a mantenere lo stesso meccanismo di protezione algoritmica de
62. are pi di una delle tecniche di protezione indicate nel seguito e Distribuire le misure di protezione lungo tutto il programma e Se eliminata una delle misure di protezione le rimanenti dovrebbero fare in modo che il programma sembri funzionare correttamente per un certo periodo dopo di che con tempi e modi casuali si arresti Ricordate infine che l aspetto psicologico importantissimo l aggressore non potr mai essere sicuro di aver disinnescato tutti i meccanismi di protezione se ogni volta che crede di averne trovato uno il software protetto fa emergere a distanza di tempo anche ore o giorni un altro problema probabilmente la frustrazione sar tale da far rinunciare all attacco Nel proteggere la vostra applicazione occorre considerare gli attacchi tipici e cercare di contrastare almeno questi casi pi comuni I casi sono e Reverse engineering dell applicazione e rimozione di qualsiasi chiamata a SmartKey API Utilizzo di un emulatore High Level User Level in grado di intercettare e registrare qualsiasi chiamata SmartKey API e di simulare il comportamento di SmartKey API Questi emulatori potenzialmente conoscono la semantica delle chiamate API e sono in grado di emulare SmartKey ma con l eccezione dell operazioni di Scrambling e AES e Utilizzo di un emulatore Low Level Kernel o Hardware in grado di intercettare e registrare le comunicazioni fisiche su una porta Parallela o USB e di simulare il comportamento fis
63. are protetto Ogni chiave caratterizzata da credenziali digitali uniche personalizzate per ogni utilizzatore che vengono riconosciute dal software e ne permettono il corretto funzionamento Immediatamente dopo la partenza del programma o in altri punti strategici il software verifica se SmartKey presente sulla porta del PC Se l esito ha risultato negativo il programma arresta la sua esecuzione Nel caso invece la chiave sia presente il programma continua correttamene la propria esecuzione eventualmente effettuando ulteriori controlli sui parametri della chiave Una memoria non volatile interna permette di implementare criteri di protezione selettivi o personalizzare singolarmente le chiavi installate ad esempio in modo che vi sia una corrispondenza tra numero di serie del software da proteggere e contenuto della chiave SmartKey pu essere utilizzata per particolari strategie di marketing quali ad esempio la concessione di pacchetti demo affitto di software a tempo misura dell utilizzo del software controllo delle successive versioni etc SmartKey una chiave di protezione del software sicura e flessibile predisposta per essere inserita in modo trasparente sulla porta parallela o sulla porta USB del computer Ogni chiave SmartKey ha codici unici e personalizzabili cosi che ogni software house pu implementare propri sistemi di protezione originali e sicuri 3 4 Quanto tempo serve per proteggere un applicazione La flessibilit
64. askeysrv exe nel menu Avvio di Windows per avviarlo automaticamente ad ogni avvio del sistema Per i sistemi Windows 2000 la versione service la scelta consigliata Monitor il monitor del server per controllare le connessioni e le licenze Cancel Apply Figura 5 SmartKey Configuration Central configurazione del server La figura 5 mostra i pannelli di SCC utilizzati per configurare ed avviare il programma server di Smartkey Per il server Service configurare il protocollo desiderato e premere il pulsante Applica Il service di Smartkey sar automaticamente installato ed avviato L avvio del servizio avverr automaticamente anche ad ogni riavvio della macchina Per la versione eseguibile configurare il protocollo desiderato e premere il pulsante Applica Premere poi Avvia per avviare il server eseguibile Se si desidera fare eseguire automaticamente il programma server ad ogni riavvio della macchina aggiungere il file askeysrv exe nel menu Programmi Avvio di Windows Le opzioni disponibili per la configurazione sono TCPIP abilita il protocollo TCPIP e TCPIP Porta numero della porta TCP usata per il protocollo TCPIP e ANP abilita il protocollo ANP e ANP Dir directory utilizzata dal protocollo ANP per lo scambio di file e Timeout timeout in secondi prima che un client che non risponde sia disconnesso e la sua licenza venga rilasciata Utile soprattutto nel caso si dovessero veri
65. assword Output DATA Dati letti EXT_DATA Dati estesi letti solo per modelli con pi di 64 bytes di memoria FAIL_CTR Fail Counter solo per modelli EP SP XM e NET STATUS Stato 0 Successo 0 Errore Tabella 11 Parametri per il comando Reading Se la chiave trovata sulla porta indicata e con valori di Label e Password corretti il campo data conterr i primi 64 byte dei Secure Data letti e nel caso di chiavi SP XM e NET il campo ext_data conterr i restanti 352 byte Se la Password passata alla chiave non corretta i Secure Data ed il Fail Counter sono generati in modo pseudocasuale 9 4 1 Passaggio parametri Parametri da trasferire per eseguire un operazione di Reading su una chiave presente sulla porta parallela LPT1 LPT 01 00 Porta COMMAND 52 00 Reading R LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 PASSWORD 45 55 54 52 4E 00 00 Password EUTRON 00 00 00 00 00 00 00 00 Tabella 12 Scambio di informazioni per il comando Reading 9 5 Writing mode Conoscendo la Password la scrittura dei Secure Data avvenire con le stesse modalit previste per la lettura La funzione di Writing modifica in linea il contenuto dei Secure Data Il comando Writing permette l accesso ai primi 416 byte di memoria della chiave Se la chiave ha pi di 416 byte di memoria necessario utilizzare il comando BlockWriting per poterci accedere completamente
66. ata opera derivata e continuer ad essere soggetta ai termini del presente Contratto e iii Lei potr fare un ragionevole numero di copie del Software solamente a fini di back up Il Software non dovr essere utilizzato per nessun altro scopo Sub Licenza Dopo aver integrato il Software al ai programma i del Suo computer in conformit all articolo Concessione di Licenza di cui sopra Lei potr concedere in sub licenza secondo i termini del presente Contratto il Software cosi integrato e rivendere le componenti hardware del Prodotto che Lei ha acquistato da Aladdin laddove applicabile ai distributori e o agli utenti Prima di vendere e concedere in sub licenza Lei dovr assicurarsi che i Suoi contratti con tutti i Suoi distributori e o utenti finali e che i loro contratti con i loro clienti conterranno garanzie esclusioni di garanzie limitazioni di responsabilit e condizioni di licenza non meno protettive dei diritti di Aladdin rispetto alle disposizioni qui contenute Inoltre Lei dovr chiarire bene ai Suoi distributori e o agli utenti finali che Aladdin non e non sar in qualsivoglia circostanza coinvolta o responsabile in nessun modo del software e delle relative licenze contenuto nei Suoi programmi che Lei integra con il Software Aladdin e che distribuir ai Suoi distributori e o agli utenti finali inclusa solo in via esemplificativa l estensione dei termini di licenza e la fornitura di manutenzione per qualunque element
67. aticamente dati con l applicativo protetto che si trova su un client Lo scambio di dati client server pu avvenire attraverso il protocollo TCPIP o attraverso lo scambio di file che si trovano in una directory comune protocollo ANP Il programma server di Smartkey disponibile in due versioni service eseguibile La versione service si avvia automaticamente ad ogni boot del sistema operativo ed installabile su sistemi con Windows NT Windows 2000 Windows XP Windows 2003 e Windows Vista Smartkey Configuration Central x Client Multilan Service Lingua r Configurazione 16567 Dir Sfoglia Timeout 30 Operazioni Lo stato del servizio multilan Per installare il servizio occorre Installato configurare un protocollo e premere il pulsante Applica servizio parte automaticamente ad ogni avvio del sistema Monitor il monitor del server per controllare le connessioni e le licenze Configura ed avvia il server eseguibile usato nei vecchi sistemi Windows 98 e Windows Me Eseguibile Figura 4 SmartKey Configuration Central configurazione del service 74 Multilan Server Multilan Server Configurazione Iv Porta i6567 77 Timeout s jo Auto nasconde Nasconde l interfaccia dopo l avvio Sfoglia Operazioni il il server in versione eseguibile necessario Avvia aggiungere il
68. ativi per la gestione delle licenze Con la crescente necessit di protezione si sono sviluppate tecniche per rendere il software e gli applicativi sempre pi sicuri Nonostante questo i sostenitori della pirateria ancora sopravvivono e crescono causando ingenti danni economici Il sempre crescente sviluppo tecnologico uno dei principali fattori che rende possibile la pirateria i possibili guadagni illegali ne sono invece il fattore motivante La pirateria non sembra destinata a terminare nel breve periodo Tutto questo aumenta la necessit di una soluzione per la protezione del software 2 5 SmartKey introduce una nuova era nella protezione del software Aladdin ha creato una tecnologia innovativa che si differenzia dal tradizionale paradigma di protezione La soluzione SmartKey resiste efficacemente alla pirateria e ai metodi di cracking universalmente diffusi L attenzione della strategia di protezione del software si spostata dalla protezione della copia ad un pi realistico controllo dell esecuzione del software La prevenzione dalla pirateria informatica va oltre la mera inibizione delle copia abusiva Si evoluta nel limitare l uso del software ad una copia per volta La chiave hardware per la protezione del software SmartKey progettata principalmente per le esigenze di questo tipo di sicurezza Usando i avanzati meccanismi anti hacking SmartKey il sistema di protezione hardware che offre la migliore soluzi
69. azione Scrambling Contenuto Programmazione Fixing Locale Ripristina Default Map Diagnostica Info Analisi oy LPT amp USB NET demo Questa funzione esegue un test di lettura e o scrittura sull intera memoria USB DL della Smartkey corrente 5 Test di scrittura ml Interrompi Esegui Aggiorna Uscita Figura 20 Pannello Diagnostica Pannello per eseguire la diagnostica di SmartKey 16 11 Pannello analisi Il pannello Analisi permette di eseguire test riguardanti 1 driver di SmartKey i dispositivi il sistema e la SmartKey stessa e genera un file di report Il file di report un normale file di testo pu essere poi spedito all assistenza clienti per avere una spiegazione dettagliata sulle cause del problema e informazioni su come risolverlo Per generare un report pi dettagliato si allegare un elenco di programmi che usano la SmartKey Il tasto Aggiungi permette di aggiungere all elenco i nomi dei programmi Il tasto Genera report fa partire le procedure d analisi e di scrittura sul file del report La figura 21 mostra il pannello Analisi per una SmartKey NET in cui non sono stati inseriti programmi nella lista delle applicazioni lt SmartKey Programming Central NET demo USB Elenco SmartKey Identificazione Scrambling Contenuto Programmazione Fixing Locale Ripristina Defaut Map Diagnostica Info Analisi 7 LPT Questa funzion
70. azione e l uso di SmartKey Con l ausilio di Global Security System GSS possibile proteggere automaticamente un programma senza avere particolari conoscenze informatiche e senza avere a disposizione il codice sorgente del programma GSS non disponibile sotto Linux e Mac OS X e quindi in questi due sistemi operativi possibile solo la protezione manuale Le seguenti tabelle riassumono il supporto fornito per i sistemi operativi Windows Linux Mac OS X Sistema Operativo Utility di Protezione SmartKey 2 SmartKey SmartKey 3 supporto Automatica Parallele 3 USB USB DL Driver Less Windows 1386 Y Y Y Y Y Windows x64 Y Y Y Y 16 Linux 1386 4 Y Y v Mac OS X Intel PowerPC Y Y Tabella 1 Software disponibile 3 1 A chi serve SmartKey SmartKey destinata principalmente alle software house perch esse hanno la necessit di proteggere il proprio software dalla diffusione e dalla copia illegale Tuttavia SmartKey non serve solo agli sviluppatori di software anche utenti finali come responsabili aziendali e dei sistemi informativi responsabili delle vendite possono trarre grandi benefici dalla sua tecnologia Tramite la tecnologia GSS I programmi possono essere protetti senza la conoscenza dei codici sorgente e Le software house usano SmartKey per impedire la pirateria del software e la diffusione illegale dei propri applicativi Solo gli utilizzat
71. bile impedendone quindi l alterazione con le utility che agiscono direttamente sui settori dell hard disk La protezione automatica effettuata dal GSS si avvale inoltre di una serie di meccanismi opzionali che consentono di risolvere le esigenze specifiche di ogni situazione applicativa quali ad esempio il controllo periodico della presenza della chiave La descrizione dettagliata di come proteggere automaticamente un programma tramite l uso di GSS contenuta nel capitolo 8 Esiste solo la versione di GSS per Windows quindi possibile fare la protezione automatica solo dei programmi per Windows 24 5 3 Utilizzare la protezione manuale la protezione automatica Prima di iniziare l operazione di protezione del software necessario definire la tecnica da utilizzare Cosa differenzia la protezione automatica da quella personalizzata La risposta sintetizzata nella tabella che segue Tipo di Tempo Necessarie Necessari i codici Sicurezza protezione necessario conoscenze sorgenti del informatiche programma Tabella 3 Tipi di protezione da usare La protezione manuale preferibile quando si hanno i sorgenti perch grazie alla flessibilit essa consente di introdurre un livello di sicurezza molto elevato E necessario un piccolo sforzo iniziale d implementazione che tuttavia consente di implementare strategie personalizzate di protezione La protezione automatica una soluzione sicura e veloce Quando si deve protegger
72. cativi 3 4 65535 FFFF hex 5 4 04 hex 12 3 La protezione automatica Map Se la protezione automatica tramite l utility GSS effettuata con una chiave di rete un apposito pulsante consente di associare ad ogni applicativo un codice che sar utilizzato per risalire al numero di licenze per il quale il programma abilitato nonch l eventuale limitazione del numero d esecuzioni del programma si veda il capitolo 8 12 4 La protezione manuale Map Siccome si ha la possibilit di proteggere pi applicativi limitatamente ai comandi Open e User Number necessario specificare a quale programma si fa riferimento identificato da un numero compreso tra 1 e 116 A questo scopo nel passaggio dei parametri relativo ad ognuno dei due comandi inizializzato come segue Offset Significato il campo Data della relativa struttura dati deve essere M 4D hex Codice fisso di identificazione Map A 41 hex Codice fisso di identificazione 1 116 Numero di riferimento dell applicativo Tabella 39 Impostazione codice applicativo per comandi Open User Number Mode Per il comando Open lo scambio di informazione organizzato come segue Models NET Input NET COMMAND LABEL Label PASSWORD Password DATA 0 M 4D hex DATA I1 41 hex DATA 2 1 116 Codice identificativo dell applicativo della licenza da utilizzare Output NET PASS Net Password DATA 0 Tipo di protocollo di
73. consigliato usare la funzione SkeyLogFile perch grazie al file di log si capire dove lo script d installazione o il programma si 8 bloccato Le funzioni possono generare i seguenti codici d errore SKEYINST OK L operazione si conclusa correttamente SKEYINST ERROR WAIT L operazione non stata eseguita perch in quel momento il sistema operativo stava installando un altro componente In questo caso necessario chiedere all utente di completare ogni altro processo d installazione in corso e quindi ritentare l operazione SKEYINST WARNING MUST REBOOT L operazione si conclusa correttamente ma occorre un riavvio del sistema per completare l operazione SKEYINST WARNING MUST INSERT L operazione si conclusa correttamente ma occorre inserire il dispositivo USB per completare l operazione SKEYINST ERROR FAIL L operazione fallita a causa di un errore del sistema operativo In questo caso si possono ottenere maggiori informazioni dal file di log 13 4 Installazione di SmartKey sotto Linux Per Linux sono disponibili due package per l installazione e l utilizzo delle chiavi SmartKey e user level usb package smartkey linux user usb tar gz e user level lpt package smartkey linux user lpt tar gz I package sono indipendenti dal kernel e dalla distribuzione utilizzata 13 4 1 Linux user level usb Il package user level usb non richiede l installazione di nessun driver per l accesso alla
74. cosx dmg presente nella directory nix 13 5 1 Utilizzo delle API per Mac OS X I prototipi delle API si trovano nel file clink h per l interfaccia standalone e skeylink h per l interfaccia multilan disponibile una libreria statica per il link statico e una libreria dinamica distribuita come Framework per il link dinamico Consultare il file LEGGIMI allegato al package per maggiori informazioni 71 14 Installazione di SmartKey rete SmartKey NET essere utilizzata con qualsiasi tipo di rete locale grazie al software di supporto in dotazione inoltre possibile scegliere fra 1 seguenti protocolli di comunicazione e TCPIP Protocollo standard per la trasmissione tra computer e Protocollo di trasmissioni dati tramite file condivisi Si consiglia di usare questo protocollo solamente quando non si usare il TCPIP ANP ancora disponibile solo per garantire la compatibilita con i vecchi programmi DOS A seconda del protocollo scelto la chiave sar utilizzabile via remoto su PC con i seguenti sistemi operativi secondo lo schema Client SmartKey TCPIP Windows 9x NT 2000 XP 2003 Vista Tabella 43 Protocolli supportati da SmartKey installata su computer cliente La chiave sar invece fisicamente installata su un PC che sar denominato KeyServer Il KeyServer potr essere eventualmente il server di rete o un generico PC client Il server pu utilizzare uno dei seguenti sistemi o
75. cune di queste tecniche di protezione e costituisce una integrazione essenziale al presente capitolo I software driver consentono di attivare una serie di comandi ognuno dei quali implementa una tra le seguenti modalit operative di sicurezza e Locating mode individua se su quale porta parallela o USB presente la chiave e Scrambling mode verifica per via algoritmica se l Id Code corretto e Reading mode legge i Secure Data e Block Reading mode legge i Secure Data a blocchi e Writing mode scrive i Secure Data e Block Writing mode scrive i Secure Data a blocchi e Fixing mode fissa il contenuto della chiave in modo che non possa essere pi modificato e Programming mode riprogramma il contenuto della chiave e AES mode autentica per via algoritmica la SmartKey usando l algoritmo AES Il kit di sviluppo di SmartKey contiene il programma smartdem che usa alcuni dei comandi spiegati nei paragrafi successivi Il programma di tipo consolle stato scritto in C e pu essere compilato con un qualsiasi compilatore C in ambiente Linux Mac OS X e Windows Il codice sorgente contenuto in smartdem c uguale per tutti i sistemi operativi ma differente la modalit di compilazione 9 1 Modalit d esecuzione dei comandi SmartKey La modalit d esecuzione dei comandi SmartKey avviene attraverso lo scambio di un campo dati tra il programma ed il driver SmartKey Il campo dati ha un formato fisso e contiene tutte le
76. d char dst unsigned src unsigned i for 1i 0 i lt SCRAMBLE_LENGTH 1 dst i src 0x5a gt gt i i 0x13 0x3e H int main unsigned 1 FILE f srand time 0 f fopen table h wt if f printf Error opening the file table hin exit EXIT_FAILURE fprintf f void scramble in unsigned char dst unsigned src n fprintf f Ntunsigned Mn forintf f tfor i 0 i lt SCRAMBLE_LENGTH i fprintf f t tdst i src 0x5a gt gt i i 0x13 0x3e n tfprintf f NnNn forintf f define SCRAMBLE MAX d n n SCRAMBLE_MAX fprintf f unsigned char SCRAMBLE SCRAMBLE MAX SCRAMBLE LENGTH n for i 0 i SCRAMBLE MAX i unsigned j 56 k net_command 55 k command SCRAMBLING_MODE scramble_in k data smartlink amp k if k status ST printf Error in SCRAMBLING_MODE n exit EXIT_FAILURE fprumt f Tq ys for 3 0 j SCRAMBLE __ E LENGTH 3 unsigned v k data j if 5 Eprintt Ey ys fprintf f 0x 02x v fprintf f if i 1 SCRAMBLE_MAX pel forintt n T fprintf f n fclose f printf Scrambling table writtenin Close k net command NET KEY CLOSE
77. deri installare una chiave per ogni singolo utente 23 5 Proteggere un applicazione con SmartKey Proteggere un applicazione con SmartKey significa implementare l execution control cio modificare l applicazione in modo che la sua esecuzione sia vincolata alla presenza di una chiave di protezione del software SmartKey possiede due metodi per l implementazione della protezione e Protezione manuale tramite intervento sui sorgenti del programma originale e l utilizzo di software driver e Protezione automatica tramite intervento diretto sul file eseguibile del programma originale 5 1 Protezione manuale Con protezione manuale 5 intende l intervento da parte del programmatore sul sorgente dell applicativo da proteggere per inserire le funzioni fornite che permettono l interfaccia tra il programma e la SmartKey attraverso i suoi driver nel seguito si utilizzer il termine Application Programming Interface per far riferimento alla collezione di tutte queste funzioni Si tratta della modalit canonica di protezione del software che consente di definire autonomamente una propria personale strategia di protezione quante chiamate effettuare per verificare la presenza della chiave in quali punti del programma e in quali istanti effettuarle quali azioni intraprendere in caso d assenza della chiave etc Bench richieda uno sforzo da parte del programmatore se siete in possesso dei sorgenti dei programmi da proteggere la
78. dio communications However there is no guarantee that interference will not occur in a particular installation If this equipment does cause harmful interference to radio or television reception which can be determined by turning the equipment off and on the user is encouraged to try to correct the interference by one or more of the following measures Reorient or relocate the receiving antenna Increase the separation between the equipment and receiver Connect the equipment into an outlet on a circuit different from that to which the receiver is connected Consult the dealer or an experienced radio TV technician for help Caution changes or modifications not expressly approved by the party responsible for compliance could void the user s authority to operate the equipment IMPORTANT REMARKS Due to the limited space on the product shell all FCC certification references are on this technical manual Ac INTRODUZIONE AA ei 13 Tl COBIETTIVIDEL MANUATE a 13 1 2 A CHCERIVOLTO TIE MANUALE E NL REE 13 1 13 COME CONTATTARE ALADDIN i 13 2 PERCH PROTEGGERE IL SOFTWARE woccsssssssssssssssssssssssssssssssssssessessesssssussssssssssssssssssessssssssssessssssssassssessees 14 2 1 LA MINACCIA DELLA PIRATERIA AUMENTA LA NECESSIT DI PROTEZIONE csscessssessescseeseeseeeseeseeceseeseeseeeseees 14 2 2 RAGIONI COMMERC
79. diventa inutilizzabile Se uguale 0 i valori di SmartKey possono essere modificati L irreversibilita di scrittura aumenta il grado di sicurezza SmartKey Programming Central NET demo USB DL Elenco SmartKey Locale X LPT 69 USB ff SP demo USB DL ff NET demo Figura 17 Pannello Programmazione di una SmartKey USB di tipo NET La figura 18 mostra il pannello Dati Cliente Il pannello permette di scrivere i dati della configurazione Dati cliente Nome cliente 05 0 Dec _ Ascii Hex Label 2BC14BDE0B55F1E977A0ESE9EC Password 8008 8720 75E 3FBO9DF 4 m 2 amp 9 5 0 0 0 0 0 0 0 0 Fissa dopo la scrittura Imposta AES OK Annulla Numero seriale AES 16 byte 7 13E58E2B34F47A1512DDC32D5C33DC Chiavi AES 0 9 Chiavi 5 10 13 8250899037 55010953 40 7 019 88 0 685484758905528661 7541 48 7 5 4 15972808 3089080 193678872 24 FF410D894AEBB491D670FED24DD48E30 081 4 67470028524325 76483897 3 7 82853 48501520 801945743325855 020354424346106083E09C8CEDCODB21 7E5376CF91A514AE5C49BA99F3C5EE92 8488F524E6341D8E87AE 32AB507C89C7 1586 051 1 8 66 274874085
80. e funzionava su sistemi mainframe Quindi la pirateria non esisteva Non appena i computer passarono da un architettura mainframe ad una client server l installazione del software sulla propria workstation divenne la norma e nacque il concetto di distribuzione e licenza Gli anni 80 videro la rapida diffusione dei personal computer e la conseguente nascita di una rete pirata underground a larga scala per la distribuzione illegale di software rendendo necessaria la protezione del software Gli anni 90 videro la pirateria fare un ulteriore salto in avanti grazie ad Internet che apri nuovi canali per la distribuzione illegale Le nuove tecnologie come i masterizzatori di CD resero la duplicazione e la distribuzione di software illegale ancor pi facile contribuendo alla crescita ulteriore della pirateria La battaglia per sconfiggere la pirateria inizi negli anni 80 usando in ambiente DOS meccanismi di protezione software come speciali formattazioni del disco ottenute usando funzioni non proprie del sistema operativo tracce addizionali tracce non formattate scambio di settori del disco modifica della velocit di rotazione del disco etc o alterando il supporto magnetico Si diffusero anche altri meccanismi di protezione come inibire la copia con i comandi standard di DOS e quindi anche le copie di riserva Quando le tecnologie per la protezione del software migliorarono s incominci ad integrare sistemi hardware di sicurezza con applic
81. e essere necessariamente inclusa nell applicazione e non nel driver SmartKey in quanto se si spostasse la verifica d autenticit nel driver SmartKey l applicazione potrebbe essere ingannata con un finto driver Per rendere efficace la protezione l applicazione dovr anche contenere tutta una serie d artifizi di programmazione per nascondere la chiave di crittografia necessaria al processo d autenticazione 9 17 AES Set Questo comando imposta 20 differenti chiavi di crittografia di 16 byte ciascuna per l algoritmo AES ed il numero seriale di 16 byte Le chiavi di crittografia ed il seriale una volta scritti non possono essere mai estratti e nemmeno sovrascritti ripetendo il comando In altre parole questo comando pu essere eseguito solo una volta ATTENZIONE le chiavi AES possono essere impostate SOLO UNA VOLTA Questo comando non pu essere eseguito in rete ma solo con la chiave usata localmente Lo scambio di informazioni cosi organizzato Modello Solo SmartKey 3 USB Input COMMAND G LPT SmartKey port LABEL SmartKey Label EXTDATA 0 15 Numero seriale da impostare EXTDATA 16 31 Prima chiave AES EXTDATA 320 335 Ventesima chiave AES Output Niente Tabella 31 Parametri per il comando AESSet 9 18 AES Scramble Questo comando effettua l operazione di autenticazione AES La SmartKey opera su un valore casuale scelto dall applicazione e fornisce un valore di risposta che permette all applicazi
82. e permette di creare un file report con informazioni USB riguardanti i drivers Smartkey i device il sistema e la chiave corrente se NET demo selezionata USB DL In caso di malfunzionamento della chiave amp possibile spedire il file report al servizio assistenza clienti Eutron helpdesk eutron it Nell elenco sottostante possibile inserire l applicazione che utilizza la protezione Smartkey per il controllo dei driver utilizzati da quest ultima Lista delle applicazioni opzionale Genera report Aggiorna Uscita Figura 21 Pannello Analisi pannello genera file di report 86 17 Specifiche 17 1 Avvertenze Inserire SmartKey Parallela tra il PC e la stampante quando entrambi sono spenti SmartKey sensibile alle cariche elettrostatiche Evitare di toccare i pin dei connettori di SmartKey Non sottoporre la SmartKey a temperature elevate o ad elevati sbalzi di temperature Eventuali guasti elettrici del computer o di sue periferiche possono danneggiare irreversibilmente la SmartKey Non inserire SmartKey nella porta seriale a 25 poli le tensioni presenti possono alterare il contenuto della SmartKey e danneggiarla 17 2 Funzionalit Meccanismo di protezione tramite password e algoritmico Codici di accesso fissi programmabili 16 16 byte Dati memorizzabili 64 128 416 896 8192 byte Rivelazioni tentativi di accesso Possibilita di congelare i dati memorizzati
83. e un applicativo Windows questa tecnica permette di risolvere anche situazione quali Indisponibilit dei sorgenti il caso tipico dei distributori di software non protetto da chiavi nel Paese d origine Tempo limitato per l implementazione della protezione Programmi scritti in linguaggi di programmazione non comuni e quindi senza i relativi software driver per la protezione manuale 25 6 Protezione in rete locale Quando pi calcolatori sono collegati in rete locale possibile proteggere il software di rete in uno dei due modi seguenti e Inserire una chiave di protezione di tipo standalone FX PR SP XM su ognuno dei calcolatori abilitati all esecuzione dell applicativo In tal caso non necessario effettuare alcuna modifica al software gi protetto per la modalit standalone e Inserire una sola chiave di protezione di tipo NET con i relativi software server SmartKey SmartKey NET un estensione del modello SP di cui possiede tutte le caratteristiche principali oltre ad alcune caratteristiche addizionali che consentono di effettuare la protezione utilizzando un unica chiave installata su un qualunque calcolatore della rete o su un server non dedicato Il software fornito con la chiave consente ad ogni calcolatore della rete di interrogare l unica SmartKey NET Non si ha pertanto la necessit di utilizzare tante chiavi quante sono le postazioni di lavoro della rete Tramite la tecnologia proprietaria Map
84. egli utenti che non hanno utilizzato la modalit CLOSE in modo corretto La funzione di controllo del timeout completamente trasparente all utilizzatore ed allo sviluppatore ed 8 gestita dai software driver della chiave quindi necessario effettuare periodiche operazioni d accesso alla chiave per garantirsi il refresh del timeout 11 6 Errori In aggiunta agli errori del driver standalone il campo status pu assumere uno dei seguenti valori Nome Valore Descrizione ST NET ERROR 5 Errore genrico nella comunicazione di rete ST USER ERROR 8 Massimo numero di utenti e licenze raggiunto ST EXEC ERROR 16 Massimo numero di esecuzioni raggiunto 64 5 9 netpassword specificata non corrisponde nessuna connessione aperta ST_INIT_ERROR 11 Errore generico durante l inizializzazione della libreria ST_TOO_MANY_OPEN_KEY 14 Si raggiunto il limite massimo di connessioni aperte ST_NET_CONF_ERROR 21 Errore generico nella configurazione della libreria ST_NET_ANP_INIT_ERROR 22 Errore nella inizializzazione del protocollo ANP ST_NET_TCPIP_INIT_ERROR 23 Errore nella inizializzazione del protocollo TCPIP ST NET LOCAL INIT ERROR 25 Errore nella inizializzazione del protocollo Locale ST NET KEY NOT MAP 26 Tentativo di apertur
85. eguibile ma anche tutti i relativi dati database DBF DAT ecc ad essa associati Grazie alla tecnologia GSS SmartKey ora vi permette di fare tutto questo Quando una stringa di inviata alla chiave l algoritmo pre programmato utilizzato per crittografarla L utility GSS 8 utilizzata principalmente per questo scopo Al momento dell avvio l applicazione crittografata automaticamente provvede decrittografare i file crittografati Quando non in uso questi file sono nuovamente crittografati 8 3 8 Protezione delle applicazioni sul network Oltre alla protezione delle applicazioni che lavorano in modalit standalone SmartKey mette in sicurezza anche applicazioni su Local Area Network Poich l uso di un applicazione protetta assolutamente trasparente per l utente finale possibile utilizzare sia una chiave locale sia una chiave network La tecnologia GSS cerca dapprima il dispositivo sulle porte locali Nel caso d insuccesso inizia a comunicare con un dispositivo Lan SmartKey NET stata sviluppata in particolare con questo scopo Il software fornito insieme alla chiave permette ai computer in rete di inviare la richiesta ad una singola SmartKey NET Di conseguenza non pi necessario usare tante chiavi quante le stazioni di lavoro collegate in rete 8 3 9 Protezione dei file eseguibili in serie Talvolta pu essere necessario proteggere automaticamente diversi file eseguibili in una sola operazione In queste
86. ella porta interessata Tale operazione puo essere evitata utilizzando il comando Locating per la ricerca automatica su tutte le porte inserite sul calcolatore 35 9 4 Reading I modelli programmabili della famiglia SmartKey sono dotati di un sistema di protezione basato sull accesso selettivo in lettura e scrittura al registro Secure Data con password programmabile da software Ogni software house pertanto codificare personalmente le chiavi in proprio possesso con il solo ausilio delle utility software in dotazione e senza necessita di dispositivi di programmazione esterni L amministrazione dei codici accesso e del contenuto della memoria non volatile gestita direttamente dalla software house che diviene l unica depositaria dei codici di personalizzazione Per quanto riguarda la lettura la funzione di Reading permette di accedere ai campi data e ext data per verificarne il contenuto e confrontarlo con quello atteso E necessaria la conoscenza di Label e Password Il comando Reading permette l accesso ai primi 416 byte di memoria della chiave Se la chiave ha pi di 416 byte di memoria necessario utilizzare il comando BlockReading per poterci accedere completamente Nel caso di modelli EP SP XM e NET disponibile in lettura anche il valore del registro FailCounter Lo scambio di informazioni cos organizzato Models PR EP SP XM NET Input COMMAND R LPT Porta LABEL Label PASSWORD P
87. enuto atteso Se i parametri coincidono essi sono fissati LPT 01 00 Porta COMMAND 46 00 Fixing LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 PASSWORD 45 55 54 52 4F 4E 00 00 Password EUTRON 00 00 00 00 00 00 00 00 DATA 53 45 43 55 52 49 54 59 Data SECURITY DATA 39 20 44 41 54 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EXP DATA 00 00 00 00 00 00 00 00 Tabella 20 Scambio di informazioni per il comando Fixing 9 9 Programming La funzione di Programming permette di riprogrammare completamente la chiave ed in particolar modo i registri Label e Password La disponibilit della funzione Programming consente di mettere a punto un proprio programma dedicato alla preconfigurazione delle chiavi stesse normalmente collegato ad un database al fine di associare il contenuto di ogni chiave con un elenco clienti e o prodotti La programmazione di nuove Label e Password non richiede la conoscenza della Password precedente mentre necessario conoscere la Label corrente perch l operazione azzera automaticamente il registro Secure Data impostato riempito con 0 Per ovvie ragioni legate alla sicurezza invece azzerato il Fail Counter Se durante le prove vi foste dimenticati il valore della Label co
88. ere conservate in molti punti del vostro programma ed essere comparate durante l esecuzione del programma stesso Esempio Con questi step di pre calcolo LABEL SMARTKEY RANDOM 01234567 CRYPT LABEL RANDOM Nella vostra sorgente potete fare CRYPT previously computed RANDOM 01234567 LABEL CRYPT XOR RANDOM SmartKeyCheckWithLabel LABEL 10 1 5 Utilizzare la versione OBJ dei driver Se disponibile sempre meglio preferire la versione del driver OBJ rispetto a quella DLL Il driver DLL espone un punto d inserimento semplice e noto Con questo punto d inserimento monitorare e filtrare tutte le chiamate del driver eseguite dalla vostra applicazione diventa semplice 10 1 6 CheckSum dei vostri eseguibili e delle DLL E possibile calcolare e controllare il CRC CheckSum della vostra applicazione e delle DLL Si tratta di una fase molto importante se volete utilizzare uno dei driver DLL di SmartKey In questo modo voi avete la certezza che il vostro programma sta utilizzando la DLL originale e non una versione fasulla Non bisogna utilizzare un semplice algoritmo CRC Per esempio il CRC32 di un file pu essere modificato con un valore arbitrario cambiando solo 3 4 dei byte del file Un funzione crittografica di hash come MDS sicuramente meglio 10 1 7 Non arrestare immediatamente l esecuzione se non trovata la chiave Se il controllo di SmartKey negativo il compo
89. esadecimale Le due opzioni possono essere selezionate con i pulsanti Ascii e Hex Se si usa una SmartKey che ha ancora i valori di default si pu evitare di inserire tali valori selezionando l opzione Utilizza i valori di default I valori di default sono Label SMARTKEY e Password EUTRON La figura 10 mostra l esempio di un computer in cui presente una SmartKey di tipo NET i cui driver sono stati installati correttamente ed stato selezionato il pannello Identificazione SmartKey Programming Central NET demo USB Elenco SmartKey Ripristina Default Map Diagnostica Info Analisi Identificazione Scrambling Contenuto Programmazione Fixing Locale 7 LPT Ascil Hex USB Inserisci la Label e o la Password per accedere alle demo pagine seguenti USB DL Label SMARTKEY Password ON Aggiorna Uscita Figura 10 Pannello per l identificazione della SmartKey 16 2 Pannello info Selezionando il pannello Info sono visualizzate alcune informazioni sulla SmartKey I valori visibili sono e Modello tipo di SmartKey e Dispositivo tipo di dispositivo che SmartKey usa USB o parallela 78 e Memoria la grandezza della memoria programmabile della SmartKey e Seriale dec numero seriale in formato decimale Seriale Hex numero seriale in formato esadecimale e Fail counter il numero di volte che qualcuno ha inserito o la label o la password sb
90. ess e Limitazione opzionale del numero d esecuzioni del programma da proteggere 43 SmartKey EP espande le caratteristiche di sicurezza dei modelli precedenti ed il modello adatto alle applicazioni d alta sicurezza quali il controllo d accessi a banche dati a programmi riservati etc Oltre a mantenere gli stessi meccanismi di protezione della chiave SmartKey PR SmartKey EP permette la rilevazione dei tentativi d accesso con password errata Un apposito contatore interno Fail Counter restituisce il numero dei tentativi d effrazione per permettere al legale utilizzatore di intraprendere via software qualunque azione volta alla difesa dei dati o dei programmi La seconda caratteristica peculiare di SmartKey EP l opzione di congelamento di password e dati una volta programmati cio possibile fissare in modo irreversibile i codici ed i dati programmati nella chiave stessa dalla 20 software house E impedita un eventuale successiva manipolazione della chiave a scopo fraudolento ad esempio modificare i propri diritti d accesso a banche dati o i limiti di funzionamento del software in dotazione e Protezione algoritmica basata su un codice univoco e personale Id Code e Protezione algoritmica con 20 chiavi personalizzabili dall utente usando l algoritmo di crittografia AES per il modello SmartKey USB 3 e Codici di sicurezza addizionali programmabili a 16 byte Label e Password e 64 byte di memoria intern
91. etto il Prodotto non ecceder il canone di licenza pagato ad Aladdin per l utilizzo del Prodotto che ha dato origine all azione o pretesa e qualora tale criterio non sia applicabile allora la responsabilit di Aladdin non eccedera l importo dei canoni di licenza da Lei pagati ad Aladdin in base al presente contratto durante il periodo di dodici 12 mesi che precede l evento IN NESSUNA CIRCOSTANZA E SECONDO NESSUNA TEORIA LEGALE RESPONSABILITA EXTRA CONTRATTUALE CONTRATTUALE O ALTRO ALADDIN O I FORNITORI RIVENDITORI O AGENTI DI ALADDIN SARANNO RESPONSABILI NEI SUOI CONFRONTI O NEI CONFRONTI DI UNA QUALUNQUE ALTRA PERSONA PER QUALUNQUE DANNO DI QUALUNQUE TIPO INDIRETTO SPECIALE INCIDENTALE O CONSEQUENZIALE INCLUSI SOLO IN VIA ESEMPLIFICATIVA DANNI PER PERDITA DI AVVIAMENTO INTERRUZIONE DELL ATTIVITA GUASTO O MALFUNZIONAMENTO DEL COMPUTER PERDITA DI PROFITTI COMMERCIALI PERDITA DI INFORMAZIONI COMMERCIALI DANNI PER LESIONI PERSONALI O TUTTI GLI ALTRI DANNI COMMERCIALI O PERDITE ANCHE QUALORA ALADDIN FOSSE STATA INFORMATA DELLA POSSIBILITA DI TALI DANNI O PER QUALUNQUE ALTRA PRETESA PROVENIENTE DA QUALSIASI ALTRA PARTE ALCUNE GIURISDIZIONI NON PERMETTONO L ESCLUSIONE O LA LIMITAZIONE DI DANNI ACCIDENTALI O CONSEQUENZIALI O PER LESIONI PERSONALI O IN CASO DI DOLO O COLPA GRAVE DI ALADDIN PERTANTO QUESTA LIMITAZIONE ED ESCLUSIONE POTREBBE NON APPLICARSI A LEI NESSUN ALTRA GARANZIA Fatta eccezione e nei limiti di quanto qui pre
92. ficare problemi di rete e Auto nasconde chiude automaticamente la finestra del server dopo la partenza e Monitor visualizza il Monitor del server Smartkey per la verifica delle licenze disponibili e le connessioni dei client 15 2 Configurazione del client La configurazione del computer su cui gira l applicativo essere fatta attraverso la finestra Multilan Client di SCC Nella tabella centrale sono elencati tutti i protocolli con l applicativo protetto deve cercare la SmartKey La figura 6 mostra un esempio in cui il client stato configurato in modo tale che gli applicativi Windows cerchino la SmartKey sul computer 187 11 10 74 porta 16567 e tra quelle installate sulle porte locali 75 Smartkey Configuration Central Client Service Lingua Configurazione Tipo di programma Sorgente della configurazione Edita la configurazione dal Registry Protocolli 187 11 10 57 16547 Locale Aggiungi Modifica Rimuovi Azzera HEH Usa sempre il protocollo locale come ultima risorsa Mostra un messaggio a video in caso di errore nell accesso alla chiave Cancel Apply Figura 6 SmartKey Configuration Central modalita client La finestra Multilan Client mette a disposizione le seguenti opzioni e Tipo di programma permette di selezionare che tipo d applicazione proteggere Windows Windows 3 1 16 bit e DOS 16 bit e Usa sempre il
93. gistro automaticamente incrementato di uno Si tratta quindi di un contatore autoincrementale a sola lettura che permette di evidenziare tentativi di effrazione con ricerca della Password Per ragioni di sicurezza il contatore non azzerabile da nessuna delle funzioni di scrittura o programmazione della chiave Il conteggio compreso tra 0 e 10000 Il registro letto durante una fase di lettura READING MODE previa conoscenza della Password Se la Password errata il numero restituito generato in modo casuale Il software da proteggere utilizzare il registro per la verifica di eventuali tentativi di accesso indebito ove ad esempio la chiave sia usata per permettere l accesso a banche dati o a dati riservati il software pu disabilitarne permanentemente il funzionamento alterando il contenuto dei Secure Data dopo un numero programmato di accessi errati anche non consecutivi 28 8 Protezione automatica Il programma Global Security System GSS permette di proteggere il programma in modo automatico senza dover scrivere alcuna riga di codice e senza disporre dei file sorgenti del programma GSS partendo dal file eseguibile del programma da proteggere genera un programma protetto Il programma protetto cosi ottenuto ha le stesse funzionalita dell originale ma funzionare solamente con la SmartKey per cui stato generato e con quelle che hanno la sua stessa configurazione GSS offre un ulteriore grado di sic
94. grado di programmare la SmartKey cio inserire i dati che determinano la configurazione della SmartKey Secondo il differente modello di SmartKey utilizzato ci possono essere o meno campi da impostare SPC permette anche di leggere la configurazione della SmartKey modificarla salvarla su file ripristinarla da file e infine scriverla su SmartKey La finestra di SPC ha due parti come mostrato dalla figura 10 Nella parte sinistra si seleziona dall elenco la SmartKey che si vuole configurare Nella parte destra si seleziona uno dei 10 pannelli per la configurazione della SmartKey Se non si dovesse visualizzare la propria SmartKey si pu aggiornare elenco con il pulsante Aggiorna Se non si dovesse ancora visualizzare la SmartKey significa che il sistema non la ha riconosciuta e bisogna controllare l installazione dei driver Se la SmartKey selezionata Fixed e quindi non scrivibile non sono visualizzati i pannelli Programmazione Fixing Contenuto e Ripristina Default Il primo pannello da usare Identificazione che permette l identificazione della SmartKey e l abilitazione all accesso agli altri pannelli Una volta fatta l identificazione l accesso ai pannelli non soggetto ad alcun vincolo 16 1 Pannello identificazione L identificazione della SmartKey avviene selezionando il pannello Identificazione ed inserendo i valori di Label e Password I valori possono essere scritti sia in formato testo sia in formato
95. i alla vostra applicazione 31 e Selezionare la cartella di destinazione dove desiderate salvare l applicazione protetta consigliabile cambiare cartella per evitare di sovra scrivere il file originale non protetto e Cambiare il Messaggio di Errore se lo desiderate in funzione della situazione d errore 32 9 Protezione manuale La protezione manuale si basa sull utilizzo delle funzioni della libreria del kit di sviluppo fornito Le funzioni per SmartKey o API sono implementate sia come librerie statiche sia come librerie dinamiche DLL nel caso specifico di Windows Da un punto di vista funzionale non c differenza tra i due tipi di libreria Quelle dinamiche offrono un grado di sicurezza minore perch un hacker esperto potrebbe capire quando il programma protetto usa la libreria dinamica Questo pericolo ridotto con le librerie statiche perch il link avviene nel momento della generazione del file eseguibile L uso delle API e l implementazione di tecniche di protezione robuste permettono di proteggere il proprio lavoro anche dalle minacce di pirati informatici esperti e dotati di raffinati strumenti d analisi E molto importante conoscere queste tecniche perch un hacker potrebbe eludere i sistemi di sicurezza grazie ad un banale punto debole del codice Ad esempio bisogna assolutamente evitare che da un analisi del file eseguibile si possa ricavare Label e Password capitolo 10 successivo illustra ed esemplifica al
96. i mancati guadagni dovuti alla pirateria Per le allarmanti enormi perdite le ragioni commerciali per realizzare una soluzione per la protezione del software hanno guadagnato l attenzione di un numero maggiore d addetti al settore Tra la comunit degli sviluppatori si sta realizzando l idea che ci potrebbe essere un buon equilibrio tra i costi per implementare la protezione software e i benefici da essa derivanti In aggiunta per convincere i dirigenti dell economicit della protezione del software gli sviluppatori devono considerare i seguenti fattori e La percentuale di software piratato nella propria nicchia di mercato se si opera in una nicchia di mercato Se la percentuale molto alta si corre anche il rischio di perdere quella nicchia e La percentuale di software piratato nelle nazioni in cui si intende vendere il software e Considerati i primi due fattori necessario e utile aggiungere la protezione alla propria applicazione 23 Pirateria Una rovina per l industria del software La pirateria informatica ha messo in pericolo il concetto stesso di propriet intellettuale Semplicemente la pirateria informatica la pratica di copiare e usare un prodotto software senza il permesso del proprietario o dello sviluppatore Solo da poco si sta diffondendo tra gli utenti l idea che l uso e la duplicazione del software proprietario sia illegale sebbene molti ancora mostrano un generale disinteresse nel trattare il software come
97. ici di sicurezza fissi e SmartKey PR Programmable A codici di sicurezza programmabili e memoria interna e SmartKey EP Extended Protection Come PR ma con prestazioni di sicurezza estese e SmartKey SP Super Protection Come EP ma con pi memoria disponibile e algoritmi di sicurezza programmabili dall utente e SmartKey XM Extented Memory Come SP ma con una elevata capienza di memoria e SmartKey NET Network Per applicazioni in rete SmartKey SP e XM sono quelle che offrono il maggiore grado di sicurezza SmartKey NET permette inoltre di proteggere programmi installati su pi computer collegati in rete E la pi costosa ma con un unica chiave si proteggono i programmi di una rete di computer SmartKey compatibile con Linux Mac OS X e tutti i sistemi operativi della Microsoft Windows Sono forniti sia i driver che le librerie per questi sistemi operativi SmartKey Parallela per non supportata sotto Mac OS SmartKey USB non pu essere usata con quei sistemi operativi che non supportano la porta USB La SmartKey USB anche disponibile in versione Driver Less DL che non richiede l installazione di alcun driver aggiuntivo nel sistema operativo per il corretto funzionamento Le librerie fornite permettono di scrivere programmi protetti in Windows Linux e Mac OS X Per i sistemi operativi Windows di Microsoft inoltre sono disponibili programmi con interfaccia grafica che agevolano l installazione la configur
98. ico di SmartKey Generalmente questi emulatori ignorano totalmente la semantica delle comunicazioni Le seguenti linee di guida potranno aumentare notevolmente la protezione da questi attacchi 10 1 Linee di guida generali Le seguenti linee di guida sono valide per tutti i modelli di SmartKey 10 1 1 Controllare la chiave in diversi punti della vostra applicazione L applicazione non dovrebbe controllare la presenza di SmartKey soltanto in un punto dell esecuzione Il controllo di SmartKey dovrebbe essere duplicato in vari punti del programma E possibile eseguire l operazione Locate Open soltanto all avvio ma le altre operazione vanno eseguite in molti altri punti 10 1 2 Uso estensivo dell operazione AES Scrambling Se il vostro modello di SmartKey la supporta l operazione AESScramble dovrebbe essere utilizzata per controllare la presenza di una SmartKey reale E necessario nascondere nella vostra applicazione una delle venti chiavi AES impostate tramite il comando AESSer e verificare periodicamente ed in differenti punti dell applicazione la presenza di una SmartKey tramite l operazione AESScramble 10 1 3 Uso estensivo dell operazione Scrambling L operazione Scrambling va utilizzata per controllare la presenza di una reale SmartKey Il controllo deve essere eseguito calcolando in precedenza un set di coppie di input e di stringhe di output dell operazione Scrambling Quando operazione avviata alcune coppie devono es
99. ificabile Pertanto tutte le chiavi FX di un singolo utilizzatore posseggono il medesimo codice La chiave SmartKey PR invece il modello con il miglior rapporto prezzo prestazioni perch oltre all Id Code univoco possiede una memoria interna a cui possibile accedere solo tramite codici riservati e programmabili Pertanto ogni chiave 8 singolarmente programmabile dalla software house in funzione delle specifiche esigenze E quindi possibile predisporre ogni chiave per la protezione di un particolare programma o di un insieme definito di moduli dello stesso programma E possibile scrivere nella chiave un numero di serie il nome o il codice del cliente una data o qualunque altra informazione che possa essere utile al meccanismo di protezione implementato E adatta per la protezione della maggior parte del software in una fascia media di costo perch offre un elevata sicurezza ad un costo contenuto La chiave SmartKey EP consigliabile nella protezione di programmi costosi ove si vogliano scoraggiare non solo i tentativi di copiatura del software ma anche i tentativi d effrazione del meccanismo di protezione stesso cio l effrazione o l alterazione del contenuto della chiave La chiave SmartKey SP e XM sono necessarie se il proprio schema di protezione richiede un elevata capacit di memorizzazione di dati all interno della chiave 22 La chiave SmartKey NET la scelta obbligata applicazioni in rete locale ove non si desi
100. impossibile disassemblare l applicazione originale usando il file eseguibile generato da GSS Qualsiasi strategia di protezione priva delle tecniche di crittografia offre un livello di protezione piuttosto ridotto La crittografia reversibile solo se la SmartKey usata per la crittografia collegata al computer Se manca la SmartKey la crittografia irreversibile Nel caso specifico dei programmi basati su Windows la crittografia permette di evitare l esportazione e la copia illecita delle proprie risorse Questo si rende necessario poich esiste un ampia disponibilit di programmi basati su Windows che consentono di estrarre le risorse icone cursori dialoghi menu bitmap barre degli strumenti ecc e anche di copiarle e riutilizzarle 8 3 4 Protezione basata su parametri Gli utenti di SmartKey possono utilizzare una protezione basata su molteplici parametri oltre a quella offerta dalla crittografia Questo garantisce che il programma protetto lavori solo quando la chiave utilizzata la stessa impiegata originariamente per la creazione del file Ci perch ciascuna chiave possiede un insieme di parametri unico che comprende d Code Label Password e Memoria Tuttavia la protezione basata su parametri un optional che pu essere facilmente disattivato eccetto per la Label L uso della Label obbligatorio Quando lavora un programma protetto e i parametri optional della chiave sono disattivati controllata solo
101. informazioni necessarie all esecuzione del comando e l eventuale risultato E definito come una struttura o record con i seguenti campi struct smartkey 1 word lpt word command byte label 16 byte password 16 byte data 64 word fail counter word status byte ext data 352 j L uso d ogni campo pu variare secondo il comando eseguito ma generalmente il seguente lpt Identificatore della porta parallela o USB dove si trova la SmartKey command Codice del comando da eseguire label Label della SmartKey La label necessaria per tutti i comandi password Password della SmartKey La password necessaria per tutti i comandi che richiedono 33 l accesso alla memoria di SmartKey data Contenuto della memoria della SmartKey e generico buffer per le operazioni che richiedono uno scambio di dati fail_counter Contatore degli accessi falliti alla SmartKey status Risultato dell esecuzione del comando Il valore 0 indica che il comando stato eseguito correttamente ext data Contenuto della memoria estesa della SmartKey E da considerare che bench alcuni campi abbiano il medesimo nome dei registri fisici della chiave questi sono entit diverse Ad esempio il contenuto della memoria della SmartKey effettivamente presente nel campo data della struttura solo durante le operazioni Reading e Writing Ad esempio durante l operazione di Scrambling il campo data contiene i dati
102. ing Il comando Locating effettua la ricerca di SmartKey con una Label prefissata su tutte le porte del sistema sia parallele sia USB e consente al software protetto di individuare su quale di queste posta la chiave stessa Il risultato dell operazione di Locating l identificatore della porta su cui installata la chiave Questo identificatore deve essere utilizzato per tutte le successive operazioni sulla chiave Non si possono fare assunzioni sul valore di questo identificatore in quanto dipende dal modello di SmartKey utilizzato dalla versione dei driver dal sistema operativo installato e dalla configurazione del PC Il valore dell identificatore deve solamente essere letto dal campo dopo il comando Locating ed utilizzato in tutti gli altri comandi fino al termine dell applicazione L utilizzo della funzione Locating consente di rendere il software protetto indipendente dalla porta parallela USB sulla quale l utilizzatore installer la chiave Dopo il comando Locating il campo pt port impostato con l identificatore della porta sulla quale presente la chiave Ricordiamo che con le chiavi FX la Label non programmabile e coincide con 1 d Code mentre con le chiavi programmabili la Label pu essere programmata con una sequenza qualunque di 16 byte In entrambi i casi la modalit Locating pienamente operativa Lo scambio di informazioni cos organizzato Models ALL Input COMMAND 1
103. ing Ripristina Default Map Diagnostica Info Analisi SmartKey Programming Central NET demo USB Locale F LPT N di M di esecuzioni N di e USB applicazioni 1 nessun limite licenze NET demo 0 0 Se necessario USB DL possibile diminuire la memoria riservata al decrementando la voce Lunghezza Lunghezza 117 oOojojojojlojoijojojo Aggiorna Figura 13 Pannello Map di una SmartKey USB di tipo NET I dati necessari per la configurazione fatta con Map sono inseriti nella memoria di SmartKey e quindi il numero di applicazioni che si possono proteggere dipende dalla capienza della memoria Occorrono due byte per abilitare il servizio Map e tre byte per ogni applicazione da proteggere Quando si usa la protezione Map meglio evitare di scrivere la memoria di SmartKey usando altri applicativi perch si corre il rischio di sovrascrivere le celle di memoria destinate a Map Le celle di memoria usate sono sequenziali a partire dalla cella 00 Se si volessero usare le celle di memoria libera occorre tenere presente che la prima cella la numero 2 3 numero delle applicazioni protette Due semplici esempi sono e Sivuole fare eseguire l applicazione 1 solo 5 volte N Applicazione 1 N di esecuzione 5 N di licenze nessun valore Lasciare pure il valore 0 di default
104. invece corrisponde ad una cassaforte pi sofisticata per aprirla s necessario possedere una chiave fisica ma anche necessario impostare una particolare combinazione su un apposita manopola due giri a sinistra tre a destra etc Analogamente la chiave PR caratterizzata da un Id Code la chiave fisica da una Password la 21 combinazione Sia la cassaforte sia il modulo PR hanno una combinazione programmabile solo conoscendo la Password possibile verificarne i Secure Data cio accedere al contenuto della cassaforte modello una variante della chiave PR e nella nostra analogia corrisponde ad una cassaforte con serratura 14 Code e combinazione Password in pi un dispositivo interno conta il numero di combinazioni errate impostate Fail Counter inoltre un meccanismo attivabile su richiesta impedisce che qualcuno possa fraudolentemente variare la combinazione impostata Il modello SP dotato di 416 byte 896 1 modello USB 3 anzich 64 byte 2 una cassaforte pitt capiente modello XM dispone di 8192 byte di memoria Infine la chiave NET possiede gli stessi meccanismi di sicurezza della chiave SP pero adatta alle applicazioni in rete di personal computer Ecco una tabella riassuntiva delle caratteristiche dei modelli di SmartKey SmartKey Rete IdCode Password Memoria Fail AES Counter FX Y PR Y Y 64 128 byte EP Y v 64 128 byte SP Y Y 416 896 byte Y
105. irettamente da Aladdin e dovranno essere spediti dalla parte che effettua la restituzione con spedizione ed assicurazione pagata Il Prodotto o il suo componente deve essere restituito con una copia della sua ricevuta consumatori italiani come definiti dal D lgs 6 settembre 2005 n 206 hanno due mesi dalla scoperta del difetto per segnalarlo a Aladdin e non devono pagare alcun costo per la restituzione del Prodotto a Aladdin PARTE lll NORME APPLICABILI A TUTTE LE CONCESSIONI DI LICENZA Estensione della Concessione ed Usi Proibiti Fatta eccezione per quanto espressamente permesso negli Articoli 2 1 e 2 2 di cui sopra Lei accetta i di non utilizzare il Prodotto in qualunque modo che vada oltre lo scopo della licenza da Lei acquistata in conformit al Suo ordine di acquisto ii di non utilizzare modificare integrare o concedere in sub licenza il Software o qualunque altro Prodotto di Aladdin se non espressamente autorizzato dal presente Contratto e dalla Guida di SMARTKEY e SMARTPICO iii di vendere concedere in licenza sub licenza concedere a noleggio assegnare trasferire concedere in pegno o condividere con qualcun altro i Suoi diritti derivanti da questa licenza iv di non modificare disassemblare decompilare sottoporre a reverse engineering aggiornare o migliorare il Software o tentare di scoprire il codice sorgente del Software v di non installare il Software in un server accessibile attraverso una
106. it 1 MessageBox NULL MB_ return 0 AES SmartKey not found SmartKey not found LENGTH Error Error MB_SYSTEMMODAL 16 20 Error setting the A pi Error SYSTEMMODAL 60 keys setup correctly MB_ICON ERROR MB_ICON ERROR This SmartKey model doesn t support A IDYES Information ES commands Set the AES keys The operation cannot be undone o4 ES keys and serial MnNrPlease MB ICONERROR Usekey Questo esempio utilizza le chiavi AES include include include include include include skeydrv h aes h lt stdlib h gt lt stdio h gt lt time h gt lt windows h gt Serial unsigned char serial 16 3 0x39 Ox9d 0x81 Oxd0 Ox6f 0x78 0x94 0x41 Oxec Oxfe Oxd4 Oxel 0x6d y 20 AES keys unsigned char aeskey 16 20 0x27 Oxel Ox4e Oxf4 0x82 0x1d 0xa2 Oxbd 0 1 0x37 0x66 Stripped 0x57 0x4b 0x21 0x94 0x82 0x38 0x68 Oxf8 0xf8 0x54 0x05 0x70 0x39 y int main 1 SKEY_DATA key aes_context aes unsigned key_index unsigned char result_buffer 16 unsigned char random_buffer 16 unsigned 1 printf SmartKey AES example n initialize the random number generator srand time 0 memset amp key 0 sizeof strnc
107. ite l utility automatica GSS SmartKey fornisce un elevato grado di sicurezza Per quanto riguarda GSS questo programma non si limita semplicemente a proteggere le applicazioni ma effettua un operazione di crittografia del software usando i valori dei registri memorizzati in SmartKey come chiave di codifica Quando mandata in esecuzione l applicazione protetta con GSS si autodecodifica istantaneamente utilizzando i registri presenti in SmartKey Senza SmartKey l applicazione non sar mai decodificata 3 6 Applicativi per SmartKey SmartKey dotata del seguente software di supporto 55 Global Sicurity System utility per la protezione rapida e diretta dei file eseguibili senza nessuna modifica ai sorgenti dell applicazione e SPC SmartKey Programming Central utility per la programmazione e personalizzazione delle chiavi con i propri codici di sicurezza 18 SDI Smart Driver Installation utility per l installazione manuale ed automatica dei driver e SCC SmartKey Programming Central utility per la configurazione dei server e dei client di una rete SmartKey e Driver d interfacciamento per i vari linguaggi di programmazione per i vari sistemi operativi Oltre a questi tool sono forniti alcuni programmi scritti per i principali ambienti di sviluppo per apprendere come usare le funzioni delle librerie fornite Gli applicativi descritti in questo paragrafo sono disponibili solo per l ambiente Windows 3 7 SmartKey
108. l meccanismo di protezione avviene in modi diversi ma principalmente tramite un operazione di comparazione tra il contenuto atteso e quello effettivamente letto dalla chiave l esito del confronto permette di decidere se continuare o no l esecuzione del programma Nel caso delle chiavi SP XM e NET il registro anche usato per la memorizzazione dell algoritmo di sicurezza programmabile da utente Infine con la chiave di rete NET alcuni byte sono utilizzati per definire il numero massimo d utenti contemporanei dell applicazione protetta e l eventuale limitazione al numero totale d esecuzioni Il servizio di gestione delle licenze richiede 2 byte per l abilitazione del servizio stesso 3 byte per ogni applicazione protetta I Secure Data possono essere letti o scritti da software purch preventivamente sia stata trasferita la corretta Password In caso di Password errata le operazioni di lettura non restituiscono il contenuto dei Secure Data bensi una serie pseudocasuale di bit Le operazioni di scrittura con Password errata non hanno parimenti alcun effetto al fine di non alterare il valido contenuto dei dati programmati 7 5 Fail Counter register l allarme sugli accessi errati Il registro Fail Counter disponibile solo nelle chiavi EP SP XM e NET permette il conteggio automatico del numero di tentativi di accessi errati alla chiave Ogni volta che tentato un accesso in lettura o in scrittura con Password errata il contenuto del re
109. l server Per configurare i client anche possibile utilizzare l utility a riga di commando cskeycfg disponibile nella directory SdiMManual ProtectionNClient Windows Libraries And Per maggiori dettagli riferirsi alla documentazione inclusa nelle stesse directory 14 4 Installazione su Linux e Mac OS X Per l installazione del server su Linux e Mac OS X sufficiente decomprimere il package corrispondente e con diritti di root digitare il comando skinstall presente nel package Per la disinstallazione sufficiente digitare il comando skuninstall nel package del server Consultare il file LEGGIMI allegato al package del server per 1 dettagli sull installazione e sulla configurazione del server Package Descrizione smartkey server linux tar gz Server SmartKey per Linux smartkey server macosx tar gz Server SmartKey per Mac OS X PowerPC Intel Tabella 45 SmartKey Server per Linux e Mac OS X 73 15 SmartKey Configuration Central SCC SmartKey Configuration Central SCC un programma con interfaccia grafica che agevola la configurazione del server dove si trova la SmartKey NET e il client dove si trova l applicativo da proteggere SCC lavora in ambiente Windows e permette la configurazione del client e del server su reti con protocollo ANP e TCPIP 15 1 Configurazione del server Configurare il server SmartKey significa configurare un programma che in background scambia autom
110. la Label tralasciando gli altri parametri Con una buona combinazione solo di Label il programma eseguito con successo 30 8 3 5 Messaggio visualizzato in assenza della chiave Se il programma protetto attivato senza la presenza della relativa SmartKey il programma si arresta ed visualizzato il seguente messaggio di default Chiave Mancante Questo messaggio non fisso Cos come per i messaggi associati ad altre funzioni l utility GSS EXE permette anche di sostituire il messaggio standard con uno personalizzato 8 8 6 Limitazione del numero di esecuzioni e licenze L utilizzo di SmartKey non limitato soltanto alle applicazioni protette da accessi non autorizzati Essa consente anche di impostare il numero di esecuzioni e di licenze permesse per l applicazione protetta Questa funzione particolarmente utile per il rilascio di versioni demo dell applicazione Questo fornisce agli utenti la possibilit di consentire un uso limitato dell applicazione Al raggiungimento del numero prestabilito di esecuzioni l applicazione cessa di funzionare Dall altro lato la possibilit di limitare il numero di licenze garantisce un utilizzo dell applicazione conforme alla politica sulle licenze Questa funzione disponibile con la versione SmartKey NET 8 3 7 Crittografia automatica dei file di dati Per mettere un applicazione completamente al sicuro da accessi non autorizzati non solo necessario proteggere l applicazione es
111. le una tabella di corrispondenza tra dati originali e dati scramblati L algoritmo di Scrambling utilizzato ad alta sicurezza e di tipo non lineare Lo scambio di informazioni cos organizzato Models ALL Input COMMAND 45 LPT Porta LABEL Label DATA O 7 Dati originali 8 byte Output DATA O 7 Dati scramblati 8 byte STATUS Stato 0 Successo 1 0 Errore Tabella 9 Parametri per il comando Scrambling Se stata effettuata precedentemente una operazione di Locating al campo Lpt viene automaticamente assegnato il valore corretto non quindi necessario che il programmatore si preoccupi di assegnarne un valore La funzione di Scrambling non altera il contenuto della memoria di SmartKey ma utilizza il campo data come variabile di appoggio per i dati 9 3 1 Passaggio parametri Parametri da trasferire per eseguire un operazione di Scrambling con ricerca della chiave sulla porta parallela LPT1 LPT 01 00 Porta COMMAND 53 00 Scrambling 5 LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 DATA XX XX XX XX XX XX XX XX Dati da scramblare 8 byte Tabella 10 Scambio di informazioni per il comando Scrambling Al termine dell operazione i primi 8 byte del campo data sono sostituiti con i dati scramblati che dipendono sia dai dati originali sia dall d Code della chiave In questo caso si rende necessaria un inizializzazione del campo LPT in funzione d
112. liente a cui SmartKey destinata Infatti ogni configurazione salvata deve essere associata al cliente che user la SmartKey La figura 17 mostra l esempio di una SmartKey USB di tipo NET in cui stato selezionato la configurazione destinata al cliente JQSAED La selezione del file fatta usando il mouse e cliccando sul file La tabella centrale di Programmazione mostra le possibili configurazioni che posso scrivere in SmartKey Ogni configurazione corrisponde ad un file aperto usando il tasto Apri I pulsanti del pannello hanno i seguenti compiti e Apri Apre un file contenente la configurazione e la aggiunge nella lista della tabella centrale Nella figura 17 sono presenti tre configurazioni ed stata selezionata la configurazione per il cliente INFO e Salva Salva la configurazione selezionata in un file e Nuovo Crea una nuova configurazione Selezionando il pulsante si apre il pannello Dati Clienti figura 18 con tutti i campi vuoti e Modifica Modifica la configurazione selezionata Selezionando il pulsante si apre il pannello Dati Clienti figura 18 contenenti tutti i valori della configurazione e Cancella elimina dalla tabella la configurazione selezionata e Scrivi scrive la configurazione selezionata nella SmartKey Nel caso della figura 17 scritto la configurazione per il cliente JOSAED Se il valore FIX della configurazione pari a 1 la scrittura 83 irreversibile In caso d errore SmartKey
113. lla chiave SmartKey FX di tipo programmabile all interno della chiave disponibile un registro di memoria di 64 128 byte in lettura e scrittura a cui possibile accedere soltanto inviando due codici d accesso denominati Label e Password ognuno a 16 byte I dati memorizzati nella chiave sono definiti Secure Data perch solo il conoscitore della password pu leggerli scriverli I codici Label e Password stessi con lunghezza 16 byte sono programmabili da software senza l ausilio di dispositivi di programmazione esterni pertanto possibile variare la programmazione della chiave per ogni diverso programma da proteggere I dati memorizzati possono essere variati dinamicamente dal programma protetto permettendo applicazioni estremamente sofisticate quali ad esempio l utilizzo dei dati stessi come contatore d accessi SmartKey PR utilizza un meccanismo di protezione a doppia serratura la sicurezza garantita sia dall univocit dell d Code fissato in fabbrica e sia dalla password e dai dati programmati noti alla sola software house e Protezione algoritmica basata su un codice univoco e personale Id Code e Protezione algoritmica con 20 chiavi personalizzabili dall utente usando l algoritmo di crittografia AES per il modello SmartKey USB 3 Codici di sicurezza addizionali programmabili a 16 byte Label e Password e 64 byte di memoria interna programmabile Secure Data 128 byte per il modello SmartKey 3 USB DL Driver L
114. me e sar soggetto alle disposizioni e condizioni indicate nei contratti contenuti allegati a tale software Nel caso in cui tali contratti non siano disponibili tali software di terzi verranno forniti Cosi come sono senza garanzia di alcun tipo ed il presente Contratto verr applicato a tali terzi fornitori di software e ai software di terzi come se fossero rispettivamente Aladdin ed il Prodotto Varie presente Contratto rappresenta l intero accordo relativo alla presente licenza e pu essere modificato da entrambe le parti solo per iscritto L ACCETTAZIONE DI UN QUALUNQUE ORDINE DI ACQUISTO PRESENTATO DA LEI E ESPRESSAMENTE CONDIZIONATO ALLA SUA ACCETTAZIONE DEI TERMINI QUI INDICATI NONCH DELLO SCOPO E DEI TERMINI EVENTUALMENTE INDICATI NEL SUO ORDINE DI ACQUISTO Qualora una disposizione del presente Contratto venisse ritenuta non applicabile tale disposizione sar modificata solo per quanto necessario al fine di renderla applicabile Il mancato esercizio da parte di ognuna delle parti dei diritti concessi dal presente contratto o il mancato esercizio di un azione contro l altra parte in caso di violazione del presente contratto non verr considerata una rinuncia di quella parte al successivo esercizio dei diritti o delle azioni successive in caso di future violazioni Certificazioni CE Compliance CE La chiave elettronica SmartKey risultata in conformit alle seguenti norme CEI EN 61000 4 2 CEI EN 61000 4 3
115. mi se non si vuole usare quella di default Installati i programmi bisogna lanciare il programma SmartKey Driver Installation SDI e selezionare il driver da installare Per proteggere automaticamente un file eseguibile occorre installare il driver della SmartKey USB o Parallela e il driver del GSS L installazione di SmartKey Parallela richiede che la SmartKey stessa sia collegata al computer e all eventuale stampante prima dell accensione del computer L installazione di SmartKey USB richiede solo che sia inserita dopo l installazione dei driver La verifica che i driver siano stati installati correttamente si pu fare con il programma SmartKey Program Central Se la SmartKey 2 inserita e se i driver sono stati installati correttamente questa deve apparire nell elenco delle SmartKey presenti sul computer 19 4 modelli di SmartKey Le esigenze di protezione del software comprendono sia applicazioni semplici per pacchetti a basso costo sia applicazioni sofisticate e costose dove richiesta massima sicurezza e flessibilita Per ogni situazione esiste un modello di SmartKey con un adeguato rapporto prezzo prestazioni Tutti i modelli sono stati implementati per garantire la compatibilit dall alto al basso se un programma funziona con una SmartKey sicuramente funzioner anche con una pi complessa Ad esempio un programma scritto per SmartKey FX funzioner con tutte le SmartKey In questo capitolo sono spiegate dettagliatamente le c
116. ni massime di un programma perch si corre il rischio di scrivere su celle di memoria necessarie per questi due tipi di servizi 16 7 Pannello fixing Il pannello Fixing permette di rendere la SmartKey non pi riscrivibile Premendo il pulsante Fissa i registri Label e Password e la memoria dati diventano non modificabili L operazione Fissa irreversibile La figura 16 mostra un esempio di pannello Fixing SmartKey Programming Central NET demo USB Elenco SmartKey Ripristina Default Map Diagnostica Info Analisi Locale SF LPT c USB demo USB DL Questa funzione permette di fissare la chiave Smartkey Identificazione Scrambling Contenuto Programmazione Fixing Fissare i dati significa rendere i registri Label Password e memoria dati non pi riprogrammabili Dopo aver eseguito la modalit di FIXING non pi possibile cambiare alcun modo il contenuto di Smartkey Aggiorna Uscita Figura 16 Pannello Fixing di una SmartKey USB di tipo NET 16 8 Pannello programmazione Il pannello Programmazione permette di gestire i file che contengono la configurazione della SmartKey Programmazione permette di creare una nuova configurazione e salvarla su file ripristinarne una salvata su file modificarla e salvarla nuovamente su file e infine scrivere la configurazione selezionata su SmartKey La catalogazione delle varie configurazioni avviene in base al nome del c
117. ntrollo del numero di utenti che contemporaneamente possono utilizzare l applicativo protetto La protezione richiede un unica chiave SmartKey NET installata su un qualunque calcolatore della rete SmartKey NET in grado di gestire diversi utenti in rete il cui numero massimo programmabile nella chiave stessa possibile definire il numero d utenze abilitate all utilizzo dello stesso pacchetto software e Protezione algoritmica basata su un codice univoco e personale d Code e Protezione algoritmica con 20 chiavi personalizzabili dall utente usando l algoritmo di crittografia AES per il modello SmartKey USB 3 e Codici di sicurezza addizionali programmabili a 16 byte Label e Password e 416 byte di memoria interna programmabile Secure Data Contatore dei tentativi d accesso fraudolento Fail Counter Congelamento dei dati programmati e Protezione d applicazioni in rete locale tramite una sola chiave di protezione e Programmabilit del numero di utenti contemporanei abilitati ad utilizzare l applicazione protetta e del numero d esecuzioni 4 6 Comparazione dei modelli SmartKey Il paragone tra SmartKey ed una cassaforte aiuta a meglio comprendere la differenza tra le varie chiavi Il modello FX analogo ad una cassaforte che richiede una particolare chiave fisica per essere aperta casseforti di differenti proprietari hanno chiavi diverse cos chiavi FX di diversi utenti hanno 14 differenti Il modello PR
118. o alla lettura completa tramite Reading Il comando BlockReading l unico comando di lettura che permette l accesso a tutta la memoria della chiave Lo scambio di informazioni cosi organizzato Models PR EP SP XM NET Input COMMAND BR LPT Porta LABEL Label PASSWORD Password DATA O0 1 Puntatore alla prima word da leggere da O a 31 per modelli con 64 bytes di memoria da 0 a 63 128 bytes di memoria da 0 a 207 per 416 byte di memoria da 0 a 447 per 896 bytes di memoria 2 byte DATA 2 3 Numero di word da leggere da 1 a 16 2 byte Output DATA A4 Valori da leggere nell area indicata dai due parametri precedenti 2 32 byte STATUS Stato 0 Successo 0 Errore 37 Tabella 15 Parametri per il comando BlockReading Se la Password passata alla chiave non corretta i Secure Data ed il Fail Counter sono generati in modo pseudocasuale 9 6 1 Passaggio parametri Parametri da trasferire per eseguire un operazione di BlockReading su una chiave presente sulla porta parallela LPT1 richiesta la lettura di 15 word 000F hex a 30 byte a partire dalla dodicesima word 000B hex indirizzo 11 Si ricorda che nella struttura di passaggio parametri i primi due byte del campo data sono riservati all indirizzo della prima word da leggere i successivi due byte contengono il numero di word da leggere dal quinto byte in poi sar contenuto al termine dell operazione il bl
119. o software e o programma che non sia il Software Aladdin Aladdin esclude espressamente qualsivoglia coinvolgimento e responsabilit in relazione a programmi elementi software e o elementi hardware che non sono e non fanno parte del prodotto Aladdin Limitazione di Garanzia Aladdin garantisce solo a Suo vantaggio che i il Software quando consegnatole e per un periodo di tre 3 mesi dopo la data di consegna funzioner rispettando sostanzialmente la Guida di SMARTKEY e SMARTPICO a condizione che esso venga utilizzato sull hardware e con il sistema operativo per cui 6 stato progettato e ii che SMARTKEY e SMARTPICO sar sostanzialmente privo di difetti di materiale e di lavorazione significativi per un periodo di dodici 12 mesi dopo la data di consegna Per i consumatori italiani come definiti dal D lgs 6 settembre 2005 n 206 i suddetti periodi di garanzia sono pari a 24 mesi Esclusione di Garanzia ALADDIN NON GARANTISCE CHE IL PROPRIO PRODOTTO SODDISFERA LE SUE ESIGENZE O CHE IL FUNZIONAMENTO SARA PRIVO DI INTERRUZIONI O ERRORI NEI LIMITI CONSENTITI DALLA LEGGE ALADDIN ESCLUDE ESPRESSAMENTE TUTTE LE GARANZIE QUI NON INDICATE E TUTTE LE GARANZIE IMPLICITE INCLUSE A MERO TITOLO ESEMPLIFICATIVO LE GARANZIE IMPLICITE DI COMMERCIABILITA ED IDONEITA PER UNO SCOPO SPECIFICO NESSUN CONCESSIONARIO DISTRIBUTORE RIVENDITORE AGENTE O DIPENDENTE DI ALADDIN E AUTORIZZATO A FARE MODIFICHE AMPLIAMENTI O AGGIUNTE ALLA PRESENTE GAR
120. occo dati letto LPT 01 00 Porta COMMAND 52 42 Block Reading BR LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 PASSWORD 45 55 54 52 4F 4E 00 00 Password EUTRON 00 00 00 00 00 00 00 00 DATA OB 00 OF 00 Address and Number of Words Tabella 16 Scambio di informazioni per il comando BlockReading 9 7 Block Writing La funzione BlockWriting consente di scrivere porzioni dei Secure Data ad esempio una due o poche word piuttosto che l intero campo Ci consente di risparmiare qualche frazione di secondo rispetto alla scrittura completa tramite Writing Il comando BlockWriting amp l unico comando di scrittura che permette l accesso a tutta la memoria della chiave Lo scambio di informazioni cosi organizzato Models PR EP SP XM NET Input COMMAND BW LPT Porta LABEL Label PASSWORD Password DATA O 1 Puntatore alla prima word da scrivere da 0 a 31 per modelli con 64 bytes di memoria da 0 a 63 per 128 bytes di memoria da 0 a 207 per 416 byte di memoria da 0 a 447 per 896 bytes di memoria 2 byte DATA 2 3 Numero di word da scrivere da 1 a 16 2 byte DATA 4 Valori da scrivere nell area indicata dai due parametri precedenti 2 32 byte Output STATUS Stato 0 Successo 0 Errore Tabella 17 Parametri per il comando BlockWriting Se la Password passata alla chiave non corretta i dati presenti nel Secure Data
121. on il comando Reading Con questo comando possibile ottenere il valore del registro senza leggere tutta la memoria Lo scambio di informazioni cosi organizzato Models EP SP XM NET Input COMMAND LPT Porta LABEL Label PASSWORD Password Output FAIL COUNTER Valore del Fail Counter STATUS Stato 0 Successo 0 Errore Tabella 30 Parametri per il comando FailCounterReading 9 16 Autenticazione AES L autenticazione AES supportata da tutti modelli SmartKey 3 USB basata sulla personalizzazione da parte dell utente di una ventina di codici di sicurezza Ha la funzione di individuare per via algoritmica la presenza della SmartKey Questi comandi permettono un nuovo tipo di autenticazione basata sull algoritmo AES a 128 bit alternativo al comando Scrambling senza la necessita di usare una grossa tabella di coppie input output di valori di scrambling possibile verificare se la SmartKey supporta l autenticazione AES tramite il comando ExtModelReading e verificando il corrispondente bit di funzionalit 9 16 1 Autenticazione Per identificare la chiave SmartKey l applicazione invia un valore casuale alla chiave La chiave risponde con la crittografia del numero seriale precedentemente memorizzato dopo aver effettuato l operazione XOR con il valore inviato dall applicazione RESULT AES ENCRYPT RAND XOR SERIAL L applicazione pu quindi decrittografare il risultato e
122. one di verificare la presenza della chiave stessa secondo il protocollo precedentemente descritto Prima di utilizzare questo comando necessario avere impostato le chiavi AES tramite il comando AESSet Lo scambio di informazioni cosi organizzato Modello Solo SmartKey 3 USB Input COMMAND O LPT SmartKey port LABEL SmartKey Label DATA O 15 Dati casuali da utilizzare DATA 16 Chiave AES da utilizzare La prima chiave ha indice 0 L ultima indice 19 Output DATA O0 15 Risultato del protocollo Tabella 32 Parametri per il comando AESScramble 9 19 Errori Dopo l esecuzione di un comando nel campo status della struttura di comunicazione sar presente uno dei seguenti valori 45 Nome Valore Descrizione ST OK 0 Operazione completata con successo ST NONE KEY 1 Dispositivo non trovato Questo errore essere causato da SmartKey non inserita correttamente nella porta Parallela o USB e Driver non installati correttamente e LABEL utilizzata errata ST_SYNT_ERR 2 Errore di sintassi nel comando Questo errore essere causato da e Uno degli argomenti utilizzati nel comando errato e Il comando non supportato dal modello di SmartKey Ad esempio la lettura della memoria su una SmartKey senza memoria e Il comando impedito dallo stato corrente della SmartKey Ad esempio la scrittura della
123. one per i venditori di software SmartKey un piccolo dispositivo elettronico che essere inserito nel connettore parallelo o USB di ogni computer Ciascuna chiave caratterizzata da un unica firma digitale personalizzata che essere riconosciuta dal software che deve essere protetto La crittografia il cuore di questa tecnologia per la protezione software Usando la combinazione di algoritmi e chiavi di crittografia SmartKey resiste ai tentativi pi avanzati di violazione da parte dei pirati SmartKey inoltre supera gli svantaggi di una normale protezione contro la copia perch permette all utente di fare copie di riserva del proprio programma protetto 15 3 Introduzione SmartKey Immaginate di poter limitare l esecuzione di un qualunque programma applicativo per PC in modo che siate voi a decidere su quali e quanti calcolatori possa essere eseguito il vostro software Ebbene SmartKey una chiave di protezione del software cio un dispositivo hardware che svolge proprio questa funzione e ha lo scopo di impedire la diffusione illegale del software Il programma protetto tramite una chiamata a sistema controlla se SmartKey presente sul computer stesso o sul computer server SmartKey nel caso di una configurazione rete Se la chiave non presente il programma si blocca La chiamata a sistema di solito avviene poco dopo che il programma 8 stato messo in esecuzione ma avvenire pi volte e quando
124. ore per contattare Aladdin riguardo SmartKey spedire un email all helpdesk helpdeskO eutronsec it Si pu anche telefonare al Servizio di Assistenza al numero 035697055 od inviare un fax al numero 035697092 Per contatti di tipo commerciale possibile telefonare allo 035697080 o inviare un email all indirizzo info O eutronsec it 13 2 proteggere il software La duplicazione illegale di un programma una pratica molto diffusa essa molto semplice poco costosa e non richiede apparecchiature complesse e dispendiose I vari metodi per impedire o per lo meno rendere difficile la copia non si sono dimostrati efficaci perch eludibili nel giro di pochi mesi se non pochi giorni Con SmartKey si affronta il problema in modo differente non si impedisce la copia ma l uso del programma da parte di persone non aventi diritto 2 1 La minaccia della pirateria aumenta la necessit di protezione In un mondo dominato dalla tecnologia il software diventato molto importante Lo sviluppo del software richiede enormi risorse in termini di tempo lavoro soldi Per questo motivo il software diventato una propriet intellettuale dello sviluppatore o della azienda che lo produce Ma questo diritto degli sviluppatori spesso violato causando quasi sempre gravi perdite economiche Da qui la necessit di proteggere il software Le aziende hanno la necessit di controllare le loro propriet intellettuali per
125. ori in possesso della chiave possono far eseguire applicazioni protette e I responsabili delle vendite usano SmartKey per consegnare ai potenziali clienti copie dimostrative pienamente funzionanti dei programmi senza per il rischio che siano effettuate copie operative Mediante SmartKey essi possono addirittura monitorare il numero d esecuzioni effettuate dei programmi e I responsabili delle aziende e del sistema informativo usano SmartKey per evitare le responsabilit civili penali per il furto di software da parte dei dipendenti Con SmartKey gli accordi di site license del software acquistato sono posti al riparo dalle tentazioni degli utilizzatori e I responsabili dei laboratori informatici di scuole e universit utilizzano SmartKey per evitare la responsabilit della copia abusiva del software da parte degli studenti Il software ad uso scolastico infatti acquistato a condizioni particolari e pesanti sanzioni intervengono quando il loro uso effettuato al di fuori degli ambienti scolastici Gli utenti finali non devono preoccuparsi di come utilizzare SmartKey essi devono semplicemente inserirla nella porta parallela o nella porta USB e dimenticarsela SmartKey protegge le applicazioni restando completamente trasparente all utilizzatore 3 2 Quali sono le caratteristiche di SmartKey SmartKey si basa sull utilizzo di chip elettronici microprocessori dedicati e algoritmi che implementano funzioni di Sicurezza Elevata
126. otocollo ANP risulta quindi quello pi generale data la comune disponibilit di filesystem condivisi in tutte le tipologie di rete e sistemi operativi Per contro l utilizzo di file rende il protocollo inefficiente rispetto al TCPIP Si consiglia di usare questo protocollo solamente quando non si pu usare il TCPIP ANP ancora disponibile solo per garantire la compatibilit con i vecchi programmi DOS Il protocollo non pone vincoli sulla scelta del server SmartKey che essere indifferentemente il server di rete od un client qualsiasi Per l utilizzo del protocollo occorre e Individuare un disco di rete condiviso da tutti i PC client pu essere quello su cui gira normalmente l applicativo di rete ad esempio N 72 e disco di rete individuato creare una directory di lavoro per il programma server SmartKey Il nome della directory arbitrario ad esempio MD N ANP Rendere questa directory accessibile in lettura e in scrittura a tutti i computer della rete che vorranno utilizzare il programma protetto E fondamentale che tutti i computer possano creare e modificare files all interno di questa directory Se non si certi di questa possibilit prima di procedere con i passi successivi provare a copiare alcuni file all interno di questa directory da tutti i computer client che dovranno utilizzare il programma protetto e Installare e configurare correttamente sia il server sia i client SmartKey per l utilizzo del
127. ottenere il seriale rifacendo l operazione XOR con il valore casuale SERIAL AES DECRYPT RESULT RAND Se il numero seriale valido si pu assumere che una SmartKey sia presente e L utilizzo del valore casuale garantisce che la risposta della chiave sia sempre diversa e quindi non riutilizzabile L utilizzo della crittografia permette solo all applicazione di interpretare correttamente il numero seriale L applicazione pu verificare la correttezza del seriale impostando a priori parte di tale numero ad un valore fisso Ad esempio con il seriale di 16 byte 8 di tali byte possono essere impostati sempre 0 per tutti i seriali Se dopo la decrittografia questi byte sono correttamente a zero l applicazione sicura che la che ha 44 9 16 2 Utilizzo Per l utilizzo dei nuovi comandi l applicazione da proteggere deve utilizzare i driver standalone e multilan solo con il protocollo LOCAL che fornisce anche i nuovi comandi d autenticazione oltre alla normale interfaccia SmartKey ottenuto dalla chiave valida Tale verifica garantisce che il programma stia comunicando con una vera SmartKey e non con una SmartKey emulata Per com strutturato il protocollo l applicazione dovr contenere un implementazione dell algoritmo AES a 128 bit e un generatore di numeri casuali per realizzare la comunicazione con la chiave SmartKey E da sottolineare che tale implementazione dev
128. per Linux e OS X SmartKey pu essere usata con i sistemi operativi Linux e Mac OS X anche se con alcune limitazioni rispetto ai sistemi operativi Windows In ambiente Linux SmartKey pu essere usata solo per la protezione manuale standalone del software In ambiente Mac OS X si pu usare SmartKey per la protezione manuale standalone e multilan L installazione di SmartKey sotto Linux e Mac OS X spiegata nel capitolo 13 In ambiente Linux sono supportate le SmartKey Parallele le SmartKey 3 USB ele SmartKey 3 USB DL In ambiente Mac OS X sono supportate le SmartKey 3 USB e le SmartKey 3 USB DL 3 8 Getting Started La semplicita d uso di SmartKey e il suo kit di sviluppo permettono di iniziare ad usarla in breve tempo 3 8 1 Installazione L installazione dei programmi per l uso di SmartKey e i suoi driver avvengono in due fasi e Installazione dei programmi SmartKey Control Central SCC SmartKey Driver Installation SDD SmartKey Global Security System GSS SmartKey Programming Central SPC SmartKey Remote Update SRU e installazione del kit di sviluppo e Installazione dei driver per SmartKey USB per SmartKey Parallela e per Global Security System solo il programma Global Security System ha bisogno di driver propri Inserendo nel lettore il cdrom d installazione parte automaticamente la procedura d installazione dei programmi Per portarla a termine occorre solo specificare la directory dove installare i program
129. perativi a seconda del protocollo utilizzato Server SmartKey TCPIP Windows 9x NT 2000 XP 2003 Vista MacOSX DCZ Tabella 44 Tabella protocolli supportati da SmartKey installata su computer server 14 1 Protocollo TCPIP Il protocollo TCP IP puo essere utilizzato su una qualsiasi rete che lo supporti Il protocollo non pone vincoli sulla scelta del server SmartKey che essere indifferentemente il server di rete od un generico client Per l utilizzo del protocollo occorre Individuare l indirizzo di rete del PC su cui saranno installati la chiave e il server SmartKey e Verificare che il PC server SmartKey sia raggiungibile da tutti gli altri PC attraverso la rete e Identificare una porta TCP UDP libera che sar utilizzata per la comunicazione Il numero della porta deve essere compreso tra 1024 e 49151 per evitare conflitti con altri protocolli Per esempio 13527 e Installare e configurare correttamente sia il server sia i client SmartKey per l utilizzo del protocollo TCPIP specificando l indirizzo del server SmartKey e la porta TCPIP da utilizzare Se possibile conviene sempre utilizzare il protocollo TCPIP rispetto agli altri protocolli 14 2 Protocollo ANP Il protocollo ANP Algorithmic Network Protection sfrutta la presenza di filesystem condivisi per la comunicazione tra client e server L unica condizione per il suo funzionamento il supporto del locking dei file da parte del filesystem condiviso Il pr
130. protocollo ANP della directory condivisa creata Su alcuni sistemi operativi di rete il locking a livello di file non abilitato in modo automatico al momento dell installazione occorre pertanto fare riferimento alla documentazione per i dettagli sulla disponibilit ed attivazione del file locking Pu accadere che il nome completo della directory condivisa che serve per il protocollo ANP possa assumere valori diversi tra il KeyServer e i vari PC client Il parametro che passato al caricamento del programma server identifica la directory condivisa cosi 8 vista dal KeyServer che non necessariamente vista dai PC client allo stesso modo e con lo stesso nome Infatti il KeyServer potrebbe vedere la directory condivisa come CAMYDIR mentre i PC client potrebbero vedere la stessa directory come FAMYDIR In questo caso la configurazione per il server SmartKey deve essere CAMYDIR mentre la configurazione per il client SmartKey deve essere FAMYDIR 14 3 Installazione per Windows Il modo migliore per installare e configurare il server ed i client in Windows utilizzare l applicazione SmartKey Configuration Central descritta nel capitolo 14 4 Per installare e configurare il server anche possibile utilizzare l utility a riga di comandi askeyadd disponibile nella directory Sdk Manual_Protection Server_Programs Service_Windows per il servizio e Sdk Manual_Protection Server_Programs Executable_Windows per la versione applicativo de
131. protocollo locale se abilitato cerca sempre la SmartKey in locale anche se tale protocollo non stato esplicitamente inserito e Mostra un messaggio a video se attivata visualizza in una finestra tutti gli errori che avvengono durante la comunicazione con la SmartKey Questa opzione molto utile per identificare problemi di comunicazione 15 2 1 Fasi per la selezione e la configurazione Quando si preme il pulsante Aggiungi visualizzata una finestra come quella della figura 7 in cui possibile scegliere uno tra i tre tipi di protocolli disponibili Selezione Protocollo Protocollo directory condivisa Novell IPX Locale standalone Cancel Figura 7 Pannello per selezione protocollo Se si sceglie il protocollo Local non occorre inserire ulteriori parametri Se si sceglie il protocollo ANP si apre la finestra Protocollo ANP come mostrato nella figura 8 e bisogna inserire il nome della directory condivisa da utilizzare per la comunicazione tra server e client Se si sceglie il protocollo TCPIP si apre la finestra Protocollo TCPIP come mostrato nella figura 9 in cui bisogna inserire il nome simbolico o numerico del server e la sua porta 76 Protocollo ANP Protocollo TCPIP 187 11 10 74 16567 Figura 9 per la configurazione del protocollo 77 16 SmartKey Programming Central SPC SmartKey Programming Central SPC in
132. py key label SMARTKEY LABEL LENGTH key command LOCATING MODE msclink amp key if key status 0 MessageBox NULL SmartKey not found Error MB SYSTEMMODAL exit 1 key command EXT MOD EL E READING_MOD 61 0x71 0 0 7 0 0 38 0 1 2 1 0 21 0 50 msclink amp key if key status 0 MessageBox NULL SmartKey not found Error ICONERROR MB_SYSTEMMODAL exit 1 if key data 3 amp 0x1 0 MessageBox NULL This SmartKey model doesn t support AES commands Error MB ICONERROR MB SYSTEMMODAL exit 1 set the random value for 1 0 1 lt 16 1 random_buffer i rand 256 set the key number key_index rand 20 memcpy key data random_buffer 16 key data 16 key_index key command AES SCRAMBLE MODE msclink amp key if key status 0 MessageBox NULL Error using the AES key Error MB ICONERROR MB_SYSTEMMODAL exit 1 aes_set_key aes aeskey key_index 16 16 aes_decrypt aes key data result_buffer for 1 0 1 lt 16 1 result buffer i random buffer i if memcmp result buffer serial 16 0 MessageBox NULL Wrong serial Error MB ICONERROR MB SYSTEMMODAL exit 1 MessageBox NULL
133. rd sono inserite nel codice senza usare nessuna tecnica di protezione e analisi del file eseguibile si potrebbe risalire ad esse include skeylink h tinclude lt stdio h gt include lt stdlib h gt include lt string h gt int main KEY_NET k memset amp k 0 sizeof strncpy k label SMARTKEY LABEL LENGTH strncpy k password EUTRON PASSWORD_LENGTH Open k net command NET KEY OPEN smartlink amp k Chiamata a sistema if k status ST OK 1 printf Error in NET KEY exit EXIT FAILURE Close k net command NET KEY CLOSE smartlink amp k if k status ST OK printf Error in NET KEY CLOSEWMn exit EXIT FAILURE return EXIT SUCCESS 49 10 2 2 Esempio 2 Uso Base Scrambling Questo esempio mostra base dell operazione scrambling Anche questo esempio NON DEVE ESSERE USATO IN UN PROGRAMMA REALE perch i valori sono inseriti nel codice senza protezione include skeylink h include lt stdio h gt include lt stdlib h gt include lt string h gt Scrambling input output unsigned char scrambling in SCRAMBLE LENGTH 0x45 0x34 0x67 0x23 Oxa5 0x8f 0x2c 0x6d unsigned char scrambling_out SCRAMBLE_LENGTH 0x98 Oxab 0x22 0x24 Oxbb 0 0 61 0x8f
134. rete aperta al pubblico vi di non utilizzare copie di back up o d archivio del Software permettere che qualcun altro utilizzi tali copie per scopi diversi dalla sostituzione di una copia originale qualora venga distrutta o diventi difettosa Se Lei un membro dell Unione Europea il presente contratto non modifica i Suoi diritti derivanti dalla legislazione adottata con la Direttiva del Consiglio sulla Protezione Giuridica dei Programmi per Elaboratori Qualora Lei cerchi informazioni relative al significato di questa Direttiva dovrebbe contattare Aladdin Propriet Intellettuale QUESTO UN CONTRATTO DI LICENZA E NON UN CONTRATTO DI VENDITA Il componente software del Prodotto SMARTKEY e SMARTPICO di Aladdin incluse le revisioni le correzioni le modifiche i miglioramenti gli aggiornamenti e o gli upgrade del medesimo d ora in avanti l intero insieme o ogni parte dello stesso verr definito come Software e la relativa documentazione NON SONO IN VENDITA e sono e rimarranno di propriet di Aladdin Tutti i diritti di propriet intellettuale inclusi a mero titolo esemplificativo diritti d autore brevetti segreti commerciali marchi ecc manifestati attraverso il Prodotto o incorporati nel Prodotto e o allegati connessi relativi al Prodotto inclusi solo in via esemplificativa il codice Software ed il prodotto realizzato in conformit alla Parte Il di cui sopra sono e saranno di esclusiva propriet di Aladdin
135. rete utilizzato nella connessione 0 LOCAL 2 ANP 67 3 STATUS Status 0 Successo 0 Error Tabella 40 Scambio di informazioni per Open Mode con Map Nel primo byte del campo Data riportato il tipo di protocollo usato nella connessione Se si vuole prevenire l utilizzo del protocollo Local sufficiente controllare questo byte Generalmente questo utile per forzare l utilizzo del Server SmartKey per la sua gestione delle licenze Se il comando Open effettuato senza il protocollo Map la chiave SmartKey comunque aperta ma senza il controllo di licenze permettendo l esecuzione di un numero illimitato di applicazioni Per il comando User Number lo scambio di informazione organizzato come segue Models NET Input NET COMMAND NET PASS Net Password COMMAND U DATA 0 4D hex DATA 1 41 hex DATA 2 1 116 Codice identificativo dell applicativo per il quale si vuole sapere il numero di licenze utilizzate Output STATUS Status gt 0 Numero di licenze in uso lt 0 Error Tabella 41 Scambio di informazioni per User Number Mode 12 4 4 Open Mode Map un esempio Parametri da trasferire per eseguire un operazione di Open utilizzando la protezione multipla Map su una chiave di rete richiesta l apertura dell applicativo 2 Se la chiave stata programmata come nella tabella di programmazione precedente non oltre 4
136. ri adottare la politica del software a noleggio Alla scadenza del numero d esecuzioni preimpostato in un contatore decrementato ad ogni startup del programma non pi permessa la partenza del programma 12 1 Le modalit operative L implementazione di Map prevede solamente alcune lievi differenze rispetto alla metodologia operativa gi descritta e cio e limitazione opzionale del numero d esecuzioni e nel caso di SmartKey NET la programmazione del numero di licenze per ogni singolo applicativo e Una differente modalit di chiamata al driver di gestione per quanto riguarda le operazioni di Open Mode e USER NUMBER mode 12 2 Programmazione del numero di licenze e del numero di esecuzioni Il limite massimo di applicativi proteggibili con la medesima chiave 116 Il numero massimo di esecuzioni relativamente a ciascun applicativo compreso tra e 65 535 il valore 1 inattiva tale controllo e quindi non vi limitazione nel numero di esecuzioni Il numero di licenze e di esecuzioni per ciascun programma impostabile scrivendo il valore nei primi byte del campo Secure Data ed eventualmente nel campo Extended Data della chiave seguendo il seguente schema 00500 MaD Codice fisso di identificazione Map 1 A 41 hex Codice fisso di identificazione Map 0 50 Numero massimo di utenti per l applicativo 1 Numero massimo di esecuzioni per l applicativo 1 Numero massimo di utenti per l applicativo 2 Numero massimo di esec
137. rio specificare il codice di applicazione Map nel campo DATA come descritto nel capitolo riguardante il Map Lo scambio di informazioni cosi organizzato Models NET Input NET COMMAND A NET PASS Net Password COMMAND UV Output STATUS Status gt 0 Number di utenti connessi lt 0 Error Tabella 35 Scambio di informazioni per User Number Mode 11 4 Close mode La modalit CLOSE permette la chiusura richiesta di LOGOUT della comunicazione con SmartKey da parte del programma connesso con una precedente chiamata di Open Se a causa di un errore nel software applicativo il programma dovesse terminare senza aver prima eseguito una CLOSE della chiave aperta possono verificarsi problemi connessi alla gestione del timeout del Client che a volte richiedono un boot della macchina E fondamentale seguire con attenzione la procedura di apertura e chiusura per non precludere inutilmente l utilizzo della chiave ad altri utenti Lo scambio di informazioni cosi organizzato Models NET Input NET COMMAND NET PASS Net Password Output STATUS Status 0 Successo 1 0 Error Tabella 36 Scambio di informazioni per Close Mode 11 5 Close mode su timeout Per evitare di tener impegnate delle licenze in caso di terminazione anomala del programma ad esempio perch stato spento il PC implementata una funzione trasparente di refresh per timeout ovvero la disconnessione automatica d
138. river indipendentemente dall ambiente di funzionamento sia standalone sia in rete e MultiLan driver unico sia per applicazioni standalone sia in rete MultiLan individua automaticamente il tipo di rete utente finale solo richiesto di installare SmartKey NET su un qualunque PC nella rete Se l applicativo eseguito localmente il driver cerca automaticamente la chiave SmartKey FX PR EP SP XM sulla porta parallela del PC locale 6 3 Protezione di applicativi con SmartKey In ambiente Lan possibile utilizzare un unica SmartKey per la protezione di pi applicativi software La tecnologia utilizzata denominata Map Multi Application Protection e consente di Proteggere pi di un applicativo in ambiente standalone o rete Nel caso di rete locale anche possibile definire per ciascun applicativo protetto un differente numero di licenze abilitate e Limitare il numero d esecuzioni di ciascuno dei programmi protetti Questa caratteristica pu rivelarsi utile qualora si debbano creare versioni demo del software o si desideri adottare la politica del software a noleggio Alla scadenza del numero d esecuzioni preimpostato in un contatore decrementato ad ogni avvio del programma non pi permessa la partenza del programma 26 7 La struttura interna di SmartKey La struttura delle chiavi SmartKey prevede l utilizzo di alcuni registri interni ognuno con una particolare funzione di protezione
139. rrente potete riportarvi nella situazione di default tramite l utility SPC La modalit Programming necessaria per la programmazione off line della chiave Consigliamo per di non utilizzarla on line nel software da proteggere sia per ragioni di sicurezza e sia per evitare che un errore di programmazione faccia agire la funzione su una diversa SmartKey presente nel sistema Inoltre normalmente sufficiente agire sulla chiave tramite le funzioni Reading e Writing che limitano il proprio intervento al regiostro Secure Data Questo comando non pu essere eseguito in rete ma solo con la chiave usata localmente Lo scambio di informazioni cos organizzato Models PR EP SP XM NET Input COMMAND LPT Porta LABEL Nuova Label PASSWORD Nuova Password DATA O 15 Label corrente 16 byte Output STATUS Stato 0 Successo 0 Errore Tabella 21 Parametri per il comando Programming 991 Passaggio parametri Parametri da trasferire per eseguire un operazione di Programming con accesso alla chiave sulla porta parallela LPT2 programmando Label e Password Si ipotizza che la Label memorizzata prima dell operazione sia LABELOLD LPT 01 00 Porta COMMAND 50 00 Programming P LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 PASSWORD 45 55 54 52 4F 4E 00 00 Password EUTRON 00 00 00 00 00 00 00 00 DATA 4C 41 42 45 4C 4C 44 Current Label
140. rtamento corretto non arrestare improvvisamente l esecuzione del programma ma ritardare il termine su un altra regione del vostro codice Questo evita che il punto di controllo della chiave sia esposto Esempio Questo esempio utilizza la variabile KeyPresent per conservare il risultato del controllo di SmartKey importante notare che la variabile accessibile solo quando rilevata la presenza della chiave Questo evita in parte che sia utilizzata l opzione debugging in grado di controllare qualsiasi accesso ad una variabile variable KeyPresent False DoSomething if SmartKeyPresent KeyPresent True 48 DoSomethingOther If KeyPresent False Abort Tutti gli accessi alla variabile KeyPresent devono essere eseguiti a diversi livelli delle chiamate di funzione 10 2 Esempi d implementazione Questo capitolo contiene alcuni esempi d implementazione delle linee di guida descritte in precedenza Inoltre essi si possono trovare nell archivio SmartKeyProtectionGuidelinesExample zip Tutti gli esempi suppongono che si lavori con una SmartKey Demo con Label SMARTKEY e Password EUTRON di default 10 2 14 Esempio 1 Uso Base Questo esempio mostra l uso base di SmartKey Lo scopo del programma inizializzare le variabili per SmartKey e controllare che la chiave sia effettivamente presente L esempio NON DEVE ESSERE UTILIZZATO IN UN PROGRAMMA REALE perch la label e la passwo
141. sere comparate con il risultato della stessa operazione su SmartKey attuale 47 Durante la fase esecutiva occorre scegliere la coppia da controllare utilizzando una combinazione sia di elementi casuali sia deterministici Per esempio la scelta dovrebbe dipendere da un valore casuale il tempo attuale del sistema il punto di esecuzione del vostro programma e qualsiasi altra variabile che possa essere diversa da un applicazione all altra Esempio Supponiamo che voi abbiate identificato tre punti importanti dell esecuzione nei quali desiderate controllare la presenza di SmartKey l avvio del programma la funzione di salvataggio e la funzione di stampa Inoltre desiderate che il controllo sia eseguito su base mensile in modo da avere 12 diversi inserimenti di tempo Infine desiderate 100 diversi controlli casuali E quindi necessaria una tabella di 3 x 12 x 100 3600 coppie 10 1 4 Nascondere Label e Password Le stringhe Label e Password non dovrebbero essere conservate come semplice testo nella vostra applicazione Altrimenti una semplice analisi dei binari risultanti potrebbe rivelare queste informazioni Un buon approccio potrebbe essere generare una stringa casuale e calcolare lo informazione originaria e il suo valore casuale Quest informazione originaria potr essere ricostruita in fase di esecuzione con un altro con la stringa casuale originaria e il risultato precedente Queste informazioni possono ess
142. sicurezza impossibile una clonazione via hardware grazie alla implementazione di algoritmi per la interrogazione della chiave scrambling Installazione su porta parallela SmartKey Parallela installata sulla porta parallela di un qualunque personal computer e Installazione su porta USB SmartKey USB installata sulla porta USB di un qualunque personal computer con almeno una porta USB Interrogazione algoritmica SmartKey dotata di meccanismi d interrogazione di tipo algoritmico utilizzabili sia per proteggere il software sia per codificare dati riservati Personalizzazione dei codici ogni SmartKey singolarmente personalizzata con un codice interno predisposto in fabbrica e diverso per ogni utilizzatore e Programmabilit dei codici SmartKey dotata di codici supplementari programmabili dall utilizzatore Non sono necessari dispositivi di programmazione particolari ma solo le utility software in dotazione Memoria interna fino 8192 byte di memoria non volatile in lettura e scrittura oltre a 164 16 byte di codici d accesso sono disponibili all interno di SmartKey Utilizzo standalone e in rete sono disponibili modelli adatti sia per la protezione di software stand alone e sia per applicazioni in rete locale e Protezione di programmi eseguibili la tecnologia Global Security System GSS consente di proteggere programmi in formato eseguibile anche senza la disponibilit dei codici sorgente
143. te Ripristina Default Ripristina Default per funziona solo se SmartKey non Fixed cio se ancora riscrivibile I valori di default sono e Label SMARTKEY e Password EUTRON e Contenuto della memoria tutte le celle contengono il valore 40 00 Hex e Flag di fissaggio SmartKey non Fixed La figura 12 mostra il pannello Ripristina Default di una SmartKey USB di tipo NET 79 SmartKey Programming Central demo USB Elenco SmartKey Identificazione Scrambling Contenuto Programmazione Fixing Locale Ripristina Default Map Diagnostica Info Analisi c USB NET demo Questa funzione permette di riscrivere i valori di default sulla chiave USB DL valori di default sono i seguenti Label SMARTKEY Password EUTRON Memoria impostata a zero Aggiorna Figura 12 Pannello Ripristina Default della SmartKey 16 4 Pannello Map Il pannello Map permette di associare ad ogni applicazione il numero di esecuzioni possibili ed il numero di licenze La figura 13 mostra l esempio di un pannello Map usato per la configurazione di una SmartKey di tipo NET Il pannello ha una tabella con tre colonne applicazione numero identificativo dell applicazione e esecuzioni il numero massimo di esecuzioni licenze il numero di licenze massime ovvero il numero massimo di utenti che possono usare contemporaneamente il programma Se la SmartKey
144. troduce suggerimenti ulteriori per un implementazione sicura della protezione 46 10 di protezione dei programmi ed esempi Utilizzando le chiavi hardware di protezione SmartKey avete introdotto un fortissimo deterrente contro i tentativi di duplicazione abusiva del software tuttavia bene ricordare che anche nella lotta per la protezione del software vale un principio tipico di tutti i sistemi di sicurezza Un sistema di sicurezza ha lo stesso grado di vulnerabilit del suo componente pi debole E pertanto necessario porre molta attenzione non solo al tipo di protezione ma anche ai metodi di implementazione software della protezione stessa In altre parole utilizzare una chiave di protezione hardware senza una sua accurata implementazione nel software significa arrestare gli hacker mediamente smaliziati gli hobbisti gli utilizzatori occasionali ecc ma non organizzazioni criminal commerciali magari con tempo risorse economiche e competenza a disposizione per copiare il software o impossessarsi di dati riservati Abbiamo pertanto ritenuto opportuno elencare nel seguito alcune tecniche e suggerimenti utili La scelta delle tecniche da utilizzare dipende dalle singole applicazioni dal costo e dal livello di riservatezza del software e o dei dati protetti In generale per rendere la vita difficile ai potenziali pirati del software opportuno tener presente i seguenti suggerimenti e considerazioni e Utilizz
145. trollare la chiave in diversi punti della vostra 47 Uso estensivo dell operazione AES Scrambling ii 47 Uso estensivo dell operazione Scrambling Nascondere Label e Password iii Utilizzare la versione OBJ dei driver CheckSum dei vostri eseguibili e delle DLL Non arrestare immediatamente l esecuzione se non trovata la chiave eee 48 ESEMPID IMPEEMENTAZIONE ER o RE t 49 Esempio Uso Basexui anandia Hsu eg devas rara 49 Esempio 2 Uso Base Scrambling iii 50 Esempio 3 4 Memorizzare e utilizzare una funzione C nella memoria di SmartKey 50 Esempio 5 Controllo del checksum DLL iii Esempio 6 Nascondere le informazioni Label e Password Esempio 7 Scrambling di dati riservati Esempio 8 9 Generazione e utilizzo di una grande tabella Scrambling 56 Esempio 10 Crittografare il codice eese ener A nennen nnne 59 Esempio 11 Autenticazione iii 59 11 1 OPEN MODE 11 2 ACCESS MODE 11 3 EEEE E E A E EEE E E EA O REINA 11 4 EEEE E ee aaa 11 5 CLOSEMODE SU TIMEOUT dad i tete 11 6 ERROR reet M AAE ee A E AE lie a ili ei vd 11 7 DRIVER STANDA
146. tware funzionanti sia in versione standalone sia in rete Lo scambio di informazioni cosi organizzato Models ALL Input COMMAND M LPT Porta LABEL Label Output DATA 0 SmartKey model 1 FX 2 PR 3 EP 9 SP A NET D XM DATA 1 Memoria disponibile sulla chiave 0 0 byte 1 64 byte 2 128 byte 3 416 byte 4 896 byte 8 8192 byte STATUS Stato 0 Successo 0 Errore Tabella 25 Parametri per il comando ModelReading 9 11 1 Passaggio parametri Parametri da trasferire per eseguire un operazione di ModelReading con accesso della chiave sulla porta parallela LPT 01 00 Porta COMMAND 4D 00 Model Reading LABEL 53 4D 41 52 54 4B 45 59 Label SMARTKEY 00 00 00 00 00 00 00 00 Tabella 26 Scambio informazioni per il ModelReading Se la chiave trovata sulla porta indicata il modello della chiave disponibile nel primo byte del campo data 9 12 Serial Number Reading Questo comando legge il Serial Number della SmartKey Il Serial Number un numero di 32 bit unico per ogni SmartKey Lo scambio di informazioni cosi organizzato Models ALL Input COMMAND N LPT Porta LABEL Label Output DATA 0 1 2 3 Numero seriale 42 STATUS Stato 0 Successo 0 Errore Tabella 27 Parametri per il comando SerialNumberReading 9 13 Ext Model Reading
147. uando pi chiavi SmartKey Parallele sono impilate in cascata sulla medesima porta parallela Infatti la Label in questo caso una sorta di indirizzo che permette al software protetto di interrogare la chiave giusta Per verificare la presenza della chiave ricercata il software protetto invia sulla porta parallela il valore della Label solo la chiave con la Label coincidente restituir una risposta E importante pertanto assegnare una Label differente per ognuno dei propri programmi applicativi in modo che pi chiavi SmartKey possano essere contemporaneamente installate Il registro Label ha una dimensione di 16 byte 212 combinazioni 1038 siccome il numero di combinazioni enorme in sostanza impossibile che due diverse software house decidano di assegnare la medesima Label ai propri applicativi Con le chiavi di tipo programmabile PR EP SP e NET la Label essere programmata off line tramite l utility SPC selezionando la modalit di programmazione oppure on line tramite i software driver in dotazione Nel caso delle chiavi FX il registro Label fisso e coincide con 114 Label non programmabile Id Code PR EP SP XM NET Label programmabile 16 byte Tabella 4 Tabelle delle SmartKey con Label non programmabile e Label programmabile 7 3 Password register la chiave d accesso ai dati Il registro Password ha estrema importanza nel meccanismo di protezione in quanto solo conoscendo com
148. ude lt string h gt 50 Function type typedef int my_func_t int int Buffer used to store the function char my func data DATA LENGTH EXTENDED DATA LENGTH Function static int my func int m int n return m n Marker of the end of the function static int my func end void return 0 int main 1 KEY NET k unsigned size Uso preventivo delle funzioni p dell ottimizazione del compilatore my func 1 1 my func end Compute the function size Size char my func end char printf Function size d n size r prevenir ffetti collaterali A my func if size gt DATA LENGTH EXTENDED DATA LENGTH printf Function size d too exit EXIT FAILURE big n size Copia della funzione sulla chiave if size gt DATA LENGTH 1 memcpy k data char my func DATA LENGTH memcpy k ext data char my func DATA LENGTH size DATA LENGTH else memcpy k data char my_func size Scrivi sulla SmartKey k net command NET KEY ACCESS k command WRITING MODE smartlink amp k if k status ST OK 1 printf Error in WRITING MODEn 51 exit EXIT_FAILURE printf Function written on the key n Close k net command NET KEY CLOSE smartlink amp k if k stat
149. uibile i moduli di run time modw9x exe gssvx12 vxd e modwnt exe Questi files sono creati automaticamente da GSS nella cartella di destinazione durante la fase di protezione dell applicativo Con Windows NT Windows 2000 Windows XP Windows 2003 e Windows Vista inoltre necessario installare il driver del dispositivo GSS specifico per questi sistemi operativi Per installare correttamente il driver del dispositivo l utente deve possedere i diritti d amministrazione L installazione dei driver di SmartKey e del dispositivo GSS pu essere eseguita manualmente con l utility SDI oppure in automatico integrando la libreria SDI alla vostra procedura d installazione 8 3 GSS le opzioni comuni Le varie versioni di GSS possiedono un interfaccia utente unica Questo permette di proteggere l integrit del codice oggetto delle applicazioni protette E particolarmente utile quando un hacker nel tentativo di alterare una parte del codice o dei parametri numerici o delle stringhe di testo modifica in modo fraudolento il codice oggetto Persino il pi piccolo dei cambiamenti anche se si tratta di un solo bit rilevato da GSS che visualizza un messaggio d avvertimento all avvio e arresta immediatamente il programma GSS fornisce anche la possibilit di inserire un testo che sar visualizzato nel caso la chiave sia assente o il file di programma sia corrotto 8 8 1 Controllo della presenza della chiave Gli utenti di SmartKey possono inviare spesso
150. urezza la crittografia dell eseguibile del nuovo programma Grazie a sofisticati algoritmi di crittografia estremamente difficile ricavare il programma originale partendo da quello protetto GSS offre quindi due meccanismi indipendenti di protezione e blocco del programma se non presente SmartKey e crittografia dei dati contenuti nel nuovo file eseguibile GSS permette inoltre di crittografare tutti i file gestiti dal software applicativo Questo garantisce un ulteriore livello di sicurezza Grazie a GSS SmartKey in grado di offrire altri vantaggi Pu essere utilizzata per limitare in modo efficace il numero di esecuzioni quando i programmi sono distribuiti a scopo dimostrativo Una volta superato il limite impostato il software si disattiva Inoltre proteggere diverse applicazioni in ambiente Lan diventato semplice grazie a SmartKey E possibile anche impostare il numero massimo di licenze per l applicazione protetta Tutti i modelli di SmartKey sono compatibili con GSS Nel caso di SmartKey FX la protezione si basa solo sul Codice Identificativo Nel caso degli altri modelli la protezione si basa anche su altri elementi come Password e Secure Data La figura 1 mostra il pannello di GSS che serve a inserire tutti i dati necessari per creare il programma protetto Tutti i campi da inserire sono illustrati nei paragrafi di questo capitolo SmartKey Global Security System Chiave Applicazione Messaggi
151. us ST OK printf Error in NET KEY CLOSE Mn exit EXIT FAILURE return EXIT_SUCCESS Uso della funzione Questo esempio legge la funzione my_func dalla memoria di SmartKey e la esegue include skeylink h include lt stdio h gt include lt stdlib h gt include lt string h gt Function type typedef int my_func_t int m int n Buffer usato per memorizzato la funzione char my_func_data DATA_LENGTH EXTENDED_DATA_L int main KEY_NET k Leggi la funzione k net_command NET_KEY_ACCESS k command READING_MODE smartlink amp k if k status 5 printf Error in READING exit EXIT FAILURE Copi i dati nel buffer memcpy my func data k data DATA LENGTH ENGTH memcpy my func data DATA LENGTH k ext data EXTENDED DATA LENGTH Set il puntatore a funzione my func ptr my func t my func data Chiama la funzione result my func ptr 2 3 52 if result 6 printf Error in function result n exit EXIT_FAILURE printf Result of the stored function d n result Close k net_command smartlink amp k if k status ST_OK printf Error in NET_KEY_CLOSE n exit EXIT_FAILURE gt A KEY C
152. uzioni per l applicativo 2 Numero massimo di utenti per l applicativo 3 0 65535 Numero massimo di esecuzioni per l applicativo 3 Numero massimo di utenti per l applicativo 20 63 0 ext data 0 65535 Numero massimo di esecuzioni per l applicativo 20 1 ext data Numero massimo di utenti per 21 2 3 ext data 0 65535 Numero massimo di esecuzioni per l applicativo 21 285 ext_data 0 50 Numero massimo di utenti per l applicativo 116 287 288 ext data 0 65535 Numero massimo di esecuzioni per l applicativo 116 Tabella 37 Impostazioni per gestione licenze Ad esempio qualora si volessero proteggere 3 applicativi differenti con i seguenti numeri di licenze e numero d esecuzioni 66 e Primo programma 23 licenze Esecuzioni illimitate e Secondo programma 4 licenze 4000 esecuzioni e Terzo programma 12 licenze 100 esecuzioni E necessario impostare la memoria della chiave come segue Posizione Valore Significato M 4D hex Codice fisso di identificazione Map A 41 hex Codice fisso di identificazione Map 23 17 hex Massimo 23 utenti per l applicativo 1 Nessuna limitazione al n di esecuzioni del programma Massimo 4 utenti per l applicativo 2 4000 0 hex Limitazione attiva per 4000 esecuzioni 12 OC hex Massimo 12 utenti per 3 100 64 hex Limitazione attiva per 100 esecuzioni Tabella 38 Impostazione per protezione appli
153. visto specificamente Aladdin non presta nessuna garanzia n espressa n implicita relativa ai suoi Prodotti inclusa la garanzia sulla loro qualit rendimento commerciabilit o idoneit per uno scopo specifico Controlli all esportazione Lei riconosce che il Prodotto 6 soggetto a determinate leggi norme regolamenti in materia di controllo sulle esportazioni incluse solo in via esemplificativa le leggi le norme ed i regolamenti degli Stati Uniti e o di Israele sul controllo delle esportazioni e Lei pertanto accetta che il Prodotto non verr consegnato trasferito o esportato in qualunque altro paese o utilizzato in qualunque maniera proibita dalla legge applicabile Legge Applicabile amp Giurisdizione Il presente Contratto verr interpretato e regolato secondo le leggi italiane fatta eccezione per le norme sui conflitti di legge e solamente i tribunali italiani avranno giurisdizione su ogni conflitto o controversia derivante dal presente Contratto espressamente esclusa l applicazione della Convenzione delle Nazioni Unite sui Contratti di Vendita Internazionale di Beni mancato esercizio da parte di ognuna delle parti dei diritti concessi dal presente contratto non verr considerata una rinuncia di quella parte al successivo esercizio di diritti o azioni in caso inadempimenti futuri Software di terzi Qualora il Prodotto contenga un qualsiasi software fornito da terzi tale software di terzi verr fornito Cosi co

Download Pdf Manuals

image

Related Search

Related Contents

要 求 水 準 書  Silverstone FT02S  DATA-MANSHRT_EX3200_ESP_Rev B.p65  安全上のご注意 - ミーレ・ジャパン  Technical Service Manual    Samsung AF24FSSDAWKN Instrukcja obsługi  LED BAR 163 FC Manuel d`utilisation  Info 38_Info 38  CEL Profile-Simulator Software Manual 0005-05-08-17-001  

Copyright © All rights reserved.
Failed to retrieve file