Apache + SSL Rendiamo sicure le nostre connessioni ● Principi (molto) base di crittografia ● Certificati digitali ● Formato dei certificati X509 ● Certificate.

Slides:



Advertisements
Presentazioni simili
Microsoft Visual Basic MVP
Advertisements

Configuring Network Access
Public Key Infrastructure
La sicurezza nelle Griglie
Gruppo ISP1 Commessa tuttipunti.org. Sommario Descrizione commessa Organizzazione del lavoro Lavoro svolto Problematiche di sicurezza Impostazioni di.
Certification Authority Fase I : Setup e Configurazione Componenti del gruppo : Marino Pasquale Marra Maria Cristina Molaro Alfonso Rullo Esterino.
Il Comune di Pavia è tra i pochi comuni italiani a svolgere direttamente funzioni di Registration Authority.
Analisi e sperimentazione di una Certification Authority
Universita` degli studi di Perugia Corso di Laurea in Matematica Attribute Certificate Valentina Hamam Rosa Leccisotti.
1 Certificati a chiave pubblica strutture dati che legano una chiave pubblica ad alcuni attributi di una persona sono firmati elettronicamente dall’ente.
La firma digitale. Che cosa é la firma digitale? La firma digitale è una informazione aggiunta ad un documento informatico al fine di garantirne integrità.
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
Procedure per la richiesta di certificazione e per l'autenticazione alla VO Cometa Accesso all’infrastruttura del Consorzio COMETA in modalità GRID.
ENIGMAIL CIFRARE LE PROPRIE MAIL CON GPG GnuPG. ARGOMENTI ● Cosa è GnuPG ● Cifratura a chiave pubblica e a chiave segreta ● Utilizzo e gestione del portachiavi.
Mag La Firma Digitale Sommaruga Andrea Guido Collegio dei Geometri e Geometri Laureati della Provincia di Lodi.
Fondazione dell' Ordine degli Ingegneri della Provincia di Milano Fernando Fernandez - 14 Marzo 2006 VPN: Reti Private Virtuali VPN RETI PRIVATE VIRTUALI:
Sicurezza e crittografia asimmetrica ● Info su redsh.wordpress.com/corso-linux ●
Universita` degli studi di Perugia Corso di Laurea Magistrale in Informatica NetCash Antonio Cestari Pietro Palazzo.
Bitcoin “What is a Bitcoin?”. What is a Bitcoin? Bitcoin The 4th most common research on Google in 2014.
FOX BOARD 8+32 Argomenti trattati: ● Breve descrizione dell'hardware ● Overview del sistema di sviluppo ● Esame delle porte GPIO Hardware.
Firma digitale Tecnologie Normativa Utilizzo e Organizzazione Emanuele Tonelli Marzo 2005.
PGDay 2009 FSGateway Ing. Torello Querci Resp. Architetture SW - Negens S.r.l. 4 Dicembre 2009, Pisa.
VO-Neural Project e GRID Giovanni d’Angelo Dipartimento di Scienze Fisiche Università degli Studi di Napoli Federico II Martina Franca 12 – 23 Novembre.
S.Rosta 1 Le Reti Informatiche modulo 10 Prof. Salvatore Rosta
Protocolli per la sicurezza. Le tre AAA Ai livelli più bassi del protocollo ISO/OSI i meccanismi di sicurezza garantiscono le tre AAA Autenticazione Autorità.
User Group Riccardo Righi Analista Titulus e titulus organi.
Introduzione al backend di Sharepoint_P3
Configurazione Router IR794- IG601
“Vivere insieme” – Lezione6
NAT, Firewall, Proxy Processi applicativi.
Comunicazione web Università degli studi di Ferrara Ufficio web: Corso Plone Base 22 Novembre 2016 Diapositiva :
PORTALE SIDOCPORTAL TALENTURE SA.
Arkoon Network Security 2010
La comunicazione scritta
Procedure per la richiesta di certificazione e per l'autenticazione
Come accedere ai servizi di Trigrid
Pronto.
Accesso all’infrastruttura del Consorzio COMETA
Applicazione web basata su web service e web socket
CRITTOGRAFIA Per crittografia si intende la protezione delle informazioni mediante l'utilizzo di codici e cifre. La crittografia è un componente fondamentale.
Terza Lezione → Navigare nel file System → parte 2
GridFlex: gestione di software
Come accedere ai servizi Trigrid e ottenere Supporto
I PERMESSI IN LINUX.
Sistema Operativo - DietPI
Crittografia e sicurezza
Giordano Scuderi Unico SRL Catania
Installazione in spamassassin Qualche dato Firma dei mail Note
Sviluppo di server web e sistema di caching per contenuti dinamici
System Security I vari sistemi di sicurezza che possiamo applicare ai nostri siti che gestiamo su internet.
INFN-AAI Autenticazione e Autorizzazione
OLPC-Italia Brescia 16 Ottobre 2008.
Crittografia e sicurezza
Crittografia e sicurezza
Creare un server casalingo - 2
WebServer 12 luglio
SAS® OnDemand for Academics SAS Studio
Predisposizione e presentazione della domanda di nullaosta
Rinnovi Firma Digitale «Clienti Aruba PEC» Firma Digitale ed ArubaKey
Programmare.
Posta Elettronica Certificata
Concetti introduttivi
Ricorsione 16/01/2019 package.
Vademecum per le Scuole
Esercitazione sulle modalità
INFN-AAI Autenticazione e Autorizzazione
Predisposizione e presentazione della domanda di nullaosta
Vademecum per le Scuole
Edmodo una piattaforma social learning nel cloud.
Andrea Martinelli.
Transcript della presentazione:

Apache + SSL Rendiamo sicure le nostre connessioni ● Principi (molto) base di crittografia ● Certificati digitali ● Formato dei certificati X509 ● Certificate Revocation List (CRL) ● Autenticazione lato Server ● Autenticazione lato Client

Principi di crittografia La crittografia è una scienza che si preoccupa di sviluppare metodi (algoritmi) finalizzati a nascondere il contenuto di un messaggio tramite l'uso di una “chiave” crittografica

Principi di crittografia Nella crittografia a chiave segreta (o condivisa) i due componenti principali sono le funzioni di cifratura che trasformano i testi in chiaro in testi cifrati e la chiave condivisa, conosciuta esclusivamente dal mittente e dal destinatario

Principi di crittografia

Il problema della distribuzione delle chiavi è stato risolto tramite l'introduzione di un nuovo tipo di crittografia, la crittografia a chiave pubblica. Ogni attore ha a disposizione due chiavi: ● Una chiave pubblica (K + ) da distribuire a tutti coloro con cui vuole comunicare ● Una chiave privata (K - ) da tenere segreta e non comunicare a nessuno Ovviamente le due chiave devono essere legate tra loro da vincoli matematici

Principi di crittografia Un messaggio può essere cifrato da chiunque conosca la chiave pubblica del destinatario, ma può essere decifrato solo da chi conosce la chiave privata (il destinatario stesso)

Principi di crittografia

Problema 1 La crittografia a chiave pubblica è molto dispendiosa da un punto di vista computazionale. La cifratura di messaggi (o dati) di grandi dimensioni può richiedere molto tempo

Principi di crittografia Soluzione Sistema della busta digitale: ➔ Viene generata una chiave segreta utilizzabile una sola volta (chiave di sessione) ➔ Si cifra l'intero messaggio con la chiave di sessione ➔ Si cifra la chiave di sessione con la chiave pubblica del destinatario ➔ Si invia la “busta” al destinatario

Principi di crittografia Problema 2 Come faccio ad essere sicuro che la chiave pubblica che sto usando appartiene al legittimo destinatario e che non è stata manomessa?

Principi di crittografia Soluzioni 1 – Sistema della rete di fiducia (GPG) 2 – Sistema “gerarchico” basato su Certification Authority (OpenSSL)

Certificati Digitali La soluzione al problema della distribuzione delle chiavi adottata dallo standard OpenSSL è quella del certificato digitale

Certificati Digitali La chiave pubblica viene registrata da un'autorità che gode della fiducia di entrambe le parti, la Certification Authority La CA “certifica” che la chiave pubblica appartiene al proprietario

Certificati Digitali Le chiavi pubbliche vengono rilasciate dalla CA sotto forma di certificati digitali. Il certificato viene quindi presentato all'interlocutore il quale, fidandosi della CA, identifica il proprietario della chiave pubblica

Formato dei certificati X509 ● Version: Le varie versioni del certificato (v1, v2 o v3) ● Serial Number: Un valore intero univoco assegnato al certificato ● Signature Algorithm identifier: Algoritmo usato per firmare il certificato ● Issuer Name: Il nome della CA ● Period of validity: data di inizio e fine validità ● Subject Name: L'utente a cui fa riferimento il certificato

Formato dei certificati X509 ● Subject's public key info: Algoritmo usato e chiave pubblica del soggetto ● Issuer Unique Identifier: Identificatore unico della CA ● Subject Unique Identifier: Identificativo unico del soggetto ● Extensions: Estensioni ● Signature: Firma della CA

Certificate Revocation List Cosa succede se : ● Perdo la mia chiave privata ● Cambio i dati anagrafici ● La chiave privata viene compromessa

Certificate Revocation List È necessario revocare il certificato (Renderlo inutilizzabile)

Autenticazione lato server Per prima cosa è necessario creare un certificato Due strade: ● Affidarci ad una CA esistente (a pagamento) ● Creare un certificato self-signed e “impersonificare” una CA

Autenticazione lato server Scegliamo (ovviamente) la seconda Per prima cosa generiamo le chiavi pubblica e privata della “nostra” CA openssl genrsa -out CA_key.key 2048

Autenticazione lato server E ora il certificato Self-Signed della CA openssl req -outform PEM -out CA_crt.pem -text - new -key CA_key.key -x509 -days 3650

Autenticazione lato server Occorre ora creare il certificato del server vero e proprio Per prima cosa generiamo le chiavi e la richiesta di certificazione sempre tramite openSSL openssl genrsa -out server_key.key 1024 openssl req -new -out server_cert.csr -key server_key.key

Autenticazione lato server Vestiamo nuovamente i panni della CA e firmiamo la richiesta per creare il certificato vero e proprio openssl x509 -days 365 -CA CA/CA_cert.pem -CAkey CA/CA_key.key -CAcreateserial -CAserial CA/ca.srl -req -in server_cert.csr -outform PEM -text -out server_cert.pem

Autenticazione lato server Per fare in modo che il browser riconosca la nostra CA è necessario inserire il certificato self-signed nella lista delle autorità di certificazione (dipende da browser a browser)

Autenticazione lato server È ora necessario copiare il certificato e la chiave del server in una directory “sicura” ovvero non accessibile al webserver ad esempio /etc/apache2/ssl/

Autenticazione lato server Passiamo ora alla configurazione di apache Per prima cosa è necessario abilitare le estensioni ssl inserendo dei link simbolici nella cartella /etc/apache2/mods-enabled cd /etc/apache2/mods-enabled/ ln -s /etc/apache2/mods-available/ssl.conf ssl.conf ln -s /etc/apache2/mods-available/ssl.load ssl.load

Autenticazione lato server E ora aggiungiamo un VirtualHost in /etc/apache2/apache2.conf e diciamo al server di ascoltare anche sulla porta 443 (https) (nota: su distribuzioni diverse da Debian/Ubuntu... il file di configurazione è /etc/apache2/httpd.conf)

Autenticazione lato server All'interno del nostro Virtual Host inseriamo queste opzioni SSLEngine ON SSLCertificateFile percorso_certificato SSLCertificateKeyFile percorso_chiave_privata

Autenticazione lato client Per prima cosa creiamo (e firmiamo) un certificato per i client che desideriamo autenticare openssl genrsa -out client_key.key 1024 openssl req -new -out client_cert.csr -key client_key.key openssl x509 -days 365 -CA CA/CA_cert.pem -CAkey CA/CA_key.key -CAserial CA/ca.srl -req -in client_cert.csr -outform PEM -text -out client_cert.pem

Autenticazione lato client Per poter inserire il certificato utente all'interno del browser è necessario convertirlo in formato PKCS#12 sempre tramite openSSL openssl pkcs12 -export -in client_cert.pem -inkey client_key.key -name "user1" -out client_cert.p12

Autenticazione lato client Ora dobbiamo inserire queste direttive nella sezione Virtual Hosts di Apache SSLVerifyClient require SSLCACertificateFile /etc/apache2/ssl/CA_cert.pem