Crittografia & Java Cryptographic. Architecture (JCA) A cura di Franzin Michele Settembre 1 Ottobre Java User Group Padova
|
|
|
- Geraldina Nardi
- 10 anni fa
- Просмотров:
Транскрипт
1 Crittografia & Java Cryptographic Settembre 1 Ottobre 2006 Architecture (JCA) A cura di Franzin Michele 1
2 Copyright Quest'opera è protetta dalla licenza Creative Commons Attribution-ShareAlike 2.5; per vedere una copia di questa licenza, consultare: oppure inviare una lettera a: Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. This work is licensed under the Creative Commons Attributionl- ShareAlike 2.5 License; to view a copy of this license, visit: or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. 2
3 Prerequisiti Saper scrivere un programma in Java. Comprendere la cifratura a doppia chiave pubblica-privata. Comprendere il concetto di firma digitale. 3 Comprendere il concetto di impronta di un messaggio.
4 Obiettivi Acquisire nozioni basilari di crittografia Conoscere la Java Cryptographic Architecture (JCA) Saper implementare meccanismi di sicurezza in Java 4
5 Sommario Vengono introdotti i concetti basilari della crittografia, con particolare riferimento a chiavi, algoritmi, cifratura asimmetrica, cifratura asimmetrica, decifratura, digest e firma. Viene discussa la Java Cryptographic Architecture (JCA) per l'implementazione della sicurezza e la Java Cryptographic Extension (JCE) con le relative classi. Vengono presentate implementazioni in Java: impronta di un messaggio, firma digitale, cifrario a chiave simmetrica. 5
6 La crittografia La crittografia è un particolare processo grazie al quale, per mezzo di sofisticati algoritmi, è possibile trasformare una sequenza di byte con senso logico (messaggio) in un altra del tutto incomprensibile. Scopo della crittografia è consentire la trasmissione di un messaggio in forma non intelleggibile ad altri che non sia il destinatario inteso, che deve essere il solo a poterne capire il significato. La trasformazione avviene grazie ad una chiave: solo chi possiede la chiave per aprire e chiudere il messaggio potrà criptare e decriptare il messaggio. 6
7 Gli elementi Il metodo tramite il quale, dato un messaggio in chiaro, si produce il corrispondente messaggio cifrato viene chiamato algoritmo di cifratura. L algoritmo deve garantire una proprietà fondamentale: dalla versione cifrata del messaggio deve essere impossibile risalire al messaggio originale che l'ha generata. 7
8 Algoritmi e chiavi Non è possibile, anzi è spesso inutile e controproducente, basare la sicurezza della comunicazione sulla segretezza dell'algoritmo. Al contrario, l'algoritmo in sé può anche essere pubblico: l'importante è che possa essere in qualche modo "personalizzato" volta per volta, per uno specifico messaggio da cifrare. Per questo motivo si distingue fra algoritmo di cifratura, che è quasi sempre pubblico e non varia da un messaggio all'altro, e la chiave, che invece varia spesso, e serve a "personalizzare" caso per caso l'algoritmo. Grazie a questa "personalizzazione", lo stesso messaggio, cifrato con uno stesso algoritmo di cifratura ma con chiavi diverse, produce messaggi cifrati completamente diversi. 8
9 Uno sguardo all interno... Dunque, indicando con M il messaggio in chiaro, A l'algoritmo di cifratura (pubblico), e K la chiave, il messaggio cifrato M C può essere espresso come M C = A(M, K) Per decifrare il messaggio, il destinatario dovrà effettuare l'operazione inversa, che, in generale, richiede di conoscere l'algoritmo A (o la sua controparte di decifratura A', da considerarsi egualmente nota) e la chiave usata per la cifratura: M = A' (M C, K) 9
10 ... ma funziona? Il solo modo per decifrare il messaggio M C senza conoscere la chiave K, consiste nel "provare" tutte le chiavi possibili. Per questo motivo, l utilizzo di chiavi sempre più lunghe (40 bit, 64 bit, 128 bit...) aumenta enormemente il numero di chiavi possibili e rende quindi lunghissime le ricerche esaustive necessarie per "rompere" la cifratura, pur usando molti moderni computer. Peraltro, dato il continuo aumento di potenza di questi ultimi, chiavi ritenute sicure ieri (es. 40 bit) possono essere ritenute insicure oggi. Esistono molti algoritmi, con caratteristiche diverse: in tutti i casi la robustezza dipende direttamente dalla lunghezza della chiave K. 10
11 Algoritmi a chiave simmetrica ed asimmetrica Un algoritmo di cifratura si dice a chiave simmetrica quando la stessa chiave K viene usata sia per la cifratura, sia per la successiva decifratura. Un algoritmo è a chiave asimmetrica quando cifratura e decifratura richiedono due chiavi diverse. Le chiavi sono spesso "imparentate". 11
12 Algoritmi a chiave asimmetrica Gli algoritmi a chiave simmetrica sono semplici da realizzare, relativamente efficienti e quindi assai diffusi: fra i più noti vi sono il DES (Data Encryption Standard), triple-des, IDEA, ecc. Sfortunatamente, la chiave non può essere trasmessa come un normale messaggio, in quanto essa stessa potrebbe essere intercettata, e ciò renderebbe inutile la cifratura del messaggio. Perché questo schema funzioni occorre dunque che la chiave possa essere inviata dal mittente al destinatario in qualche altro modo. 12
13 Crittazione simmetrica 13
14 Algoritmi a chiave asimmetrica Sebbene con gli algoritmi a chiave asimmetrica la chiave di cifratura non debba essere trasmessa, occorre comunque che il destinatario "conosca" in qualche modo l'altra chiave, quella di decifratura. Questo problema è stato risolto da una particolare categoria di algoritmi a chiave asimmetrica, noti come algoritmi basati su chiave pubblica e chiave privata. Non esistono a priori una chiave per cifrare e una chiave per decifrare: semplicemente, se una delle due chiavi viene usata per cifrare, occorre l'altra per decifrare. 14
15 Chiave asimmetriche Le due chiavi sono dunque perfettamente intercambiabili: tuttavia, la conoscenza della chiave usata per cifrare non è di alcuna utilità per decifrare, in quanto per farlo occorre l'altra chiave. L'algoritmo è strutturato matematicamente in modo che da una chiave sia impossibile risalire all'altra; in questo modo si supera il problema della trasmissione della chiave che affliggeva gli algoritmi a chiave simmetrica. Chiaramente, la potenza di questo schema sta nel non richiedere la trasmissione "sicura" della password - anzi, una delle due è talmente poco sicura da poter essere pubblicata. 15
16 Crittazione asimmetrica 16
17 Identificare il destinatario Se A vuole inviare un messaggio a B con la certezza che solo B lo possa leggere, basta che lo cripti usando la chiave pubblica di B (che è disponibile proprio in quanto pubblica: si può pensare di recuperarla da appositi elenchi, non diversi dagli elenchi telefonici). Dopo di ciò, solo B potrà leggere il messaggio cifrato, in quanto è il solo a disporre della chiave privata necessaria per la decifratura. Chiunque intercetti il messaggio non potrà decifrare nulla, neppure procurandosi la chiave pubblica di B (che pure è disponibile), in quanto quest'ultima è incapace di decifrare un messaggio da lei stessa cifrato. NB: B non può avere alcuna certezza che l'autore del messaggio sia proprio A: infatti, chiunque può prendere la chiave pubblica di B e inviargli un messaggio. 17
18 Indentificare il mittente Se A vuole inviare un messaggio a B con la certezza che sia stato mandato da A, basta che lo cifri usando la sua chiave privata (di A). In questo modo, chiunque potrà leggere il messaggio cifrato (perché la chiave pubblica di A necessaria per la decifratura è liberamente disponibile), ma nel farlo avrà anche la certezza che solo A può esserne l'autore, in quanto solo A poteva conoscere la chiave privata di A che certamente è stata usata per la cifratura. Questa certezza deriva dal fatto che il messaggio si decifra con la chiave pubblica di A. 18
19 Comunicazioni private 19 Se A vuole inviare un messaggio a B con la certezza che solo B lo possa leggere e inoltre comprovando che l'autore è proprio A. Il messaggio M verrà cifrato una prima volta usando la chiave privata di A, e subito dopo una seconda volta usando la chiave pubblica di B (l'ordine di questi due passaggi è irrilevante). Ovviamente, tale messaggio è incomprensibile per chiunque lo intercetti. Ma soprattutto, per ricostruire il messaggio in chiaro B dovrà decifrare due volte il messaggio ricevuto: una prima volta usando la sua chiave privata (e ciò fa sì che solo B possa leggere il messaggio), e poi una seconda usando la chiave pubblica di A (il che comprova che proprio A ne è l'autore).
20 Digest di messaggi Un DIGEST (o hash) di un messaggio è una particolare versione cifrata del messaggio, caratterizzata dal fatto di avere dimensione fissa indipendente dalla dimensione del messaggio originale. Gli algoritmi usati per calcolare il digest devono assicurare che sia "estremamente improbabile" che due messaggi diversi possano condurre alla medesima impronta. Grazie a questa proprietà, i digest possono essere usati per identificare in modo certo e univoco i dati del messaggio, di cui costituiscono a tutti gli effetti una sorta di "impronta digitale". Questa tecnica è spesso usata per "garantire l'autenticità" di oggetti, nel senso di assicurare chi li riceve che essi non sono stati alterati. 20
21 Signature di messaggi Una SIGNATURE (o firma) di un messaggio è una stringa cifrata, spesso relativamente corta e di lunghezza fissa, ottenuta dal messaggio originale tramite un algoritmo e una chiave (privata). Questa stringa viene usata per firmare i dati: a tale scopo è solitamente trasmessa insieme ai dati da cui è stata ricavata e di cui costituisce la firma digitale. Tale firma può poi essere verificata (tipicamente dal destinatario) applicando ai dati e alla firma ricevuta l'algoritmo di verifica, unitamente alla chiave pubblica del mittente. 21
22 L'architettura crittografica di Java (JCA) E ispirata a due principi: Indipendenza dall'implementazione e interoperabilità Estendibilità e indipendenza degli algoritmi Tradotti nei seguenti criteri: Una engine class è una classe che definisce le funzionalità di un dato tipo di algoritmo crittografico, senza però fornire alcuna implementazione (classi astratte). Ad esempio, MessageDigest, Signature e KeyPairGenerator sono tre diverse engine class, e definiscono rispettivamente le funzionalità attese dagli algoritmi di tipo Message Digest, Signature, e Generatori di coppie di chiavi. Un provider ("fornitore") è un package che fornisce l'implementazione concreta di un certo insieme di funzionalità crittografiche. Più provider, di diversi produttori, possono coesistere e interoperare. 22
23 JCA & JCE L'architettura crittografica di Java in versione base (JCA) definisce quindi il framework generale per la crittografia, lasciando alla Java Cryptographic Extension (JCE) il compito di fornire l'implementazione completa delle funzionalità di cifratura e decifratura. La JCE della Sun non è esportabile fuori dagli USA! Date le restrizioni all'esportazione di codice crittografico in forma binaria dagli USA, il codice standard Sun per la Java Security e per la Java Cryptographic Extension non può essere esportato (né scaricato via Internet!) dagli Stati Uniti. Occorre procurarsi librerie equivalenti prodotte in Europa (o comunque fuori dagli USA), come Cryptix (Internazionale) e IAIK (Austria). 23
24 Security Provider Il provider di default si chiama SUN, ed è built-in nel JDK. Perciò, un provider potrebbe fornire, ad esempio, una implementazione dell'algoritmo DSA (Digital Signature Algorithm) e/o dell' RSA Cryptosystem. Un programma può chiedere genericamente una implementazione di un dato algoritmo (senza curarsi di quale provider la fornisca) o, invece, specificare il provider desiderato. Ogni JDK può avere uno o più provider installati: altri possono essere aggiunti dinamicamente, tramite il metodo Security.addProvider() 24
25 L'architettura Programma Java che usa la criptazione Programma Java che usa la firma digitale API Java Cryptographic Extension Layer SPI Cryptographic Service Provider #1 Cryptographic Service Provider #2 Cryptographic Service Provider #3 25
26 Funzionalità fornite dalla JCA Nella general release della JCA, sono fornite le classi Provider e Security le engine class MessageDigest, Signature, KeyPairGenerator le classe Key e le classi collegate Pertanto, con tali funzionalità di base si possono solo calcolare impronte di messaggi e firme digitali di messaggi, usando coppie di chiavi pubblica/privata. Non è invece possibile, senza un provider JCE, cifrare e decifrare messaggi in modo completo (con algoritmi più o meno noti, quali ad esempio DES, IDEA, ecc). Algoritmi supportati: MessageDigest supporta gli algoritmi SHA-1, MD2, MD5 Signature supporta gli algoritmi DSA e RSA-based (quest'ultimo con SHA-1, MD2 o MD5) KeyPairGenerator supporta gli algoritmi di generazione per DSA e RSA 26
27 Casi d uso 2) Calcolo dell'impronta digitale di un messaggio. 4) Generazione di una coppia di chiavi pubblica/privata e suo uso in una Signature. 6) Creazione di un Cipher per cifrare un messaggio (algoritmo a chiave simmetrica). 27
28 Calcolo dell'impronta digitale di un messaggio Si crea un oggetto MessageDigest specializzato per un dato algoritmo (fra quelli supportati). Si forniscono i dati da processare tramite il metodo update(): un messaggio fatto di più dati può essere trattato tutto insieme, dopo aver inserito tutti i dati nell'oggetto MessageDigest tramite successive invocazioni di update(). Si produce l'impronta col metodo digest(). 28
29 Inizializzazione import java.security.*; class Hashing { public static void main(string args[]){ MessageDigest sha = null; try { // fa creare un nuovo oggetto MessageDigest // specializzato per l'algoritmo richiesto // (SHA = Secure Hash Algorithm) sha = MessageDigest.getInstance("SHA-1"); } catch (NoSuchAlgorithmException e) { System.out.println("Algoritmo richiesto non + supportato"); } 29
30 Generazione dell impronta byte[] messaggio1a = {10,20,30,40,50}; byte[] messaggio1b = {60,70,80,90}; sha.update(messaggio1a); sha.update(messaggio1b); // hash è messaggio1a + messaggio1b cifrato byte[] hash1 = sha.digest(); // più rapido, per un messaggio singolo byte[] messaggio2 = {71,72,73,74,75,76,77,78,79,80}; byte[] hash2 = sha.digest(messaggio2); } System.out.println("Digest di messaggio1 (a+b): " + hash1); System.out.println("Digest di messaggio2: " + hash2); } 30
31 31 Generazione di una coppia di chiavi e uso in una Signature Generazione della coppia di chiavi si crea un oggetto KeyPairGenerator specializzato per un dato algoritmo (fra quelli supportati) lo si inizializza con un seme casuale ( SecureRandom) gli si fa generare una coppia di chiavi (pubblica e privata) si recuperano singolarmente le due chiavi (due oggetti di tipo PublicKey e PrivateKey) Generazione della firma si crea un oggetto Signature specializzato per un dato algoritmo (fra quelli supportati) lo si inizializza con la chiave privata ( initsign()) gli si forniscono i dati da firmare ( update() ) gli si fa generare la firma ( sign() ) Verifica della firma si re-inizializza l'oggetto Signature con la chiave pubblica ( initsign() ) gli si forniscono i dati da verificare ( update() ) gli si fa verificare la firma ( verify() )
32 Generazione chiavi pubblica & privata public static void main(string args[]){ KeyPairGenerator gen = null; try { // DSA = Digital Signature Algorithm gen = KeyPairGenerator.getInstance("DSA"); } catch (NoSuchAlgorithmException e1) { System.out.println("Algoritmo non supportato"); System.exit(1); } // Chiavi modulo 1024 bit, seme definito da Java gen.initialize(1024, new SecureRandom( )); // coppia di chiavi pubblica/privata KeyPair kp = gen.generatekeypair(); // recupera le due chiavi, pubblica e privata PrivateKey kpriv = kp.getprivate(); PublicKey kpub = kp.getpublic(); 32
33 Generazione signature Signature s = null; try { // genera un nuovo oggetto Signature... s = Signature.getInstance("DSA"); } catch (NoSuchAlgorithmException e2) { System.out.println("Algoritmo non supportato"); System.exit(2); } try { //... e lo inizializza con la chiave privata s.initsign(kpriv); } catch (InvalidKeyException e3) { System.out.println("Chiave privata non valida"); System.exit(3); } 33
34 Generazione della firma byte[] data = {10,20,30,40,50,60,70,80,90}; byte[] firma = null; try { s.update(data); // firma contiene la versione firmata di data firma = s.sign(); } catch (SignatureException e4) { System.out.println("Firma non valida"); System.exit(4); } System.out.println("Dati: " + data); System.out.println( Firma: " + firma); 34
35 Verifica della firma try { // inizializza la Signature con la chiave di decifratura s.initverify(kpub); } catch (InvalidKeyException e5) { System.out.println("Chiave pubblica non valida"); System.exit(5); } boolean res = false; try { // verifica la firma s.update(data); res = s.verify(firma); } catch (SignatureException e6) { System.out.println("Firma non valida in Signature"); System.exit(6); } System.out.println("Esito della verifica: " + res); 35
36 Creazione di un Cipher per cifrare un messaggio 1 Creazione e installazione del provider IAIK si crea un nuovo oggetto provider IAIK e lo si aggiunge all'elenco gestito dalla classe Security Generazione della chiave appropriata per l'algoritmo richiesto si crea un oggetto KeyGenerator specializzato per un dato algoritmo (fra quelli supportati), precisando il provider desiderato (IAIK) lo si inizializza con un seme casuale (un oggetto SecureRandom) gli si fa generare la chiave richiesta (restituisce un oggetto di tipo SecretKey) si recupera la chiave (un oggetto di tipo SecretKey) 36
37 Creazione di un Cipher per cifrare un messaggio 2 37 Creazione del Cipher e generazione del messaggio cifrato si crea un oggetto Cipher specializzato per un dato algoritmo (fra quelli supportati), precisando altresì il provider richiesto (IAIK) lo si inizializza in modalità ENCRYPT con la chiave segreta (in IAIK- JCE, tramite init(); altre specifiche prevedono invece che tale metodo si chiami initencrypt()) gli si fa generare la versione cifrata del messaggio (in IAIK-JCE, tramite dofinal(); altre specifiche prevedono invece che tale metodo si chiami crypt()) Decifratura del messaggio e verifica del risultato si re-inizializza l'oggetto Cipher con la medesima chiave segreta, ma in modalita' DECRYPT (in IAIK-JCE, tramite init(); altre specifiche prevedono invece che tale metodo si chiami initdecrypt()) gli si fa decifrare il messaggio (in IAIK-JCE, tramite dofinal(); altre specifiche prevedono invece che tale metodo si chiami decrypt())
38 Creazione del provider import java.security.*; import javax.crypto.*; import iaik.security.provider.*; class Simmetrica { static void printbytes(string name, byte[] b){ System.out.print(name + ": "); for (int i=0; i<b.length; i++) System.out.print(b[i] + " "); System.out.println(""); System.out.println(" "); } public static void main(string args[]){ IAIK provider = new IAIK(); Security.addProvider(provider); 38
39 Generazione chiave KeyGenerator gen = null; try { gen = KeyGenerator.getInstance("DES","IAIK"); } catch (NoSuchAlgorithmException e1) { System.out.println("Algoritmo non supportato"); System.exit(1); } catch (NoSuchProviderException e1) { System.out.println("Provider non supportato ); System.exit(1); } gen.init(new SecureRandom()); // Sun: gen.initialize() Key k = gen.generatekey(); Cipher des = null; byte[] data = {10,20,30,40,50,60,70,80}; byte[] datak = null, newdata = null; 39
40 Cifratura e decifratura // Creazione Cifrario des = Cipher.getInstance("DES","IAIK"); // Inizializzazione per cifratura des.init(cipher.encrypt_mode, k); // Sun: des.initencrypt(k); // Cifratura datak = des.dofinal(data); // Sun: datak = des.crypt(data); // Inizializzazione per decifratura des.init(cipher.decrypt_mode, k); // Sun: des.initdecrypt(k); // Decifratura newdata = des.dofinal(datak); // Sun: newdata = des.crypt(datak); 40
41 Verifica boolean res = true; if (data.length!= newdata.length) res = false; else for (int j=0; j<data.length; j++) if (data[j]!= newdata[j]) { res = false; break; } System.out.println("Esito della verifica: " + res); 41
42 Risorse Java Cryptography Architecture (JCA) curity/cryptospec.html Java Cryptographic Extension (JCE) curity/jce/jcerefguide.html The IAIK Java Cryptographic Extension Cryptix toolkit Bouncy Castle 42
43 Informazioni sul JUG Padova Sito Web Mailing List Persone di riferimento Dario Santamaria Lucio Benfante Paolo Donà 43
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
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
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
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
Informatica per la comunicazione" - lezione 13 -
Informatica per la comunicazione" - lezione 13 - Funzionamento di una password" 1: l utente tramite il suo browser richiede l accesso a una pagina del server; 2: il server richiede il nome utente e la
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
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
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,
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
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: [email protected] Web http://www.quasar.it Documento Elettronico (D.E.) Un documento
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
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Introduzione versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: C# versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
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
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano [email protected] http://www.cefriel.it/~cerri/
POLITECNICO DI MILANO CEFRIEL - Politecnico di Milano [email protected] http://www.cefriel.it/~cerri/ è un cifrario a flusso progettato da Ron Rivest (la R di RSA) nel 1987. Era un segreto commerciale della
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
Analisi di programmi: Crittografia
Analisi di programmi: Crittografia Come caso concreto di sistema, proviamo ad abbozzare e a vedere una prima implementazione di un sistema di crittografia a chiave pubblica La crittografia studia le tecniche
Sicurezza a livello IP: IPsec e le reti private virtuali
Sicurezza a livello IP: IPsec e le reti private virtuali Davide Cerri Sommario L esigenza di proteggere l informazione che viene trasmessa in rete porta all utilizzo di diversi protocolli crittografici.
Documenti cartacei e digitali. Autenticità. Cosa si vuole garantire? Riservatezza. Integrità 11/12/2012. PA digitale: documenti e firme (I.
Università degli studi di Catania Pubblica Amministrazione digitale Elementi tecnici sulla firma digitale Ignazio Zangara Agatino Di Bella Area della Formazione Gestione dell archivio (novembre dicembre
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
La firma digitale e le sue possibili applicazioni
Il documento informatico e la firma digitale nelle applicazioni pratiche La firma digitale e le sue possibili applicazioni dott. Enrico Zimuel ([email protected]) Pescara, 15 febbraio 2008 Centro Studi
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
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 [email protected] 11 novembre 2008 Crittografia asimmetrica:
PEC un obbligo che semplifica
PEC un obbligo che semplifica Obbligatorietà della PEC. Risvolti organizzativi e opportunità per lo studio professionale STEFANO STRINGA Ordine Dottori Commercialisti e Esperti Contabili di Mantova Da
Corso di ARCHITETTURA DEI SISTEMI INFORMATIVI - Prof. Crescenzio Gallo. 114 Sistemi informativi in rete e sicurezza 4.6
Approcci al problema della sicurezza 114 Sistemi informativi in rete e sicurezza 4.6 Accessi non autorizzati Hacker: coloro che si avvalgono delle proprie conoscenze informatiche e di tecnologia delle
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
MANUALE D USO JAVA. Sezione3 Ricarica e aggiornamento di TAAC. Copyright 2011 - All rights reserved.
MANUALE D USO JAVA Sezione3 Ricarica e aggiornamento di TAAC Copyright 2011 - All rights reserved. Manuale d uso versione 2.10-beta - Copyright 2011 - All rights reserved Introduzione Questo manuale è
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
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
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
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
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,
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
e-government La Posta Elettronica Certificata
Creare un canale preferenziale di contatto tra lo Stato e il cittadino attraverso la forza di internet La Posta Elettronica Certificata Francesco Cipollone [email protected] La Posta Elettronica
Algoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
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
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
Modulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
! 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
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
Programmazione in Java Parte I: Fondamenti
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice
Capitolo 4 Pianificazione e Sviluppo di Web Part
Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,
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
MANUALE DI INSTALLAZIONE CERTIFICATO DIGITALE PER LA SICUREZZA CERTIFICATION AUTHORITY DEL SISTEMA PIEMONTE
Pag.1 di 22 PER LA SICUREZZA CERTIFICATION AUTHORITY DEL SISTEMA PIEMONTE Pag.2 di 22 INDICE 1. PREMESSE...3 2. VERIFICA DELLA VERSIONE CORRETTA DEL BROWER...3 3. INSTALLAZIONE DI CERTIFICATI CON NETSCAPE
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
La CASSAFORTE DIGITALE per
La CASSAFORTE DIGITALE per DOCUMENTI PROTETTI La Soluzione per la Piccola Media Impresa La realtà operativa delle Piccole e Medie Imprese italiane è caratterizzata dalla produzione e dalla consultazione
Università degli Studi di Padova Centro di Calcolo di Ateneo
Università degli Studi di Padova Centro di Calcolo di Ateneo GeBeS Abilitazione Guida rapida all uso Versione del 29 aprile 2011 Sommario Descrizione generale del modulo GeBeS Abilitazione... 2 La funzione
Android Security Key Management. Roberto Gassirà ([email protected]) Roberto Piccirillo ([email protected])
Roberto Gassirà ([email protected]) Roberto Piccirillo ([email protected]) Roberto Piccirillo Senior Security Analyst - Mobile Security Lab Vulnerability Assessment (IT, Mobile Application)
Progettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002
Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE
Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza
Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza Prof. Massimiliano Sala MINICORSI 2011. Crittografia a chiave pubblica: oltre RSA Università degli Studi di Trento, Lab di Matematica
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
La Firma Digitale. Manuale d uso Fornitore. Introduzione alla Firma Digitale. Aprile 2015
Manuale d uso Fornitore Introduzione alla Firma Digitale Cenni generali sulla Firma Digitale La firma digitale può essere definita come un sistema di autenticazione di documenti digitali tale da garantire
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
Scambio delle chiavi. mercoledì 7 dicembre 2011
Scambio delle chiavi 1 mercoledì 7 dicembre 2011 Distribuzione della chiave Dati due terminali A e B, si possono avere varie alternative per la distribuzione delle chiavi. 1. A sceglie una chiave e la
Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica)
Crittografia asimmetrica (a chiave pubblica) Problemi legati alla crittografia simmetrica Il principale problema della crittografia simmetrica sta nella necessità di disporre di un canale sicuro per la
Vendere online. Andrea Marin. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO
Andrea Marin Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO a.a. 2013/2014 Section 1 Introduzione Parliamo di acquisti online quando a seguito
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
Esercizio 1: trading on-line
Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente
Corso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
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
Database. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE
1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma
Strutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
Soluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
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
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
Firma HSM. A cura di: Enrico Venuto. Politecnico di Torino Coordinatore sicurezza informatica di ateneo
Firma HSM A cura di: Enrico Venuto Politecnico di Torino Coordinatore sicurezza informatica di ateneo Politecnico di Torino 23 novembre 2012 Firma digitale Firma digitale La firma digitale fa uso di un
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
POSTA ELETTRONICA CERTIFICATA
POSTA ELETTRONICA CERTIFICATA White paper Lorenzo Braidi SOMMARIO Premessa...2 Gli attori...2...2 Mittente e destinatario...3 Il servizio...3 Processo standard...4 Processo a gestore unico...4 Eccezioni...4
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.
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
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
MODALITA DI REGISTRAZIONE
MODALITA DI REGISTRAZIONE Oltre all Amministratore, ci sono cinque diversi tipi di utenti del Registro: - gli Operatori, le Organizzazioni e i singoli Individui, che devono registrarsi per aprire un conto
Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
www.privacyblack.com BLACK si distingue da qualsiasi altro servizio criptato.
www.privacyblack.com BLACK si distingue da qualsiasi altro servizio criptato. TERMINALE CRIPTATO BLACK La premessa Ogni possessore di un terminale BLACK sarà identificato da un numero interno personale
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
POSTA ELETTRONICA (TRADIZIONALE e CERTIFICATA) FIRMA DIGITALE PROTOCOLLO INFORMATICO. Maurizio Gaffuri 11 ottobre 2007
POSTA ELETTRONICA (TRADIZIONALE e CERTIFICATA) FIRMA DIGITALE PROTOCOLLO INFORMATICO Maurizio Gaffuri 11 ottobre 2007 1 POSTA ELETTRONICA TRADIZIONALE e POSTA ELETTRONICA CERTIFICATA 2 POSTA ELETTRONICA
Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing
Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Informatica 3 Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su
SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE
SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software
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
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
FIRMA DIGITALE Cos'è e come funziona
FIRMA DIGITALE Cos'è e come funziona Maurizio Giungato Firma digitale Cosa NON E' Cosa E' A cosa serve Come funziona Tipologie di firma Altre applicazioni (cifratura dei documenti) Firma digitale: cosa
LA SICUREZZA INFORMATICA IN AMBITO INTERNET. Posta elettronica sicura: certificati personali
Posta elettronica sicura: certificati personali Un certificato è un documento digitale che consente di verificare l'identità di una persona o un sito Web I certificati vengono rilasciati da società denominate
RETI E SOTTORETI. Copyright 2010 Marco Salatin Pagina 1
RETI E SOTTORETI Copyright 2010 Marco Salatin Pagina 1 COME CREARE UNA RETE DI COMPUTER Le maschere di rete Una maschera è uno schema usato per filtrare precisi caratteri o numeri da stringhe di caratteri
TRASMISSIONE DI DATI VIA INTERNET
TRASMISSIONE DI DATI VIA INTERNET 2.0 1 11 Sommario SOMMARIO...2 1. STORIA DELLE MODIFICHE...3 2. TRASMISSIONE DATI VIA INTERNET...4 2.1 SCOPO DEL DOCUMENTO...4 2.2 INTRODUZIONE...4 3. FORMATO DEI DOCUMENTI...5
MANUALE D USO BB. Sezione3 Ricarica e aggiornamento di TAAC. Versione per BlackBerry. Copyright 2011 - All rights reserved.
MANUALE D USO BB Sezione3 Ricarica e aggiornamento di TAAC Copyright 2011 - All rights reserved. Versione per BlackBerry Manuale d uso versione 2.10-beta - Copyright 2011 - All rights reserved Introduzione
Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop
i Il Gestore Eventi di OpenSPCoop ii Copyright 2005-2011 Link.it srl iii Indice 1 Introduzione 1 2 Configurazione di un Servizio SPCoop come Evento gestito dal GE 2 3 Configurazione di un Pubblicatore
Java Security Extensions(J2SE)
Università degli Studi di Bologna IIª Facoltà di Ingegneria - Cesena Anno Accademico 2010/2011 OUTLINE Java Security Extensions(J2SE) Prof. Enrico Denti Dipartimento di Elettronica, Informatica e Sistemistica
