Indice. Introduzione. Wrapper OpenSSL. Installazione di EJBCA. Conclusioni. Appendice A Procedure di installazione di EJBCA. Appendice B Codice C/Java

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Indice. Introduzione. Wrapper OpenSSL. Installazione di EJBCA. Conclusioni. Appendice A Procedure di installazione di EJBCA. Appendice B Codice C/Java"

Transcript

1 Indice Introduzione Wrapper OpenSSL Installazione di EJBCA Conclusioni Appendice A Procedure di installazione di EJBCA Appendice B Codice C/Java Bibliografia

2 Introduzione Sistemi complessi richiedono accorgimenti altrettanto complessi; uno di questi è quello della sicurezza del sistema stesso. E' quasi impossibile realizzare un sistema intrinsecamente sicuro nella sua totalità in particolar modo se lo vogliamo anche flessibile e facile da utilizzare, specie se abbiamo a che fare con sistemi informatici. Essi sono quanto di più complesso ha creato l'uomo ed è facile quindi intuire quanto siano delicati. Strutture complesse richiedono soluzioni complesse ed il tema di questa tesi è proprio una di queste soluzioni. Durante il periodo del tirocinio da me frequentato all'asl (Azienda Sanitaria Locale) di Ancona sono stati posti due obiettivi: realizzare un wrapper in Java della libreria OpenSSL (scritta in C) mediante l'uso della JNI (Java Native Interface) ed installare e configurare un software che applica una certification authority (EJBCA Enterprise Java Bean Certification Authority). E' ovvio quindi che abbiamo a che fare con un tipo di sicurezza molto specifico: quello contro attacchi di tipo informatico eseguito mediante la rete Internet e che è stata utilizzata la crittografia come strumento di difesa. Questa tesi può essere quindi divisa in due parti piuttosto indipendenti. Riguardo alle scelte effettuate (riguardo ai software) non posso fare a meno di far notare che le soluzioni scelte sono tutte open source (o perlomeno gratuite) inoltre, per lo sviluppo dei progetti è stato utilizzato un pc con installata una particolare versione di linux (Knoppix). Durante quaste attività ho riscontrato problemi al di là della mia portata che non mi hanno consentito di raggiungere entrambi gli obiettivi prefissati è di questo ne discuterò nel corso di questa tesi. Prima di proseguire vorrei fare alcuni ringraziamenti: primo fra tutti l'ingegniere Giuseppe Giampieri, il mio tutore aziendale, per tutti i preziosi consigli ed aiuti forniti nei momenti di necessità, sono molto grato anche al professore Aldo Dragoni per la continua disponibilità e chiarezza nelle sue utili spiegazioni inoltre non voglio escludere i miei amici e la mia famiglia per il loro appoggio morale senza il quale non sarei mai giunto a questo punto. Vorrei inoltre ringraziare coloro che mi hanno aiutato tramite in particolar modo Thomas Gustavsson uno degli sviluppatori di EJBCA.

3 Wrapper OpenSSL Come già accennato in precedenza uno degli obiettivi posti nel tirocinio è stato quello di dover realizzare un wrapper (una libreria che funge da involucro ) utilizzando il linguaggio Java della libreria OpenSSL. Prima di motivare questa scelta e le conclusioni alle quali sono arrivato vorrei accennare alcuni concetti base che potrebbero non essere noti a tutti. Concetti base Cos'è una CA e una PKI Il concetto di PKI (Public Key Infrastructure) e CA (Certification Authority) è pressoche impossibile da descrivere in poche parole, per questo motivo verrà fornito solo un accenno. Una certification authority (autorità di certificazione) è un'entità che permette la realizzazione di infrastrutture a chiave pubblica (PKI Public Key Infrastructure) la quale, mediante l'utilizzo della crittografia simmetrica ed asimmetrica e di opportuni protocolli, consente di far transitare dati in una rete in modo tale da garantire l'identificazione di colui con il quale si scambia dati e garantire l'integrità e la confidenzialità dei dati stessi. Le CA hanno varie funzioni da svolgere come quella di distribuire certificati o di verificarne l'autenticità. Nella PKI ci sono anche altre entità che entrano in gioco; l'illustrazione seguente è stata tratta dal RFC (Request For Comment) 2510 [pagina 6]:

4 Questo schema riassume in maniera molto chiara la PKI. Una CA in realtà è composta da una certification authority ed una registration authority (RA) ma questa distinzione è andata persa con il tempo e con CA si indica normalmente sia la CA che la RA come fossero un tutt'uno. L'infrastruttura si basa sull'utilizzo dei certificati che possono essere definiti come sequenze di bit che seguono un determinato protocollo (o una determinata struttura se si preferisce). La End Entity rappresenta l'utente che chiede servizi offerto dalla CA (registrazione iniziale, aggiornamento certificati, ecc..). La CA ha la necessità di essere a sua volta certificata da un'altra CA (nel diagramma viene chiamata CA-2). Una trattazione esauriente della PKI e del ruolo delle CA non è tema di questa tesi e questi concetti base verranno dati per acquisiti. Per una trattazione completa consultare l'rfc 2510.

5 La libreria OpenSSL La OpenSSL (Open Secure Socket Layer) è una libreria scritta in C che svolge molteplici funzioni: la principale è sicuramente quella di applicare il protocollo SSL e le routine di base della crittografia simmetrica e asimmetrica (MD5, RSA, Blowfish, DES, ecc..), inoltre permette di realizzare e manipolare certificati X.509. Il principale aspetto positivo è sicuramente quello di essere considerato lo standard de facto, infatti con questa libreria viene utilizzata come riferimento per molti software che devono svolgere compiti per il quale è nata questa libreria. E' inoltre una libreria molto completa ed il fatto che sia stata scritta in C la rende anche molto efficiente in termini di prestazioni. Tuttavia non è una libreria facile da utilizzare e questa complicazione è amplificata dal fatto che non possiede una buona documentazione (a dire la verità non ha una sua documentazione se escludiamo quella della sua versione precedente chiamata SSLeay). JNI (L'interfaccia nativa di Java) L'interfaccia nativa di Java è una componente del JDK (Java Development Kit) che consente di chiamate funzioni compilate in codice nativo come quello generato da linguaggi come il C/C++ e Pascal. Per realizzare quest'interfaccia è necessario eseguire alcuni procedimenti che verranno illustrati mediante un esempio. Sarà data per scontata una sufficiente conoscenza dalla JNI. Prima di tutto scriviamo la nostra interfaccia Java: testing.java package test; public class testing public testing()

6 // Dichiara la funzione nativa stampa() private native void stampa(); static // Carica la libreria Runtime.getRuntime().load("/usr/lib/libtesting.so"); public static void main(string[] args) // Utilizza la funzione nativa stampa() new testing().stampa(); Scritto questo codice dobbiamo eseguire da console: javac testing.java javah -jni testing Quest'ultimo passaggio genererà una firma (signature) che consiste in un file con estensione.h che in questo caso si chiamerà testing.h. Ora dobbiamo realizzare la nostra libreria in C (o qualsiasi altro linguaggio compilato): testing.c #include "testing.h" #include <stdio.h> JNIEXPORT void JNICALL Java_testing_stampa (JNIEnv *env, jobject obj) printf("ciao"); dove la firma:

7 JNIEXPORT void JNICALL Java_testing_stampa (JNIEnv *env, jobject obj) è stata copiata dal file.h. Compiliamo il file testing.c affinche otteniamo una libreria. A questo punto non ci rimane altro da fare che eseguire il programma in Java da console: java testing per veder apparire la scritta ciao. Questo procedimento va bene nel caso in cui non abbiamo ancora scritto la libreria in codice nativo quindi nel nostro caso dobbiamo aggiungere alcuni passaggi dato che dobbiamo scrivere un wrapper di una libreria già esistente e che quindi le funzioni ad essa appartenenti non hanno la signature appropriata. La soluzione a questo problema verrà descritta in seguito [vedi paragrafo Struttura del wrapper]. La JNI è sicuramente un utile strumento ma presenta alcuni aspetti negativi intrinseci e progettuali: i primi sono dati dal fatto che per realizzare un'interfaccia sono necessari molti passaggi, i problemi progettuali sono dati dal fatto che è possibile realizzare interfacce delle sole librerie alle quali è stata eseguita una fase di link statico, non è quindi possibile realizzare interfacce di librerie che utilizzano funzioni di altre librerie a meno che non sia stato utilizzato un link statico. A mio avviso quest'ultimo problema si sarebbe potuto evitare progettando il sistema JNI in maniera diversa. Scelte progettuali e obiettivi Prima di proseguire con la spiegazione è necessario fare qualche passo indietro. All'inizio del tirocinio era stato stabilito un obiettivo che poi a causa delle circostanze verificatesi è mutato. Si era deciso infatti di realizzare una certification authority pertendo da quello che avevano svolto altri studenti tirocinanti in precedenza.

8 Perchè era stato deciso di realizzare una nuova CA anzichè utilizzarne una già esistente open source? Il motivo è semplice: tra le varie CA non ce n'è nessuna che soddisfi in pieno le necessità dell'asl cioè fornire un'infrastruttura PKI che svolga i servizi necessari all'azienda. Sono stati presi in considerazione diversi software di CA prima di eseguire questa scelta: primo fra tutti l'ejbca ma oltre che ad essere difficile da installare, non utilizza la libreria OpenSSL che come abbiamo detto in precedenza è considerato come uno standard ed è segno di massima affidabilità; il secondo software preso in considerazione è l'openca ma il problema più grave è che il programma è scritto in Perl e quindi particolarmente difficile da modificare secondo le proprie necessità. E' stato quindi necessario partire dalle basi: una libreria multifunzionale come l'openssl. E' stato scelto il linguaggio Java per le sue proprietà intrinseche (prima fra tutti la sicurezza del codice) e per la disponibilità di strumenti specifici come librerie e applicativi Svolgimento Struttura del wrapper Il procedimento descritto in precedenza non è di per se sufficiente a raggiungere l'obiettivo da noi imposto è necessario frapporre un ulteriore strato (interfaccia) tra l'interfaccia in Java e la libreria OpenSSL: creiamo una libreria in C che invoca funzioni della libreria OpenSSL e che a sua volta viene invocata dall'inerfaccia Java. Tra le varie funzioni è stato deciso di iniziare con delle funzioni di generica utilità e di controllo degli errori. Prima di tutto riportiamo il primo file scritto contenete l'interfaccia JNI che permette di richiamare le funzioni di gestione di errore della OpenSSL con opportuni commenti (alcune parti sono state omesse per semplicità): Errors.java package it.asl7.wopenssl;

9 public class Errors //----- Costruttore public Errors() LoadCryptoStrings(); LoadERRStrings(); //----- Metodi // Cancella tutti gli errori dalla lista statica public void ClearAll() // Chiamata a una funzione della libreria che verrà // frapposta tra questa e la OpenSSL. Questa funzione // cancella tutti gli errori dalla lista statica. ERR_clear_error(); //... public void FreeStrings() // Libera tutte le stringhe d'errore caricate nella // tabella statica degli errori che mappa codici di // librerie e funzioni in stringhe di testo ERR_free_strings(); //... public long GetError() // Ottiene il codice dell'errore e rimuove questa // voce dalla coda degli errori return ERR_get_error(); //...

10 public String LibErrorString(long e) // Restituisce il nome della libreria corrispondente // al codice di errore numerico return ERR_lib_error_string(e); public void LoadCryptoStrings() // Carica in memoria l'insieme crypto delle stringhe d'errore ERR_load_crypto_strings(); //... // Caricamento stringhe di errore public void LoadStrings(ErrStringData[] str) int[] error = new int[str.length]; String[] message = new String[str.length]; for (int i = 0; i < str.length; i++) error[i] = str[i].geterror(); message[i] = str[i].getstring(); ERR_load_strings(error, message); //... // Dichiarazioni di funzioni native. Come è facile notare è // sufficiente l'utilizzo della parola chiave native oltre // che al prototipo della funzione private native long ERR_get_error(); private native int ERR_get_next_error_library(); private native long ERR_peek_error(); private native String ERR_error_string(long num);

11 private native void ERR_error_string_n(long num); private native void ERR_clear_error(); private native void ERR_put_error(int lib, int func, int reason, String file, int line); private native void ERR_set_error_data(String data, int flags); private native String ERR_lib_error_string(long e); private native String ERR_func_error_string(long e); private native String ERR_reason_error_string(long e); //... static // Ci sono vari metodi per caricare una libreria. Tra quelli // disponibili, quello utilizzato ci permette di avere più // informazioni in caso di errore. In alternativa è possibile // utilizzare System.loadLibrary("errors"); come mostrato // tra gli esempi presenti nella documentazione. Runtime.getRuntime().load("/usr/lib/liberrors.so"); // Un piccolo test.. public static void main(string []args) Errors err = new Errors(); err.clearall(); for (int i = 0; i < 50; i++) System.out.println(err.ErrorString(i)); Il file completo (come tutti quelli che seguiranno) sono disponibili nell'appendice A e nel CD- ROM allegato. Eseguendo i comandi javac e javah otteniamo il file class e la signature seguente:

12 Errors.h /* DO NOT EDIT THIS FILE - it is machine generated */ #ifndef it_asl7_wopenssl_errors #define it_asl7_wopenssl_errors #include <jni.h> #ifdef cplusplus extern "C" #endif extern jlong Java_it_asl7_wOpenSSL_Errors_ERR_1get_1error (JNIEnv *env, jobject); extern jlong Java_it_asl7_wOpenSSL_Errors_ERR_1get_1error_1line (JNIEnv *env, jobject); //... #ifdef cplusplus #endif #endif /* it_asl7_wopenssl_errors */ E' facile notare che la signature segue delle regole ben precise infatti il prototipo di ogni funzione ha la seguente struttura: Java_ + percorso della classe + nome funzione. Se nell'interfaccia Java, un nome di funzione contiene un carattere di underscore, nella signature verrà sostituito con _1. Ora dobbiamo dare corpo a queste funzioni scrivendo il file Errors.c : Errors.c // Includiamo la parte della libreria OpenSSL inerente la gestione degli errori #include <openssl/err.h> // Includiamo la signature

13 #include "Errors.h" // Includiamo funzioni che verranno descritte in seguito #include "Utils.h" char error[256]; JNIEXPORT jlong JNICALL Java_it_asl7_wOpenSSL_Errors_ERR_1get_1error (JNIEnv *env, jobject obj) return ERR_get_error(); //... JNIEXPORT jstring JNICALL Java_it_asl7_wOpenSSL_Errors_ERR_1reason_1error_1string (JNIEnv *env, jobject obj, jlong e) return CharpToJstr( env, ERR_reason_error_string(e) ); //... JNIEXPORT jstring JNICALL Java_it_asl7_wOpenSSL_Errors_val_1error (JNIEnv *env, jobject obj) return CharpToJstr( env, error ); Scrivere questa parte di codice è piuttosto semplice infatti è sufficiente copiare i vari prototipi dalla signature e nella maggior parte dei casi il corpo della funzione è composto dalla sola chiamata alla funzione delle OpenSSL. E' fondamentale ora notare l'utilizzo della funzione CharpToJstr. Il prototipo di questa funzione è presente nel file Utils.h e definita nel file Utils.c. Il file Utils.h dichiara anche altre funzioni: Utils.h

14 #ifndef Utils #define Utils #include <jni.h> JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved); JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *reserved); void JNU_ThrowByName(JNIEnv *env, const char *name, const char *msg); char * JstrToCharp(JNIEnv *env, jstring str); jstring CharpToJstr(JNIEnv *env, const char *str); #endif Queste funzioni sono di varia utilità: ad esempio JNI_OnLoad è una funzione che viene invocata all'avvio dalla Java Virtual Machine da parte di una funzione JNI. La funzione CharToJstr richiede una particolare spiegazione. Nonostante le similitudini, tra il Java ed il C ci sono delle incompatibilità tra i tipi di dato esistenti, primo fra tutti la rappresentazione delle stringhe infatti nel C abbiamo a disposizione i puntatori a carattere mentre il Java ha un tipo di dato astratto che si occupa di questo. Le funzioni CharToJstr e JstrToCharp si occupano di eseguire questa conversione in entrambe le direzioni. La definizione (il corpo) di queste cinque funzioni sono state tratte da un documento presente nel sito della Sun: The Java Native Interface, il codice è il seguente: Utils.c #include "Utils.h" jclass Class_java_lang_String = NULL; jmethodid MID_String_getBytes = NULL; jmethodid MID_String_init = NULL; JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) JNIEnv *env; if ((*jvm)->getenv(jvm, (void **)&env, JNI_VERSION_1_4))

15 return JNI_ERR; // Crea un riferimento globale if (Class_java_lang_String == NULL) jclass localrefcls = (*env)->findclass(env, "java/lang/string"); if (localrefcls == NULL) return JNI_ERR; // Lancio eccezione Class_java_lang_String = (*env)->newglobalref(env, localrefcls); (*env)->deletelocalref(env, localrefcls); if (Class_java_lang_String == NULL) return JNI_ERR; // Lancio eccezione OutOfMemory // Inizializazione Method ID MID_String_getBytes = (*env)->getmethodid(env, Class_java_lang_String, "getbytes", "()[B"); MID_String_init = (*env)->getmethodid(env, Class_java_lang_String, "<init>", "([C)V"); if ( (MID_String_getBytes == NULL) (MID_String_init == NULL) ) return JNI_ERR; return JNI_VERSION_1_4; JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *reserved) JNIEnv *env;

16 if ((*jvm)->getenv(jvm, (void **)&env, JNI_VERSION_1_4)) return; void JNU_ThrowByName(JNIEnv *env, const char *name, const char *msg) jclass cls = (*env)->findclass(env, name); if (cls!= NULL) (*env)->thrownew(env, cls, msg); (*env)->deletelocalref(env, cls); char * JstrToCharp(JNIEnv *env, jstring str) jbytearray bytes = 0; jthrowable exc; char *result = 0; if ( (*env)->ensurelocalcapacity(env, 2) < 0 ) return 0; bytes = (*env)->callobjectmethod(env, str, MID_String_getBytes); return NULL; exc = (*env)->exceptionoccurred(env); if (!exc) jint len = (*env)->getarraylength(env, bytes); result = (char *)malloc(len + 1); if (result == 0) JNU_ThrowByName(env, "java/lang/outofmemoryerror", 0);

17 (*env)->deletelocalref(env, bytes); return 0; (*env)->getbytearrayregion(env, bytes, 0, len, (jbyte *)result); result[len] = 0; else (*env)->deletelocalref(env, exc); (*env)->deletelocalref(env, bytes); return result; jstring CharpToJstr(JNIEnv *env, const char *str) jstring result; jbytearray bytes = 0; int len; if ( (*env)->ensurelocalcapacity(env, 2) < 0 ) return NULL; len = strlen(str); bytes = (*env)->newbytearray(env, len); if (bytes!= NULL) (*env)->setbytearrayregion(env, bytes, 0, len, (jbyte *)str); result = (*env)->newobject(env, Class_java_lang_String, MID_String_init, bytes); return result; return NULL;

18 Durante la fase di compilazione non si verifica alcun problema ma eseguendo il comando java Errors otteniamo il seguente messaggio da parte della Java Virtul Machine: Unexpected Signal : 11 occurred at PC=0x401B53A7 Function=(null)+0x401B53A7 Library=/usr/j2sdk1.4.2_04/jre/lib/i386/client/libjvm.so NOTE: We are unable to locate the function name symbol for the error just occurred. Please refer to release documentation for possible reason and solutions. Current Java thread: Dynamic libraries: r-xp : /usr/source/openssl_c/a.out a000 rw-p : /usr/source/openssl_c/a.out r-xp : /lib/ld so rw-p : /lib/ld so r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/libverify.so rw-p 0000f000 03: / usr/j2sdk1.4.2_04/jre/lib/i386/libverify.so r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/client/libjvm.so d000 rw-p 003fb000 03: / usr/j2sdk1.4.2_04/jre/lib/i386/client/libjvm.so 4044f f000 r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/libjava.so 4046f rw-p 0001f000 03: / usr/j2sdk1.4.2_04/jre/lib/i386/libjava.so a000 r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/native_threads/libhpi.so 4047a b000 rw-p : / usr/j2sdk1.4.2_04/jre/lib/i386/native_threads/libhpi.so 4047b f000 rw-s : /tmp/hsperfdata_root/ f r-xp : /usr/lib/liberrors.so

19 rw-p : /usr/lib/liberrors.so r-xp : /lib/libc so a000 rw-p : /lib/libc so 4059d r-xp : / usr/lib/i686/cmov/libcrypto.so a000 rw-p 000db000 03: / usr/lib/i686/cmov/libcrypto.so e e000 r-xp : /lib/libnsl so 4069e f000 rw-p : /lib/libnsl so 406a c2000 r-xp : /lib/libm so 406c c3000 rw-p : /lib/libm so 406c c5000 r-xp : /lib/libdl so 406c c6000 rw-p : /lib/libdl so 406c d2000 r-xp : /lib/libpthread-0.10.so 406d d3000 rw-p 0000c000 03: /lib/libpthread-0.10.so r-xp : / usr/lib/i686/cmov/libssl.so rw-p 0002b000 03: / usr/lib/i686/cmov/libssl.so r-xp : /lib/libnss_compat so a000 rw-p : /lib/libnss_compat so 4075a r-xp : /lib/libnss_nis so rw-p : /lib/libnss_nis so a000 r-xp : /lib/libnss_files so 4076a b000 rw-p : /lib/libnss_files so 4076b f000 r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/libzip.so 4077f rw-p : / usr/j2sdk1.4.2_04/jre/lib/i386/libzip.so r--s : / usr/j2sdk1.4.2_04/jre/lib/rt.jar r--s : / usr/j2sdk1.4.2_04/jre/lib/sunrsasign.jar r--s : / usr/j2sdk1.4.2_04/jre/lib/jsse.jar r--s : / usr/j2sdk1.4.2_04/jre/lib/jce.jar

20 cd000 r--s : / usr/j2sdk1.4.2_04/jre/lib/charsets.jar Heap at VM Abort: Heap def new generation total 576K, used 97K [0x , 0x , 0x44d60000) eden space 512K, 19% used [0x , 0x , 0x ) from space 64K, 0% used [0x , 0x , 0x ) to space 64K, 0% used [0x , 0x , 0x ) tenured generation total 1408K, used 0K [0x44d60000, 0x44ec0000, 0x ) the space 1408K, 0% used [0x44d60000, 0x44d60000, 0x44d60200, 0x44ec0000) compacting perm gen total 4096K, used 827K [0x , 0x48c80000, 0x4c880000) the space 4096K, 20% used [0x , 0x4894ecd8, 0x4894ee00, 0x48c80000) Local Time = Wed Aug 25 08:58: Elapsed Time = 0 # # HotSpot Virtual Machine Error : 11 # Error ID : 4F530E EF # Please report this error at # # # Java VM: Java HotSpot(TM) Client VM (1.4.2_05-b04 mixed mode) # E' un messaggio che rivela un bug della JVM. Per risolvere questo problema sono state cercate informazioni su questo tipo di problema ed eventuali soluzioni ma non è stato trovato nulla che possa soddisfare le nostre necessità. Vorrei evidenziare il fatto che nel codice di queste funzioni di utilità non ci sono errori di sintassi ne di semantica. Il problema di conversione da char * a jstring (e viceversa) non è raggirabile. Dopo vari tentativi (eseguendo semplici esempi) è stato deciso di abbandonare la realizzazione del wrapper. Avremmo potuto tentare di rieseguire il codice in altri sistemi operativi come ad esempio MS Windows o altre versioni della JVM ma questa scelta sarebbe andata contro uno degli obiettivi preposti: realizzare una CA utilizzabile nella maggior parte dei sistemi. Non a caso è stato scelto il

21 Java come linguaggio di programmazione.

22 Installazione di EJBCA Il secondo obiettivo preposto è stato quello di installare il software EJBCA e descrivere in maniera abbastanza dettagliata la procedura di installazione. EJBCA (Enterprise Java Bean Certification Authority) è un software per la certification authority scritto in Java. Per l'esecuzione è necessiario che sia avviato un application server (per ulteriori dettagli sugli application server consultare la documentazione del JDK). La procedura di installazione qui descritta è valida per sistemi operativi linux ma con determinati accorgimenti è facilmente adattabile per altri ambienti. Per una sua versione più schematica consultare l'appendice B. Descrizione dei software da installare JDK Il primo software da installare è il JDK. Si consiglia di installare l'ultima versione stabile disponibile nel sito ufficiale La versione da me utilizzata è la 1.4.2_05. Copiare il contenuto dell'archivio scaricato in una directory a scelta. Per i passaggi successivi (e per convenienza) andiamo a modificare uno dei file di avvio dove possiamo andare a definire variabili di ambiente come il file profile inserendo le variabili JDK_HOME, JAVA_HOME e CLASSPATH a seconda della directory in cui è stato installato il JDK. Ad esempio nel mio caso ho inserito le seguenti righe: export PATH=/usr/lib/java:... export JDK_HOME="/usr/lib/java/bin" export JAVA_HOME=/usr/j2sdk1.4.2_05 export CLASSPATH=/usr/j2sdk1.4.2_05/jre/lib/ext/... :$CLASSPATH

23 Verificare quindi che sia installato il package JCE (Java Cryptography Extension). Questo package è già presente nella versione 1.4 e probabilmente lo sarà anche nelle successive. E' inoltre necessario installare l'unlimited Strength Java Cryptography Extension per poter utilizzare crittografia forte e illimitata. Il pacchetto è disponibile nel sito della sun nella stessa pagina dove è possibile scaricare il JDK e consiste in due file *.jar (local_policy.jar e US_export_policy.jar) che devono essere copiati nelle directory $JAVA_HOME/jre/lib e $JAVA_HOME/lib/security (questa directory è da creare). Questo pacchetto è necessario fondamentalmente per scopi legali infatti nel file README.txt che si trova insieme ai file jar è possibile leggere: JCE for J2SDK, v has been through the U.S. export review process. The JCE framework, along with the SunJCE provider that comes standard with it, is exportable. The JCE architecture allows flexible cryptographic strength to be configured via jurisdiction policy files. Due to the import restrictions of some countries, the jurisdiction policy files distributed with the J2SDK, v software have built-in restrictions on available cryptographic strength. The jurisdiction policy files in this download bundle (the bundle including this README file) contain no restrictions on cryptographic strengths. This is appropriate for most countries. Framework vendors can create download bundles that include jurisdiction policy files that specify cryptographic restrictions appropriate for countries whose governments mandate restrictions. Users in those countries can download an appropriate bundle, and the JCE framework will enforce the specified restrictions. MySQL EJBCA richiede l'utilizzo di un database per immagazzinare ogni tipo di informazione necessaria e ci da la possibilità di scegliere tra varie opzioni e tra le quali abbiamo scelto il MySQL disponibile all'indirizzo E' stato scelto questo DBMS perchè possiede molte qualità che vengono incontro alle nostre necessità infatti il MySQL è multipiattaforma, open source, efficiente, dispone di una buona documentazione e in caso di problemi non si hanno grosse difficoltà nel

24 trovare una soluzione. La versione che è stata installata è la C'è da fare attenzione con la scelta della versione da scegliere perchè si possono riscontrare anomalie: installando la versione ci sono stati dei problemi alla tabella UserData del database ejbca, tale tabella veniva danneggiata durante l'installazione di EJBCA. Una volta scaricato il pacchetto dal sito ufficiale, creare il gruppo e l'utente mysql : shell> groupadd mysql shell> useradd -g mysql mysql Possiamo quindi proseguire iniziando l'installazione: shell> cd /usr/local shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz tar xvf - shell> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql shell> cd mysql Copiamo il file /directory-di-installazione-mysql/support-file/my-medium.cnf nella directory /etc e rinominarlo in my.cnf e verificare che all'interno di tale file la voce skip-networkin sia posta sotto commento (anteponendo il carattere # ) o cancellata; questa operazione è necessaria perchè il linguaggio Java accede al MySQL come se si trovasse in un altro pc utilizzando un indirizzo IP. Dalla directory /usr/local/mysql eseguire: scripts/mysql_install_db --user=mysql Acquisiamo i privilegi necessari: shell> chown -R root. shell> chown -R mysql data

25 shell> chgrp -R mysql. L'installazione è completata. Per poter utilizzare MySQL è necessario che il demone mysqld sia attivo, quindi sarebbe è necessario avviarlo all'avvio del sistema operativo o perlomeno prima di utilizzare il DBMS: shell> /usr/local/mysql/bin/mysqld_safe --user=mysql & Per terminare il demone in qualsiasi momento: shell> killall mysqld Il MySQL mette a disposizione una particolare console che ci consente di creare e manipolare database digitiamo quindi: shell> /usr/local/mysql/bin/mysql Inviamo i comandi: > use mysql > create database ejbca; > grant all privileges on *.* to identified by 'ejbca' with grant option; > grant all privileges on *.* to identified by 'ejbca' with grant option; > quit Il primo comando ci permette di accedere al database mysql, successivamente creiamo il database ejbca, con le due operazioni successive forniamo privilegi illimitati a tutti coloro che accedono dall'esterno ( % ) e dall'interno ( linux alias di ) per tutte le tabelle di tutti i database. Sarebbe bene modificare le tabelle (e i relativi utenti) alle quali si vogliono fornire i privilegi (per

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

UBUNTU SERVER. Installazione e configurazione di Ubuntu Server. M. Cesa 1

UBUNTU SERVER. Installazione e configurazione di Ubuntu Server. M. Cesa 1 UBUNTU SERVER Installazione e configurazione di Ubuntu Server M. Cesa 1 Ubuntu Server Scaricare la versione deisiderata dalla pagina ufficiale http://www.ubuntu.com/getubuntu/download-server Selezioniare

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Manuale installazione KNOS

Manuale installazione KNOS Manuale installazione KNOS 1. PREREQUISITI... 3 1.1 PIATTAFORME CLIENT... 3 1.2 PIATTAFORME SERVER... 3 1.3 PIATTAFORME DATABASE... 3 1.4 ALTRE APPLICAZIONI LATO SERVER... 3 1.5 ALTRE APPLICAZIONI LATO

Dettagli

Guida all'installazione di SLPct. Manuale utente. Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it

Guida all'installazione di SLPct. Manuale utente. Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it Guida all'installazione di SLPct Manuale utente Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it Premessa Il redattore di atti giuridici esterno SLpct è stato implementato da Regione

Dettagli

INTERNET e RETI di CALCOLATORI A.A. 2014/2015 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

INTERNET e RETI di CALCOLATORI A.A. 2014/2015 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam. Laurea in INFORMATICA INTERNET e RETI di CALCOLATORI A.A. 2014/2015 Capitolo 4 Dynamic Host Configuration Protocol fausto.marcantoni@unicam.it Prima di iniziare... Gli indirizzi IP privati possono essere

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

FileMaker Server 13. Guida introduttiva

FileMaker Server 13. Guida introduttiva FileMaker Server 13 Guida introduttiva 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e Bento sono marchi

Dettagli

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa di Ilaria Lorenzo e Alessandra Palma Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa Code::Blocks

Dettagli

Come installare e configurare il software FileZilla

Come installare e configurare il software FileZilla Come utilizzare FileZilla per accedere ad un server FTP Con questo tutorial verrà mostrato come installare, configurare il software e accedere ad un server FTP, come ad esempio quello dedicato ai siti

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

GLI ERRORI DI OUTLOOK EXPRESS

GLI ERRORI DI OUTLOOK EXPRESS Page 1 of 6 GLI ERRORI DI OUTLOOK EXPRESS 1) Impossibile inviare il messaggio. Uno dei destinatari non è stato accettato dal server. L'indirizzo di posta elettronica non accettato è "user@dominio altro

Dettagli

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

Configurazione avanzata di IBM SPSS Modeler Entity Analytics Configurazione avanzata di IBM SPSS Modeler Entity Analytics Introduzione I destinatari di questa guida sono gli amministratori di sistema che configurano IBM SPSS Modeler Entity Analytics (EA) in modo

Dettagli

SISSI IN RETE. Quick Reference guide guida di riferimento rapido

SISSI IN RETE. Quick Reference guide guida di riferimento rapido SISSI IN RETE Quick Reference guide guida di riferimento rapido Indice generale Sissi in rete...3 Introduzione...3 Architettura Software...3 Installazione di SISSI in rete...3 Utilizzo di SISSI in Rete...4

Dettagli

FileMaker Server 13. Guida di FileMaker Server

FileMaker Server 13. Guida di FileMaker Server FileMaker Server 13 Guida di FileMaker Server 2010-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e Bento sono

Dettagli

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone Paragrafo 1 Prerequisiti Definizione di applicazione server Essa è un servizio che è in esecuzione su un server 1 al fine di essere disponibile per tutti gli host che lo richiedono. Esempi sono: il servizio

Dettagli

FileMaker Server 13. Pubblicazione Web personalizzata con PHP

FileMaker Server 13. Pubblicazione Web personalizzata con PHP FileMaker Server 13 Pubblicazione Web personalizzata con PHP 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker

Dettagli

Protocollo HTTP. Alessandro Sorato

Protocollo HTTP. Alessandro Sorato Un protocollo è un insieme di regole che permettono di trovare uno standard di comunicazione tra diversi computer attraverso la rete. Quando due o più computer comunicano tra di loro si scambiano una serie

Dettagli

Windows Compatibilità

Windows Compatibilità Che novità? Windows Compatibilità CODESOFT 2014 é compatibile con Windows 8.1 e Windows Server 2012 R2 CODESOFT 2014 Compatibilità sistemi operativi: Windows 8 / Windows 8.1 Windows Server 2012 / Windows

Dettagli

CONFIGURAZIONE DEI SERVIZI (seconda parte)

CONFIGURAZIONE DEI SERVIZI (seconda parte) Corso ForTIC C2 LEZIONE n. 10 CONFIGURAZIONE DEI SERVIZI (seconda parte) WEB SERVER PROXY FIREWALL Strumenti di controllo della rete I contenuti di questo documento, salvo diversa indicazione, sono rilasciati

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

Informazioni su questo libro

Informazioni su questo libro Informazioni su questo libro Si tratta della copia digitale di un libro che per generazioni è stato conservata negli scaffali di una biblioteca prima di essere digitalizzato da Google nell ambito del progetto

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

Creare una pen drive bottabile con Zeroshell oppure installarlo su hard disk. by Gassi Vito info@gassielettronica.com

Creare una pen drive bottabile con Zeroshell oppure installarlo su hard disk. by Gassi Vito info@gassielettronica.com Creare una pen drive bottabile con Zeroshell oppure installarlo su hard disk by Gassi Vito info@gassielettronica.com Questa breve guida pratica ci consentirà installare Zeroshell su pen drive o schede

Dettagli

Zeroshell come client OpenVPN

Zeroshell come client OpenVPN Zeroshell come client OpenVPN (di un server OpenVpn Linux) Le funzionalità di stabilire connessioni VPN di Zeroshell vede come scenario solito Zeroshell sia come client sia come server e per scelta architetturale,

Dettagli

Installazione LINUX 10.0

Installazione LINUX 10.0 Installazione LINUX 10.0 1 Principali passi Prima di iniziare con l'installazione è necessario entrare nel menu di configurazione del PC (F2 durante lo start-up) e selezionare nel menu di set-up il boot

Dettagli

Interfaccia Web per customizzare l interfaccia dei terminali e

Interfaccia Web per customizzare l interfaccia dei terminali e SIP - Session Initiation Protocol Il protocollo SIP (RFC 2543) è un protocollo di segnalazione e controllo in architettura peer-to-peer che opera al livello delle applicazioni e quindi sviluppato per stabilire

Dettagli

Museo&Web CMS Tutorial: installazione di Museo&Web CMS Versione 0.2 del 16/05/11

Museo&Web CMS Tutorial: installazione di Museo&Web CMS Versione 0.2 del 16/05/11 Museo&Web CMS Tutorial: installazione di Museo&Web CMS Versione 0.2 del 16/05/11 Museo & Web CMS v1.5.0 beta (build 260) Sommario Museo&Web CMS... 1 SOMMARIO... 2 PREMESSE... 3 I PASSI PER INSTALLARE MUSEO&WEB

Dettagli

PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers

PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers La procedura di installazione è divisa in tre parti : Installazione dell archivio MySql, sul quale vengono salvati

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

CA Asset Portfolio Management

CA Asset Portfolio Management CA Asset Portfolio Management Guida all'implementazione Versione 12.8 La presente documentazione, che include il sistema di guida in linea integrato e materiale distribuibile elettronicamente (d'ora in

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

CA Process Automation

CA Process Automation CA Process Automation Glossario Release 04.2.00 La presente documentazione, che include il sistema di guida in linea integrato e materiale distribuibile elettronicamente (d'ora in avanti indicata come

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1 Dipartimento di Sistemi e Informatica Università degli Studi di Firenze Dev-C++ Ing. Michele Banci 27/03/2007 1 Utilizzare Dev-C++ Tutti i programmi che seranno realizzati richiedono progetti separati

Dettagli

Rational Asset Manager, versione 7.1

Rational Asset Manager, versione 7.1 Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Note Prima di utilizzare queste informazioni e il prodotto

Dettagli

AUTENTICAZIONE CON CERTIFICATI DIGITALI MOZILLA THUNDERBIRD

AUTENTICAZIONE CON CERTIFICATI DIGITALI MOZILLA THUNDERBIRD AUTENTICAZIONE CON CERTIFICATI DIGITALI MOZILLA THUNDERBIRD 1.1 Premessa Il presente documento è una guida rapida che può aiutare i clienti nella corretta configurazione del software MOZILLA THUNDERBIRD

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

GUIDA alla configurazione di un DVR o Router su dyndns.it. in modalità compatibile www.dyndns.org

GUIDA alla configurazione di un DVR o Router su dyndns.it. in modalità compatibile www.dyndns.org GUIDA alla configurazione di un DVR o Router su dyndns.it in modalità compatibile www.dyndns.org Questa semplice guida fornisce le informazioni necessarie per eseguire la registrazione del proprio DVR

Dettagli

Virtualizzazione con Microsoft Tecnologie e Licensing

Virtualizzazione con Microsoft Tecnologie e Licensing Microsoft Virtualizzazione con Microsoft Tecnologie e Licensing Profile Redirezione dei documenti Offline files Server Presentation Management Desktop Windows Vista Enterprise Centralized Desktop Application

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

AMBIENTE DEV PASCAL. Dev-Pascal 1.9.2. Finestra di apertura

AMBIENTE DEV PASCAL. Dev-Pascal 1.9.2. Finestra di apertura Dev-Pascal 1.9.2 1 Dev-Pascal è un ambiente di sviluppo integrato per la programmazione in linguaggio Pascal sotto Windows prodotto dalla Bloodshed con licenza GNU e liberamente scaricabile al link http://www.bloodshed.net/dev/devpas192.exe

Dettagli

Guida alla scansione su FTP

Guida alla scansione su FTP Guida alla scansione su FTP Per ottenere informazioni di base sulla rete e sulle funzionalità di rete avanzate della macchina Brother, consultare la uu Guida dell'utente in rete. Per ottenere informazioni

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

GESTIONE DELLA E-MAIL

GESTIONE DELLA E-MAIL GESTIONE DELLA E-MAIL Esistono due metodologie, completamente diverse tra loro, in grado di consentire la gestione di più caselle di Posta Elettronica: 1. tramite un'interfaccia Web Mail; 2. tramite alcuni

Dettagli

GESTIRE LA BIBLIOGRAFIA

GESTIRE LA BIBLIOGRAFIA GESTIRE LA BIBLIOGRAFIA STRUMENTI DI GESTIONE BIBLIOGRAFICA I software di gestione bibliografica permettono di raccogliere, catalogare e organizzare diverse tipologie di materiali, prendere appunti, formattare

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute DNS: Domain Name System I name DNS Persone: identificatori: CF, nome, Numero di Passaporto Host e router Internet: Indirizzo IP ( bit) - usato per instradare i pacchetti nome, per es., massimotto.diiie.unisa.it

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux.

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux. FAQ su GeCo Qual è la differenza tra la versione di GeCo con installer e quella portabile?... 2 Esiste la versione per Linux di GeCo?... 2 Quali sono le credenziali di accesso a GeCo?... 2 Ho smarrito

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

RSYNC e la sincronizzazione dei dati

RSYNC e la sincronizzazione dei dati RSYNC e la sincronizzazione dei dati Introduzione Questo breve documento intende spiegare come effettuare la sincronizzazione dei dati tra due sistemi, supponendo un sistema in produzione (master) ed uno

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

explorer 2 Manuale dell Installatore e Technical Reference Ver. 2.2.6 del 14 Dicembre 2012

explorer 2 Manuale dell Installatore e Technical Reference Ver. 2.2.6 del 14 Dicembre 2012 explorer 2 Manuale dell Installatore e Technical Reference Ver. 2.2.6 del 14 Dicembre 2012 1 Indice 1. Descrizione del sistema e Requisiti hardware e software per l installazione... 4 1.1 Descrizione del

Dettagli

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

Un client su arduino invia i dati acquisiti ad un database

Un client su arduino invia i dati acquisiti ad un database Un client su arduino invia i dati acquisiti ad un database PROBLEMA Si vogliono inviare, periodicamente, i dati acquisiti da alcuni sensori ad un database presente su di un server. Arduino con shield Ethernet

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 Download Si può scaricare gratuitamente la versione per il proprio sistema operativo (Windows, MacOS, Linux) dal sito: http://www.codeblocks.org

Dettagli

DNS (Domain Name System) Gruppo Linux

DNS (Domain Name System) Gruppo Linux DNS (Domain Name System) Gruppo Linux Luca Sozio Matteo Giordano Vincenzo Sgaramella Enrico Palmerini DNS (Domain Name System) Ci sono due modi per identificare un host nella rete: - Attraverso un hostname

Dettagli

Modulo 2 - Appendice 3 L'editor vi e cenni su sed

Modulo 2 - Appendice 3 L'editor vi e cenni su sed 1 Modulo 2 - Appendice 3 L'editor vi e cenni su sed Laboratorio di Sistemi Operativi I Anno Accademico 2008-2009 Copyright 2005-2007 Francesco Pedullà, Massimo Verola Copyright 2001-2005 Renzo Davoli,

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Gestione posta elettronica (versione 1.1)

Gestione posta elettronica (versione 1.1) Gestione posta elettronica (versione 1.1) Premessa La presente guida illustra le fasi da seguire per una corretta gestione della posta elettronica ai fini della protocollazione in entrata delle mail (o

Dettagli

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace: Overview tecnica Introduzione E un sistema EAI molto flessibile, semplice ed efficace: Introduce un architettura ESB nella realtà del cliente Si basa su standard aperti Utilizza un qualsiasi Application

Dettagli

Outlook Express 6 Microsoft Internet Explorer, Avvio del programma Creare un nuovo account

Outlook Express 6 Microsoft Internet Explorer, Avvio del programma Creare un nuovo account Outlook Express 6 è un programma, incluso nel browser di Microsoft Internet Explorer, che ci permette di inviare e ricevere messaggi di posta elettronica. È gratuito, semplice da utilizzare e fornisce

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

PROVINCIA AUTONOMA DI TRENTO

PROVINCIA AUTONOMA DI TRENTO PROVINCIA AUTONOMA DI TRENTO Microsoft Windows 30/10/2014 Questo manuale fornisce le istruzioni per l'utilizzo della Carta Provinciale dei Servizi e del lettore di smart card Smarty sui sistemi operativi

Dettagli

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless La configurazione degli indirizzi IP Configurazione statica, con DHCP, e stateless 1 Parametri essenziali per una stazione IP Parametri obbligatori Indirizzo IP Netmask Parametri formalmente non obbligatori,

Dettagli

Guida ai Servizi Internet per il Referente Aziendale

Guida ai Servizi Internet per il Referente Aziendale Guida ai Servizi Internet per il Referente Aziendale Indice Indice Introduzione...3 Guida al primo accesso...3 Accessi successivi...5 Amministrazione dei servizi avanzati (VAS)...6 Attivazione dei VAS...7

Dettagli

e-spare Parts User Manual Peg Perego Service Site Peg Perego [Dicembre 2011]

e-spare Parts User Manual Peg Perego Service Site Peg Perego [Dicembre 2011] Peg Perego Service Site Peg Perego [Dicembre 2011] 2 Esegui il login: ecco la nuova Home page per il portale servizi. Log in: welcome to the new Peg Perego Service site. Scegli il servizio selezionando

Dettagli

Import Dati Release 4.0

Import Dati Release 4.0 Piattaforma Applicativa Gestionale Import Dati Release 4.0 COPYRIGHT 2000-2005 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati.questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

MailStore Proxy è disponibile gratuitamente per tutti i clienti di MailStore Server all indirizzo http://www.mailstore.com/en/downloads.

MailStore Proxy è disponibile gratuitamente per tutti i clienti di MailStore Server all indirizzo http://www.mailstore.com/en/downloads. MailStore Proxy Con MailStore Proxy, il server proxy di MailStore, è possibile archiviare i messaggi in modo automatico al momento dell invio/ricezione. I pro e i contro di questa procedura vengono esaminati

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

Analisi di sistemi compromessi (ricerca di rootkit, backdoor,...)

Analisi di sistemi compromessi (ricerca di rootkit, backdoor,...) Analisi di sistemi compromessi (ricerca di rootkit, backdoor,...) Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161

Dettagli

Manuale Utente. S e m p l i c e m e n t e D a t i M i g l i o r i!

Manuale Utente. S e m p l i c e m e n t e D a t i M i g l i o r i! Manuale Utente S e m p l i c e m e n t e D a t i M i g l i o r i! INDICE INDICE... 3 INTRODUZIONE... 3 Riguardo questo manuale...3 Informazioni su VOLT 3 Destinatari 3 Software Richiesto 3 Novità su Volt...3

Dettagli

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi:

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Routing (instradamento) in Internet Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Stub AS: istituzione piccola Multihomed AS: grande istituzione (nessun ( transito Transit AS: provider

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

Installazione di GFI Network Server Monitor

Installazione di GFI Network Server Monitor Installazione di GFI Network Server Monitor Requisiti di sistema I computer che eseguono GFI Network Server Monitor richiedono: i sistemi operativi Windows 2000 (SP4 o superiore), 2003 o XP Pro Windows

Dettagli

Integrated Development Environment (IDE) DevC++ 4.9.9.2

Integrated Development Environment (IDE) DevC++ 4.9.9.2 Integrated Development Environment (IDE) DevC++ 4.9.9.2 Manuale utente Data ultima revisione: 22/10/2008 Fondamenti di informatica Università Facoltà Corso di laurea Politecnico di Bari 1 a Facoltà di

Dettagli

File Leggimi relativo a Quark Licensing Administrator 4.5.0.2

File Leggimi relativo a Quark Licensing Administrator 4.5.0.2 File Leggimi relativo a Quark Licensing Administrator 4.5.0.2 INDICE Indice File Leggimi relativo a Quark Licensing Administrator 4.5.0.2...4 Requisiti di sistema: QLA Server...5 Requisiti di sistema:

Dettagli

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO Francesco Marchione e Dario Richichi Istituto Nazionale di Geofisica e Vulcanologia Sezione di Palermo Indice Introduzione...

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso Integrare le MFC con Irrlicht by Raffaele White tiger Mancuso In questo topic spiegherò come integrare irrlicht in un documento singolo MFC *(1). Io ho usato il visual c++ 6 ma la procedura dovrebbe essere

Dettagli

Manuale installazione DiKe Util

Manuale installazione DiKe Util Manuale installazione DiKe Util Andare sul sito Internet: www.firma.infocert.it Cliccare su software nella sezione rossa INSTALLAZIONE: comparirà la seguente pagina 1 Selezionare, nel menu di sinistra,

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

DEFT Zero Guida Rapida

DEFT Zero Guida Rapida DEFT Zero Guida Rapida Indice Indice... 1 Premessa... 1 Modalità di avvio... 1 1) GUI mode, RAM preload... 2 2) GUI mode... 2 3) Text mode... 2 Modalità di mount dei dispositivi... 3 Mount di dispositivi

Dettagli

RefWorks Guida all utente Versione 4.0

RefWorks Guida all utente Versione 4.0 Accesso a RefWorks per utenti registrati RefWorks Guida all utente Versione 4.0 Dalla pagina web www.refworks.com/refworks Inserire il proprio username (indirizzo e-mail) e password NB: Agli utenti remoti

Dettagli