Java Security Extensions(J2SE)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Java Security Extensions(J2SE)"

Transcript

1 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 Telefono JAVA SECURITY EXTENSIONS (JSE) PIATTAFORMA JAVA PER LA SICUREZZA Situazione fino al JDK 1.3 Architettura per la sicurezza (JCA) parte del JDK Estensioni per la sicurezza (JSE) fornite a parte (soprattutto per problemi di esportazione dagli USA) Java Web Start fornito a parte Java 2 Security Platform (J2SE 1.4) Java Authentication and Authorization Service (JAAS) Java 2 Security Architecture Novità JDK 1.4 Situazione dal JDK 1.4 (e 1.5) Estensioni JSE fornite insieme al JDK standard Java Web Start fornito insieme al JDK standard Altri miglioramenti: adattamento della gestione dei permessi al modello JAAS gestione dinamica delle politiche di sicurezza miglioramento della sicurezza nella gestione delle applet Java Secure Socket Extension (JSSE) Java Cryptography Extension (JCE) package java.security Java Cryptography Architecture (JCA) Java Generic Security Service (JGSS) Java Certification Path (CertPath) JAVA CRYPTOGRAPHY ARCHITECTURE (JCA) & JAVA CRYPTOGRAPHY EXTENSION (JCE) Il supporto crittografico in Java è articolato su due livelli: la Java Cryptography Architecture (JCA), che definisce la cornice generale per la crittografia: definisce le classi astratte per la gran parte delle funzionalità ma implementa solo alcune funzionalità specifiche in particolare il calcolo di impronte digitali e firme digitali di messaggi la Java Cryptography Extension (JCE), che definisce le API complete e implementa tutte le altre funzionalità in particolare, quelle di cifratura e decifratura di messaggi con algoritmi a piacere JAVA CRYPTOGRAPHY ARCHITECTURE (JCA) Due principi indipendenza dall implementazione e interoperabilità estendibilità e indipendenza degli algoritmi che si traducono in due tipologie di classi: classi astratte "engine" che dichiarano le funzionalità di un certo algoritmo crittografico classi concrete "provider" che implementano un insieme di funzionalità entro un Cryptographic Service Provider (CSP) Molteplicità di provider Più provider possono coesistere ed interoperare il provider di default si chiamasun e fa parte del JRE nuovi provider possono essere installati anche dinamicamente un'applicazione può sia richiedere una implementazione qualsiasi di un algoritmo, sia richiedere quella di un dato provider

2 PRINCIPALI CLASSI "ENGINE" Packagejava.security Key definisce le funzionalità condivise da chiavi opache KeySpec definisce una chiave di tipo trasparente KeyFactory rende una chiave opaca o trasparente KeyPairGenerator genera una coppia di chiavi asimmetriche AlgorithmParameters gestisce i parametri di un algoritmo AlgorithmParameterGenerator genera i parametri di un algoritmo MessageDigest calcola l hash (message digest) di un messaggio SecureRandom genera numeri casuali o pseudo-casuali Signature appone o verifica la firma digitale di un messaggio CertificateFactory crea e revoca certificati di chiavi pubbliche KeyStore gestisce il database (keystore) di chiavi e certificati NB: opaco e trasparente non sono sinonimi di cifrato e in chiaro. opaco = non si può accedere a ciò che costituisce la chiave direttamente, ma solo tramite i metodi dell'interfaccia Key; trasparente = non opaco. CHIAVI: INTERFACCE E CLASSI KeyFactory (JCA) + SecretKeyFactory (JCE) Key INTERFACCE DERIVATE DHPrivateKey DHPublicKey DSAPrivateKey DSAPublicKey SecretKey PBEKey PrivateKey PublicKey RSAMultiPrimePrivateCrtKey RSAPrivateCrtKey RSAPrivateKey RSAPublicKey PublicKey generatepublic (KeySpec keyspec) PrivateKey generateprivate(keyspec keyspec) SecreteKey generatesecret (KeySpec keyspec) KeySpec CLASSI IMPLEMENTATIVE DHPrivateKeySpec DHPublicKeySpec DSAPrivateKeySpec DSAPublicKeySpec SecretKeySpec PBEKeySpec RSAPrivateKeySpec RSAPublicKeySpec EncodedKeySpec DESedeKeySpec DESKeySpec KeySpec getkeyspec(key key, Class keyspec) COSA IMPLEMENTA: gli algoritmi di message digest MD5 e SHA-1 l algoritmo di firma digitale DSA (Digital Signature Algorithm) e i relativi enti di supporto specifici per DSA: KeyFactory e KeyPairGenerator AlgorithmParameters e AlgorithmParameterGenerator e inoltre: IL PROVIDERsun l algoritmo di generazione casuale SHA1PRNG (algoritmo proprietario, raccomandazione standard IEEE P1363) unacertificatefactory per certificati X.509 e per Certificate Revocation List una implementazione del KeyStore proprietario JKS Oltre al provider sun ne vengono forniti (JDK 1.4) altri due che estendono l'insieme delle funzionalità disponibili: rsajca SunJCE ALTRI PROVIDER PREDEFINITI in particolare verso l algoritmo di firma digitale RSA solo per firma e verifica svariati algoritmi di cifratura tra cui: DES, TripleDES, Blowfish (e relativi generatori di chiavi) Diffie-Hellman per negoziazione di chiavi INSTALLAZIONE DI NUOVI PROVIDER Se le funzionalità offerte dal provider Sun non bastano, si possono installare altri provider, sia staticamente sia dinamicamente. 1. INSTALLAZIONE STATICA porre l archivio JAR del nuovo provider nella cartella relativa alle estensioni del JRE, $JAVA_HOME/jre/lib/ext aggiungere al file delle specifiche di sicurezza java.security (contenuto in $JAVA_HOME\jre\lib\security) la riga security.provider.n =ProviderName dove N rappresenta la priorità di quel provider; la macchina virtuale Java sceglie i provider seguendo tale ordine. 2. INSTALLAZIONE DINAMICA non ci sono passi preliminari da compiere. INSTALLAZIONE STATICA: ESEMPIO I provider predefiniti sono elencati nelle prime 5 righe del file $JAVA_HOME/jre/lib/security/java.security security.provider.1=sun.security.provider.sun security.provider.2=com.sun.net.ssl.internal.ssl.provider security.provider.3=com.sun.rsajca.provider security.provider.4=com.sun.crypto.provider.sunjce security.provider.5=sun.security.jgss.sunprovider security.provider.6=org.bouncycastle.jce.provider.bouncycastleprovider In questo esempio, la sesta riga installa staticamente il provider BouncyCastle (www.bouncycastle.com), il cui file JAR dev'essere posto nella directory $JAVA_HOME/jre/lib/ext

3 INSTALLAZIONE DINAMICA: ESEMPIO L'installazione dinamica si svolge da programma Java, utilizzando le apposite API della classesecurity: static int addprovider(provider provider) static Provider getprovider(string name) static Provider[] getproviders() static Set getalgorithms(string servicename) static int insertproviderat(provider provider, int position) Ad esempio, per installare il provider IAIK (scaricabile da import javax.crypto.*; import iaik.security.provider.*; IAIK provider = new IAIK(); Security.addProvider(provider); LE JAVA SECURITY EXTENSIONS Le estensioni JCE e JSSE implementano due provider che estendono le funzionalità del provider di base: SunJCE SunJSSE crittografia a livello locale crittografia a livello di rete Altri package forniscono funzionalità di sicurezza aggiuntive, complementari alla JCA: JAAS servizi di autenticazione, autorizzazione e amministrazione CertPath gestione di catene di certificati (certification paths) JGSS meccanismi di comunicazione generici e specifici (Kerberos v5) JCA & JSE: SCHEMA D'USO Tutte le classi engine della JCA e della JSE si usano secondo il pattern "Factory", ossia: non si istanziano oggetti direttamente, tramite new si usa invece un metodo statico "di fabbrica", che nasconde e incapsula la fase di creazione esplicita: getistance(string nomeistanza) Questo metodo può così restituire formalmente delle interfacce, separando completamente l'uso (espresso dalle interfacce) dagli aspetti implementativi (legati alle classi utilizzate internamente). ESEMPI: KeyGenerator kg = KeyGenerator.getInstance("TripleDES"); KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); Signature sig = Signature.getInstance("MD5WithRSA"); CertificateFactory cf = CertificateFactory.getInstance("X.509"); JCE: CARATTERISTICHE La Java Cryptography Extension (JCE) fornisce una implementazione completa delle funzionalità di cifratura e decifratura dichiarate dalla JCA Supporta cifrari simmetrici (a blocchi e a flusso), cifrari asimmetrici e cifrari con password, unitamente ai meccanismi di MAC (Message Authentication Code) e generazione / negoziazione di chiavi; tutti gli algoritmi sono applicabili su dati, stream di I/O e oggetti serializzabili. Il package principalejavax.crypto include fra le altre: Cipher (cifratura e decifratura di dati con uno specifico algoritmo) CipherInputStream /CipherOutputStream (canale sicuro, ossia un Cipher + un InputStream o un OutputStream) KeyGenerator (generazione di chiavi per algoritmi simmetrici e per lo scambio Diffie-Hellmann DH) Mac (Message Authentication Code MAC) MODALITÀ e PADDING (RIEMPIMENTI) La MODALITÀ definisce come il cifrario debba applicare l'algoritmo di cifratura: può essere a blocchi o a flusso. Casi tipici sono: ECB [Elettronic Code Book]: uno stesso blocco di testo, anche se ripetuto, dà sempre luogo allo stesso blocco di testo cifrato CBC [Cipher Block Chaining]: ogni blocco cifrato dipende sia dal relativo blocco in chiaro, sia da tutti i blocchi precedenti, sia da un opportuno vettore di inizializzazione. Il PADDING stabilisce come completare un blocco che non raggiunge la dimensione fissa prestabilita. PKCS#5 [Public Key Criptography Standard n 5] è lo schema di riempimento più usato per la cifratura simmetrica: ai byte che mancano per riempire un blocco si assegna un valore pari al numero di byte mancanti. h e l l o t e s t c i p h e r 2 2 ESEMPIO CON 3DES: inizializzazione import java.security.*; import javax.crypto.*; Istanzia un generatore di public class TripleDES { chiavi di tipo TripleDES public static void main (String[] args) { Con il provider BouncyCastle si String text = "Hello world!"; userebbe la stringa "DESede" if (args.length == 1) text = args[0]; KeyGenerator keygen = KeyGenerator.getInstance("TripleDES"); keygen.init(168); Key key = keygen.generatekey(); Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding"); Inizializza il generatore con la lunghezza in bit della chiave Per TripleDES, è sempre 168 Generazione della chiave Crea il cifrario, indicando: Tipo di chiave [TripleDES] Modalità [ECB] Padding [PKCS5Padding]

4 ESEMPIO CON 3DES: cifratura. cipher.init(cipher.encrypt_mode, key); byte[] plaintext = text.getbytes("utf8"); System.out.println("\nPlain text: "); for (int i=0;i<plaintext.length;i++) System.out.print(plaintext[i]+" "); Inizializza il cifrario per cifrare Converte una stringa in un array di byte specificando la codifica. ESEMPIO CON 3DES: decifratura cipher.init(cipher.decrypt_mode, key); byte[] decryptedtext = cipher.dofinal(ciphertext); String output = new String(decryptedText,"UTF8"); System.out.println("\nDecrypted Text: "+output);. Inizializza il cifrario per decifrare (usiamo la stessa chiave) Decifra i dati byte[] ciphertext = cipher.dofinal(plaintext); System.out.println("\nCipher text: "); for(int i=0;i<ciphertext.length;i++) System.out.print(ciphertext[i]+" ");. Cifra i dati COMPILAZIONE ED ESECUZIONE: C:> javac TripleDES.java C:> java TripleDES testoinchiaro Supponiamo: "Hello world!" NB: prima di cifrare chiamandodofinal, si possono eventualmente aggiungere altri dati invocando il metodoupdate(byte[]); anche in tal caso occorre ricordarsi di specificare la codifica. Plain text: Cipher text: Decrypted Text: Hello world! ESEMPIO CON 3DES: COMPLETAMENTO Per funzionare, il codice precedente dev'essere completato con la gestione delle eccezioni: catch (NoSuchAlgorithmException e1) { System.out.println("Algoritmo non supportato"); catch (InvalidAlgorithmParameterException e2) { System.out.println("Parametro non valido"); catch (NoSuchProviderException e2) { System.out.println("Algoritmo non supportato dal provider"); catch (NoSuchPaddingException e3) { System.out.println("Padding non supportato"); catch (BadPaddingException e4) { System.out.println("Padding non riuscito"); catch (InvalidKeyException e5) { System.out.println("Chiave non valida"); catch (IllegalBlockSizeException e6) { System.out.println("Dimensione blocco non corretta"); catch (UnsupportedEncodingException e7) { System.out.println("Codifica non supportata"); CAMBIARE ALGORITMO: ESEMPI Cambiare algoritmo significa solo creare un diverso cifrario. Ad esempio, volendo utilizzare Blowfish anziché 3DES: KeyGenerator keygen = KeyGenerator.getInstance("Blowfish"); keygen.init(128); Cipher c = Cipher.getInstance("Blowfish/ECB/PKCS5Padding"); Analogamente per l'algoritmo Rijndael, che opera in modalità CBC: Cipher c = Cipher.getInstance("Rijndael/CBC/PKCS5Padding"); byte[] initvect = new byte[16]; 16 byte casuali necessari SecureRandom random = new SecureRandom(); per la generazione del random.nextbytes(initvect); seme IvParameterSpec spec = new IvParameterSpec(initVect); cipher.init(cipher.encrypt_mode, key, spec); Inizializza il cifrario passando anche il semespec CIFRATURA CON PASSWORD (PBE) Password-Based Encryption (PBE): caratteristiche password di un utente medio = circa 6 caratteri 48 bit contro le chiavi di 448 bit di 3DES e Blowfish password tipiche = parole con un qualche significato spazio delle chiavi ancora più limitato soggette ad attacchi con dizionario Due difese contemporanee: ing = aggiunta di un insieme di bit casuali alla password in modo ampliare lo spazio delle chiavi Conteggi di ripetizione = chiave del cifrario PBE separata rispetto alla password: la chiave PBE è ottenuta ripetendo molte volte un'operazione sulla password base. in chiaro Password CIFRARIO CON PASSWORD + SALT CIFRARIO PBE DATI CIFRATI cifrato DATI CIFRATI cifrato cifrato cifrato Password CIFRARIO PBE in chiaro

5 CIFRATURA CON PBE: ESEMPIO import java.security.*; import javax.crypto.*; import java.util.*; public class ProvaPBE { private final int ITERATIONS = 1000; import java.security.spec.*; import javax.crypto.spec.*; public static String encrypt(char[] password, String plaintext) { Random random = new Random(); byte[] salt = new byte[8]; random.nextbytes(salt); PBEKeySpec keyspec = new PBEKeySpec(password); Crea la chiave PBE SecretKeyFactory keyfactory = data la password SecretKeyFactory.getInstance("PBEWithMD5AndDES"); SecretKey key = keyfactory.generatesecret(keyspec); PBEParameterSpec paramspec = new PBEParameterSpec(salt, ITERATIONS); Incapsula salt e numero di iterazioni Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES"); cipher.init(cipher.encrypt_mode, key, paramspec); byte[] ciphertext = cipher.dofinal(plaintext.getbytes("utf8")); return new String(salt) + new String(ciphertext); DECIFRATURA CON PBE: ESEMPIO public static String decrypt(char[] password, String input) { byte[] salt = input.substring(0,8).getbytes("utf8"); byte[] ciphertext = input.substring( 8 ).getbytes("utf8"); Separa il salt dal testo cifrato e li converte in array di byte PBEKeySpec keyspec = new PBEKeySpec(password); SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES"); SecretKey key = keyfactory.generatesecret(keyspec); PBEParameterSpec paramspec = Tutto come prima new PBEParameterSpec(salt, ITERATIONS); Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES"); cipher.init(cipher.decrypt_mode, key, paramspec); byte[] plaintextarray = cipher.dofinal(ciphertext); return new String(plaintextArray ); a parte ovviamente il DECRYPT MODE e lo scambio di ruoli fra testo in chiaro e testo cifrato MEMORIZZAZIONE SICURA DELLA CHIAVE PROBLEMA: DOVE memorizzare la chiave? su floppy disc o smart card? scomodo (servono mezzi fisici esterni) su disco fisso? comodo.. ma la sicurezza..? è opportuno cifrare la chiave, ad esempio con PBE non è male poi proteggere ulteriormente la chiave, ad esempio impostando i permessi di accesso al file Cifratura: byte[] keybytes = key.getencoded(); cipher.init(cipher.encrypt_mode, password, paramspec); byte[] encryptedkeybytes = cipher.dofinal(keybytes); Decifratura: cipher.init(cipher.decrypt_mode, password, paramspec); byte[] keybytes = cipher.dofinal(encryptedkeybytes); SecretKeySpec key = new SecretKeySpec(keyBytes, "Blowfish"); Alcuni provider forniscono un mezzo più comodo per cifrare la chiave, evitando la conversione da byte[] akey Si incapsula una chiave segreta configurando un cifrario PBE in WRAP_MODE (anzichéencrypt_mode) e poi usandowrap anzichédofinal. Analogamente si recupera la chiave operando sul cifrario in UNWRAP_MODE (anzichédecrypt_mode) e poi usandounwrap anzichédofinal. Cifratura: INCAPSULAMENTO ED ESTRAZIONE DELLA CHIAVE cipher.init(cipher.wrap_mode, password, paramspec); byte[] encryptedkeybytes = cipher.wrap(key); Decifratura: cipher.init(cipher.unwrap_mode, password, paramspec); Key key = cipher.unwrap(encryptedkeybytes, "Blowfish", Cipher.SECRET_KEY); CipherInputStream ecipheroutputstream realizzano il concetto di canale sicuro combinando automaticamente uninputstream o unoutputstream con uncipher incaricato di gestire cifratura e decifratura. Creazione stream cifrati: STREAM CIFRATI CipherOuputStream cipheroutput = new CipherOutputStream(new FileOutputStream(cipherFileName), cipher); CipherInputStream cipherinput = new CipherInputStream( new FileInputStream( cipherfilename), cipher); Uso (trasparente) di stream cifrati: int ch = 0; Un Inputstream qualsiasi Ogni carattere scritto viene automaticamente cifrato while ((ch = input.read())!=-1) { cipheroutput.write(ch); cipheroutput.close(); OGGETTI SIGILLATI Gli oggetti sigillati (SealedObject) sono oggetti cifrati che incapsulano il cifrario Sono utili per memorizzare e trasportare una versione cifrata di un oggetto (serializzabile) import java.io.*; import javax.crypto.*; import java.security.*; public class SealedObjectExample { public static void main (String[ ] args) { String secretmessage = "Ci vediamo domani alle 15"; KeyGenerator keygenerator = KeyGenerator.getInstance("Blowfish"); Key key = keygenerator.generatekey(); Cipher cipher = Cipher.getInstance("Blowfish/ECB/PKCS5Padding"); cipher.init(cipher.encrypt_mode, key); SealedObject so = new SealedObject(secretMessage, cipher); String decryptedmessage = (String) so.getobject(key); System.out.println("Messaggio decifrato: " + decryptedmessage);

6 CIFRATURA ASIMMETRICA FIRMA DIGITALE: GENERAZIONE e INVIO Algoritmo di impronta CIFRATURA ASIMMETRICA FIRMA DIGITALE: RICEZIONE e VERIFICA Algoritmo di impronta Messaggio da firmare Impronta del messaggio Messaggio ricevuto Impronta del messaggio Chiave privata del mittente Chiave pubblica del mittente UGUALI? Impronta del messaggio Lato Mittente Algoritmo di firma Firma digitale da inviare al destinatario insieme al messaggio Firma digitale ricevuta dal mittente Algoritmo di verifica della firma Lato Destinatario RSA vs DSA: CONFRONTO Firmare con RSA significa cifrare con la chiave privata decifrare con la pubblica Questa operazione non nasconde i dati (che sono decifrabili con la chiave pubblica) ma prova l identità del firmatario L'algoritmo DSA (Digital Signature Algorithm) è analogo a RSA per la firma, ma non può essere usato per cifrare DSA è più veloce a generare le firme, RSA a verificarle poiché una firma viene convalidata più spesso di quanto venga generata, RSA è solitamente più veloce APPOSIZIONE DI UNA FIRMA DIGITALE import java.security.signature; import java.security.signatureexception; KeyPairGenerator keypairgen = KeyPairGenerator.getInstance("RSA"); keypairgen.initialize(1024); KeyPair keypair = keypairgen.genkeypair(); byte[] msg = "Non esistono più le mezze stagioni".getbytes("utf8"); Signature sig = Signature.getInstance("MD5WithRSA"); sig.initsign(keypair.getprivate()); sig.update(msg); byte[] signaturebytes = sig.sign(); Per firmare occorre un oggetto Signature PROCEDURA DI FIRMA: si inizializza l'oggetto Signature con la chiave PRIVATA del mittente gli si passano mediante update i dati da firmare si calcola la firma invocando sign che restituisce i byte costituenti la firma E CORRISPONDENTE VERIFICA import java.security.signature; import java.security.signatureexception; sig.initverify( keypair.getpublic() ); sig.update(msg); boolean verified = false; try { verified = sig.verify(signaturebytes); catch (SignatureException se) { System.out.println("Formato non valido"); Anche per verificare la fiorma occorre un oggetto Signature PROCEDURA DI VERIFICA: si inizializza l'oggetto Signature con la chiave PUBBLICA del mittente gli si passano mediante update i dati da VERIFICARE si verifica la firma invocandoverify che restituisce un boolean CIFRATURA ASIMMETRICA vs. CIFRATURA SIMMETRICA DIFFERENZE RISPETTO AL CASO SIMMETRICO MODALITÀ: nei cifrari asimmetrici, si usa quasi sempre ECB PADDING: nei cifrari asimmetrici non si usa più PKCS#5, ma bensì (con RSA) PKCS#1 e OAEP (Optimal Asymmetric Encryption Padding) COSA SI CIFRA: tipicamente solo la (corta) chiave di sessione da usarsi da lì in poi con un algoritmo simmetrico. COSA OCCORRE solo per firmare digitalmente un messaggio e verificarlo: basta il provider JCE standard per cifratura e decifratura: un provider che supporti tutto RSA BouncyCastle o IAIK

7 CIFRATURA ASIMMETRICA con RSA import javax.crypto.*; import java.security.*; KeyPairGenerator keypairgen = KeyPairGenerator.getInstance("RSA"); keypairgen.initialize(1024); KeyPair keypair = keypairgen.genkeypair(); Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); cipher.init(cipher.encrypt_mode, keypair.getpublic() ); Tipicamente il messaggio da cifrare sarà la chiave di sessione byte[] messagebytes = "il mio messaggio".getbytes("utf8"); byte[] ciphertext = cipher.dofinal(messagebytes); cipher.init(cipher.decrypt_mode, keypair.getprivate() ); byte[] decryptedmessagebytes = cipher.dofinal(ciphertext); System.out.println( new String(decryptedMessageBytes,"UTF8") ); CIFRATURA ASIMMETRICA con RSA DI UNA CHIAVE (simmetrica) DI SESSIONE KeyPairGenerator keypairgen = KeyPairGenerator.getInstance("RSA"); keypairgen.initialize(1024); KeyPair keypair = keypairgen.genkeypair(); Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); cipher.init(cipher.encrypt_mode, keypair.getpublic() ); KeyGenerator sessionkeygen = KeyGenerator.getInstance("Blowfish"); sessionkeygen.init(128); Key blowfishkey = sessionkeygen.generatekey(); byte[] blowfishkeybytes = blowfishkey.getencoded(); byte[] ciphertext = cipher.dofinal(blowfishkeybytes); cipher.init(cipher.decrypt_mode, keypair.getprivate() ); byte[] decryptedkeybytes = cipher.dofinal(ciphertext); SecretKey reconstructedblowfishkey = new SecretKeySpec(decryptedKeyBytes,"Blowfish");

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

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

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

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

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

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

Indice generale. Prefazione...xiii. Introduzione...xv

Indice generale. Prefazione...xiii. Introduzione...xv Prefazione...xiii Introduzione...xv Destinatari del libro...xvi Prerequisiti...xvi Versioni di Android...xvii Organizzazione del libro...xvii Convenzioni...xviii Ringraziamenti...xix L autore...xix Il

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

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

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

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

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

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

Android Security Key Management. Roberto Gassirà (r.gassira@mseclab.com) Roberto Piccirillo (r.piccirillo@mseclab.com)

Android Security Key Management. Roberto Gassirà (r.gassira@mseclab.com) Roberto Piccirillo (r.piccirillo@mseclab.com) Roberto Gassirà (r.gassira@mseclab.com) Roberto Piccirillo (r.piccirillo@mseclab.com) Roberto Piccirillo Senior Security Analyst - Mobile Security Lab Vulnerability Assessment (IT, Mobile Application)

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

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

Argomenti Crittografia Firma digitale e certificati Certification Authority e PKI La normativa

Argomenti Crittografia Firma digitale e certificati Certification Authority e PKI La normativa Argomenti Crittografia Firma digitale e certificati Certification Authority e PKI La normativa Il crittanalista.... il secondo mestiere più vecchio del mondo! Crittografia Attenzione! Asterix ci ascolta!

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Cifratura simmetrica

Cifratura simmetrica Cifratura Cifratura simmetrica Alice canale insicuro Bob 2 Cifratura simmetrica m Algoritmo di decifratura m Alice canale insicuro Algoritmo di cifratura Bob 3 Cifrari simmetrici chiave privata k chiave

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

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

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

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

PARIPARI: REINGEGNERIZZAZIONE DI UNA LIBRERIA DI CRITTOGRAFIA

PARIPARI: REINGEGNERIZZAZIONE DI UNA LIBRERIA DI CRITTOGRAFIA PARIPARI: REINGEGNERIZZAZIONE DI UNA LIBRERIA DI CRITTOGRAFIA RELATORE: Ch.mo Prof. Enoch Peserico Stecchini Negri De Salvi CORRELATORE: Ing. Paolo Bertasi LAUREANDO: Paolo Marchezzolo Corso di laurea

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

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

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

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

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

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

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

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

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

Side Channel Attack contro il protocollo SSL

Side Channel Attack contro il protocollo SSL Side Channel Attack contro il protocollo SSL Giuliano Bertoletti E-Security Manager gb@intrinsic.it Webb.it Padova, 10 maggio 2003 Il protocollo SSL/TLS Comunicazione sicura client-server su protocollo

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

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

Firma digitale aspetti tecnologici

Firma digitale aspetti tecnologici Firma digitale aspetti tecnologici Gianni Bianchini Firenze Linux User Group giannibi@firenze.linux.it Firenze, Palazzo Vecchio, 14 Giugno 2003 Copyright c 2003 Gianni Bianchini La copia letterale integrale

Dettagli

Colloquio SGSS-SIRGESA

Colloquio SGSS-SIRGESA Colloquio SGSS-SIRGESA Specifiche Tecniche Versione 1.3.1 07/02/2013 RTI Funzione Nome Redazione Capo progetto RTI (Aruba) Esperto di dominio (Actalis) Capo progetto CMS (Engineering) Esperto architetture

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

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

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

Sommario INTRODUZIONE - 2 - LA CRITTOGRAFIA - 4 - LE SMART CARD - 13 - LO STANDARD PKCS#11-20 -

Sommario INTRODUZIONE - 2 - LA CRITTOGRAFIA - 4 - LE SMART CARD - 13 - LO STANDARD PKCS#11-20 - Sommario INTRODUZIONE - 2 - LA CRITTOGRAFIA - 4-1.1 INFORMAZIONI PRELIMINARI SULLA CRITTOGRAFIA - 5-1.2 LA CRITTOGRAFIA A CHIAVE PRIVATA (SIMMETRICA) - 6-1.3 LA CRITTOANALISI - 8-1.4 LA CRITTOGRAFIA A

Dettagli

Pretty Good Privacy. PGP fornisce crittografia ed autenticazione. creato da Phil Zimmermann nel 1991. in origine è un'applicazione per e-mail

Pretty Good Privacy. PGP fornisce crittografia ed autenticazione. creato da Phil Zimmermann nel 1991. in origine è un'applicazione per e-mail Pretty Good Privacy PGP fornisce crittografia ed autenticazione creato da Phil Zimmermann nel 1991 in origine è un'applicazione per e-mail RFC 2440 - OpenPGP Message Format nov.98 RFC 3156 - MIME Security

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le

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

Sicurezza dei sistemi informatici Firma elettronica E-commerce

Sicurezza dei sistemi informatici Firma elettronica E-commerce Sicurezza dei sistemi informatici Firma elettronica E-commerce Il contesto applicativo Commercio elettronico Quanti bit ho guadagnato!! Marco Mezzalama Politecnico di Torino collegamenti e transazioni

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

Perchè utilizzare un'autorità di certificazione

Perchè utilizzare un'autorità di certificazione Una generica autorità di certificazione (Certification Authority o più brevemente CA) è costituita principalmente attorno ad un pacchetto software che memorizza i certificati, contenenti le chiavi pubbliche

Dettagli

Corso di Sicurezza Informatica. Sicurezza Web. Ing. Gianluca Caminiti

Corso di Sicurezza Informatica. Sicurezza Web. Ing. Gianluca Caminiti Corso di Sicurezza Informatica Sicurezza Web Ing. Gianluca Caminiti SSL Sommario Considerazioni sulla Sicurezza del Web Secure Socket Layer (SSL) 3 Brevi Considerazioni sulla Sicurezza del Web Web come

Dettagli

10.4. La classe File e gli attributi di directory e file

10.4. La classe File e gli attributi di directory e file pag.143 10.4. La classe File e gli attributi di directory e file Questa classe, molto utile per operare con i file su disco, consente di accedere alle directory, verificare e acquisire le caratteristiche

Dettagli

Randomizzazione di chiavi crittografiche. mediante funzioni hash: un prototipo

Randomizzazione di chiavi crittografiche. mediante funzioni hash: un prototipo CORSO DI LAUREA MAGISTRALE IN INFORMATICA Randomizzazione di chiavi crittografiche mediante funzioni hash: un prototipo Relatore: Correlatore: Prof. Astasia C. Pagnoni Prof. Andrea Visconti Tesi di Laurea

Dettagli

Sicurezza dei Sistemi Informatici Esercitazioni OpenSSL

Sicurezza dei Sistemi Informatici Esercitazioni OpenSSL Sicurezza dei Sistemi Informatici Esercitazioni OpenSSL Marco Tiloca marco.tiloca@iet.unipi.it 1 Sicurezza dei Sistemi Informatici Esercitazioni OpenSSL Cifratura chiave simmetrica (2 ore) Funzioni hash

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

INDICE. 1 Scopo del documento... 2. 2 Passi da seguire... 3. 3 Materiale consegnato al momento dell abilitazione... 6

INDICE. 1 Scopo del documento... 2. 2 Passi da seguire... 3. 3 Materiale consegnato al momento dell abilitazione... 6 11 gennaio 2007 INDICE 1 Scopo del documento... 2 2 Passi da seguire... 3 3 Materiale consegnato al momento dell abilitazione... 6 4 Caratteristiche minime della postazione... 7 5 Virtual Machine Java...

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

Servizi Applicativi su Internet SMTP/POP/IMAP. La posta elettronica. Pierluigi Gallo, Domenico Garlisi, Fabrizio Giuliano

Servizi Applicativi su Internet SMTP/POP/IMAP. La posta elettronica. Pierluigi Gallo, Domenico Garlisi, Fabrizio Giuliano Servizi Applicativi su Internet SMTP/POP/IMAP La posta elettronica Pierluigi Gallo, Domenico Garlisi, Fabrizio Giuliano E-mail - Indice 2 Introduzione Formato del messaggio Server Protocolli Comandi SMTP

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

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

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

! 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

Input/Output in Java

Input/Output in Java Corso Java Input/Output in Java Docente: Dott. Marco Bianchi Slide realizzate da Ing. A.Bei, Dott. M.Bianchi, Dott. F.Lombardi Input/Output in Java Per effettuare operazioni di I/O in Java è possibile

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

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

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

Crittografia e sicurezza delle reti

Crittografia e sicurezza delle reti Crittografia e sicurezza delle reti Integrità dei dati e loro autenticità Message Authentication Codes (MAC) Firma digitale Autenticazione messaggi Garantire l integrità dei messaggi anche in presenza

Dettagli

L IDENTITY MANAGEMENT

L IDENTITY MANAGEMENT L IDENTITY MANAGEMENT Le 3 A È pratica consueta riferirsi all insieme delle tecniche di autenticazione, autorizzazione e accounting come alle 3A. Il motivo di questo accostamento non risiede semplicemente

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

Sicurezza nei Sistemi Informativi

Sicurezza nei Sistemi Informativi Laurea Specialistica in Ingegneria Informatica A.A. 2009/2010 Sicurezza nei Sistemi Informativi Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni

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

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

Le command line di Java

Le command line di Java Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,

Dettagli

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario.

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario. Programmazione e laboratorio: introduzione al corso Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione per

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

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/ POLITECNICO DI MILANO CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/ è un cifrario a flusso progettato da Ron Rivest (la R di RSA) nel 1987. Era un segreto commerciale della

Dettagli

Sicurezza interna alle applicazioni. Sicurezza esterna alle applicazioni. SSL: introduzione. Sicurezza nei Sistemi Informativi

Sicurezza interna alle applicazioni. Sicurezza esterna alle applicazioni. SSL: introduzione. Sicurezza nei Sistemi Informativi Sicurezza nei Sistemi Informativi La sicurezza nei protocolli di rete Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di

Dettagli

da chi proviene un messaggio?

da chi proviene un messaggio? da chi proviene un messaggio? in un crittosistema simmetrico solo Alice e Bob conoscono la chiave se Bob riceve un messaggio di Alice e la decifratura del messaggio ha senso, il messaggio proviene certamente

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

BlackBerry Java SDK. Security Versione: 6.0. Guida allo sviluppo

BlackBerry Java SDK. Security Versione: 6.0. Guida allo sviluppo BlackBerry Java SDK Security Versione: 6.0 Guida allo sviluppo Pubblicato: 2011-08-15 SWD-1284837-0815030834-004 Indice 1 Panoramica sulla protezione... 4 2 RIM Cryptographic API... 6 Panoramica sulla

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

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

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

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. ENTRUST/PKI 6.0 MANUALE PER L UTENTE. A cura di: Eleonora Brioni, Direzione Informatica e Telecomunicazioni ATI

Dettagli

Proprietà di Sicurezza I

Proprietà di Sicurezza I Java Security Proprietà di Sicurezza I Confidenzialità Le informazioni possono essere lette solo dai soggetti che ne hanno diritto Integrità Le informazioni possono essere modificate solo dai soggetti

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

Carte Laurea triennale in Comunicazione Digitale Laboratorio di Informatica Generale

Carte Laurea triennale in Comunicazione Digitale Laboratorio di Informatica Generale Appelli di gennaio, febbraio e aprile 2005 Carte Laurea triennale in Comunicazione Digitale Laboratorio di Informatica Generale 1 Descrizione Il progetto consiste nel realizzare un programma per gestire

Dettagli

I metodi statici -1. Variabili statiche Vogliamo assegnare a ciascuncontoun numeroidentificativo diverso. I metodi statici -2

I metodi statici -1. Variabili statiche Vogliamo assegnare a ciascuncontoun numeroidentificativo diverso. I metodi statici -2 I metodi statici -1 I metodi statici non hanno il parametro implicito il metodo sqrt di Math I metodi statici vengono detti anche metodi di classe perche` non operano su una particolare istanza della classe

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

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

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Applicazioni per l autenticazione Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

Applicazioni per l autenticazione Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009 Applicazioni per l autenticazione Kerberos Kerberos Servizio di autenticazione sviluppato dal MIT Fornisce un server di autenticazione centralizzato Basato su crittografia simmetrica (chiave privata) Permette

Dettagli

PROGETTO E SVILUPPO DI UNA PKI

PROGETTO E SVILUPPO DI UNA PKI UNIVERSITA POLITECNICA DELLE MARCHE Facoltà di INGEGNERIA Corso di Laurea in Ingegneria Elettronica Dipartimento di Elettronica, Intelligenza Artificiale e Telecomunicazioni PROGETTO E SVILUPPO DI UNA

Dettagli

Sicurezza della posta elettronica

Sicurezza della posta elettronica Elementi di Sicurezza e Privatezza Lezione 15 Sicurezza della posta elettronica Chiara Braghin chiara.braghin@unimi.it! Sicurezza della posta elettronica 1 Posta elettronica (1) Una mail è un messaggio

Dettagli

Parte I: Contenuti. Security in Java Platform. Perchè Sicurezza in Java? A chi interessa la sicurezza in Java? Panoramica su Java. Panoramica su Java

Parte I: Contenuti. Security in Java Platform. Perchè Sicurezza in Java? A chi interessa la sicurezza in Java? Panoramica su Java. Panoramica su Java Parte I: Contenuti Security in Java Platform L Architettura di sicurezza di Java Parte I Architettura di sicurezza di base in Java I modelli di sicurezza in JDK 1.0, 1.1 Il modello sandbox L architettura

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

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

Concetti base di sicurezza informatica. Concetti base di sicurezza

Concetti base di sicurezza informatica. Concetti base di sicurezza Concetti base di sicurezza informatica Antonio Lioy < lioy @ polito.it > Politecnico di Torino Dip. Automatica e Informatica Sicurezza di canale autenticazione (singola o mutua), integrità e segretezza

Dettagli