SlideShare a Scribd company logo
1 of 40
Cifrari Asimmetrici
max@mascanc.net
Cifratura asimmetrica
• Rivoluzione nel campo della crittografia: finora abbiamo avuto
permutazioni e sostituzioni
• Problema: come ci si scambia la chiave? Il canale deve essere sicuro!
• DH: «Che scopo ha sviluppare sistemi sistemi crittografici impenetrabili se poi
gli utenti sono costretti a condividere le chiavi con un centro che può essere
violato?»
• La chiave si divide in due: chiave pubblica (conosciuta da tutti) e
chiave privata (conosciuta da me)
Cifratura Asimmetrica
• Fornisce la base per la Firma Digitale
Encryption Authentication
Esempio
• Alice ha la sua coppia di chiavi: < 𝐾𝐴
+
, 𝐾𝐴
−
> (+ pubblica, - privata)
• Bob ha la sua coppia di chiavi: < 𝐾 𝐵
+
, 𝐾 𝐵
−
>
• Se Alice vuol mandare un messaggio a BOB:
• 𝐸 𝐾 𝐵
+ 𝑀 = 𝐶
• Bob lo decifra come
• 𝐷 𝐾 𝐵
− 𝐶 = 𝑀
• Se Alice vuol mandare un messaggio firmato a BOB:
• 𝐸 𝐾 𝐴
− 𝑀 = 𝐶
• Bob lo autentica come
• 𝐷 𝐾 𝐴
+ 𝑀 = 𝐶
Algoritmo di Rivest/Shamir/Adleman
• RSA, l’algoritmo di cifratura asimmetrica più utilizzato
• Schema a blocchi, usa espressione con valori esponenziali.
• 𝐶 = 𝑀 𝑒 𝑚𝑜𝑑 𝑛 e
• 𝑀 = 𝐶 𝑑 𝑚𝑜𝑑 𝑛 = 𝑀 𝑒 𝑑 𝑚𝑜𝑑 𝑛 = 𝑀 𝑒𝑑 𝑚𝑜𝑑 𝑛
• Ovviamente n deve essere conosciuto sia al mittente che al
destinatario. Il mittente conosce il valore di e mentre il destinatorio
conosce il valore di d.
• Chiave Pubblica = {e,n}, Chiave Privata = {e,d}
Toziente
• Funzione definita per ogni intero positivo n come il numero degli
interi compresi fra 1 e n che sono coprimi con n.
• 𝜙 8 = 4 ovvero 1,3,5,7
• Due numeri sono coprimi se non hanno nessun divisore eccetto 1 o -1
Il modulo
• Dato l’insieme N dei numeri interi, si definisce l’operazione di modulo,
che da come risultato il resto della divisione euclidea. Da wiki:
• 13 𝑚𝑜𝑑 3 = 1,
13
3
= 4, 13 − 4 × 3 = 1
• Nota: 3 𝑚𝑜𝑑 4 = 3, ¾ = 0, 3 − 4 × 0 = 3, ∀𝑎 𝑚𝑜𝑑 𝑏 ∶ 𝑎 < 𝑏
• Congruenza:
• 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑛) se 𝑎 − 𝑏 è multiplo di n, o 𝑎 𝑚𝑜𝑑 𝑛 = (𝑏 𝑚𝑜𝑑 𝑛)
• 38 ≡ 14 𝑚𝑜𝑑 12 perché 38-14 = 24, multiplo di 12.
RSA
• Si deve trovare e, d, tale che 𝑀 𝑒𝑑
𝑚𝑜𝑑 𝑛 = 𝑀.
• Siano dati p, q, primi, si ha: 𝜙 𝑝𝑞 = (𝑝 − 1)(𝑞 − 1) quindi
• 𝑒𝑑 𝑚𝑜𝑑 𝜙 𝑛 = 1, quindi (Massimo Comun Divisore è 1)
• 𝑒𝑑 ≡ 1 𝑚𝑜𝑑 𝜙 (𝑛) per cui si ha la relazione ricercata
• 𝑑 ≡ 𝑒−1
𝑚𝑜𝑑 𝜙(𝑛)
RSA
• Lo schema RSA è quindi
p,q, sono due numeri primi Privati e scelti
N = pq Pubblico, calcolato
e, con 𝑀𝐶𝐷 𝜙 𝑛 , 𝑒 = 1 Pubblico, scelto
𝑑 ≡ 𝑒−1
𝑚𝑜𝑑 𝜙(𝑛) Privato, calcolato
CHIAVE PUBBLICA E,n
CHIAVE PRIVATA D,n
Esempio RSA
• Prendiamo due numeri primi: p=17, q=11
• n = pq = 17x11 = 187
• 𝜙 𝑛 = 𝑝 − 1 𝑞 − 1 = 16 × 10 = 160
• Sia e tale che sia primo con 160 e minore di 160: e=7
• Determinare d tale che 𝑑𝑒 ≡ 1 𝑚𝑜𝑑 160 ∶ 𝑑 < 160. d=23,
23x7=161=10x160+1.
• Pubblica: {7,187}, privata {23, 187}
Cifrare un messaggio
• Vogliamo cifrare M=88, per cui 𝐶 = 887 𝑚𝑜𝑑 187
• Con la calcolatrice si ha
887 𝑚𝑜𝑑 187
= 884
𝑚𝑜𝑑 187 × 882
𝑚𝑜𝑑187 × 88 𝑚𝑜𝑑 187 𝑚𝑜𝑑 187 =
88 × 77 × 132 𝑚𝑜𝑑 187 = 894432 𝑚𝑜𝑑 187 = 11
• Si invierà 11
• Per la decrittografia, si calcola
• 1123 𝑚𝑜𝑑 187 = 88
Costi
• Algoritmo MOLTO oneroso
• Solitamente e viene scelto in modo fissato
• Usato per lo scambio di chiavi
OpenSSL
• Ovviamente OpenSSL supporta RSA
• I numeri di aritmetica modulare devono comunque essere scritti su
file
• È stato scelto di usare l’elegante modo Abstract Syntax Notation One
(ASN.1), che definiscono tipi di dato e strutture dati.
• NB: Tutto ciò che è tipato riduce drammaticamente gli errori
• PKCS: Standard che descrivono il tipo di dato usando ASN.1 (chi
conosce PKCS7?)
Esempio: chiave privata RSA
• Rfc3447 (PKCS#1)
RSAPrivateKey ::= SEQUENCE{
version Version,
modulus INTEGER,--n
publicExponent INTEGER,--e
privateExponent INTEGER,--d
prime1INTEGER,--p
prime2INTEGER,--q
exponent1 INTEGER,--d mod (p-1)
exponent2 INTEGER,--d mod (q-1)
coefficient INTEGER,--(inverseof q) mod p otherPrimeInfos OtherPrimeInfos OPTIONAL
}
ASN.1 ha bisogno di codifica
• Il modo in cui i dati vengono scritti su un file cambia la semantica di
lettura
• I più usati sono Distinguished Encoding Rules (DER) e Privacy
Enhanced Mail (PEM)
• Se utilizzerete application servers scritti in Java (e.g., Tomcat, Wildfly)
avrete a che fare con DER, se usate apache e sistemi scritti usando
libssl, avrete a che fare con PEM
• DER: un solo oggetto per file
• PEM: multipli oggetti per file, uno dopo l’altro (base64 encoded)
OpenSSL
• Generare una chiave
max@spirit6 ~/Desktop/Corso PIN/t $ openssl genrsa 128 -out ciao.key
Generating RSA private key, 128 bit long modulus
.+++++++++++++++++++++++++++
....+++++++++++++++++++++++++++
e is 65537 (0x10001)
-----BEGIN RSA PRIVATE KEY-----
MGMCAQACEQDFOIDYOTGA29wSh7KoapvdAgMBAAECEFuVBnfh7zP3lAOwFQkeQeEC
CQDi0TMPPUOnhQIJAN6YeAm9TxZ5AgkAnhueMB1Qr9ECCQCAmQlQZyQX0QIIYkAq
S2nqog8=
-----END RSA PRIVATE KEY-----
OpenSSL
max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsa -in ciao.key -text
Private-Key: (128 bit)
modulus:
00:e9:8b:55:0a:d3:72:5d:f3:4c:c8:19:39:15:e2:
10:67
publicExponent: 65537 (0x10001)
privateExponent:
12:1e:e2:79:55:90:b1:23:52:a7:16:0c:52:e2:32:
01
prime1: 17639276613596174183 (0xf4cb4c9f88415767)
prime2: 17598997053228375809 (0xf43c329390d2df01)
exponent1: 3774288965812581451 (0x3460f7d13eef744b)
exponent2: 3354542795503744001 (0x2e8dbae63dd8b401)
coefficient: 12955549735431208694 (0xb3cb5bd7ca487ef6
OpenSSL
max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsa -in ciao.key -pubout
writing RSA key
-----BEGIN PUBLIC KEY-----
MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRAOmLVQrTcl3zTMgZORXiE
GcCAwEAAQ==
-----END PUBLIC KEY-----
OpenSSL
max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsa -in ciao.pem -pubin -
text
Public-Key: (128 bit)
Modulus:
00:e9:8b:55:0a:d3:72:5d:f3:4c:c8:19:39:15:e2:
10:67
Exponent: 65537 (0x10001)
Cifrare con RSA
max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsautl -pubin -encrypt -
inkey cieo.pem -in TESTO.txt -out TESTOCIFRATO.txt
RSA operation error
4375164524:error:04FFF06E:rsa routines:CRYPTO_internal:data too
large for key
size:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-
22.240.1/libressl-2.6/crypto/rsa/rsa_pk1.c:151:
max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsautl -pubin -encrypt -
inkey cieo.pem -in TESTO.txt -out TESTOCIFRATO.txt
ATTENZIONE AL KEY SIZE!
Firma digitale con OpenSSL
max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsautl -sign -in
TESTO.txt -inkey ciao.key -out TESTO_SIGN.key
max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsautl -verify -in
TESTO_SIGN.key -pubin -inkey cieo.pem
Esercizi
• Generare ognuno una coppia di chiavi
• Distribuire le chiavi a tutti gli altri
• Cifrare un messaggio per un compagno
• Il destinatario decifra
Esercizi
• Generare tutti una coppia di chiavi
• Dare le chiavi a me
• Un compagno firma per un altro
• Si verifica la firma
• Chi sono io? Come garantisco l’autenticità dei dati? Ma è una vera
firma? E se qualcuno ha cambiato il messaggio?
Public Key Infrastructure
• Il meccanismo a chiave pubblica e privata garantisce un modo
efficiente per scambiarsi una chiave (pubblica)
• Ma come garantire che il proprietario della chiave pubblica sia
identificato? (IA&A problem)
• Si parla di trust model
PKI / Trust Model
• Direct Trust: io mi fido solamente di un principal che conosco
• Direct Brokered Trust: Io mi fido solamente di una terza parte, di cui si
fida Bob (Security Token Service, o Identity Provider)
• Indirect Brokered Trust: Io mi fido solamente di un broker, che si fida
di un altro broker che si fida di Bob (eHDSI)
• (Disegna i modelli)
Pretty Good Privacy
• PGP di Phil Zimmermann
• Esempio di Direct Trust: ci si scambia una impronta della chiave
pubblica a mano
• Si aggiunge manualmente le chiavi dei destinatari (email) ad un
truststore
PGP Generate key
• max@spirit6 ~ $ gpg --gen-key
pub rsa2048 2019-03-23 [SC] [expires: 2021-03-22]
• 12F9A0E60DAFE2E336C1C2CA010B82F68F5AAAD3
• uid Massimiliano Masi <max@mascanc.net>
• sub rsa2048 2019-03-23 [E] [expires: 2021-03-22]
PGP Encrypt
max@spirit6 ~ $ gpg --encrypt --output massi.enc
max@spirit6 ~ $ gpg --decrypt massi.enc
gpg: encrypted with 2048-bit RSA key, ID 1CBFFE0E28D226B0, created
2019-03-23
"Massimiliano Masi <max@mascanc.net>"
Ciao
Efficiente, ma quali sono i problemi?
• Scambio della chiave, richiede un sistema di autenticazione out of
band per ogni destinatario (la conoscenza personale)
• Come si ovvia?
• Uso di una Trusted Third Party: la Certification Authority
PKI
• Una Certification Authority (CA) insieme ad una Registration
Authority (RA) fornisce le seguenti funzionalità
• Identificazione dei principal
• Emissione di Certificati, per uno scopo
• Mantenimento di una directory di certificati (chiave pubblica +
qualcos’altro)
• Mantenimento di una lista di certificati revocati accessibile
attraverso dei Distribution Point
• Servizi di validazion
Certification Authority
• Una CA ha un certificato autofirmato (self-signed), chiamato ROOT
(radice)
• Può emettere ulteriori certification authorities
• È ben regolata.
eIDAS (EU 910/2014)
• Il regolamento europeo di identificazione elettronica e firma digitale
(eID and Advanced Signature) instaura fiducia in ambienti online per
lo sviluppo economico e sociale.
• Regolamento: tutti gli stati membri lo attuano così com’è:
armonizzazione della sicurezza in europa, un risultato enorme
• Direttiva: tutti gli stati membri la recepiscono e la attuano secondo il
contesto locale
eIDAS
• Avanza lo stato della Signature Directive (1999/93/CE) e
l’interoperabilità delle firme fra stati
• Estende il trattamento dei dati personali in materia di servizi di
sicurezza (sia 95/46/CE che GDPR)
• Implementa la sicurezza per l’»agenda digitale europea»:
armonizzazione delle strutture pubbliche che garantisce il pilastro
della libertà di movimento
• Uno stato membro non può essere considerato come vettore di
attacco verso altri stati
eIDAS
• Abbatte le barriere esistenti all’impiego trasfrontaliero dei mezzi di
identificazione elettronica: l’autenticazione italiana vale in germania
che vale in slovenia che vale in portogallo…
• Non si applica a sistemi chiusi contemplati dal diritto nazionale o da
accordi conclusi tra un insieme definito di partecipanti
eIDAS
• L’articolo 3, Definizioni, fornisce materiale legale per i sistemi di
sicurezza fra cui:
• Firma Elettronica, avanzata, e qualificata: «firma elettronica
qualificata», una firma elettronica avanzata creata da un dispositivo
per la creazione di una firma elettronica qualificata e basata su un
certificato qualificato per firme elettroniche;
• Certificato «qualificato»? E la CA?
eIDAS
• «certificato di firma elettronica», un attestato elettronico che collega i
dati di convalida di una firma elettronica a una persona fisica e
conferma almeno il nome o lo pseudonimo di tale persona;
• «certificato qualificato di firma elettronica», un certificato di firma
elettronica che è rilasciato da un prestatore di servizi fiduciari
qualificato ed è conforme ai requisiti di cui all’allegato I;
eIDAS CA: Servizio Fiduciario
• «servizio fiduciario», un servizio elettronico fornito normalmente
dietro remunerazione e consistente nei seguenti elementi:
• creazione, verifica e convalida di firme elettroniche, sigilli elettronici o
validazioni temporali elettroniche, servizi elettronici di recapito certificato e
certificati relativi a tali servizi; oppure
• creazione, verifica e convalida di certificati di autenticazione di siti web; o
• conservazione di firme, sigilli o certificati elettronici relativi a tali servizi;
• (in inglese lo troverete come Trusted Service Provider, TSP)
eIDAS: TSP
• Quindi una CA è ben definita da eIDAS, dal Capo III: Servizi Fiduciari
• Esiste una lista, mantenuta dalla commissione, di una serie di TSP
chiamata «Trusted Service List» che garantisce interoperabilità fra
certificati emessi dalle CA e i loro seguenti audit
• https://www.agid.gov.it/it/piattaforme/eidas/servizi-fiduciari
SPID
TL Browser
• Vediamo ora un certificato di un servizio fiduciario italiano
• https://webgate.ec.europa.eu/tl-browser/#/

More Related Content

Similar to Corso IFTS CyberSecurity Expert - Cifrai Asimmetrici

Firma digitale e sicurezza
Firma digitale e sicurezzaFirma digitale e sicurezza
Firma digitale e sicurezzagaiaa19
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Giuseppe Cramarossa
 
LinuxBeach 2006 - Criptografia e firma digitale con GnuPG - slides
LinuxBeach 2006 - Criptografia e firma digitale con GnuPG - slidesLinuxBeach 2006 - Criptografia e firma digitale con GnuPG - slides
LinuxBeach 2006 - Criptografia e firma digitale con GnuPG - slidesMaurizio Antonelli
 
Microsoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMicrosoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMarco Parenzan
 
A brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventA brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventPietro Di Bello
 
Lezione 4: Comunicazione con UDP
Lezione 4: Comunicazione con UDPLezione 4: Comunicazione con UDP
Lezione 4: Comunicazione con UDPAndrea Della Corte
 
BitGold. L'estinzione dei dinosauri.
BitGold. L'estinzione dei dinosauri.BitGold. L'estinzione dei dinosauri.
BitGold. L'estinzione dei dinosauri.DevDay
 
Corso IFTS CyberSecurity Expert - Attacco di Armando e Operazione Black Tulip
Corso IFTS CyberSecurity Expert - Attacco di Armando e Operazione Black TulipCorso IFTS CyberSecurity Expert - Attacco di Armando e Operazione Black Tulip
Corso IFTS CyberSecurity Expert - Attacco di Armando e Operazione Black TulipMassimiliano Masi
 
Advanced Database Models and Architectures: Big Data: MySQL VS MongoDB
Advanced Database Models and Architectures: Big Data: MySQL VS MongoDBAdvanced Database Models and Architectures: Big Data: MySQL VS MongoDB
Advanced Database Models and Architectures: Big Data: MySQL VS MongoDBLuca Marignati
 
Presentazione Laurea triennale - X509 e PGP
Presentazione Laurea triennale - X509 e PGPPresentazione Laurea triennale - X509 e PGP
Presentazione Laurea triennale - X509 e PGPFabio Pustetto
 
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Giuseppe Cramarossa
 
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Gianluca Grimaldi
 
Drupal Day 2011 - Node.js e Drupal
Drupal Day 2011 - Node.js e DrupalDrupal Day 2011 - Node.js e Drupal
Drupal Day 2011 - Node.js e DrupalDrupalDay
 
Thanatos - Parallel & Distributed Computing
Thanatos -  Parallel & Distributed ComputingThanatos -  Parallel & Distributed Computing
Thanatos - Parallel & Distributed ComputingIdriss Riouak
 
Reti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaReti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaSergio Porcu
 
Introduzione ai protocolli tcp/ip ed al Domain Name System
Introduzione ai protocolli tcp/ip ed al Domain Name SystemIntroduzione ai protocolli tcp/ip ed al Domain Name System
Introduzione ai protocolli tcp/ip ed al Domain Name SystemRoBisc
 

Similar to Corso IFTS CyberSecurity Expert - Cifrai Asimmetrici (20)

Firma digitale e sicurezza
Firma digitale e sicurezzaFirma digitale e sicurezza
Firma digitale e sicurezza
 
A caccia di primi
A caccia di primiA caccia di primi
A caccia di primi
 
Packet Sniffing
Packet SniffingPacket Sniffing
Packet Sniffing
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
 
LinuxBeach 2006 - Criptografia e firma digitale con GnuPG - slides
LinuxBeach 2006 - Criptografia e firma digitale con GnuPG - slidesLinuxBeach 2006 - Criptografia e firma digitale con GnuPG - slides
LinuxBeach 2006 - Criptografia e firma digitale con GnuPG - slides
 
Microsoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMicrosoft Azure per l'IT Pro
Microsoft Azure per l'IT Pro
 
A brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventA brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA event
 
Lezione 4: Comunicazione con UDP
Lezione 4: Comunicazione con UDPLezione 4: Comunicazione con UDP
Lezione 4: Comunicazione con UDP
 
BitGold. L'estinzione dei dinosauri.
BitGold. L'estinzione dei dinosauri.BitGold. L'estinzione dei dinosauri.
BitGold. L'estinzione dei dinosauri.
 
Corso IFTS CyberSecurity Expert - Attacco di Armando e Operazione Black Tulip
Corso IFTS CyberSecurity Expert - Attacco di Armando e Operazione Black TulipCorso IFTS CyberSecurity Expert - Attacco di Armando e Operazione Black Tulip
Corso IFTS CyberSecurity Expert - Attacco di Armando e Operazione Black Tulip
 
Advanced Database Models and Architectures: Big Data: MySQL VS MongoDB
Advanced Database Models and Architectures: Big Data: MySQL VS MongoDBAdvanced Database Models and Architectures: Big Data: MySQL VS MongoDB
Advanced Database Models and Architectures: Big Data: MySQL VS MongoDB
 
Hacking reti wireless
Hacking reti wirelessHacking reti wireless
Hacking reti wireless
 
Presentazione Laurea triennale - X509 e PGP
Presentazione Laurea triennale - X509 e PGPPresentazione Laurea triennale - X509 e PGP
Presentazione Laurea triennale - X509 e PGP
 
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
 
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
 
Drupal Day 2011 - Node.js e Drupal
Drupal Day 2011 - Node.js e DrupalDrupal Day 2011 - Node.js e Drupal
Drupal Day 2011 - Node.js e Drupal
 
Thanatos - Parallel & Distributed Computing
Thanatos -  Parallel & Distributed ComputingThanatos -  Parallel & Distributed Computing
Thanatos - Parallel & Distributed Computing
 
Thanatos
ThanatosThanatos
Thanatos
 
Reti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaReti di Calcolatori - Crittografia
Reti di Calcolatori - Crittografia
 
Introduzione ai protocolli tcp/ip ed al Domain Name System
Introduzione ai protocolli tcp/ip ed al Domain Name SystemIntroduzione ai protocolli tcp/ip ed al Domain Name System
Introduzione ai protocolli tcp/ip ed al Domain Name System
 

More from Massimiliano Masi

Cybersecurity Task Force at ASECAP Days 2023
Cybersecurity Task Force at ASECAP Days 2023Cybersecurity Task Force at ASECAP Days 2023
Cybersecurity Task Force at ASECAP Days 2023Massimiliano Masi
 
Securing Critical Infrastructures with a cybersecurity digital twin
Securing Critical Infrastructures with a cybersecurity digital twin Securing Critical Infrastructures with a cybersecurity digital twin
Securing Critical Infrastructures with a cybersecurity digital twin Massimiliano Masi
 
A Cybersecurity Digital Twin for Critical Infrastructure Protection
A Cybersecurity Digital Twin for Critical Infrastructure ProtectionA Cybersecurity Digital Twin for Critical Infrastructure Protection
A Cybersecurity Digital Twin for Critical Infrastructure ProtectionMassimiliano Masi
 
Enabling a Zero Trust Architecture in Smart Grids through a Digital Twin
Enabling a Zero Trust Architecture in Smart Grids through a Digital TwinEnabling a Zero Trust Architecture in Smart Grids through a Digital Twin
Enabling a Zero Trust Architecture in Smart Grids through a Digital TwinMassimiliano Masi
 
Security and Safety by Design in the Internet of Actors an Architectural Appr...
Security and Safety by Design in the Internet of Actors an Architectural Appr...Security and Safety by Design in the Internet of Actors an Architectural Appr...
Security and Safety by Design in the Internet of Actors an Architectural Appr...Massimiliano Masi
 
Achieving Interoperability Through IHE
Achieving Interoperability Through IHEAchieving Interoperability Through IHE
Achieving Interoperability Through IHEMassimiliano Masi
 
Securing Mobile e-Health Environments by Design: A Holistic Architectural App...
Securing Mobile e-Health Environments by Design: A Holistic Architectural App...Securing Mobile e-Health Environments by Design: A Holistic Architectural App...
Securing Mobile e-Health Environments by Design: A Holistic Architectural App...Massimiliano Masi
 
Enabling Security-by-design in Smart Grids: An architecture-based approach
Enabling Security-by-design in Smart Grids: An architecture-based approachEnabling Security-by-design in Smart Grids: An architecture-based approach
Enabling Security-by-design in Smart Grids: An architecture-based approachMassimiliano Masi
 
The need for interoperability in blockchain-based initiatives to facilitate c...
The need for interoperability in blockchain-based initiatives to facilitate c...The need for interoperability in blockchain-based initiatives to facilitate c...
The need for interoperability in blockchain-based initiatives to facilitate c...Massimiliano Masi
 
Blockchain Technology - Common Use-Cases
Blockchain Technology - Common Use-CasesBlockchain Technology - Common Use-Cases
Blockchain Technology - Common Use-CasesMassimiliano Masi
 
Automating Smart Grid Solution Architecture Design
Automating Smart Grid Solution Architecture DesignAutomating Smart Grid Solution Architecture Design
Automating Smart Grid Solution Architecture DesignMassimiliano Masi
 
Introduction to Blockchain Technologies
Introduction to Blockchain TechnologiesIntroduction to Blockchain Technologies
Introduction to Blockchain TechnologiesMassimiliano Masi
 
eHealth 2018 http://www.ehealth20xx.at/program-blockchain/
eHealth 2018 http://www.ehealth20xx.at/program-blockchain/eHealth 2018 http://www.ehealth20xx.at/program-blockchain/
eHealth 2018 http://www.ehealth20xx.at/program-blockchain/Massimiliano Masi
 
A governance model for ubiquitous medical devices accessing eHealth data: the...
A governance model for ubiquitous medical devices accessing eHealth data: the...A governance model for ubiquitous medical devices accessing eHealth data: the...
A governance model for ubiquitous medical devices accessing eHealth data: the...Massimiliano Masi
 
Addressing Security and Provide through IHE Profiles
Addressing Security and Provide through IHE Profiles Addressing Security and Provide through IHE Profiles
Addressing Security and Provide through IHE Profiles Massimiliano Masi
 

More from Massimiliano Masi (15)

Cybersecurity Task Force at ASECAP Days 2023
Cybersecurity Task Force at ASECAP Days 2023Cybersecurity Task Force at ASECAP Days 2023
Cybersecurity Task Force at ASECAP Days 2023
 
Securing Critical Infrastructures with a cybersecurity digital twin
Securing Critical Infrastructures with a cybersecurity digital twin Securing Critical Infrastructures with a cybersecurity digital twin
Securing Critical Infrastructures with a cybersecurity digital twin
 
A Cybersecurity Digital Twin for Critical Infrastructure Protection
A Cybersecurity Digital Twin for Critical Infrastructure ProtectionA Cybersecurity Digital Twin for Critical Infrastructure Protection
A Cybersecurity Digital Twin for Critical Infrastructure Protection
 
Enabling a Zero Trust Architecture in Smart Grids through a Digital Twin
Enabling a Zero Trust Architecture in Smart Grids through a Digital TwinEnabling a Zero Trust Architecture in Smart Grids through a Digital Twin
Enabling a Zero Trust Architecture in Smart Grids through a Digital Twin
 
Security and Safety by Design in the Internet of Actors an Architectural Appr...
Security and Safety by Design in the Internet of Actors an Architectural Appr...Security and Safety by Design in the Internet of Actors an Architectural Appr...
Security and Safety by Design in the Internet of Actors an Architectural Appr...
 
Achieving Interoperability Through IHE
Achieving Interoperability Through IHEAchieving Interoperability Through IHE
Achieving Interoperability Through IHE
 
Securing Mobile e-Health Environments by Design: A Holistic Architectural App...
Securing Mobile e-Health Environments by Design: A Holistic Architectural App...Securing Mobile e-Health Environments by Design: A Holistic Architectural App...
Securing Mobile e-Health Environments by Design: A Holistic Architectural App...
 
Enabling Security-by-design in Smart Grids: An architecture-based approach
Enabling Security-by-design in Smart Grids: An architecture-based approachEnabling Security-by-design in Smart Grids: An architecture-based approach
Enabling Security-by-design in Smart Grids: An architecture-based approach
 
The need for interoperability in blockchain-based initiatives to facilitate c...
The need for interoperability in blockchain-based initiatives to facilitate c...The need for interoperability in blockchain-based initiatives to facilitate c...
The need for interoperability in blockchain-based initiatives to facilitate c...
 
Blockchain Technology - Common Use-Cases
Blockchain Technology - Common Use-CasesBlockchain Technology - Common Use-Cases
Blockchain Technology - Common Use-Cases
 
Automating Smart Grid Solution Architecture Design
Automating Smart Grid Solution Architecture DesignAutomating Smart Grid Solution Architecture Design
Automating Smart Grid Solution Architecture Design
 
Introduction to Blockchain Technologies
Introduction to Blockchain TechnologiesIntroduction to Blockchain Technologies
Introduction to Blockchain Technologies
 
eHealth 2018 http://www.ehealth20xx.at/program-blockchain/
eHealth 2018 http://www.ehealth20xx.at/program-blockchain/eHealth 2018 http://www.ehealth20xx.at/program-blockchain/
eHealth 2018 http://www.ehealth20xx.at/program-blockchain/
 
A governance model for ubiquitous medical devices accessing eHealth data: the...
A governance model for ubiquitous medical devices accessing eHealth data: the...A governance model for ubiquitous medical devices accessing eHealth data: the...
A governance model for ubiquitous medical devices accessing eHealth data: the...
 
Addressing Security and Provide through IHE Profiles
Addressing Security and Provide through IHE Profiles Addressing Security and Provide through IHE Profiles
Addressing Security and Provide through IHE Profiles
 

Recently uploaded

XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxMartin M Flynn
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaRafael Figueredo
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.giuliofiorerm
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldivaleriodinoia35
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaRafael Figueredo
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiorevaleriodinoia35
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativovaleriodinoia35
 

Recently uploaded (9)

XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptx
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldi
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiore
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativo
 

Corso IFTS CyberSecurity Expert - Cifrai Asimmetrici

  • 2. Cifratura asimmetrica • Rivoluzione nel campo della crittografia: finora abbiamo avuto permutazioni e sostituzioni • Problema: come ci si scambia la chiave? Il canale deve essere sicuro! • DH: «Che scopo ha sviluppare sistemi sistemi crittografici impenetrabili se poi gli utenti sono costretti a condividere le chiavi con un centro che può essere violato?» • La chiave si divide in due: chiave pubblica (conosciuta da tutti) e chiave privata (conosciuta da me)
  • 3. Cifratura Asimmetrica • Fornisce la base per la Firma Digitale Encryption Authentication
  • 4. Esempio • Alice ha la sua coppia di chiavi: < 𝐾𝐴 + , 𝐾𝐴 − > (+ pubblica, - privata) • Bob ha la sua coppia di chiavi: < 𝐾 𝐵 + , 𝐾 𝐵 − > • Se Alice vuol mandare un messaggio a BOB: • 𝐸 𝐾 𝐵 + 𝑀 = 𝐶 • Bob lo decifra come • 𝐷 𝐾 𝐵 − 𝐶 = 𝑀 • Se Alice vuol mandare un messaggio firmato a BOB: • 𝐸 𝐾 𝐴 − 𝑀 = 𝐶 • Bob lo autentica come • 𝐷 𝐾 𝐴 + 𝑀 = 𝐶
  • 5. Algoritmo di Rivest/Shamir/Adleman • RSA, l’algoritmo di cifratura asimmetrica più utilizzato • Schema a blocchi, usa espressione con valori esponenziali. • 𝐶 = 𝑀 𝑒 𝑚𝑜𝑑 𝑛 e • 𝑀 = 𝐶 𝑑 𝑚𝑜𝑑 𝑛 = 𝑀 𝑒 𝑑 𝑚𝑜𝑑 𝑛 = 𝑀 𝑒𝑑 𝑚𝑜𝑑 𝑛 • Ovviamente n deve essere conosciuto sia al mittente che al destinatario. Il mittente conosce il valore di e mentre il destinatorio conosce il valore di d. • Chiave Pubblica = {e,n}, Chiave Privata = {e,d}
  • 6. Toziente • Funzione definita per ogni intero positivo n come il numero degli interi compresi fra 1 e n che sono coprimi con n. • 𝜙 8 = 4 ovvero 1,3,5,7 • Due numeri sono coprimi se non hanno nessun divisore eccetto 1 o -1
  • 7. Il modulo • Dato l’insieme N dei numeri interi, si definisce l’operazione di modulo, che da come risultato il resto della divisione euclidea. Da wiki: • 13 𝑚𝑜𝑑 3 = 1, 13 3 = 4, 13 − 4 × 3 = 1 • Nota: 3 𝑚𝑜𝑑 4 = 3, ¾ = 0, 3 − 4 × 0 = 3, ∀𝑎 𝑚𝑜𝑑 𝑏 ∶ 𝑎 < 𝑏 • Congruenza: • 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑛) se 𝑎 − 𝑏 è multiplo di n, o 𝑎 𝑚𝑜𝑑 𝑛 = (𝑏 𝑚𝑜𝑑 𝑛) • 38 ≡ 14 𝑚𝑜𝑑 12 perché 38-14 = 24, multiplo di 12.
  • 8. RSA • Si deve trovare e, d, tale che 𝑀 𝑒𝑑 𝑚𝑜𝑑 𝑛 = 𝑀. • Siano dati p, q, primi, si ha: 𝜙 𝑝𝑞 = (𝑝 − 1)(𝑞 − 1) quindi • 𝑒𝑑 𝑚𝑜𝑑 𝜙 𝑛 = 1, quindi (Massimo Comun Divisore è 1) • 𝑒𝑑 ≡ 1 𝑚𝑜𝑑 𝜙 (𝑛) per cui si ha la relazione ricercata • 𝑑 ≡ 𝑒−1 𝑚𝑜𝑑 𝜙(𝑛)
  • 9. RSA • Lo schema RSA è quindi p,q, sono due numeri primi Privati e scelti N = pq Pubblico, calcolato e, con 𝑀𝐶𝐷 𝜙 𝑛 , 𝑒 = 1 Pubblico, scelto 𝑑 ≡ 𝑒−1 𝑚𝑜𝑑 𝜙(𝑛) Privato, calcolato CHIAVE PUBBLICA E,n CHIAVE PRIVATA D,n
  • 10. Esempio RSA • Prendiamo due numeri primi: p=17, q=11 • n = pq = 17x11 = 187 • 𝜙 𝑛 = 𝑝 − 1 𝑞 − 1 = 16 × 10 = 160 • Sia e tale che sia primo con 160 e minore di 160: e=7 • Determinare d tale che 𝑑𝑒 ≡ 1 𝑚𝑜𝑑 160 ∶ 𝑑 < 160. d=23, 23x7=161=10x160+1. • Pubblica: {7,187}, privata {23, 187}
  • 11. Cifrare un messaggio • Vogliamo cifrare M=88, per cui 𝐶 = 887 𝑚𝑜𝑑 187 • Con la calcolatrice si ha 887 𝑚𝑜𝑑 187 = 884 𝑚𝑜𝑑 187 × 882 𝑚𝑜𝑑187 × 88 𝑚𝑜𝑑 187 𝑚𝑜𝑑 187 = 88 × 77 × 132 𝑚𝑜𝑑 187 = 894432 𝑚𝑜𝑑 187 = 11 • Si invierà 11 • Per la decrittografia, si calcola • 1123 𝑚𝑜𝑑 187 = 88
  • 12. Costi • Algoritmo MOLTO oneroso • Solitamente e viene scelto in modo fissato • Usato per lo scambio di chiavi
  • 13. OpenSSL • Ovviamente OpenSSL supporta RSA • I numeri di aritmetica modulare devono comunque essere scritti su file • È stato scelto di usare l’elegante modo Abstract Syntax Notation One (ASN.1), che definiscono tipi di dato e strutture dati. • NB: Tutto ciò che è tipato riduce drammaticamente gli errori • PKCS: Standard che descrivono il tipo di dato usando ASN.1 (chi conosce PKCS7?)
  • 14. Esempio: chiave privata RSA • Rfc3447 (PKCS#1) RSAPrivateKey ::= SEQUENCE{ version Version, modulus INTEGER,--n publicExponent INTEGER,--e privateExponent INTEGER,--d prime1INTEGER,--p prime2INTEGER,--q exponent1 INTEGER,--d mod (p-1) exponent2 INTEGER,--d mod (q-1) coefficient INTEGER,--(inverseof q) mod p otherPrimeInfos OtherPrimeInfos OPTIONAL }
  • 15. ASN.1 ha bisogno di codifica • Il modo in cui i dati vengono scritti su un file cambia la semantica di lettura • I più usati sono Distinguished Encoding Rules (DER) e Privacy Enhanced Mail (PEM) • Se utilizzerete application servers scritti in Java (e.g., Tomcat, Wildfly) avrete a che fare con DER, se usate apache e sistemi scritti usando libssl, avrete a che fare con PEM • DER: un solo oggetto per file • PEM: multipli oggetti per file, uno dopo l’altro (base64 encoded)
  • 16. OpenSSL • Generare una chiave max@spirit6 ~/Desktop/Corso PIN/t $ openssl genrsa 128 -out ciao.key Generating RSA private key, 128 bit long modulus .+++++++++++++++++++++++++++ ....+++++++++++++++++++++++++++ e is 65537 (0x10001) -----BEGIN RSA PRIVATE KEY----- MGMCAQACEQDFOIDYOTGA29wSh7KoapvdAgMBAAECEFuVBnfh7zP3lAOwFQkeQeEC CQDi0TMPPUOnhQIJAN6YeAm9TxZ5AgkAnhueMB1Qr9ECCQCAmQlQZyQX0QIIYkAq S2nqog8= -----END RSA PRIVATE KEY-----
  • 17. OpenSSL max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsa -in ciao.key -text Private-Key: (128 bit) modulus: 00:e9:8b:55:0a:d3:72:5d:f3:4c:c8:19:39:15:e2: 10:67 publicExponent: 65537 (0x10001) privateExponent: 12:1e:e2:79:55:90:b1:23:52:a7:16:0c:52:e2:32: 01 prime1: 17639276613596174183 (0xf4cb4c9f88415767) prime2: 17598997053228375809 (0xf43c329390d2df01) exponent1: 3774288965812581451 (0x3460f7d13eef744b) exponent2: 3354542795503744001 (0x2e8dbae63dd8b401) coefficient: 12955549735431208694 (0xb3cb5bd7ca487ef6
  • 18. OpenSSL max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsa -in ciao.key -pubout writing RSA key -----BEGIN PUBLIC KEY----- MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRAOmLVQrTcl3zTMgZORXiE GcCAwEAAQ== -----END PUBLIC KEY-----
  • 19. OpenSSL max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsa -in ciao.pem -pubin - text Public-Key: (128 bit) Modulus: 00:e9:8b:55:0a:d3:72:5d:f3:4c:c8:19:39:15:e2: 10:67 Exponent: 65537 (0x10001)
  • 20. Cifrare con RSA max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsautl -pubin -encrypt - inkey cieo.pem -in TESTO.txt -out TESTOCIFRATO.txt RSA operation error 4375164524:error:04FFF06E:rsa routines:CRYPTO_internal:data too large for key size:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl- 22.240.1/libressl-2.6/crypto/rsa/rsa_pk1.c:151: max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsautl -pubin -encrypt - inkey cieo.pem -in TESTO.txt -out TESTOCIFRATO.txt ATTENZIONE AL KEY SIZE!
  • 21. Firma digitale con OpenSSL max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsautl -sign -in TESTO.txt -inkey ciao.key -out TESTO_SIGN.key max@spirit6 ~/Desktop/Corso PIN/t $ openssl rsautl -verify -in TESTO_SIGN.key -pubin -inkey cieo.pem
  • 22. Esercizi • Generare ognuno una coppia di chiavi • Distribuire le chiavi a tutti gli altri • Cifrare un messaggio per un compagno • Il destinatario decifra
  • 23. Esercizi • Generare tutti una coppia di chiavi • Dare le chiavi a me • Un compagno firma per un altro • Si verifica la firma • Chi sono io? Come garantisco l’autenticità dei dati? Ma è una vera firma? E se qualcuno ha cambiato il messaggio?
  • 24. Public Key Infrastructure • Il meccanismo a chiave pubblica e privata garantisce un modo efficiente per scambiarsi una chiave (pubblica) • Ma come garantire che il proprietario della chiave pubblica sia identificato? (IA&A problem) • Si parla di trust model
  • 25. PKI / Trust Model • Direct Trust: io mi fido solamente di un principal che conosco • Direct Brokered Trust: Io mi fido solamente di una terza parte, di cui si fida Bob (Security Token Service, o Identity Provider) • Indirect Brokered Trust: Io mi fido solamente di un broker, che si fida di un altro broker che si fida di Bob (eHDSI) • (Disegna i modelli)
  • 26. Pretty Good Privacy • PGP di Phil Zimmermann • Esempio di Direct Trust: ci si scambia una impronta della chiave pubblica a mano • Si aggiunge manualmente le chiavi dei destinatari (email) ad un truststore
  • 27. PGP Generate key • max@spirit6 ~ $ gpg --gen-key pub rsa2048 2019-03-23 [SC] [expires: 2021-03-22] • 12F9A0E60DAFE2E336C1C2CA010B82F68F5AAAD3 • uid Massimiliano Masi <max@mascanc.net> • sub rsa2048 2019-03-23 [E] [expires: 2021-03-22]
  • 28. PGP Encrypt max@spirit6 ~ $ gpg --encrypt --output massi.enc max@spirit6 ~ $ gpg --decrypt massi.enc gpg: encrypted with 2048-bit RSA key, ID 1CBFFE0E28D226B0, created 2019-03-23 "Massimiliano Masi <max@mascanc.net>" Ciao
  • 29. Efficiente, ma quali sono i problemi? • Scambio della chiave, richiede un sistema di autenticazione out of band per ogni destinatario (la conoscenza personale) • Come si ovvia? • Uso di una Trusted Third Party: la Certification Authority
  • 30. PKI • Una Certification Authority (CA) insieme ad una Registration Authority (RA) fornisce le seguenti funzionalità • Identificazione dei principal • Emissione di Certificati, per uno scopo • Mantenimento di una directory di certificati (chiave pubblica + qualcos’altro) • Mantenimento di una lista di certificati revocati accessibile attraverso dei Distribution Point • Servizi di validazion
  • 31. Certification Authority • Una CA ha un certificato autofirmato (self-signed), chiamato ROOT (radice) • Può emettere ulteriori certification authorities • È ben regolata.
  • 32. eIDAS (EU 910/2014) • Il regolamento europeo di identificazione elettronica e firma digitale (eID and Advanced Signature) instaura fiducia in ambienti online per lo sviluppo economico e sociale. • Regolamento: tutti gli stati membri lo attuano così com’è: armonizzazione della sicurezza in europa, un risultato enorme • Direttiva: tutti gli stati membri la recepiscono e la attuano secondo il contesto locale
  • 33. eIDAS • Avanza lo stato della Signature Directive (1999/93/CE) e l’interoperabilità delle firme fra stati • Estende il trattamento dei dati personali in materia di servizi di sicurezza (sia 95/46/CE che GDPR) • Implementa la sicurezza per l’»agenda digitale europea»: armonizzazione delle strutture pubbliche che garantisce il pilastro della libertà di movimento • Uno stato membro non può essere considerato come vettore di attacco verso altri stati
  • 34. eIDAS • Abbatte le barriere esistenti all’impiego trasfrontaliero dei mezzi di identificazione elettronica: l’autenticazione italiana vale in germania che vale in slovenia che vale in portogallo… • Non si applica a sistemi chiusi contemplati dal diritto nazionale o da accordi conclusi tra un insieme definito di partecipanti
  • 35. eIDAS • L’articolo 3, Definizioni, fornisce materiale legale per i sistemi di sicurezza fra cui: • Firma Elettronica, avanzata, e qualificata: «firma elettronica qualificata», una firma elettronica avanzata creata da un dispositivo per la creazione di una firma elettronica qualificata e basata su un certificato qualificato per firme elettroniche; • Certificato «qualificato»? E la CA?
  • 36. eIDAS • «certificato di firma elettronica», un attestato elettronico che collega i dati di convalida di una firma elettronica a una persona fisica e conferma almeno il nome o lo pseudonimo di tale persona; • «certificato qualificato di firma elettronica», un certificato di firma elettronica che è rilasciato da un prestatore di servizi fiduciari qualificato ed è conforme ai requisiti di cui all’allegato I;
  • 37. eIDAS CA: Servizio Fiduciario • «servizio fiduciario», un servizio elettronico fornito normalmente dietro remunerazione e consistente nei seguenti elementi: • creazione, verifica e convalida di firme elettroniche, sigilli elettronici o validazioni temporali elettroniche, servizi elettronici di recapito certificato e certificati relativi a tali servizi; oppure • creazione, verifica e convalida di certificati di autenticazione di siti web; o • conservazione di firme, sigilli o certificati elettronici relativi a tali servizi; • (in inglese lo troverete come Trusted Service Provider, TSP)
  • 38. eIDAS: TSP • Quindi una CA è ben definita da eIDAS, dal Capo III: Servizi Fiduciari • Esiste una lista, mantenuta dalla commissione, di una serie di TSP chiamata «Trusted Service List» che garantisce interoperabilità fra certificati emessi dalle CA e i loro seguenti audit • https://www.agid.gov.it/it/piattaforme/eidas/servizi-fiduciari
  • 39. SPID
  • 40. TL Browser • Vediamo ora un certificato di un servizio fiduciario italiano • https://webgate.ec.europa.eu/tl-browser/#/