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

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

JUG Ancona Italy. Sicurezza in Java. Andrea Del Bene. Membro fondatore Jug Marche JUG Ancona Italy Sicurezza in Java Andrea Del Bene Membro fondatore Jug Marche Teoria della comunicazione Mittente: chi produce l'informazione e la vuole comunicare Destinatario: chi riceve la comunicazione

Dettagli

Crittografia in Java

Crittografia in Java Crittografia in Java di Oreste Delitala Progetto di Computer Security 2013-2014 Introduzione La crittografia è un particolare processo grazie al quale, per mezzo di sofisticati algoritmi, è possibile trasformare

Dettagli

Java Security Extensions(J2SE)

Java Security Extensions(J2SE) Università degli Studi di Bologna IIª Facoltà di Ingegneria - Cesena Anno Accademico 2010/2011 OUTLINE Java Security Extensions(J2SE) Prof. Enrico Denti Dipartimento di Elettronica, Informatica e Sistemistica

Dettagli

Principi di crittografia Integrità dei messaggi Protocolli di autenticazione Sicurezza nella pila di protocolli di Internet: PGP, SSL, IPSec

Principi di crittografia Integrità dei messaggi Protocolli di autenticazione Sicurezza nella pila di protocolli di Internet: PGP, SSL, IPSec Crittografia Principi di crittografia Integrità dei messaggi Protocolli di autenticazione Sicurezza nella pila di protocolli di Internet: PGP, SSL, IPSec Elementi di crittografia Crittografia: procedimento

Dettagli

Java Security Extensions Corso di Tecnologie per la Sicurezza LS Prof. R. Laschi. Java Security Extensions

Java Security Extensions Corso di Tecnologie per la Sicurezza LS Prof. R. Laschi. Java Security Extensions Corso di Laurea Specialistica in Ingegneria Informatica Facoltà di Ingegneria - A.A. 2003/04 Università degli studi di Bologna Java Security Extensions Corso di Tecnologie per la Sicurezza LS Prof. R.

Dettagli

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica)

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica) Crittografia asimmetrica (a chiave pubblica) Problemi legati alla crittografia simmetrica Il principale problema della crittografia simmetrica sta nella necessità di disporre di un canale sicuro per la

Dettagli

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette Crittografia Cenni Damiano Carra Università degli Studi di Verona Dipartimento di Informatica La crittografia! Scienza che si occupa di proteggere l informazione rendendola sicura, in modo che un utente

Dettagli

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica.

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica. Sistemi e tecnologie per la multimedialità e telematica Fabio Burroni Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena burronif@unisi unisi.itit La Sicurezza delle Reti La presentazione

Dettagli

RETI DI CALCOLATORI. Crittografia. La crittografia

RETI DI CALCOLATORI. Crittografia. La crittografia RETI DI CALCOLATORI Crittografia La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice ed è il fondamento su cui si basano i meccanismi di autenticazione,

Dettagli

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer : applicazioni telematiche Secure Socket Layer E-commerce Trading on-line Internet banking... Protocollo proposto dalla Netscape Communications Corporation Garantisce confidenzialità e affidabilità delle

Dettagli

Robustezza crittografica della PEC

Robustezza crittografica della PEC Robustezza crittografica della PEC Prof. Massimiliano Sala Università degli Studi di Trento, Lab di Matematica Industriale e Crittografia Trento, 21 Novembre 2011 M. Sala (Università degli Studi di Trento)

Dettagli

Cenni di crittografia. Luca Anselma anselma@di.unito.it

Cenni di crittografia. Luca Anselma anselma@di.unito.it Cenni di crittografia Luca Anselma anselma@di.unito.it 1 Cos è la crittografia Dal greco κρυπτός e γράφειν, scrittura nascosta È la tecnica di nascondere informazioni Due tipi di cifratura: Simmetrica

Dettagli

Crittografia. Crittografia Definizione. Sicurezza e qualità dei servizi su internet. 2009 Università degli Studi di Pavia, C.

Crittografia. Crittografia Definizione. Sicurezza e qualità dei servizi su internet. 2009 Università degli Studi di Pavia, C. Definizione La crittografia è la scienza che utilizza algoritmi matematici per cifrare e decifrare i dati. La criptoanalisi è la scienza che analizza e decifra i dati crittografati senza conoscerne a priori

Dettagli

Firma digitale e PEC: facili e sicure

Firma digitale e PEC: facili e sicure Firma digitale e PEC: facili e sicure Trento, 23 Novembre 2012 Ing. Andrea Gelpi Commissione Ingegneria dell'informazione Ordine degli Ingegneri della Provincia di Trento Firma Digitale La Firma digitale

Dettagli

Crittografia. Una Panoramica

Crittografia. Una Panoramica Crittografia Una Panoramica 1 Aspetti della Sicurezza Confidenzialità I dati ed iservizi non devono fornire informazioni sensibili a persone non autorizzate Integrità Deve essere evidente l eventuale manomissione

Dettagli

Sommario. Introduzione alla Sicurezza Web

Sommario. Introduzione alla Sicurezza Web Sommario Introduzione alla Sicurezza Web Considerazioni generali IPSec Secure Socket Layer (SSL) e Transport Layer Security (TLS) Secure Electronic Transaction (SET) Introduzione alla crittografia Introduzione

Dettagli

Capitolo 8 La sicurezza nelle reti

Capitolo 8 La sicurezza nelle reti Capitolo 8 La sicurezza nelle reti Reti di calcolatori e Internet: Un approccio top-down 4 a edizione Jim Kurose, Keith Ross Pearson Paravia Bruno Mondadori Spa 2008 Capitolo 8: La sicurezza nelle reti

Dettagli

Firma digitale e PEC: aspetti crittografici e sicurezza

Firma digitale e PEC: aspetti crittografici e sicurezza Firma digitale e PEC: aspetti crittografici e sicurezza Prof. Massimiliano Sala Università degli Studi di Trento, Lab di Matematica Industriale e Crittografia Trento, 17 Febbraio 2012 M. Sala (Università

Dettagli

Crittografia & Java Cryptographic. Architecture (JCA) A cura di Franzin Michele. 29-30 Settembre 1 Ottobre 2006. Java User Group Padova

Crittografia & Java Cryptographic. Architecture (JCA) A cura di Franzin Michele. 29-30 Settembre 1 Ottobre 2006. Java User Group Padova Crittografia & Java Cryptographic 29-30 Settembre 1 Ottobre 2006 Architecture (JCA) A cura di Franzin Michele 1 Copyright Quest'opera è protetta dalla licenza Creative Commons Attribution-ShareAlike 2.5;

Dettagli

Internet. Cos è Il Web La posta elettronica. www.vincenzocalabro.it 1

Internet. Cos è Il Web La posta elettronica. www.vincenzocalabro.it 1 Internet Cos è Il Web La posta elettronica www.vincenzocalabro.it 1 Cos è E una RETE di RETI, pubblica. Non è una rete di calcolatori. I computer che si collegano ad Internet, devono prima essere collegati

Dettagli

Sicurezza: necessità. Roberto Cecchini Ottobre 2002 1

Sicurezza: necessità. Roberto Cecchini Ottobre 2002 1 Sicurezza: necessità Riservatezza: la comunicazione è stata intercettata? Autenticazione: l utente è veramente chi dice di essere? Autorizzazione: ogni utente può accedere solo alle risorse cui ha diritto.

Dettagli

PRINCIPI DI COMPUTER SECURITY. Andrea Paoloni

PRINCIPI DI COMPUTER SECURITY. Andrea Paoloni PRINCIPI DI COMPUTER SECURITY Andrea Paoloni 2 Cade il segreto dei codici cifrati Corriere della Sera 26 febbraio 2008 3 Gli hacker sono utili? 4 Safety vs Security SAFETY (salvezza): protezione, sicurezza

Dettagli

Lezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno

Lezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno Lezione 5: Socket SSL/ TLS Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno 1 Outline Introduzione Gestione delle chiavi e dei certificati Comunicazione

Dettagli

Crittografia con OpenSSL crittografia asimmetrica

Crittografia con OpenSSL crittografia asimmetrica Crittografia con OpenSSL crittografia asimmetrica Laboratorio del corso Sicurezza dei sistemi informatici (03GSD) Politecnico di Torino AA 2014/15 Prof. Antonio Lioy preparata da: Cataldo Basile (cataldo.basile@polito.it)

Dettagli

TRASMISSIONE DI DATI VIA INTERNET

TRASMISSIONE DI DATI VIA INTERNET TRASMISSIONE DI DATI VIA INTERNET 2.0 1 11 Sommario SOMMARIO...2 1. STORIA DELLE MODIFICHE...3 2. TRASMISSIONE DATI VIA INTERNET...4 2.1 SCOPO DEL DOCUMENTO...4 2.2 INTRODUZIONE...4 3. FORMATO DEI DOCUMENTI...5

Dettagli

Protezione dei Dati Digitali: Scenari ed Applicazioni

Protezione dei Dati Digitali: Scenari ed Applicazioni Protezione dei Dati Digitali: Scenari ed Applicazioni 1 Sommario Parte I : Scenari Parte II : La Teoria Parte III: La Pratica 2 Parte I: Scenari 3 Applicazioni quotidiane (1/2) Transazioni finanziarie

Dettagli

ALGORITMI CRITTOGRAFICI E FIRMA DIGITALE

ALGORITMI CRITTOGRAFICI E FIRMA DIGITALE ALGORITMI CRITTOGRAFICI E FIRMA DIGITALE LA SICUREZZA INFORMATICA...2 Classificazione dei meccanismi di sicurezza...3 TECNICHE DI SICUREZZA DEI DATI...4 LA CRITTOGRAFIA...4 Che cos è la Crittografia? E

Dettagli

Metodologie Informatiche Applicate al Turismo 7. Aspetti di sicurezza nell reti

Metodologie Informatiche Applicate al Turismo 7. Aspetti di sicurezza nell reti Metodologie Informatiche Applicate al Turismo 7. Aspetti di sicurezza nell reti Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/~milazzo/ milazzo di.unipi.it Corso

Dettagli

La sicurezza nelle reti di calcolatori

La sicurezza nelle reti di calcolatori La sicurezza nelle reti di calcolatori Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi di traffico

Dettagli

Lezione 7 Sicurezza delle informazioni

Lezione 7 Sicurezza delle informazioni Lezione 7 Sicurezza delle informazioni Sommario Concetti generali Meccanismi per la sicurezza IT: Crittografia Hash Firma digitale Autenticazione 1 Concetti generali Availability Confidentiality Integrity

Dettagli

Crittografia con OpenSSL crittografia asimmetrica

Crittografia con OpenSSL crittografia asimmetrica Crittografia con OpenSSL crittografia asimmetrica Laboratorio del corso Sicurezza dei sistemi informatici (03GSD) Politecnico di Torino AA 2015/16 Prof. Antonio Lioy preparata da: Cataldo Basile (cataldo.basile@polito.it)

Dettagli

Corso di Laurea in Informatica Reti e Sicurezza Informatica

Corso di Laurea in Informatica Reti e Sicurezza Informatica Corso di Laurea in Informatica Reti e Sicurezza Informatica Esercitazione 6 Autenticazione in Tomcat per lo sviluppo di Web Service. In questo documento si presentano i meccanismi fondamentali che consentono

Dettagli

PkBox Concetti Generali. Vers.1.0.6

PkBox Concetti Generali. Vers.1.0.6 PkBox Concetti Generali Vers.1.0.6 18 aprile 2013 Le informazioni contenute in questo documento sono da considerarsi CONFIDENZIALI e non possono essere utilizzate o riprodotte - sia in parte che interamente

Dettagli

Introduzione alla crittografia Introduzione

Introduzione alla crittografia Introduzione Pagina 1 di 8 Introduzione alla crittografia Introduzione I messaggi che passano sulla rete sono in realtà facilmente intercettabili. Esempi di attacchi che mirano all'intercettazione dei messaggi sono

Dettagli

Corso di ARCHITETTURA DEI SISTEMI INFORMATIVI - Prof. Crescenzio Gallo. 114 Sistemi informativi in rete e sicurezza 4.6

Corso di ARCHITETTURA DEI SISTEMI INFORMATIVI - Prof. Crescenzio Gallo. 114 Sistemi informativi in rete e sicurezza 4.6 Approcci al problema della sicurezza 114 Sistemi informativi in rete e sicurezza 4.6 Accessi non autorizzati Hacker: coloro che si avvalgono delle proprie conoscenze informatiche e di tecnologia delle

Dettagli

Introduzione alla crittografia con OpenPGP

Introduzione alla crittografia con OpenPGP Introduzione alla crittografia con OpenPGP D avide Cerri dav ide@ linux.it Crittografia Per proteggere le comunicazioni su Internet si utilizza la crittografia. La crittografia è la scienza che si occupa

Dettagli

Comunicazioni sicure su Internet: https e SSL. Fisica dell Informazione

Comunicazioni sicure su Internet: https e SSL. Fisica dell Informazione Comunicazioni sicure su Internet: https e SSL Fisica dell Informazione Il servizio World Wide Web (WWW) Come funziona nel dettaglio il Web? tre insiemi di regole: Uniform Resource Locator (URL) Hyper Text

Dettagli

Approfondimento di Marco Mulas

Approfondimento di Marco Mulas Approfondimento di Marco Mulas Affidabilità: TCP o UDP Throughput: banda a disposizione Temporizzazione: realtime o piccoli ritardi Sicurezza Riservatezza dei dati Integrità dei dati Autenticazione di

Dettagli

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

Certificati digitali con CAcert Un'autorità di certificazione no-profit

Certificati digitali con CAcert Un'autorità di certificazione no-profit Certificati digitali con CAcert Un'autorità di certificazione no-profit Davide Cerri Associazione di Promozione Sociale LOLUG Gruppo Utenti Linux Lodi davide@lolug.net 11 novembre 2008 Crittografia asimmetrica:

Dettagli

Crittografia. Appunti a cura del prof. Ing. Mario Catalano

Crittografia. Appunti a cura del prof. Ing. Mario Catalano Crittografia Appunti a cura del prof. Ing. Mario Catalano La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice. Solitamente, i meccanismi crittografici

Dettagli

Sicurezza nelle reti

Sicurezza nelle reti Sicurezza nelle reti A.A. 2005/2006 Walter Cerroni Sicurezza delle informazioni: definizione Garantire la sicurezza di un sistema informativo significa impedire a potenziali soggetti attaccanti l accesso

Dettagli

Gennaio. SUAP On Line i pre-requsiti informatici: La firma digitale

Gennaio. SUAP On Line i pre-requsiti informatici: La firma digitale 2008 Gennaio SUAP On Line i pre-requsiti informatici: La firma digitale 1 La firma digitale Indice La firma digitale La firma digitale: destinatario 2 La firma digitale Cos è La Firma Digitale è il risultato

Dettagli

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza Prof. Massimiliano Sala MINICORSI 2011. Crittografia a chiave pubblica: oltre RSA Università degli Studi di Trento, Lab di Matematica

Dettagli

Crittografia e Sicurezza Informatica

Crittografia e Sicurezza Informatica Corso di Sistemi di Elaborazione delle Inforazioni Corso di Laurea in Infermieristica Corso di Laurea in Tecniche di Radiologia Medica, per Immagini e Radioterapia Università degli Studi di Messina Anno

Dettagli

Cifratura a chiave pubblica Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

Cifratura a chiave pubblica Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009 Cifratura a chiave pubblica Crittografia a chiave privata Chiave singola Crittografia simmetrica La stessa chiave è utilizzata sia per la cifratura che per la decifratura dei messaggi La chiave rappresenta

Dettagli

metodi crittografici 2006-2007 maurizio pizzonia sicurezza dei sistemi informatici e delle reti

metodi crittografici 2006-2007 maurizio pizzonia sicurezza dei sistemi informatici e delle reti metodi crittografici 1 sommario richiami di crittografia e applicazioni hash crittografici crittografia simmetrica crittografia asimmetrica attacchi e contromisure attacchi tipici key rollover generatori

Dettagli

Firma digitale INTRODUZIONE

Firma digitale INTRODUZIONE Firma digitale INTRODUZIONE La firma digitale costituisce uno dei dieci obiettivi del Piano per l e-government. Per quanto riguarda la PA, l obiettivo, abilitante allo sviluppo dei servizi on line, si

Dettagli

Firma digitale Definizione

Firma digitale Definizione FIRMA DIGITALE Firma digitale Definizione La definizione di firma digitale è contenuta nel Dlgs. Del 4/04/2006 n.159 che integra il Codice dell amministrazione digitale in vigore dal 1/01/2006. Firma digitale

Dettagli

Java Security Model e RMI

Java Security Model e RMI Java Security Model e RMI Da Java 2 in poi la politica di sicurezza di Java impone all utente di definire espressamente i permessi di cui deve disporre un applicazione. Tali permessi definiscono una sandbox,

Dettagli

Software di crittografia per GNOME. Nicola VITUCCI POuL Politecnico Open unix Labs

Software di crittografia per GNOME. Nicola VITUCCI POuL Politecnico Open unix Labs Software di crittografia per GNOME Nicola VITUCCI POuL Politecnico Open unix Labs Crittografia: definizione Dal greco kryptós, nascosto, e gráphein, scrivere Crittografia: l arte scrivere cifrato dello

Dettagli

La firma digitale CHE COSA E'?

La firma digitale CHE COSA E'? La firma digitale La Firma Digitale è il risultato di una procedura informatica che garantisce l autenticità e l integrità di messaggi e documenti scambiati e archiviati con mezzi informatici, al pari

Dettagli

La sicurezza nelle comunicazioni fra PC. Prof. Mauro Giacomini A.A. 2008-2009

La sicurezza nelle comunicazioni fra PC. Prof. Mauro Giacomini A.A. 2008-2009 La sicurezza nelle comunicazioni fra PC Prof. Mauro Giacomini A.A. 2008-2009 Sommario Cosa significa sicurezza? Crittografia Integrità dei messaggi e firma digitale Autenticazione Distribuzione delle chiavi

Dettagli

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo La Firma Digitale La sperimentazione nel Comune di Cuneo Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo Perchè questa presentazione Il Comune di Cuneo, aderente alla RUPAR, ha ricevuto due

Dettagli

Seminario Sull Algoritmo R.S.A.

Seminario Sull Algoritmo R.S.A. Alessandrini Cristian Sicurezza 2003 Introduzione Seminario Sull Algoritmo R.S.A. L algoritmo R.S.A. fa parte degli algoritmi definiti a chiave pubblica oppure asimmetrici. Fu progettato nel 1976/77 da

Dettagli

Sicurezza nei Sistemi Distribuiti

Sicurezza nei Sistemi Distribuiti Sicurezza nei Sistemi Distribuiti Aspetti di Sicurezza La sicurezza nei sistemi distribuiti deve riguardare tutti i componenti del sistema e coinvolge due aspetti principali: Le comunicazioni tra utenti

Dettagli

Sicurezza nei Sistemi Distribuiti

Sicurezza nei Sistemi Distribuiti Sicurezza nei Sistemi Distribuiti Aspetti di Sicurezza La sicurezza nei sistemi distribuiti deve riguardare tutti i componenti del sistema e coinvolge due aspetti principali: Le comunicazioni tra utenti

Dettagli

Architettura JCA. Architettura JCA. Provider JCE. Factory pattern. Strategy pattern

Architettura JCA. Architettura JCA. Provider JCE. Factory pattern. Strategy pattern Laurea Specialistica in Ingegneria Informatica per la Gestione d Azienda Facoltà di Ingegneria Università di Pisa Crittografia in Java JCA e JCE Java Cryptography Architecture (JCA) JCA Reference Guide:

Dettagli

JCA e JCE. Crittografia in Java. Java Cryptography Architecture (JCA) Java Cryptography Extension (JCE)

JCA e JCE. Crittografia in Java. Java Cryptography Architecture (JCA) Java Cryptography Extension (JCE) Laurea Specialistica in Ingegneria Informatica per la Gestione d Azienda Facoltà di Ingegneria Università di Pisa Crittografia in Java JCA e JCE Java Cryptography Architecture (JCA) JCA Reference Guide:

Dettagli

ALGORITMI CRITTOGRAFICI E FIRMA DIGITALE

ALGORITMI CRITTOGRAFICI E FIRMA DIGITALE ALGORITMI CRITTOGRAFICI E FIRMA DIGITALE LA SICUREZZA INFORMATICA...2 Classificazione dei meccanismi di sicurezza...3 TECNICHE DI SICUREZZA DEI DATI...4 LA CRITTOGRAFIA...4 Che cos è la Crittografia? E

Dettagli

Introduzione ai certificati S/MIME e alla posta elettronica certificata...2 Procedura di installazione del certificato personale S/MIME rilasciato

Introduzione ai certificati S/MIME e alla posta elettronica certificata...2 Procedura di installazione del certificato personale S/MIME rilasciato Guida all installazione e all utilizzo di un certificato personale S/MIME (GPSE) Introduzione ai certificati S/MIME e alla posta elettronica certificata...2 Procedura di installazione del certificato personale

Dettagli

Implicazioni sociali dell informatica

Implicazioni sociali dell informatica Fluency Implicazioni sociali dell informatica Capitolo 10 Privacy I nostri corpi I nostri luoghi Le informazioni Le comunicazioni personali La privacy Con i moderni dispositivi è possibile violare la privacy

Dettagli

Appl. di emissione PKCS#11. API (Metacomandi) Resource Manager Windows. Drivers PC/SC dei lettori

Appl. di emissione PKCS#11. API (Metacomandi) Resource Manager Windows. Drivers PC/SC dei lettori Roma, 30 gennaio 2003 La realtà della carta di identità elettronica (nel seguito CIE) e della carta nazionale dei servizi (nel seguito CNS) rende ineluttabile l individuazione di servizi da erogare in

Dettagli

La disciplina normativa della firma digitale

La disciplina normativa della firma digitale ICT E DIRITTO Rubrica a cura di Antonio Piva, David D Agostini Scopo di questa rubrica è di illustrare al lettore, in brevi articoli, le tematiche giuridiche più significative del settore ICT: dalla tutela

Dettagli

CRITTOGRAFIA, CERTIFICATI DIGITALI E PROTOCOLLI DI SICUREZZA

CRITTOGRAFIA, CERTIFICATI DIGITALI E PROTOCOLLI DI SICUREZZA CRITTOGRAFIA, CERTIFICATI DIGITALI E PROTOCOLLI DI SICUREZZA SU COSA SI BASANO I CERTIFICATI DIGITALI...2 Che cos è la Crittografia? E come viene applicata?...2 Crittografia a chiave simmetrica o segreta......2

Dettagli

Vendere online. Andrea Marin. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO

Vendere online. Andrea Marin. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO Andrea Marin Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO a.a. 2013/2014 Section 1 Introduzione Parliamo di acquisti online quando a seguito

Dettagli

Crittografia e Protocolli di Sicurezza

Crittografia e Protocolli di Sicurezza Crittografia e Protocolli di Sicurezza Ing. Emilio Spinicci 07/04/2004 1 Argomenti della lezione Introduzione Principi di Crittografia Protocolli di Sicurezza Attacchi ai Protocolli di Sicurezza 07/04/2004

Dettagli

PKI PUBLIC KEY INFRASTRUCTURES

PKI PUBLIC KEY INFRASTRUCTURES Premesse PKI PUBLIC KEY INFRASTRUCTURES Problemi Come distribuire in modo sicuro le chiavi pubbliche? Come conservare e proteggere le chiavi private? Come garantire l utilizzo corretto dei meccanismi crittografici?

Dettagli

PROCEDURA AGGIORNAMENTO LISTE MEDIANTE L INTERFACCIA WEB

PROCEDURA AGGIORNAMENTO LISTE MEDIANTE L INTERFACCIA WEB PROCEDURA AGGIORNAMENTO LISTE MEDIANTE L INTERFACCIA WEB Precondizioni Per poter eseguire i passi previsti da questa procedura è necessario che: - l'operatore (di seguito OP) abbia presentato l istanza

Dettagli

Pretty Good Privacy. PGP: cos è. PGP: cos è. Corso di Sicurezza su reti 15-05-2012. Barbara Masucci

Pretty Good Privacy. PGP: cos è. PGP: cos è. Corso di Sicurezza su reti 15-05-2012. Barbara Masucci Pretty Good Privacy Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci PGP: cos è Creato da P. Zimmermann

Dettagli

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144 Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Funzioni Hash e Network Security

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Funzioni Hash e Network Security Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Funzioni Hash e Network Security Vedi: A.S. Tanenbaum, Computer Networks, 4th ed., Prentice Hall: sez. 8, pagg.

Dettagli

Sicurezza nelle applicazioni multimediali: lezione 6, posta elettronica e sicurezza. Posta elettronica e sicurezza

Sicurezza nelle applicazioni multimediali: lezione 6, posta elettronica e sicurezza. Posta elettronica e sicurezza Posta elettronica e sicurezza Protocolli per la posta elettronica Distinguiamo tra due tipi di protocolli per la gestione della posta elettronica: Protocolli per l invio della posta (SMTP) Protocolli per

Dettagli

Sicurezza dei sistemi e delle reti Introduzione

Sicurezza dei sistemi e delle reti Introduzione Sicurezza dei sistemi e delle reti Introduzione Damiano Carra Università degli Studi di Verona Dipartimento di Informatica Riferimenti! Cap. 8 di Reti di calcolatori e Internet. Un approccio topdown, J.

Dettagli

A questo punto rimane solo una domanda.. dove si possono trovare le chiavi pubbliche?

A questo punto rimane solo una domanda.. dove si possono trovare le chiavi pubbliche? Uno dei grossi problemi che affligge tutti noi nell inviare un documento attraverso Internet è la certezza che nessuno, al di fuori del mittente e del destinatario, ne possa leggere il contenuto, questo

Dettagli

Un po di teoria dei numeri

Un po di teoria dei numeri Un po di teoria dei numeri Applicazione alla crittografia RSA Christian Ferrari Liceo di Locarno Matematica Sommario 1 L aritmetica modulare di Z n Le congruenze L anello Z n Le potenze in Z n e algoritmo

Dettagli

Corso di Network Security a.a. 2012/2013. Soluzione dei quesiti sulla prima parte del corso

Corso di Network Security a.a. 2012/2013. Soluzione dei quesiti sulla prima parte del corso Università degli Studi di Parma Dipartimento di Ingegneria dell Informazione Corso di Network Security a.a. 2012/2013 Soluzione dei quesiti sulla prima parte del corso 1) Si consideri un semplice cifrario

Dettagli

SICUREZZA. Sistemi Operativi. Sicurezza

SICUREZZA. Sistemi Operativi. Sicurezza SICUREZZA 14.1 Sicurezza Il Problema della Sicurezza Convalida Pericoli per i Programmi Pericoli per il Sistema Difendere i Sistemi Scoperta di Intrusioni Cifratura Esempio: Windows NT 14.2 Il Problema

Dettagli

Sistemi Operativi SICUREZZA. Sistemi Operativi. D. Talia - UNICAL 14.1

Sistemi Operativi SICUREZZA. Sistemi Operativi. D. Talia - UNICAL 14.1 SICUREZZA 14.1 Sicurezza Il Problema della Sicurezza Convalida Pericoli per i Programmi Pericoli per il Sistema Difendere i Sistemi Scoperta di Intrusioni Cifratura Esempio: Windows NT 14.2 Il Problema

Dettagli

Crittografia e sicurezza delle reti. Alberto Marchetti Spaccamela

Crittografia e sicurezza delle reti. Alberto Marchetti Spaccamela Crittografia e sicurezza delle reti Alberto Marchetti Spaccamela Crittografia e sicurezza Sicurezza e crittografia sono due concetti diversi Crittografia tratta il problema della segretezza delle informazioni

Dettagli

Elementi di Sicurezza informatica

Elementi di Sicurezza informatica Elementi di Sicurezza informatica Secure Socket Layer Università degli Studi di Perugia Indice 1 1.Introduzione 2 3 Perché SSL Funzionalità Storia di SSL Introduzione Introduzione Perché SSL; Funzionalità;

Dettagli

Laboratorio di Programmazione di Rete Docente: Novella Bartolini Lezione dell 16 Maggio 2005

Laboratorio di Programmazione di Rete Docente: Novella Bartolini Lezione dell 16 Maggio 2005 Laboratorio di Programmazione di Docente: Novella Bartolini Lezione dell 16 Maggio 2005 Mandare una e-mail da una pagina JSP Esistono numerosi package che fanno al caso nostro Le API JavaMail sono fornite

Dettagli

La firma digitale e le sue possibili applicazioni

La firma digitale e le sue possibili applicazioni Il documento informatico e la firma digitale nelle applicazioni pratiche La firma digitale e le sue possibili applicazioni dott. Enrico Zimuel (enrico@zimuel.it) Pescara, 15 febbraio 2008 Centro Studi

Dettagli

Firme elettroniche. Obiettivo. Lezione n. 11. Aspetti tecnologici delle firme elettroniche Aspetti giuridici delle firme elettroniche

Firme elettroniche. Obiettivo. Lezione n. 11. Aspetti tecnologici delle firme elettroniche Aspetti giuridici delle firme elettroniche Firme elettroniche Lezione n. 11 Obiettivo Aspetti tecnologici delle firme elettroniche Aspetti giuridici delle firme elettroniche Firme elettroniche: due aspetti che convivono la definizione tecnologica:

Dettagli

RuparPiemonte Manuale di installazione certificato digitale per la sicurezza Certification Authority di SistemaPiemonte

RuparPiemonte Manuale di installazione certificato digitale per la sicurezza Certification Authority di SistemaPiemonte RuparPiemonte Manuale di installazione certificato digitale per la sicurezza Certification Authority di SistemaPiemonte Pag. 1 di 17 SOMMARIO 1. PREMESSE...2 2. IL...2 3. VERIFICA DELLA VERSIONE CORRETTA

Dettagli

12/12/11 Data ultimo aggiornamento

12/12/11 Data ultimo aggiornamento U.O. Autonoma Informatica Relazione Tecnica Libreria di firma digitale P7MUtility Codice Classificazio ne Autorizzati Autore Nome file Ad uso interno Enrico Doni LibreriaFirmaDigitale.odt Versione 00.02.00

Dettagli

Integrità dei messaggi. Funzioni di Hash e codici MAC. Message digest. Message digest e funzioni di hash

Integrità dei messaggi. Funzioni di Hash e codici MAC. Message digest. Message digest e funzioni di hash Sicurezza nei Sistemi Informativi Integrità dei messaggi Funzioni di Hash e codici MAC una persona che intercetti una comunicazione cifrata non può leggerla...... ma può modificarla in modo imprevedibile!

Dettagli

Scambio delle chiavi. mercoledì 7 dicembre 2011

Scambio delle chiavi. mercoledì 7 dicembre 2011 Scambio delle chiavi 1 mercoledì 7 dicembre 2011 Distribuzione della chiave Dati due terminali A e B, si possono avere varie alternative per la distribuzione delle chiavi. 1. A sceglie una chiave e la

Dettagli

Piccola guida all uso di TrueCrypt

Piccola guida all uso di TrueCrypt Piccola guida all uso di TrueCrypt Alle volte l'uso di nuovi programmi risulta un po' ostico perché la documentazione può risultare essere disponibile solo in inglese, perché il programma è abbastanza

Dettagli

Java Security Extensions

Java Security Extensions Laurea Specialistica in Ingegneria Informatica Università degli studi di Bologna A.A. 2004/05 Java Security Extensions Tecnologie per la Sicurezza LS Prof. R. Laschi Maurizio Colleluori colleluori_mz@libero.it

Dettagli

Crittografia. Ringraziamenti. Scopo della crittografia. Privatezza

Crittografia. Ringraziamenti. Scopo della crittografia. Privatezza Crittografia Ringraziamenti prof. Francesco Dalla Libera Corso di Commercio Elettronico, Dipartimento di Informatica, Università Ca' Foscari di Venezia. Moreno Marzolla Dipartimento di Informatica Università

Dettagli

Protezione delle informazioni in SMart esolutions

Protezione delle informazioni in SMart esolutions Protezione delle informazioni in SMart esolutions Argomenti Cos'è SMart esolutions? Cosa si intende per protezione delle informazioni? Definizioni Funzioni di protezione di SMart esolutions Domande frequenti

Dettagli

DOCUMENTO ELETTRONICO E FIRMA DIGITALE

DOCUMENTO ELETTRONICO E FIRMA DIGITALE DOCUMENTO ELETTRONICO E FIRMA DIGITALE CHE COSA È LA CRITTOGRAFIA LA CRITTOLOGIA È SCIENZA CHE STUDIA LE SCRITTURE SEGRETE 2 CRITTOGRAFIA STUDIA I SISTEMI DI PROTEZIONE DEI MESSAGGI CRITTOANALISI STUDIA

Dettagli

Fabio Burroni. Università degli Studi di Siena burronif@unisi.it

Fabio Burroni. Università degli Studi di Siena burronif@unisi.it Fabio Burroni Università degli Studi di Siena burronif@unisi.it Sistemi e Tecnologie di Rete La Sicurezza delle Reti La presentazione è scaricabile da http://www.ltt.dii.unisi.it/benelli.htm La Sicurezza

Dettagli

Sistemi di autenticazione. Sistemi di autenticazione

Sistemi di autenticazione. Sistemi di autenticazione Sistemi di autenticazione Antonio Lioy < lioy @ polito.it > Politecnico di Torino Dip. Automatica e Informatica Metodologie di autenticazione basate su meccanismi diversi ( 1/2/3-factors authentication

Dettagli

Introduzione alla Crittografia

Introduzione alla Crittografia Liceo Scientifico N. Tron, 6 febbraio 2006 Riassunto Dato n > 1, la funzione di Eulero ϕ(n) è il numero di elementi < n e coprimi con n. Riassunto Dato n > 1, la funzione di Eulero ϕ(n) è il numero di

Dettagli

Aspetti crittografici dell online banking

Aspetti crittografici dell online banking Aspetti crittografici dell online banking Prof. Massimiliano Sala Università degli Studi di Trento, Lab di Matematica Industriale e Crittografia Trento, 27 Febbraio 2012 M. Sala (Università degli Studi

Dettagli

Documenti cartacei e digitali. Autenticità. Cosa si vuole garantire? Riservatezza. Integrità 11/12/2012. PA digitale: documenti e firme (I.

Documenti cartacei e digitali. Autenticità. Cosa si vuole garantire? Riservatezza. Integrità 11/12/2012. PA digitale: documenti e firme (I. Università degli studi di Catania Pubblica Amministrazione digitale Elementi tecnici sulla firma digitale Ignazio Zangara Agatino Di Bella Area della Formazione Gestione dell archivio (novembre dicembre

Dettagli

Guida ai certificati SSL User Guide

Guida ai certificati SSL User Guide Guida ai certificati SSL User Guide PROBLEMATICHE DEL WEB... 2 PRIVACY...3 AUTORIZZAZIONE/AUTENTICAZIONE...4 INTEGRITA DEI DATI...4 NON RIPUDIO...4 QUALI SONO I PRINCIPALI STRUMENTI UTILIZZATI PER GARANTIRE

Dettagli

Certificati di Attributi

Certificati di Attributi Certificati di Attributi Sicurezza dei dati in rete La rete è un mezzo non sicuro I messaggi in rete possono essere intercettati e/o modificati a cura di: R.Gaeta, F.Zottola Sicurezza dei dati in rete

Dettagli