JUG Ancona Italy. Sicurezza in Java. Andrea Del Bene. Membro fondatore Jug Marche

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "JUG Ancona Italy. Sicurezza in Java. Andrea Del Bene. Membro fondatore Jug Marche"

Transcript

1 JUG Ancona Italy Sicurezza in Java Andrea Del Bene Membro fondatore Jug Marche

2 Teoria della comunicazione Mittente: chi produce l'informazione e la vuole comunicare Destinatario: chi riceve la comunicazione inviata dal mittente Comunicazione riservata: può essere compresa solo da specifici destinatari voluti dal mittente (al limite solo il mittente stesso!).

3 Esigenza di riservatezza. Informazioni tattiche: ambito milatare, politco, economico... Erogazione servizi apagamento: pay tv Esigenze di privacy...

4 Esigenza di autenticazione. Ci basta la riservatezza? NO! In diversi contesti ci vuole anche autenticazione. -Dobbiamo essere sicuri sull'identità del nostro interlocutore -Dobbiamo avere la garanzia che l'informazione scambiata non sia manibolata da qualcuno durante la comunicazione.

5 Esigenza di autenticazione. Esempi Chi non ha sentito parlare di phising? Di mail fasulle? Di spam? dobbiamo essere sicuri dell'identità del mittente di un messaggio che ci arriva dobbiamo essere sicuri dell'identità di chi eroga il servizo -il sito di home bancking che sto usando è veramente vero?

6 Crittografia moderna La crittografia moderna si occupa di risolvere sia il problema della riservatezza sia quello dell'autenticazione. In genere garantire l'autenticazione è più impegnativo Garantire l'autenticazione di solito implica garantire riservatezza. Autenticazione Riservatezza

7 Definizione di crittografia Cifratura: rendere illeggibile un'informazione tramite tecniche crittografiche Decifratura: rendere nuovamente leggibile un'informazione tramite le stesse tecniche crittografiche usate per la cifratura Cifrario: tecnica crittografica con cui ottengo riservatezza e/o autenticazione

8 JUG Ancona Italy Riservatezza Come garantire riservatezza dei propri dati? Cifratura a chiave simmetrica.

9 Canali di comunicazioni riservati Soluzione naive: non uso la crittografia :-) e comunico su un canale riservato e accessibile solo al mittente e ai destinatari. Impossibile (nel quotidiano): devo creare un canale ad hoc esclusivo e riservato. Costi improponibili. Implementazione: linea rossa Mosca-Washington, canali bancari...

10 Canali di comunicazione non riservati Nella realtà le comunicazioni avvengono quasi sempre su canali non riservati: -comunicazione verbale (aria) -Internet (aperta per natura), canali telefonici Se il mittente può usare solo canali non riservati deve agire sull'informazione, rendendola comprensibile solo a chi vuole lui.

11 Prima soluzione: comunicare in codice! Il codice assegna a significati arbitrari a determinate parole/simboli si usa un canale non riservato l'informazione viene compresa solo da chi conosce il codice Es: pizzini di Provenzano... Il codice usato è detto anche cifrario.

12 Esempio di comunicazione in codice: cifrario di Cesare Mittente: Cesare Destinatari: i suoi generali Canale di comunicazione: messaggi scritti su carta, tarsportati da una staffetta. Funzionamento: si riscrive il messaggio traslando ogni lettera avanti di 3 posizioni rispetto l'alfabeto: la a diventa d, la i diventa n, la z diventa c... Es: Ciao diventa Fndr Prima di mandarli in missione Cesare spiega il trucco ai generali. Se il messaggio cade in mani nemiche non può essere compreso.

13 Cifrari moderni. Nei giorni nostri i cifrari si basano su complessi algoritmi matematici Tali algoritmi sono pubblici, ma richiedono almeno un parametro in input segreto, detto chiave. Basano la loro forza sulla complessità matematica, rendono "confusa" l'informazione in maniera molto sofisticata E' computazionalmente impossibile mettere in chiaro un'informazione così cifrata. Impiegheremmo un numero di anni nemmeno pronunciabile (età dell'universo miliardi di anni)!

14 Crittografia a chiave simmetrica 1 La branca della crittografia che assicura riservatezza ai nostri dati è chiamata Crittografia a chiave simmetrica. Chiave simmetrica indica che mittente e destinatario condividono la stessa chiave da usare con l'algoritmo di cifratura scelta e devono in qualche modo mettersi d'accordo sulla chiave comune da usare! Quindi (teorema ovvio)... La chiave deve rimanere segreta tra mittenti e destinatari!

15 Crittografia a chiave simmetrica 2 La chiave usata da mittente e destinatario è sempre la stessa! Cifrario (cifratura) Mittente Cifrario (decifratura) Destinatario

16 Algoritmi asimmetrici Algoritmi veloci e molto robusti Non risolvono il problema della distribuzione della chiave e della mutua autenticazione (vedremo) Algoritmi più usati: -Blowfish, DES (molto vecchio), 3DES (triplo DES), AES...

17 Algoritmi asimmetrici: AES AES è il re degli algoritmi simmetrici. Molto recente (anno 2000), scelto tramite concorso dall'esercito americano per rimpiazzare il DES Ideato da Joan Daemen e Vincent Rijmen professori dell'università di Katholieke Universiteit Leuven (Belgio)

18 Algoritmi asimmetrici: la chiave Per usare questi algoritmi occcorre generare la chiave segreta. La chiave ha una dimensione variabile in bit Sono "sicure" chiavi di almeno 128 bit Il DES è bloccato a 56 bit :( ed è quindi obsoleto ed insicuro Una decina di anni fa una chiave DES è stata "rotta" in meno di 24 ore con dei computer connessi su Internet DES è stata un ottimo laboratorio per evidenziare debolezze e mancanze da correggere nei futuri algoritmi.

19 Attacco di forza bruta Posso pensare di rompere l'algoritmo provando tutte le possibili chiavi...ma quante sono? Con una chiave da N bit le possibili chiavi sono 2^N (2 elevato alla N). Es: chiave da 128 bit, 2^128 possibili chiavi...ti passa la voglia di provarle tutte! Posso creare anche chiavi più sicure: -256 bit -512 bit -...sei paranoico??!!

20 Finalmente un po' di codice... Generiamo una chiave 3DES. Il triple DES come dice il nome è un DES 3 volte più sicuro : 3 x 56 = 168 bit di chiave. La dimensione della chiave è fissa. KeyGenerator keygenerator = KeyGenerator.getInstance("TripleDES"); keygenerator.init(168); Key key = keygenerator.generatekey(); Ora per usare questa chiave ci serve il cifrario, opportuna -mente inizializzato... Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding"); Come possiamo notare, per creare il cifrario non ci siamo limitati a specificare l'algoritmo voluto.

21 La Modalità e il Padding. Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding"); Istanziazione del cifrario è possibile specificare: 1. il tipo di chiave [TripleDES], 2. la Modalità [ECB], 3. il Padding [PKCS5Padding] La creazione di un cifrario asimmetrico richiede di specificare anche una Modalità e un Padding e quindi (purtroppo per voi :-) ) dobbiamo vedere questi due concetti...

22 Modalità La modalità definisce come un cifrario debba applicare un algoritmo di cifratura. Ad esempio si può specificare se un cifrario deve essere a blocchi o a flusso. La differenza tra cifrario a blocchi o a flusso è abbastanza semplice: Il cifrario a flusso cifra un byte alla volta, il cifrario a blocchi considera più byte alla volta (es 8). Alcuni algoritmi consentono di specificare la grandezza del blocco.

23 Modalità a blocchi 1 Noi considereremo la modalità a blocchi. Ma anche l'uso dei blocchi ci costringe a scegliere tra due modalità operative... Due tra le modalità più comuni sono: ECB :[Elettronic Code Book] lo stesso blocco di dati in chiaro viene sempre cifrato con lo stesso blocco di dati cifrato. CBC :[Cipher Block Chaining] ogni blocco cifrato dipende dal relativo blocco in chiaro, ma anche da tutti i blocchi precedenti e da un vettore di inizializzazione IV.

24 Modalità a blocchi 2 Si ma che problema c'è se a blocchi in chiaro uguali corrispondono blocchi cifrati sempre uguali? La figura al centro è cifrata in modalità ECB. (fonte Wikipedia)

25 Modalità a blocchi 3

26 Padding I cifrari a blocchi operano su blocchi di dati ma i dati in chiaro difficilmente saranno esattamente un multiplo del blocco prima di cifrare occorre dunque aggiungere il padding (spaziatura).

27 Padding Il padding PKCS#5 (Public Key Criptography Standard) è il più utilizzato per la Cifratura simmetrica e funziona in questo modo: Ai byte che mancano per riempire un blocco viene assegnato un numero che equivale al numero di byte mancanti. h e l l o blocco blocco t e s t t r o t t a 2 2 blocco blocco

28 Esempio finale 1 KeyGenerator keygenerator = KeyGenerator.getInstance("TripleDES"); keygenerator.init(168); Key key = keygenerator.generatekey(); Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding"); cipher.init(cipher.encrypt_mode, key); byte[] plaintext = text.getbytes("utf8"); byte[] ciphertext = cipher.dofinal(plaintext);... Per decifrare... cipher.init(cipher.decrypt_mode, key); byte[] decryptedtext = cipher.dofinal(ciphertext);

29 Esempio finale 2 Per usare il CBC... Cipher cipher = Cipher.getInstance("Rijndael/CBC/PKCS5Padding"); SecureRandom random = new SecureRandom(); byte[] iv = new byte[16]; random.nextbytes(iv); IvParameterSpec spec = new IvParameterSpec(iv); La classe SecureRandom permette di generare i RandomBytes, che permettono a loro volta la creazione del SEME, grazie alla classe IvParameterSpec cipher.init(cipher.encrypt_mode, key, spec);

30 Password-Based Encryption Il problema di questo metodo sta nel fatto che è meno potente di DESede o Blowfish. con questi algoritmi si usano fino a 448 bit con password di un utente medio sarà circa di 6 caratteri e quindi 48 bit come password si usano parole con un significato keyspace davvero limitato Inoltre le password sono soggette agli attacchi con dizionario 2 tecniche: Salting; Conteggi di ripetizione

31 Salting conteggi di ripetizione Salting Consiste nell aggiungere alla password un insieme di bit casuali per ampliarne il keyspace Conteggi di ripetizione Consiste nel effettuare molte volte, un operazione sulla password per ottenere la chiave per il cifrario PBE. ad esempio se applico alla password 1000 volte un algoritmo di hash per un intruso sarà 1000 volte più difficile rompere il cifrario

32 Cifratura Testo In chiaro Testo cifrato Password Cifrario PBE Salt SALT Dati cifrati Testo Cifrato

33 Codice di esempio di PBE private final int ITERATIONS = 1000; int ITERATIONS = 1000; byte[] salt = new byte[8]; Random random = new Random(); random.nextbytes(salt); PBEKeySpec keyspec = new PBEKeySpec(password); SecretKeyFactory keyfactory=secretkeyfactory.getinstance("pbewithmd5andde SecretKey key = keyfactory.generatesecret(keyspec);

34 Codice di esempio di PBE 2 PBEParameterSpec paramspec = new PBEParameterSpec(salt, ITERATIONS); Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES"); cipher.init(cipher.encrypt_mode, key, paramspec); byte[] ciphertext = cipher.dofinal(plaintext.getbytes()); String saltstring = new String(salt); String ciphertextstring = new String(cipherText); return saltstring+ciphertextstring;

35 Decifratura Testo cifrato SALT Dati cifrati Testo Cifrato Password Cifrario PBE Salt Testo In chiaro

36 Decifratura (codice) String salt = input.substring(0,8); String ciphertext = input.substring(8,text.length()); byte[] saltarray = salt.getbytes(); byte[] ciphertextarray = ciphertext.getbytes(); // Creazione di PBEKeySpec con la password PBEKeySpec keyspec = new PBEKeySpec(password); // SecretKeyFactory per PBEWithMD5AndDES SecretKeyFactory keyfactory = SecretKeyFactory.getInstance(" PBEWithMD5AndDES "); // Creazione della chiave SecretKey key = keyfactory.generatesecret(keyspec); // Creazione di un parameter spec per salt e iterations PBEParameterSpec paramspec = new PBEParameterSpec(saltArray, ITERATIONS); // Creazione del cifrario e inizializzazione Cipher cipher = Cipher.getInstance(" PBEWithMD5AndDES "); cipher.init(cipher.decrypt_mode, key, paramspec); // Decifratura byte[] plaintextarray = cipher.dofinal(ciphertextarray); return new String(plaintextArray);

37 Memorizzazione della chiave memorizzazione della chiave su floppy o smart card scomodo perché servono mezzi fisici esterni Supponiamo allora di utilizzare il disco fisso: occorre cifrare la chiave un metodo per farlo è usare PBE dobbiamo essere consci però del fatto che la memorizzazione nel FileSystem riduce la sicurezza delle chiavi. Conviene allora proteggere ulteriormente la chiave ad esempio impostando i permessi di accesso al file

38 Incapsulamento ed estrazione della chiave Alcuni provider che implementano JCE forniscono un più comodo mezzo per la cifratura della chiave Occorre un cifrario PBE È possibile incapsulare una chiave segreta, come segue: cipher.init(cipher.wrap_mode, passwordkey, paramspec); Byte[] encryptedkeybytes = cipher.wrap(secretkey); Per decifrare la chiave: cipher.init(cipher.unwrap_mode, passwordkey, paramspec); Key key = cipher.unwrap(encryptedkeybytes, Blowfish, Cipher.SECRET_KEY);

39 CipherStreams CipherInputStream e CipherOutputStream: costituiscono utili contenitori intorno ai flussi standard di I/O Sono capaci di cifrare automaticamente. Esempio: FileInputStream input = new FileInputStream( plaintext_filename ); FileOutputStream output = new FileOutputStream( ciphertext_filename ) ; CipherOuputStream cipheroutput = new CipherOutputStream (ouput,cipher);

40 JUG Ancona Italy Autenticazione Come garantire la mutua autenticazione tra mittente e destinatario? Come evitare di doversi scambiare una chiave su canale pubblico? Cifratura a chiave asimmetrica.

41 Cifratura a chiave asimmetrica 1. Nella cifratura a chiave simmetrica si basa sul concetto di chiave pubblica e chiave privata. Entrambe le chiavi possono essere usate per la cifratura o per la decifratura, però... REGOLA: ciò che viene cifrato da una delle chiavi è rimesso in chiaro dall'altra! Il meccanismo è quindi ben diverso dalla cifratura asimmetrica dove la stessa chiave cifra e mette in chiaro.

42 Cifratura a chiave asimmetrica 2. Le chiavi sono generate in coppia dallo stesso algoritmo asimmetrico. Tuttavia le chiavi non sono fisicamente correlate, è impossibile ricavarne una conoscendo l'altra! Come dice il nome la chiave pubblica è di pubblico dominio, mentre quella privata rimane ben nascosta da chi l'ha generata. Es: voglio inviare un messaggio che può essere letto solo e soltanto da un destinatario con chiave pubblica e privata

43 Ma posso fare molto di più... Il destinatario come fa a fidarsi che il messaggio sia stato spedito da un determinato mittente? Vogliamo assicurare mutua autenticazione a entrambi i soggetti... Allora facciamo così: 1.Prima di cifrare il messaggio con la chiave pubblica del destinatario produciamo un hash del messaggio. 2.L'hash viene cifrato con la chiave privata del mittente. 3.Vengono inviati l'hash e il messaggio così cifrati. 4.Il destinatario mette in chiaro il messaggio con la sua chiave privata e ne calcola l'hash. 5.Il destinatario mette in chiaro l'hash con la sua chiave pubblica del mittente. 6.Se i due hash sono uguali il destinatario è sicuro dell'origine del messaggio.

44 Firma digitale Il secondo punto del meccanismo appena esposto si chiama proprio firma digitale, poiché è in grado di associare un documento all'identità di un suo produttore. In sostanza si tratta di cifrare l'hash di un file con la propria chiave privata in modo che tutti possano verificare la paternità del documento.

45 Algoritmo RSA 1 E' l'algoritmo più usato per la produzioni di chiavi pubbliche/private. Non vedremo nel dettaglio tale algoritmo. Ad RSA si è arrivati mediante lo studio dell'aritmetica dei moduli e dei numeri primi... 7 mod 5 = 2, 4 mod 3 = 1 Numeri primi, coprimi, crivello di Erastone... Teorema di Eulero... Esponenziazione di numeri primi.

46 Algoritmo RSA 2 La sicurezza computazionale di RSA si basa sul problema della scomposizione in fattori primi di un numero. E' molto difficile scomporre un numero molto grande nei suoi fattori primi. Per qusto RSA... richiede chiavi molto grandi, almeno 1024 bit, forse non più sufficienti tra qualche anno... Nel 2005 un gruppo di ricerca riuscì a scomporre un numero di 640 bit (193 decimali) in due numeri primi da 320 bit, impiegando per cinque mesi un cluster Opteron con 80 processori da 2,2 GHz, potenzialmente decifrando un messaggio codificato con RSA-640.

47 Algoritmo RSA: controindicazioni La cifratura con RSA è molto più debole di una cifratura con chiave simmetrica. Una chiave AES a 256 bit è già molto sicura. Se un algoritmo di cifratura è debole meno dati si cifrano meglio è... Inoltre la crittografia asimmetrica è circa 1000 volte più lenta della crittografia simmetrica, ergo... Si cifrano sempre pochi dati con una chiave asimmetrica, pochi byte (hash, chiavi simmetriche)

48 RSA + chiave asimmetrica Voglio mandare a Bob un messaggio riservato e voglio che solo lui lo legga. 1.Mi creo una chiave simmetrica (es: AES) 2.Cifro il messaggio con la chiave simmetrica 3.Cifro la chiave simmetrica con la chiave pubblica di bob 4.Invio a Bob la coppia messaggio cifrato + chiave cifrata Bob una volta ricevuto il tutto: 1.Separa il messaggio cifrato dalla chiave cifrata 2.Rimette in chiaro la chiave simmetrica cifrata con la sua chiave privata 3.Rimette in chiaro il messaggio cifrato con la chiave simmetrica. La chiave di simmetrica è detta chiave di sessione Es: siti Internet con SSL,...

49 Modalità Padding Nei cifrari asimmetrici si usa quasi sempre ECB Nella cifratura asimmetrica non si usa PKCS#5 Tipicamente i cifrari asimmetrici sono utilizzati per cifrare un singolo blocco in chiaro Generalmente le dimensioni di quel blocco sono grandi quasi come quelle della chiave Se è necessario cifrare più dati si utilizzerà la cifratura a chiave di sessione che vedremo in seguito Gli standard per cifrare con RSA sono invece PKCS#1 e OAEP (Optimal Asymmetric Encryption Padding) Di seguito non sarà illustrato il funzionamento di tali forme di padding Per chi fosse interessato :

50 Cifrare con RSA // Creazione di una coppia di chiavi RSA KeyPairGenerator keypairgenerator=keypairgenerator.getinstance("rsa"); keypairgenerator.initialize(1024); KeyPair keypair = keypairgenerator.genkeypair(); Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); cipher.init(cipher.encrypt_mode, keypair.getpublic()); byte[] messagebytes = new String( Combinazione:1234 ).getbytes( UTF8 ); byte[] ciphertext = cipher.dofinal(messagebytes);

51 PROBLEMA Convalida di una firma serve una chiave pubblica Ma come essere certi che la chiave pubblica è autentica? Serve un qualche mezzo per averne la certezza I CERTIFICATI sono il tentativo di risolvere questo problema attribuendo l identità a una chiave pubblica in modo inconfutabile

52 CERTIFICATI DIGITALI Un certificato digitale è la garanzia fornita da una terza parte che una chiave pubblica appartiene al suo proprietario Questa terza parte è detta Certificate Authority (CA) Le due CA più note sono Verisign e Thawte (che in realtà è una filiale di Verisign). Per l elenco dei certificatori attivi in Italia vedere La CA certifica una chiave pubblica firmandola con la sua chiave privata

53 Contenuto dei certificati (1) Per default, il JDK utilizza i certificati X.509: Sono gli standard maggiormente utilizzati per i certificati digitali. Sono definiti in RFC 2459 reperibile all indirizzo Esistono 3 versioni di X.509: v1,v2 e v3. v2 e v3 aggiungono ai certificati alcune informazioni supplementari. CERTIFICATO X.509v1 Comprende le seguenti aree: Versione: definisce la versione del certificato: v1,v2,v3 Numero di serie: intero univoco che identifica la CA che emette il certificato

54 Contenuto dei certificati (2) CERTIFICATO X.509v1 Comprende le seguenti aree: Algoritmo di firma: definisce l algoritmo di firma usato dalla CA Validità: definisce il periodo di tempo per cui è valido il certificato. Si usano 2 date: non prima e non dopo. Il certificato è valido solo nell intervallo Soggetto: indica a chi è stato emesso il certificato. I soggetti sono memorizzati coi nomi X.500 Chiave pubblica del soggetto Firma della CA

55 Java e la sicurezza. I progettisti di java hanno da sempre posto molta attenzione al modello di sicurezza implementato nell ambiente Java, migliorandolo di continuo Nella versione Java 2 la sicurezza è policy-based ossia il sistema controlla le risorse a cui può accedere il codice. Tale policy è espressa nel file java.policy che esamineremo tra breve. In generale i permessi sono accordati sulla base di due parametri: codebase e signer CODEBASE: indica la posizione da cui proviene il codice da eseguire. Può quindi essere la directory del disco fisso locale o un URL remoto. SINGNER: indica l entità che ha firmato il codice mediante un certificato digitale (es x.509). Codebase e signer formano il codesource ossia il codice sorgente.

56 Keystore. Prima di esaminare il file di policy è indispensabile vedere come java gestisce le firme crittografiche e come si possa firmare il codice. In Java un keystore è un insieme di chiavi e certificati. Al suo interno si trovano due tipi di voci: I certificati affidabili: un certificato affidabile è un certificato che si presuppone appartenga al soggetto dichiarato su di esso. Un esempio di certificato affidabile è un certificato che proviene da una CA quale Verisign, che verrà utilizzato per verificare altri certificati. Le chiavi private: una chiave privata in un keystore deve essere associata a un certificato per quella chiave. Questo non è un certificato affidabile, ma solo un certificato che contiene il soggetto che possiede la chiave privata.

57 Keytool. In Java c è un keystore predefinito, memorizzato nel file.keystore che si trova nella home directory dell utente. Keytool è un comando che consente di manipolare un keystore e può creare certificati. Per default lavora sul keystore presente nella home directory dell utente (/home/utente/.java/security C:\Documents and Settings\utente\KeyStore). Mediante l opzione keystore è possibile specificare un altro file key-store diverso da quelllo di default. Al primo utilizzo di un file di key-store keytool chiederà con quale password proteggere il file. Tale password ovviamente verrà richiesta nei successivi accessi. Focalizzeremo la nostra attenzione sull utilizzo di keytool per creare certificati e per esportarli dal keystore sotto forma di singoli file, operazione quest ultima indispensabile per firmare il nostro codice.

58 Creazione di un certificato 1. La generazione di un certificato nel keystore di default è effettuata tramite l esecuzione di questo semplice comando: keytool -genkey -alias tomcat -keyalg RSA -genkey: esplicita la volontà di generare una coppia di chiavi asim-metriche e un certificato autofirmato. -alias <alias>: è il nome con cui il certificato verrà creato nel keystore. Nell esempio tale nome è tomcat poiché il certificato sarà utilizzato dal web server in fase di handshake nel protocollo SSL. -keyalg <algoritmo>: questo switch consente di esplicitare l algoritmo con cui verrà creato il certificato. L algoritmo di default è il DSA.

59 Creazione di un certificato.

60 Dettagli del certificato.

61 Esportazione di un certificato. L esportazione di un certificato dal keystore a file è effettuata tramite l esecuzione di questo semplice comando: keytool -export -alias tomcat -file tomcat.cer -export: esplicita la volontà di esportare un certificato. -alias <alias>: è il nome delcertificato da esportare. -file : è semplicemente il nome del file che conterrà il certificato. NOTA: chiaramente esiste anche la funzione speculare di importa-zione dei certificati utile quando si è in possesso di un certificato sicuro (es. firmato Verisign). E sufficiente sostituire all opzione export l opzione import.

62 Esportazione di un certificato.

63 I file jar. I JAR (Java Archive) sono una sorta di file zip potenziati. Al pari di quest ultimi posso infatti contenere file di qualsiasi tipo in forma compressa. Vi si può inoltre inserire il codice copilato e fare in modo che venga eseguito dall ambiente Java. Supponiamo di avere il file compilato del programma FileWriteTest. class (ovviamente va benissimo un qualsiasi programma). Per creare un file JAR FileWriteTest.jar basta digitare: jar cvf FileWriteTest.jar FileWriteTest.class non approfondiremo ulteriormente in questa sede l utilizzo del coman-do jar.

64 Jarsigner. Jarsigner è il comando che ci consente di firmare un JAR con una chiave privata e un certificato presenti nel keystore. Dato il nostro jar HelloWorld.jar e il certificato avente come alias Tomcat la firma avviene nel seguente modo: jarsigner FileWriteTest.jar Tomcat Se volessimo verificare la firma di un jar firmato dovremmo invece scrivere: jarsigner -verify FileWriteTest. jar

65 Creazione e firma di un jar.

66 Jar e le firme. I JAR utilizzano tre elementi per immagazzinare le informazioni relative alla loro firma: 1. Il manifesto 2. Il file di firma 3. Il file di firma digitale A tali elemneti corrisponde un file rispettivo contenuto nella directory META-INF presente in ogni JAR. Di seguito analizzeremo nel dettaglio tali file.

67 Manifesto. Il file di manifesto è MANIFEST.MF. Al suo interno troviamo i nomi e gli hash dei file contenuti nel jar. Nel nostro esempio il contenuto di tale file è il seguente: Manifest-Version: 1.0 Created-By: (Sun Microsystems Inc.) Name: FileWriteTest.class SHA1-Digest: jkg3jhgoz808fyxemsxizhydrru=

68 Il file di firma. Il file di firma è <SIGNER>.MF. Al suo interno troviamo l impronta del manifesto e quella delle voci in esso contenute. Nel nostro esempio il contenuto di tale file è il seguente: Signature-Version: 1.0 Created-By: (Sun Microsystems Inc.) SHA1-Digest-Manifest: R/FQvQw+RjqhKXJu +mvltsi02do= Name: FileWriteTest.class SHA1-Digest: ugufnmsdqbuhzyaylmqjg+wxsu0=

69 Il file di firma digitale. Il file di firma digitale è <SIGNER>.<ALGORITMO>. E un file binario quindi non direttamente leggibile. E ottenuto dalla firma digitale del file.sf nel nostro esempio si chiama TOMCAT.RSA poiché l algoritmo di firma è appunto l RSA.

70 Il security manager 1. E l entità delegata a gestire il controllo dei permessi analizzando il file java.policy. L implementazione di default è java.lang.securitymanager ma può essere sottoclassata. Per illustrare il suo funzionamento af-frontiamo l esempio di un azione potenzialmente pericolosa (accesso ad un file): new FileInputStream( nomefile ); 1. Il codice invoca il security manager per verificarne i permessi. 2. Il security manager decidere se accordare o meno tali permessi de-legando in genere tale azione a java.security.accesscontroller. Se i permessi vengono negati viene lanciata un eccezione java.lang. SecurityException mentre in caso contrario viene restituito il control-lo al chiamante senza problemi. Il security manager controlla l intero thread di esecuzione per controllare che tutte le classi dello stack dispongano dei diritti necessari.

71 Il security manager 2. Di norma il security manager non è attivo ed è necessario attivarlo in fase di avvio di un programma. Per i nostri esempi continueremo ad usare il file FileWriteTest di cui riportiamo il codice: import java.io.*; public class FileWriteTest { public static void main (String[] args) throws Exception { modifyfile(); } public static void modifyfile() throws Exception { FileOutputStream fos = new FileOutputStream("test.txt");//tenta di creare un file fos.write("nel mezzo del cammin...".getbytes()); fos.close(); }}

72 Il security manager 3. Procediamo eseguendo il programma attivando il security manager con lo switch -Djava.security.manager:

73 Cosa è successo?. Il codice della funzione FileOutputStream assomiglia al seguente: public FileOutputStream(String name, boolean append) throws FileNotFoundException{ Security manager = System.getSecurityManager(); if(security!= null){ security.checkwrite(name); } fd = new FileDescriptor(); } Se è stato abilitato il security manager (security!= null) vengono con-trollati i diritti di scrittura sul file ( security.checkwrite(name); )

74 Cosa è successo?. SecurityManager Il compito di controllare le policy è demandato da SecurityManager ad AccessCcontroller che a sua volta chiama AccessControllerContext. Quest ultimo lancia l eccezione che fa fallire il programma non essendo impostati i giusti permessi per esso. AccessController AccessController Context Eccezione!

75 Java.policy:struttura 1. Possiamo finalmente parlare del file che ci permette di controllare i permessi in ambiente java. Sitratta di un simplice file di testo contenente una serie di voci ciascuna relativa ad uno specifico codesource. Ogni voce è costruita con la seguente sintassi: grant signedby <signer>, codebase <URL> { permission <permissionclass> <target_name>, <action> ; }; Come esempio riportiamo una voce che si trova di default nel file policy di Java:

76 Java.policy:struttura 2. grant codebase "file:${java.home}/lib/ext/*"{ permission java.security.allpermission; }; Tale voce riguarda tutto il codice presente nelle directory lib/ext/ della nostra installazione Java. Non è presente il codesigner: è infatti sufficiente che sia presente o il codesigner o il codebase (come in questo caso) o entrambi per scrivere un codesource. La voce concede al suo codesource ogni tipo di permesso: il codice presente all URL specificato avrà diritti illimitati (e questo può essere molto pericoloso!).

77 Java.policy:permessi. Le classi di permessi sino numerose. Ci limiteremo a riportarne solo alcune. java.security.allpermission: permessi illimitati. java.security.basicpermission: superclasse per la maggior parte dei permessi semplici. java.io.filepermission: permessi per leggere e scrivere file. java.net.socketpermission: permesso di aprire socket verso macchine remote.. Nel nostro caso volendo concedere diritti di scrittura, lettura e cancel-lazione su un file, occorreà impostare un permesso del tipo: permission java.io.filepermission <filename>, read,write,delete ;

78 Riassumendo. In definitiva vogliamo che il nostro programma, presente in un jar firmato dall alias tomcat, possa avere accesso completo al file test.txt presente nella stessa directory. La voce da aggiungere al file di policy è quindi la seguente: keystore ".keystore"; grant signedby "tomcat" { permission java.io.filepermission "test.txt", "read,write,delete"; }; L istruzione keystore.keystore indica al file di policy dove cercare i certificati per convalidare le firme dei jar (il keystore di default).

UNIVERSITÀ DEGLI STUDI DI TRENTO DOCUMENTO ELETTRONICO, FIRMA DIGITALE E SICUREZZA IN RETE.

UNIVERSITÀ DEGLI STUDI DI TRENTO DOCUMENTO ELETTRONICO, FIRMA DIGITALE E SICUREZZA IN RETE. UNIVERSITÀ DEGLI STUDI DI TRENTO DOCUMENTO ELETTRONICO, FIRMA DIGITALE E SICUREZZA IN RETE. INTRODUZIONE ALL ARGOMENTO. A cura di: Eleonora Brioni, Direzione Informatica e Telecomunicazioni ATI NETWORK.

Dettagli

LA CRITTOGRAFIA Le applicazioni della crittografia e della firma digitale a cura di Sommaruga Andrea Guido

LA CRITTOGRAFIA Le applicazioni della crittografia e della firma digitale a cura di Sommaruga Andrea Guido INDICE LA FIRMA DIGITALE O ELETTRONICA...2 LA LEGISLAZIONE IN MATERIA...5 NOTA SUI FORMATI DI FILE...6 COME FUNZIONA IL MECCANISMO DELLE FIRME ELETTRONICHE...7 FIRMA DI PIÙ PERSONE... 7 DOCUMENTO SEGRETO...

Dettagli

SMARTCARD Studente: Elvis Ciotti Prof: Luciano Margara 1

SMARTCARD Studente: Elvis Ciotti Prof: Luciano Margara 1 SMARTCARD Studente: Elvis Ciotti Prof: Luciano Margara 1 Introduzione SmartCard: Carta intelligente Evoluzione della carta magnetica Simile a piccolo computer : contiene memoria (a contatti elettrici)

Dettagli

Accordo su chiavi. (key agreement) Alfredo De Santis. Marzo 2015. Dipartimento di Informatica Università di Salerno

Accordo su chiavi. (key agreement) Alfredo De Santis. Marzo 2015. Dipartimento di Informatica Università di Salerno Accordo su chiavi (key agreement) Alfredo De Santis Dipartimento di Informatica Università di Salerno ads@dia.unisa.it http://www.dia.unisa.it/professori/ads Marzo 2015 Accordo su una chiave Alice Bob??

Dettagli

Altri cifrari a blocchi

Altri cifrari a blocchi Altri cifrari a blocchi Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci RC2 [1989] IDEA (International

Dettagli

CARATTERISTICHE DELLE CRYPTO BOX

CARATTERISTICHE DELLE CRYPTO BOX Secure Stream PANORAMICA Il sistema Secure Stream è costituito da due appliance (Crypto BOX) in grado di stabilire tra loro un collegamento sicuro. Le Crypto BOX sono dei veri e propri router in grado

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

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

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

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

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

UNIVERSITÀ DEGLI STUDI DI PARMA

UNIVERSITÀ DEGLI STUDI DI PARMA UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di scienze Matematiche Fisiche e Naturali Corso di Laurea in INFORMATICA Tesi di laurea in RETI DI CALCOLATORI Autenticazione Centralizzata con il sistema CAS, integrando

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Sicurezza delle reti wireless. Alberto Gianoli alberto.gianoli@fe.infn.it

Sicurezza delle reti wireless. Alberto Gianoli alberto.gianoli@fe.infn.it Sicurezza delle reti wireless Alberto Gianoli alberto.gianoli@fe.infn.it Concetti di base IEEE 802.11: famiglia di standard tra cui: 802.11a, b, g: physical e max data rate spec. 802.11e: QoS (traffic

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 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

Decreto 2 novembre 2005 Regole tecniche per la formazione, la trasmissione e la validazione, anche temporale, della posta elettronica certificata

Decreto 2 novembre 2005 Regole tecniche per la formazione, la trasmissione e la validazione, anche temporale, della posta elettronica certificata Decreto 2 novembre 2005 Regole tecniche per la formazione, la trasmissione e la validazione, anche temporale, della posta elettronica IL MINISTRO PER L'INNOVAZIONE E LE TECNOLOGIE - Visto l articolo 17

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

TeamPortal. Servizi integrati con ambienti Gestionali

TeamPortal. Servizi integrati con ambienti Gestionali TeamPortal Servizi integrati con ambienti Gestionali 12/2013 Modulo di Amministrazione Il modulo include tutte le principali funzioni di amministrazione e consente di gestire aspetti di configurazione

Dettagli

TorrentLocker Enti Italiani sotto riscatto

TorrentLocker Enti Italiani sotto riscatto Digital Forensics Bureau www.difob.it TorrentLocker Enti Italiani sotto riscatto Paolo DAL CHECCO, Giuseppe DEZZANI Studio DIgital Forensics Bureau di Torino 20 ottobre 2014 Da mercoledì 15 ottobre stiamo

Dettagli

LA SICUREZZA NEI SISTEMI INFORMATIVI. Antonio Leonforte

LA SICUREZZA NEI SISTEMI INFORMATIVI. Antonio Leonforte LA SICUREZZA NEI SISTEMI INFORMATIVI Antonio Leonforte Rendere un sistema informativo sicuro non significa solo attuare un insieme di contromisure specifiche (di carattere tecnologico ed organizzativo)

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

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

Mail da Web. Caratteristiche generali di Virgilio Mail. Funzionalità di Virgilio Mail. Leggere la posta. Come scrivere un email.

Mail da Web. Caratteristiche generali di Virgilio Mail. Funzionalità di Virgilio Mail. Leggere la posta. Come scrivere un email. Mail da Web Caratteristiche generali di Virgilio Mail Funzionalità di Virgilio Mail Leggere la posta Come scrivere un email Giga Allegati Contatti Opzioni Caratteristiche generali di Virgilio Mail Virgilio

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

Marco Giorgi. Palazzo di Giustizia di Torino 30 marzo 2012

Marco Giorgi. Palazzo di Giustizia di Torino 30 marzo 2012 Marco Giorgi Palazzo di Giustizia di Torino 30 marzo 2012 Post mortem (Dopo lo spegnimento del sistema) Si smonta il dispositivo e lo si collega ad un PC dedicato all'acquisizione Live forensics (Direttamente

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

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

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 Con questo aggiornamento sono state implementate una serie di funzionalità concernenti il tema della dematerializzazione e della gestione informatica dei documenti,

Dettagli

Cos è un protocollo? Ciao. Ciao 2:00. tempo. Un protocollo umano e un protocollo di reti di computer:

Cos è un protocollo? Ciao. Ciao 2:00. <file> tempo. Un protocollo umano e un protocollo di reti di computer: Cos è un protocollo? Un protocollo umano e un protocollo di reti di computer: Ciao Ciao Hai l ora? 2:00 tempo TCP connection request TCP connection reply. Get http://www.di.unito.it/index.htm Domanda:

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

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

Guida al nuovo sistema di posta. CloudMail UCSC. (rev.doc. 1.4)

Guida al nuovo sistema di posta. CloudMail UCSC. (rev.doc. 1.4) Guida al nuovo sistema di posta CloudMail UCSC (rev.doc. 1.4) L Università per poter migliorare l utilizzo del sistema di posta adeguandolo agli standard funzionali più diffusi ha previsto la migrazione

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Deutsche Bank. db Corporate Banking Web Guida al servizio

Deutsche Bank. db Corporate Banking Web Guida al servizio Deutsche Bank db Corporate Banking Web Guida al servizio INDICE 1. INTRODUZIONE... 3 2. SPECIFICHE DI SISTEMA... 4 3 MODALITÀ DI ATTIVAZIONE E DI PRIMO COLLEGAMENTO... 4 3. SICUREZZA... 5 4. AUTORIZZAZIONE

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

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

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

GUIDA DELL UTENTE IN RETE

GUIDA DELL UTENTE IN RETE GUIDA DELL UTENTE IN RETE Memorizza registro di stampa in rete Versione 0 ITA Definizione delle note Nella presente Guida dell'utente viene utilizzata la seguente icona: Le note spiegano come intervenire

Dettagli

DigitPA. Dominio.gov.it Procedura per la gestione dei sottodomini di terzo livello

DigitPA. Dominio.gov.it Procedura per la gestione dei sottodomini di terzo livello DigitPA Dominio.gov.it Procedura per la gestione dei sottodomini di terzo livello Versione 3.0 Dicembre 2010 Il presente documento fornisce le indicazioni e la modulistica necessarie alla registrazione,

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Progetto Istanze On Line

Progetto Istanze On Line 2014 Progetto Istanze On Line 09 aprile 2014 INDICE 1 INTRODUZIONE ALL USO DELLA GUIDA... 3 1.1 SIMBOLI USATI E DESCRIZIONI... 3 2 GESTIONE DELL UTENZA... 4 2.1 COS È E A CHI È RIVOLTO... 4 2.2 NORMATIVA

Dettagli

E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI

E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI E-MAIL INTEGRATA Ottimizzazione dei processi aziendali Con il modulo E-mail Integrata, NTS Informatica ha realizzato uno strumento di posta elettronica

Dettagli

Symbolic. Ambiti Operativi. Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp.

Symbolic. Ambiti Operativi. Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp. Symbolic Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp. La nostra mission è di rendere disponibili soluzioni avanzate per la sicurezza

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

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

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

CRYPTSETUP RAPIDO. man cryptsetup

CRYPTSETUP RAPIDO. man cryptsetup CRYPTSETUP RAPIDO La presente guida non vuole essere completa, si tratta solo della somma degli appunti utilizzati per creare e gestire una zona cifrata ove salvare i documenti. La distribuzione di riferimento

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

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

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

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

ATLAS 2.X IL MANAGER NON SI AVVIA

ATLAS 2.X IL MANAGER NON SI AVVIA ATLAS 2.X IL MANAGER NON SI AVVIA Avvio di Atlas 2.x sul server CONTESTO La macchina deve rispecchiare le seguenti caratteristiche MINIME di sistema: Valori MINIMI per Server di TC con 10 postazioni d'esame

Dettagli

Configurazioni Mobile Connect

Configurazioni Mobile Connect Mailconnect Mail.2 L EVOLUZIONE DELLA POSTA ELETTRONICA Configurazioni Mobile Connect iphone MOBILE CONNECT CONFIGURAZIONE MOBILE CONNECT PER IPHONE CONFIGURAZIONE IMAP PER IPHONE RUBRICA CONTATTI E IPHONE

Dettagli

Guida all utilizzo del dispositivo USB

Guida all utilizzo del dispositivo USB Guida all utilizzo del dispositivo USB 30/04/2013 Sommario - Limitazioni di responsabilità e uso del manuale... 3 1. Glossario... 3 2. Guida all utilizzo del dispositivo USB... 4 2.1 Funzionamento del

Dettagli

iphone in azienda Guida alla configurazione per gli utenti

iphone in azienda Guida alla configurazione per gli utenti iphone in azienda Guida alla configurazione per gli utenti iphone è pronto per le aziende. Supporta Microsoft Exchange ActiveSync, così come servizi basati su standard, invio e ricezione di e-mail, calendari

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

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

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

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Di seguito sono descritti i prerequisiti Hardware e Software che deve possedere la postazione a cui viene collegata l Aruba Key.

Di seguito sono descritti i prerequisiti Hardware e Software che deve possedere la postazione a cui viene collegata l Aruba Key. 1 Indice 1 Indice... 2 2 Informazioni sul documento... 3 2.1 Scopo del documento... 3 3 Caratteristiche del dispositivo... 3 3.1 Prerequisiti... 3 4 Installazione della smart card... 4 5 Avvio di Aruba

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

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

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

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

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

Quando troncare uno sviluppo in serie di Taylor

Quando troncare uno sviluppo in serie di Taylor Quando troncare uno sviluppo in serie di Taylor Marco Robutti October 13, 2014 Lo sviluppo in serie di Taylor di una funzione è uno strumento matematico davvero molto utile, e viene spesso utilizzato in

Dettagli

Specifiche tecnico-funzionali per comunicazione e conservazione dati da parte dei Sistemi Controllo Accessi. INDICE

Specifiche tecnico-funzionali per comunicazione e conservazione dati da parte dei Sistemi Controllo Accessi. INDICE Specifiche tecnico-funzionali per comunicazione e conservazione dati da parte dei Sistemi Controllo Accessi. INDICE 1.1 CARATTERISTICHE DEL SUPPORTO IMMODIFICABILE E SUO FILE-SYSTEM... 2 1.2 SICUREZZA

Dettagli

Problema: al momento dell autenticazione si riceve il messaggio Certificato digitale non ricevuto Possibili cause: 1) La smart card non è una CNS e

Problema: al momento dell autenticazione si riceve il messaggio Certificato digitale non ricevuto Possibili cause: 1) La smart card non è una CNS e Problema: al momento dell autenticazione si riceve il messaggio Certificato digitale non ricevuto Possibili cause: 1) La smart card non è una CNS e non contiene il certificato di autenticazione: è necessario

Dettagli

Firma Digitale e Non. Clizio Merli. (Versione 3)

Firma Digitale e Non. Clizio Merli. (Versione 3) Clizio Merli (Versione 3) Indice INDICE... 2 PREFAZIONE... 3 LA FIRMA... 5 FIRMA ELETTRONICA...6 FIRMA DEBOLE (SEMPLICE)...6 FIRMA FORTE (DIGITALE)...6 Firma Forte Semplice...7 Firma Forte Qualificata...7

Dettagli

Procedura per il ripristino dei certificati del dispositivo USB

Procedura per il ripristino dei certificati del dispositivo USB Procedura per il ripristino dei certificati del dispositivo USB 30/04/2013 Sommario - Limitazioni di responsabilità e uso del manuale... 3 1 Glossario... 3 2 Presentazione... 4 3 Quando procedere al ripristino

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

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

ALGEBRA I: CARDINALITÀ DI INSIEMI

ALGEBRA I: CARDINALITÀ DI INSIEMI ALGEBRA I: CARDINALITÀ DI INSIEMI 1. CONFRONTO DI CARDINALITÀ E chiaro a tutti che esistono insiemi finiti cioè con un numero finito di elementi) ed insiemi infiniti. E anche chiaro che ogni insieme infinito

Dettagli

La procedura di registrazione prevede cinque fasi: Fase 4 Conferma

La procedura di registrazione prevede cinque fasi: Fase 4 Conferma Guida Categoria alla registrazione StockPlan Connect Il sito web StockPlan Connect di Morgan Stanley consente di accedere e di gestire online i piani di investimento azionario. Questa guida offre istruzioni

Dettagli

Manuale tecnico Stazione Meteo Eolo Davis

Manuale tecnico Stazione Meteo Eolo Davis Descrizione Generale Manuale tecnico Stazione Meteo Eolo Davis EOLO DAVIS rappresenta una soluzione wireless di stazione meteorologica, basata su sensoristica Davis Instruments, con possibilità di mettere

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Gestore Comunicazioni Obbligatorie. Progetto SINTESI. Comunicazioni Obbligatorie. Modulo Applicativo COB. - Versione Giugno 2013 -

Gestore Comunicazioni Obbligatorie. Progetto SINTESI. Comunicazioni Obbligatorie. Modulo Applicativo COB. - Versione Giugno 2013 - Progetto SINTESI Comunicazioni Obbligatorie Modulo Applicativo COB - Versione Giugno 2013-1 Versione Giugno 2013 INDICE 1 Introduzione 3 1.1 Generalità 3 1.2 Descrizione e struttura del manuale 3 1.3 Requisiti

Dettagli

Procedura accesso e gestione Posta Certificata OlimonTel PEC

Procedura accesso e gestione Posta Certificata OlimonTel PEC Procedura accesso e gestione Posta Certificata OlimonTel PEC Informazioni sul documento Revisioni 06/06/2011 Andrea De Bruno V 1.0 1 Scopo del documento Scopo del presente documento è quello di illustrare

Dettagli

Manuale Operativo IL SOFTWARE PER LA GESTIONE CENTRALIZZATA DEL SISTEMA DELLE SEGNALAZIONI E DEI RECLAMI DELL ENTE

Manuale Operativo IL SOFTWARE PER LA GESTIONE CENTRALIZZATA DEL SISTEMA DELLE SEGNALAZIONI E DEI RECLAMI DELL ENTE Manuale Operativo IL SOFTWARE PER LA GESTIONE CENTRALIZZATA DEL SISTEMA DELLE SEGNALAZIONI E DEI RECLAMI DELL ENTE Il presente documento applica il Regolamento sulla gestione delle segnalazioni e dei reclami

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

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica L uso delle funzioni in C++ Claudio De Stefano - Corso di Fondamenti di Informatica 1 Funzioni Nel C++ è possibile scomporre problemi complessi in moduli più semplici

Dettagli

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol) ARP (Address Resolution Protocol) Il routing Indirizzo IP della stazione mittente conosce: - il proprio indirizzo (IP e MAC) - la netmask (cioè la subnet) - l indirizzo IP del default gateway, il router

Dettagli

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP Università degli Studi di Pisa Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica Michela Chiucini MIB PER IL CONTROLLO DELLO STATO DI UN SERVER

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

SOGEAS - Manuale operatore

SOGEAS - Manuale operatore SOGEAS - Manuale operatore Accesso La home page del programma si trova all indirizzo: http://www.sogeas.net Per accedere, l operatore dovrà cliccare sulla voce Accedi in alto a destra ed apparirà la seguente

Dettagli

TELECOMUNICAZIONI (TLC) Generico sistema di telecomunicazione (TLC) Trasduttore. Attuatore CENNI DI TEORIA (MATEMATICA) DELL INFORMAZIONE

TELECOMUNICAZIONI (TLC) Generico sistema di telecomunicazione (TLC) Trasduttore. Attuatore CENNI DI TEORIA (MATEMATICA) DELL INFORMAZIONE TELECOMUNICAZIONI (TLC) Tele (lontano) Comunicare (inviare informazioni) Comunicare a distanza Generico sistema di telecomunicazione (TLC) Segnale non elettrico Segnale elettrico TRASMESSO s x (t) Sorgente

Dettagli

Seagate Access per Personal Cloud Manuale utente

Seagate Access per Personal Cloud Manuale utente Seagate Access per Personal Cloud Manuale utente 2015 Seagate Technology LLC. Tutti i diritti riservati. Seagate, Seagate Technology, il logo Wave e FreeAgent sono marchi depositati o marchi registrati

Dettagli

Contenuti. Dov e` il nemico?

Contenuti. Dov e` il nemico? Contenuti SICUREZZA INFORATICA Sicurezza Problemi Requisiti Attacchi Crittografia Crittografia simmetrica e asimmetrica Criptoanalisi Autenticazione Firma Digitale etodi per la Firma Digitale Certificati

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