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 enrico.denti@unibo.it 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 ( 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

Progetto di Sicurezza

Progetto di Sicurezza UNIVERSITÀ DI CATANIA DIPARTIMENTO DI MATEMATICA E INFORMATICA CORSO DI LAUREA IN INFORMATICA, SECONDO LIVELLO Progetto di Sicurezza Implementazione di una demo che permetta di eseguire crittografia con

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

Security Model (Java 1.0) Security Model (Java 1.1)

Security Model (Java 1.0) Security Model (Java 1.1) Introduzione alla sicurezza in Java Sicurezza dell Informazione L-M AA 2009-2010 Anna Riccioni anna.riccioni@unibo.it Java è una piattaforma sicura Linguaggio nato per: applicazioni multipiattaforma applicazioni

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

Programmazione avanzata Java e C. Crittografia

Programmazione avanzata Java e C. Crittografia Programmazione avanzata Java e C Crittografia ü JCA o Java Cryptography Architecture è il framework java per la crittografia che fa parte della API di sicurezza di Java, ed è stato introdotto nei pacchetti

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

Tecnologie per la Sicurezza L-S AA Anna Chiara Bellini o.unibo.it

Tecnologie per la Sicurezza L-S AA Anna Chiara Bellini o.unibo.it Tecnologie per la Sicurezza L-S AA 2012-2013 Anna Chiara Bellini annachiara.bellini@studi o.unibo.it Dalla versione 1.4 di Java: integrazione in Java 2 Security Platform di Java Cryptography Architecture

Dettagli

Introduzione alle esercitazioni

Introduzione alle esercitazioni Introduzione alle esercitazioni Sicurezza dell Informazione M A.A. 2011-2012 Anna Riccioni anna.riccioni@unibo.it Pagina web del laboratorio di Sicurezza - M http://lia.deis.unibo.it/courses/sicurezzam1112/

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

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

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

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

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

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

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

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

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

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

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

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

! 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

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. SISTEMI E RETI Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. CRITTOGRAFIA La crittografia è una tecnica che si occupa della scrittura segreta in codice o cifrata

Dettagli

SETEFI. Marco Cantarini, Daniele Maccauro, Domenico Marzolla. 19 Aprile 2012

SETEFI. Marco Cantarini, Daniele Maccauro, Domenico Marzolla. 19 Aprile 2012 e VIRTUALCARD 19 Aprile 2012 e VIRTUALCARD Introduzione Il nostro obiettivo é quello di illustrare la struttura e le caratteristiche di fondo che stanno alla base delle transazioni online operate tramite

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 informatica. Sistema di voto elettronico

Crittografia e sicurezza informatica. Sistema di voto elettronico Crittografia e sicurezza informatica Sistema di voto elettronico Deliano Perfetti Gabriele Paone Anno 2003 1 indice 1. Specifiche 2 2. Scelte progettuali 2 Schema Server Authority Server di Voto Client

Dettagli

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Avviso di mancata consegna L avviso, emesso dal sistema, per indicare l anomalia

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

PkBox Client Smart API

PkBox Client Smart API 19 aprile 2013 Le informazioni contenute in questo documento sono da considerarsi CONFIDENZIALI e non possono essere utilizzate o riprodotte - sia in parte che interamente - senza un permesso scritto rilasciato

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

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

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

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

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

Firma Digitale. dott. Andrea Mazzini

Firma Digitale. dott. Andrea Mazzini Firma Digitale dott. Andrea Mazzini La Crittografia La prima persona che usò la crittografia fu Giulio Cesare! Egli doveva inviare messaggi ma non si fidava dei messaggeri, così inventò un metodo per codificare

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

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

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

FAQ per l utilizzo della piattaforma tecnologica KEP (Key Exchanger Platform)

FAQ per l utilizzo della piattaforma tecnologica KEP (Key Exchanger Platform) FAQ per l utilizzo della piattaforma tecnologica KEP (Key Exchanger Platform) 1. Che cos è KEP? E una Piattaforma Web Centralizzata multi-utente e multi-account composta, a seconda delle versioni, di un

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

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

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

DURC Client 4 - Guida configurazione Firma Digitale. DURC Client 4.1.7

DURC Client 4 - Guida configurazione Firma Digitale. DURC Client 4.1.7 DURC Client 4.1.7 Guida configurazione firma digitale Attenzione: Per poter utilizzare la firma digitale con il Durc Client dalla versione 4.1.7 e successive è necessario riconfigurare la procedura di

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

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

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

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

Protezione della posta elettronica mediante crittografia

Protezione della posta elettronica mediante crittografia Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Politecnico di Milano Protezione della posta elettronica mediante crittografia Davide Cerri CEFRIEL - Area e-service e Technologies

Dettagli

Esercitazione 2 Certificati

Esercitazione 2 Certificati Sommario Esercitazione 2 Certificati Laboratorio di 2015/2016 Andrea Nuzzolese Certificati Descrizione esercitazione Free Secure Email Certificates (con InstantSSL) ALMA MATER STUDIORUM UNIVERSITA DI BOLOGNA

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

Esercitazione 02. Sommario. Un po di background (1) Un certificato digitale in breve. Andrea Nuzzolese

Esercitazione 02. Sommario. Un po di background (1) Un certificato digitale in breve. Andrea Nuzzolese Sommario Esercitazione 02 Andrea Nuzzolese Certificati Descrizione esercitazione Free Secure Email Certificates (con InstantSSL) ALMA MATER STUDIORUM UNIVERSITA DI BOLOGNA Un certificato digitale in breve

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

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: aspetti tecnologici e normativi. Milano,

Firma digitale: aspetti tecnologici e normativi. Milano, Firma digitale: aspetti tecnologici e normativi Milano, Premessa digitale Il presente documento ha la finalità di supportare le Amministrazioni che intendono dotare il proprio personale di digitale, illustrando

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

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio

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

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

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

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

Meccanismi di autenticazione sicura. Paolo Amendola GARR-CERT

Meccanismi di autenticazione sicura. Paolo Amendola GARR-CERT Meccanismi di autenticazione sicura Paolo Amendola GARR-CERT Argomenti Crittografazione del traffico Identita digitali One-time passwords Kerberos Crittografazione del traffico Secure Shell SASL SRP sftp

Dettagli

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724)

Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Procedo con un esempio: voglio proteggere una applicazione (nell esempio Blocco Note di Windows: notepad.exe) per distribuirla con

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

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

IPSec VPN Client VPN vs serie ZyWALL con PSK e Certificati digitali

IPSec VPN Client VPN vs serie ZyWALL con PSK e Certificati digitali IPSec VPN Client VPN vs serie ZyWALL con PSK e Certificati digitali Il seguente documento mostra come configurare e gestire una VPN fatta attraverso il Client IPSec ZyXEL e la serie ZyWALL Questo documento

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

Sicurezza nelle applicazioni multimediali: lezione 7, sicurezza dei protocolli. Sicurezza dei protocolli (https, pop3s, imaps, esmtp )

Sicurezza nelle applicazioni multimediali: lezione 7, sicurezza dei protocolli. Sicurezza dei protocolli (https, pop3s, imaps, esmtp ) Sicurezza dei protocolli (https, pop3s, imaps, esmtp ) Stack di protocolli nella trasmissione della posta elettronica 2 Sicurezza a livello applicativo Ma l utilizzo di meccanismi di cifratura e autenticazione

Dettagli

Interoperabilità SISTRI Specifiche tecniche per l utilizzo della firma elettronica con il Soft Token PKCS#11

Interoperabilità SISTRI Specifiche tecniche per l utilizzo della firma elettronica con il Soft Token PKCS#11 Interoperabilità SISTRI Specifiche tecniche per l utilizzo della firma elettronica con il Soft Token PKCS#11 Prot. N.: SISTRI-TN_SIS-001 FE Data: 28/09/2010 STORIA DEL DOCUMENTO VER. DATA DESCRIZIONE 1.0

Dettagli

POSTA ELETTRONICA CERTIFICATA

POSTA ELETTRONICA CERTIFICATA POSTA ELETTRONICA CERTIFICATA Questo vademecum ha lo scopo di riassumere i concetti relativi alla PEC. Per approfondimenti e verifiche, si rimanda alla legislazione vigente. 1 COS E ED A COSA SERVE PEC

Dettagli

MANUALE UTENTE Fiscali Free

MANUALE UTENTE Fiscali Free MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato

Dettagli

educanet² - Novità Novembre 2007

educanet² - Novità Novembre 2007 educanet² - Novità Novembre 2007 La nostra piattaforma si arricchisce di ulteriori funzioni. Vi presentiamo in questo documento alcune delle novità. Trovate l elenco completo seguendo il link seguente

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

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili 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 Corso di

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

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

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Quasar Sistemi S.r.l.

Quasar Sistemi S.r.l. La Firma Digitale Quasar Sistemi S.r.l. Via San Leonardo, 52 84131 Salerno Telefono 089.3069802-803 Fax 089.332989 E-Mail: info@quasar.it Web http://www.quasar.it Documento Elettronico (D.E.) Un documento

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

FIRMA DIGITALE RETAIL

FIRMA DIGITALE RETAIL FIRMA DIGITALE RETAIL Guida per l installazione Giugno 2013 Banca Monte dei Paschi di Siena S.p.A. Sommario Avvertenza:... 3 1. FIRMA DIGITALE RETAIL INSTALLAZIONE... 4 Passo 1 installazione del programma

Dettagli

Software Servizi Web UOGA

Software Servizi Web UOGA Manuale Operativo Utente Software Servizi Web UOGA S.p.A. Informatica e Servizi Interbancari Sammarinesi Strada Caiese, 3 47891 Dogana Tel. 0549 979611 Fax 0549 979699 e-mail: info@isis.sm Identificatore

Dettagli

SERVIZIO TELEMATICO ENTRATEL. Applicazione Autentica-Apri Multifile

SERVIZIO TELEMATICO ENTRATEL. Applicazione Autentica-Apri Multifile SERVIZIO TELEMATICO ENTRATEL Applicazione Autentica-Apri Multifile Versione del documento: Novembre 2012 SERVIZIO TELEMATICO ENTRATEL: applicazione Autentica-Apri Multifile 1 1. Premessa 3 2. Cartella

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

Portale Remote Sign Manuale Utente

Portale Remote Sign Manuale Utente Portale Remote Sign Manuale Utente Versione 3.0 Data 18/09/2012 Pagina 2 di 14 Data 18/09/12 Sommario 1. Executive Summary 3 2. Caratteristiche del Servizio 3 3. Richiesta del Certificato 3 4. Accesso

Dettagli

F.A.Q. PROCEDURA SICEANT PER LE COMUNICAZIONI ANTIMAFIA (EX ART 87)

F.A.Q. PROCEDURA SICEANT PER LE COMUNICAZIONI ANTIMAFIA (EX ART 87) F.A.Q. PROCEDURA SICEANT PER LE COMUNICAZIONI ANTIMAFIA (EX ART 87) Raccolta delle problematiche più comuni nell installazione e configurazione della procedura SICEANT Sommario Caratteristiche generali

Dettagli

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress Copyright Andrea Giavara wppratico.com Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress 1. Il pannello amministrativo 2. I dati importanti 3. Creare il database - Cpanel - Plesk

Dettagli