EUTRON Internet : http://www.smartkey.eutron.it Helpdesk email : helpdesk@eutron.it Commercial email : info@eutron.it Commercial phone : 035697080 Fax : 035697092 SmartKey Parallel and USB driver for Linux ------------------------------------------ Questo driver funziona per kernel dal 2.4.21-144 (Suse 9) compilato con gcc-3.2.3 Il pacchetto fornisce un'interfaccia tra i programmi scritti in linguaggio C e il driver della chiave SMARTKEY. L'interfaccia e` completamete compatibile con quella disponibile in ambiente MS-DOS. Questo permette un facile trasporto in ambiente Unix dei programmi sviluppati per il sistema operativo MS-DOS. CONTENUTO --------- Il pacchetto e` costituito dai seguenti file: clink.o Costituisce l'interfaccia tra le applicazioni in linguaggio C e il driver della chiave SMARTKEY. clink.h Definisce la struttura dell'interfaccia di clink.o. Deve essere incluso nei file C che utilizzano la chiave SMARTKEY. smartdem.c Esempio di utilizzo della chiave SMARTKEY scritto in linguaggio C. smartdem Forma eseguibile del programma esempio. skey*.o Driver della chiave skinstall Script per l'installazione automatica skuninstall Script per la disinstallazione automatica skeyver Utility per impostare la versione del kernel nel modulo skey.o SUPPORTO USB ------------ Il driver SmartKey, come ogni altro driver USB, richiede che i moduli USB del kernel siano caricati ed attivi. Generalmente questo si puo' ottenere con i comandi : insmod usbcore insmod usb-uhci per PC con con USB controller UHCI di Intel, VIA, ... insmod usbcore insmod usb-ohci per PC con un USB controller OHCI di Compaq, iMacs, OPTi, SiS, ALi... AGGIORNAMENTO ------------- Per aggiornare i precedenti driver SmartKey e' necessario rilinkare la propria applicazione con il nuovo oggetto clink.o. Se questo non viene effettuato, l'applicazione sara' in grado di funzionare solo con la prima chiave USB inserita e solo con le chiavi parallele agli indirizzi 0x3BC e 0x378. Si perderebbe l'uso della porta parallela all'indirizzo 0x278 sostituito con la prima chiave USB. INSTALLAZIONE AUTOMATICA ------------------------ Avviare lo script skinstall con i permessi di root con i comandi: chmod a+x skinstall ./skinstall L'installazione prevede la configurazione del sistema per il caricamento automatico del modulo SmartKey al primo utilizzo. Per disinstallare il driver utilizzare invece i comandi: chmod a+x skuninstall ./skuninstall Ad ogni cambiamento di versione del kernel e' necessaria una reinstallazione. Per avviare il l'applicazione di demo utilizzare i comandi : chmod a+x smartdem ./smartdem INSTALLAZIONE MANUALE --------------------- Per installare il driver si segua la procedura seguente: 1) Entrare nel sistema come super-user. 2) Posizionarsi nel direttorio /dev con il comando: cd /dev creare i file di accesso alla chiave mediante i comandi: mknod skey0 c 59 0 mknod skey1 c 59 1 mknod skey2 c 59 2 mknod skey3 c 59 3 mknod skey4 c 59 4 mknod skey5 c 59 5 e cambiare le proprieta` e il gruppo dei file mediante i comandi: chmod 666 skey? chgrp daemon skey? 3) Identificare il driver per la propria configurazione. Ci sono varie possibilita': skey_R.o Kernel monoprocessore con le informazioni di versione skey_Rsmp_.o Kernel multiprocessore con le informazioni di versione skey_Rsmp.o Kernel multiprocessore con le informazioni di versione specifico per RedHat skey.o Kernel monoprocessore senza le informazioni di versione Un semplice test e' il comando : grep printk /proc/ksyms e dato l'output : ... printk_R1b7d4074 driver skey_R.o ... printk_Rsmp_1b7d4074 driver skey_Rsmp_.o ... printk_Rsmp1b7d4074 driver skey_Rsmp.o altro driver skey.o Rinominare quindi il driver identificato con il nome skey.o 4) Configurare il modulo skey.o con la versione di kernel corrente: chmod a+x skeyver ./skeyver skey.o 5) Il driver skey.o e` sotto forma di modulo caricabile dinamicamente. Quindi, prima di essere utilizzato, deve essere caricato con il comando: insmod skey 6) Per configurare il driver per il caricamento automatico al primo utilizzo effettuare le seguenti operazioni: 6.1) Aggiungere la riga: alias char-major-59 skey in fondo al file /etc/conf.modules 6.2) Copiare il file skey.o nella directory /lib/modules/KERNELVERSION/misc, dove KERNELVERSION e' la versione del kernel. La versione del kernel viene mostrata con il comando : uname -r 6.3) Aggiornare le dipendenze dei moduli con il comando: depmod -a 6.4) Scaricare dalla memoria una eventuale copia del driver con il comando: rmmod skey e verificare il caricamento automatico del modulo con il comando: modprobe skey L'assenza di messaggi di errore indica che il caricamento e' avvenuto. UTILIZZO -------- Per utilizzare l'interfaccia clink.o e` necessario copiare il file nel direttorio di lavoro e collegarlo agli altri file oggetto costituenti il programma da proteggere. Nei file del programma applicativo che utilizzano il modulo clink.o e` necessario includere il file clink.h. CONFIGURAZIONE -------------- Se si sta utilizzando una porta Parallela PCI che usa un indirizzo di IO non standard, e' necessario specificare l'indirizzo effettivo di IO della porta con l'argomento "port" del modulo. L'argomento accetta fino a tre valori separati da virgole. I valori di default sono 0x378, 0x278, 0x3bc. Per esempio : insmod skey port=0x800 o insmod skey port=0x800,0x810,0x820 Su sistemi con bus usb OHCI (Open Host Controller Interface), generalmenti presenti su tutte le schede aggiuntive PCI USB, e' necessario aggiungere l'argomento "fastusb=0" Per esempio : insmod skey fastusb=0