SockMi: un meccanismo per la migrazione di connessioni sicure

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

Elementi di Sicurezza informatica

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Secure socket layer (SSL) Transport layer security (TLS)

La suite di protocolli SSL

La sicurezza del Web SSL

Overview. SSL, TLS e OpenSSL TCP/IP. Corso di Sicurezza su reti PARTE I: Il protocollo SSL

Secure Simple Budget Manager

Approfondimento di Marco Mulas

Lo strato di applicazione in Internet

SECURE SOCKET LAYER FEDERICO REALI

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

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Architetture di rete. 4. Le applicazioni di rete

Sommario. Introduzione alla Sicurezza Web

Sicurezza delle applicazioni di rete

MODELLI ISO/OSI e TCP/IP

Struttura interna del sistema operativo Linux

Sicurezza delle applicazioni di rete. Sicurezza di canale. Sicurezza di messaggio (o dei dati) Antonio Lioy - Politecnico di Torino ( ) 1

Cenni sulla Sicurezza in Ambienti Distribuiti

Disciplina: Sistemi e reti Classe: 5A Informatica A.S. 2015/16 Docente: Barbara Zannol ITP: Alessandro Solazzo

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Fondamenti di Internet e Reti. Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier

IPsec e TLS a confronto: funzioni, prestazioni ed estensioni

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

Reti di Telecomunicazione Lezione 8

TCP/IP un introduzione

Reti (già Reti di Calcolatori )

Elements of Security Protocols Secure Socket Layer (SSL)

appunti delle lezioni Architetture client/server: applicazioni client

I rischi e le misure per rendere sicure le reti VoIP. Stefano Sotgiu

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Una Introduzione a TLSv1.0

Steganografia in un. Corso di Sicurezza dei sistemi informatici Michelangelo Rinelli Anno Accademico 2005/06

RETI DI CALCOLATORI II

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Sicurezza del File System

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica.

Corso di Reti di Telecomunicazioni. Giovanni Schembra. Trasmissione trame su canale broadcast

La sicurezza nelle reti di calcolatori

Internet e protocollo TCP/IP

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

CAP9. Device drivers

Sicurezza dei Sistemi Informatici Esercitazioni OpenSSL

REMUS REference Monitor for Unix Systems

L IDENTITY MANAGEMENT

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

IL SECURE SOCKETS LAYER (SSL) E LA SICUREZZA NEL PROTOCOLLO TCP/IP

Sicurezza della comunicazione. Proprietà desiderabili. Segretezza. Autenticazione

Sicurezza degli accessi remoti. La sicurezza degli accessi remoti

MODELLO TCP/IP LIVELLO 4 Trasporto. Il protocollo per il controllo della trasmissione. La gestione degli errori di trasmissione

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Introduzione allo sniffing

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

ISO- OSI e architetture Client-Server

Architetture Web Protocolli di Comunicazione

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Crittografia e sicurezza delle reti

Corso di Alfabetizzazione Informatica

Politecnico di Milano Scuola di Ingegneria Industriale e dell Informazione. Modelli Funzionali

SICUREZZA. Sistemi Operativi. Sicurezza

Sistemi Operativi SICUREZZA. Sistemi Operativi. D. Talia - UNICAL 14.1

Appendice C. C. Protocolli per comunicazioni sicure

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_ Stefano Millozzi

SISTEMI OPERATIVI DISTRIBUITI

Vallarino Simone. Corso di sicurezza A.A. 2003/2004 HTTPS

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Corso di Sicurezza su Reti Uso della crittografia simmetrica

Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete

Reti di Calcolatori. Lezione 2

Dipartimento Affari Interni e Territoriali Direzione Centrale per i Servizi Demografici INA-SAIA. SSLProxy. Manuale Utente. versione 1.

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

Principi di crittografia Integrità dei messaggi Protocolli di autenticazione Sicurezza nella pila di protocolli di Internet: PGP, SSL, IPSec

OpenVPN: un po di teoria e di configurazione

iseries Informazioni preliminari su Client Access Express

Servizio Sistemi Informativi SPERIMENTAZIONE DI RETI PRIVATE VIRTUALI CON L'UTILIZZO DI SOFTWARE OPEN SOURCE

Tecniche di Comunicazione Multimediale

Uso di sniffer ed intercettazione del traffico IP

SISTEMI DI ELABORAZIONE

Indice. Introduzione Collegamento iniziale Identificazione della sede operativa (sede di lavoro) 5

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Corso di Laurea in Informatica Esame di Reti Prof. Panzieri frame con source address uguale a MAC_UNI X X X X X

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

Laboratorio di Reti, Corsi A e B. Text-Twist. Progetto di Fine Corso A.A. 2016/17

Internet (- working). Le basi.

Firma Digitale Procedura Rinnovo

Oxatis DataPlug. Per Windows XP, Windows Vista, Windows 7, Windows 8 e Windows 10. Manuale d uso della console Danea/EasyFatt

La sicurezza nel Web

Il sistema di I/O. Sistemi Operativi 13.1

Reti di Calcolatori. Il software

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

MODELLI ISO/OSI e TCP/IP

Architettura a strati dei protocolli di comunicazione

Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale

Internet Security: Secure Socket Layer

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Cenni di programmazione distribuita in C++ Mauro Piccolo

Transcript:

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 1/29 SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco samueleruco@gmail.com Università degli Studi di Roma La Sapienza

Connessione sicura SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 2/29 Garantisce riservatezza alle comunicazioni tra due entità: 0 0 1 1 01 01 01 Client Server

Connessione sicura SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 2/29 Garantisce riservatezza alle comunicazioni tra due entità: Il client apre una connessione TCP/IP con il server 0 0 1 1 Client TCP/IP 01 01 01 Server

Connessione sicura SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 2/29 Garantisce riservatezza alle comunicazioni tra due entità: Il client apre una connessione TCP/IP con il server 0 0 1 1 Client 01 01 SSL 01 Server Il protocollo SSL o TLS rende sicura la connessione, garantendo tre funzionalità fondamentali:

Connessione sicura SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 2/29 Garantisce riservatezza alle comunicazioni tra due entità: Il client apre una connessione TCP/IP con il server 0 0 1 1 Client 01 01 SSL 01 Server Il protocollo SSL o TLS rende sicura la connessione, garantendo tre funzionalità fondamentali: confidenzialità

Connessione sicura SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 2/29 Garantisce riservatezza alle comunicazioni tra due entità: Il client apre una connessione TCP/IP con il server 0 0 1 1 Client 01 01 SSL 01 Server Il protocollo SSL o TLS rende sicura la connessione, garantendo tre funzionalità fondamentali: confidenzialità autenticazione

Connessione sicura SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 2/29 Garantisce riservatezza alle comunicazioni tra due entità: Il client apre una connessione TCP/IP con il server 0 0 1 1 Client SSL 0 0 01 1 1 Server Il protocollo SSL o TLS rende sicura la connessione, garantendo tre funzionalità fondamentali: confidenzialità autenticazione affidabilità

Connessione sicura SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 2/29 Garantisce riservatezza alle comunicazioni tra due entità: Il client apre una connessione TCP/IP con il server Il protocollo SSL o TLS rende sicura la connessione, garantendo tre funzionalità fondamentali: confidenzialità autenticazione affidabilità 0 0 1 1 Client SSL 0 0 01 1 1 Server Non prevede la possibilità di migrare la comunicazione verso un altro sistema, mantenendo la stessa connessione

Migrazione di una connessione È il trasferimento di un peer dal sistema originale a un altro (obiettivo), senza effetti distruttivi sulla connessione: B SSL A C SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 3/29

Migrazione di una connessione È il trasferimento di un peer dal sistema originale a un altro (obiettivo), senza effetti distruttivi sulla connessione: il sistema originale (B) esporta la connessione B A C SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 3/29

Migrazione di una connessione È il trasferimento di un peer dal sistema originale a un altro (obiettivo), senza effetti distruttivi sulla connessione: il sistema originale (B) esporta la connessione B il sistema obiettivo (C) importa la connessione A C SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 3/29

Migrazione di una connessione È il trasferimento di un peer dal sistema originale a un altro (obiettivo), senza effetti distruttivi sulla connessione: il sistema originale (B) esporta la connessione B il sistema obiettivo (C) importa la connessione i pacchetti vengono rediretti verso il nuovo peer A C SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 3/29

Migrazione di una connessione È il trasferimento di un peer dal sistema originale a un altro (obiettivo), senza effetti distruttivi sulla connessione: il sistema originale (B) esporta la connessione B il sistema obiettivo (C) importa la connessione i pacchetti vengono rediretti verso il nuovo peer A SSL C la connessione sicura prosegue tra i sistemi A e C SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 3/29

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 4/29 Considerazioni sulla migrazione La migrazione coinvolge i seguenti livelli: Network: i pacchetti IP devono essere rediretti verso il sistema obiettivo ad esempio utilizzando opportune regole di Network Address Translation (NAT)

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 4/29 Considerazioni sulla migrazione La migrazione coinvolge i seguenti livelli: Network: i pacchetti IP devono essere rediretti verso il sistema obiettivo ad esempio utilizzando opportune regole di Network Address Translation (NAT) Transport: le informazioni sullo stato della connessione devono essere trasferite dal sistema che esporta verso quello che importa migrazione del socket

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 4/29 Considerazioni sulla migrazione La migrazione coinvolge i seguenti livelli: Network: i pacchetti IP devono essere rediretti verso il sistema obiettivo ad esempio utilizzando opportune regole di Network Address Translation (NAT) Transport: le informazioni sullo stato della connessione devono essere trasferite dal sistema che esporta verso quello che importa migrazione del socket Application: i dati del protocollo SSL devono essere trasferiti sul sistema obiettivo migrazione del protocollo applicativo

Caratteristiche della soluzione proposta SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 5/29 TRASPARENZA: l estremità fissa della connessione non è consapevole della migrazione dell altra parte

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 5/29 Caratteristiche della soluzione proposta TRASPARENZA: l estremità fissa della connessione non è consapevole della migrazione dell altra parte ASINCRONIA: la migrazione è indipendente dallo stato del protocollo applicativo SSL

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 5/29 Caratteristiche della soluzione proposta TRASPARENZA: l estremità fissa della connessione non è consapevole della migrazione dell altra parte ASINCRONIA: la migrazione è indipendente dallo stato del protocollo applicativo SSL SIMMETRIA: la migrazione è applicabile ad entrambe le estremità di una connessione

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 5/29 Caratteristiche della soluzione proposta TRASPARENZA: l estremità fissa della connessione non è consapevole della migrazione dell altra parte ASINCRONIA: la migrazione è indipendente dallo stato del protocollo applicativo SSL SIMMETRIA: la migrazione è applicabile ad entrambe le estremità di una connessione NON INTRUSIVITÀ: il meccanismo non richiede l applicazione di modifiche: al kernel Linux all implementazione OpenSSL del protocollo SSL

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 6/29 Campi d applicazione Bilanciamento del carico (load balancing) difficile, se non impossibile, prevedere il numero di richieste che ogni server dovrà gestire SockMi permette il bilanciamento anche dopo che la connessione sicura è stata stabilita

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 6/29 Campi d applicazione Bilanciamento del carico (load balancing) difficile, se non impossibile, prevedere il numero di richieste che ogni server dovrà gestire SockMi permette il bilanciamento anche dopo che la connessione sicura è stata stabilita Qualità del servizio (QoS) mantenere una soglia minima di qualità del servizio

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 6/29 Campi d applicazione Bilanciamento del carico (load balancing) difficile, se non impossibile, prevedere il numero di richieste che ogni server dovrà gestire SockMi permette il bilanciamento anche dopo che la connessione sicura è stata stabilita Qualità del servizio (QoS) mantenere una soglia minima di qualità del servizio Tolleranza ai guasti (fault tolerance) migrare una connessione per aggirare un guasto

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 6/29 Campi d applicazione Bilanciamento del carico (load balancing) difficile, se non impossibile, prevedere il numero di richieste che ogni server dovrà gestire SockMi permette il bilanciamento anche dopo che la connessione sicura è stata stabilita Qualità del servizio (QoS) mantenere una soglia minima di qualità del servizio Tolleranza ai guasti (fault tolerance) migrare una connessione per aggirare un guasto Sicurezza confinare un processo malizioso in un ambiente di esecuzione sicuro su un altro host

Progetto Sockpass SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 7/29 Meccanismo di migrazione basato sul passaggio di socket

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 7/29 Progetto Sockpass Meccanismo di migrazione basato sul passaggio di socket Nato nel contesto della migrazione dei processi come parte del progetto REMUS (Reference Monitor for Unix Systems), un sistema per il rilevamento delle intrusioni

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 7/29 Progetto Sockpass Meccanismo di migrazione basato sul passaggio di socket Nato nel contesto della migrazione dei processi come parte del progetto REMUS (Reference Monitor for Unix Systems), un sistema per il rilevamento delle intrusioni Implementazione per il kernel Linux 2.4: sockpass: modulo del kernel per inserire/estrarre socket dallo stack TCP/IP

SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 7/29 Progetto Sockpass Meccanismo di migrazione basato sul passaggio di socket Nato nel contesto della migrazione dei processi come parte del progetto REMUS (Reference Monitor for Unix Systems), un sistema per il rilevamento delle intrusioni Implementazione per il kernel Linux 2.4: sockpass: modulo del kernel per inserire/estrarre socket dallo stack TCP/IP sockpassd: programma demone per il trasferimento di socket al sistema obiettivo

Il protocollo SSL/TLS IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 8/29

Architettura del protocollo SSL SSL Handshake Change Cipher Spec Application SSL Record TCP IP Alert Application Data SSL SSL Record: incapsula i vari protocolli di livello superiore IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 9/29

Architettura del protocollo SSL SSL Handshake Change Cipher Spec Application SSL Record TCP IP Alert Application Data SSL SSL Record: incapsula i vari protocolli di livello superiore SSL Handshake: permette la negoziazione delle opzioni di sicurezza IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 9/29

Architettura del protocollo SSL SSL Handshake Change Cipher Spec Application SSL Record TCP IP Alert Application Data SSL SSL Record: incapsula i vari protocolli di livello superiore SSL Handshake: permette la negoziazione delle opzioni di sicurezza Change Cipher Spec: notifica l altro peer d istanziare i nuovi parametri di sicurezza IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 9/29

Architettura del protocollo SSL SSL Handshake Change Cipher Spec Application SSL Record TCP IP Alert Application Data SSL SSL Record: incapsula i vari protocolli di livello superiore SSL Handshake: permette la negoziazione delle opzioni di sicurezza Change Cipher Spec: notifica l altro peer d istanziare i nuovi parametri di sicurezza Alert: informa l altro peer di un errore che si è verificato IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 9/29

Architettura del protocollo SSL SSL Handshake Change Cipher Spec Application SSL Record TCP IP Alert Application Data SSL SSL Record: incapsula i vari protocolli di livello superiore SSL Handshake: permette la negoziazione delle opzioni di sicurezza Change Cipher Spec: notifica l altro peer d istanziare i nuovi parametri di sicurezza Alert: informa l altro peer di un errore che si è verificato Application Data: utilizzato dall applicazione di livello superiore per inviare e ricevere i dati attraverso il canale sicuro IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 9/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati compressione IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati compressione applicazione firma MAC IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati compressione applicazione firma MAC cifratura IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati compressione applicazione firma MAC cifratura trasmissione (stato di connessione active write) IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati RICEZIONE: decifratura compressione applicazione firma MAC cifratura trasmissione (stato di connessione active write) IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati compressione RICEZIONE: decifratura verifica firma MAC applicazione firma MAC cifratura trasmissione (stato di connessione active write) IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati compressione applicazione firma MAC RICEZIONE: decifratura verifica firma MAC decompressione cifratura trasmissione (stato di connessione active write) IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati compressione applicazione firma MAC cifratura RICEZIONE: decifratura verifica firma MAC decompressione riassemblamento dati trasmissione (stato di connessione active write) IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Record Provvede alla trasmissione dei messaggi provenienti dagli strati superiori e alla consegna dei messaggi ricevuti agli strati superiori TRASMISSIONE: frammentazione in blocchi adeguati compressione applicazione firma MAC cifratura trasmissione (stato di connessione active write) RICEZIONE: decifratura verifica firma MAC decompressione riassemblamento dati consegna dati al livello superiore (stato di connessione active read) IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 10/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 01 Server Scrittura CLIENT Lettura Act Pend Act Pend cifrario null? null? MAC null? null? chiave null? null? SERVER cifrario null? null? MAC null? null? chiave null? null? 1. Il client propone le opzioni del protocollo SSL IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 01 Server ServerHello 2 Scrittura CLIENT Lettura Act Pend Act Pend cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? SERVER cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? 2. Il server seleziona le opzioni da utilizzare nella comunicazione IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 01 Server ServerHello 2 Certificate 3 CLIENT Scrittura Lettura Act Pend Act Pend cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? SERVER cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? 3. Il server invia la chiave pubblica certificata IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 01 Server ServerHello 2 Certificate 3 CertificateRequest 4 CLIENT Scrittura Lettura Act Pend Act Pend cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? SERVER cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? 4. Il server chiede al client di autenticarsi IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 01 Server ServerHello 2 Certificate 3 CertificateRequest 4 ServerHelloDone 5 CLIENT Scrittura Lettura Act Pend Act Pend cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? SERVER cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? 5. Il server conclude la sua parte di negoziazione IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 6 Certificate 01 Server ServerHello 2 Certificate 3 CertificateRequest 4 ServerHelloDone 5 CLIENT Scrittura Lettura Act Pend Act Pend cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? SERVER cifrario null DES null DES MAC null MD5 null MD5 chiave null? null? 6. Il client invia la chiave pubblica certificata IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 01 Server 1 ClientHello ServerHello 2 Certificate 3 CertificateRequest 4 ServerHelloDone 5 6 Certificate 7 ClientKeyExchange Scrittura CLIENT Lettura Act Pend Act Pend cifrario null DES null DES MAC null MD5 null MD5 chiave null xxx null xxx SERVER cifrario null DES null DES MAC null MD5 null MD5 chiave null xxx null xxx 7. Chiave segreta di sessione cifrata con la chiave pubblica del server IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 01 Server 1 ClientHello ServerHello 2 Certificate 3 CertificateRequest 4 ServerHelloDone 5 6 Certificate 7 ClientKeyExchange 8 CertificateVerify Scrittura CLIENT Lettura Act Pend Act Pend cifrario null DES null DES MAC null MD5 null MD5 chiave null xxx null xxx SERVER cifrario null DES null DES MAC null MD5 null MD5 chiave null xxx null xxx 8. Informazioni sulla sessione firmate con la chiave privata del client (autenticazione client) IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 6 Certificate 7 ClientKeyExchange 8 9 CertificateVerify ChangeCipherSpec ServerHello Certificate ServerHelloDone 00 01 Server CertificateRequest 4 CLIENT Scrittura 11 2 3 5 Lettura Act Pend Act Pend cifrario DES? null DES MAC MD5? null MD5 chiave xxx? null xxx SERVER cifrario null DES DES? MAC null MD5 MD5? chiave null xxx xxx? 9. Attivazione delle opzioni di sicurezza appena negoziate IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 6 Certificate 7 ClientKeyExchange 8 9 CertificateVerify ChangeCipherSpec 10 Finished ServerHello Certificate ServerHelloDone 00 01 Server CertificateRequest 4 11 CLIENT 2 3 5 Scrittura Lettura Act Pend Act Pend cifrario DES? null DES MAC MD5? null MD5 chiave xxx? null xxx SERVER cifrario null DES DES? MAC null MD5 MD5? chiave null xxx xxx? 10. Il server controlla le opzioni di sicurezza attivate IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 6 Certificate 7 ClientKeyExchange 8 9 CertificateVerify ChangeCipherSpec 10 Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec 00 01 Server CertificateRequest 4 11 CLIENT 2 3 5 11 Scrittura Lettura Act Pend Act Pend cifrario DES? DES? MAC MD5? MD5? chiave xxx? xxx? SERVER cifrario DES? DES? MAC MD5? MD5? chiave xxx? xxx? 11. Attivazione delle opzioni di sicurezza appena negoziate IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Protocollo SSL Handshake Permette la negoziazione dei parametri di sicurezza Client 1 ClientHello 6 Certificate 7 ClientKeyExchange 8 9 CertificateVerify ChangeCipherSpec 10 Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished 00 01 Server CertificateRequest 4 11 CLIENT 2 3 5 11 12 Scrittura Lettura Act Pend Act Pend cifrario DES? DES? MAC MD5? MD5? chiave xxx? xxx? SERVER cifrario DES? DES? MAC MD5? MD5? chiave xxx? xxx? 12. Il client controlla le opzioni di sicurezza attivate IL PROTOCOLLO SSL/TLS SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 11/29

Architettura del meccanismo di migrazione SockMi ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 12/29

Architettura di SockMi Il meccanismo di migrazione SockMi è piuttosto complesso e il suo funzionamento è il frutto della collaborazione di più componenti, ciascuna delle quali svolge un ruolo ben definito e circoscritto ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 13/29

Architettura di SockMi Il meccanismo di migrazione SockMi è piuttosto complesso e il suo funzionamento è il frutto della collaborazione di più componenti, ciascuna delle quali svolge un ruolo ben definito e circoscritto sockmi: modulo del kernel per l esportazione e l importazione delle strutture dati che implementano il socket TCP/IP ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 13/29

Architettura di SockMi Il meccanismo di migrazione SockMi è piuttosto complesso e il suo funzionamento è il frutto della collaborazione di più componenti, ciascuna delle quali svolge un ruolo ben definito e circoscritto sockmi: modulo del kernel per l esportazione e l importazione delle strutture dati che implementano il socket TCP/IP sockmid: programma demone per il trasferimento da un sistema a un altro dei dati della migrazione e per l esportazione e l importazione dei dati del protocollo applicativo ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 13/29

Architettura di SockMi Il meccanismo di migrazione SockMi è piuttosto complesso e il suo funzionamento è il frutto della collaborazione di più componenti, ciascuna delle quali svolge un ruolo ben definito e circoscritto sockmi: modulo del kernel per l esportazione e l importazione delle strutture dati che implementano il socket TCP/IP sockmid: programma demone per il trasferimento da un sistema a un altro dei dati della migrazione e per l esportazione e l importazione dei dati del protocollo applicativo libsockmi e libappsockmi: librerie che forniscono alle applicazioni un interfaccia al meccanismo di migrazione ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 13/29

Fasi della migrazione: Esportazione Trasferire le strutture dati del protocollo applicativo dall applicazione che esporta al demone ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 14/29

Fasi della migrazione: Esportazione Trasferire le strutture dati del protocollo applicativo dall applicazione che esporta al demone Trasferire al demone le informazioni relative al socket ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 14/29

Fasi della migrazione: Esportazione Trasferire le strutture dati del protocollo applicativo dall applicazione che esporta al demone Trasferire al demone le informazioni relative al socket Rendere immutabile il socket inibita la ricezione e la trasmissione dei segmenti TCP ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 14/29

Fasi della migrazione: Trasmissione Selezionare un host disponibile ad importare la connessione ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 15/29

Fasi della migrazione: Trasmissione Selezionare un host disponibile ad importare la connessione Inviare i dati della migrazione all host obiettivo della migrazione ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 15/29

Fasi della migrazione: Trasmissione Selezionare un host disponibile ad importare la connessione Inviare i dati della migrazione all host obiettivo della migrazione Redirigere i pacchetti IP ricevuti dal sistema originale verso l host obiettivo della migrazione tramite opportune regole di NAT (DNAT) per i pacchetti della connessione migrata B A C ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 15/29

Fasi della migrazione: Importazione Creare un socket identico a quello esportato dai dati ricevuti ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 16/29

Fasi della migrazione: Importazione Creare un socket identico a quello esportato dai dati ricevuti Rigenerare le strutture del protocollo applicativo dai dati ricevuti ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 16/29

Fasi della migrazione: Importazione Creare un socket identico a quello esportato dai dati ricevuti Rigenerare le strutture del protocollo applicativo dai dati ricevuti Associare il socket al protocollo applicativo ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 16/29

Fasi della migrazione: Importazione Creare un socket identico a quello esportato dai dati ricevuti Rigenerare le strutture del protocollo applicativo dai dati ricevuti Associare il socket al protocollo applicativo Sostituire l indirizzo IP sorgente dei pacchetti in uscita con quello dell host che ha esportato la connessione attraverso opportune regole di NAT (SNAT) per i pacchetti della connessione migrata B IP B A C ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 16/29

Migrazione di una connessione sicura Meccanismo di migrazione SockMi Applicazione sessione SSL descrittore 1 esporta sessione SSL libsockmi libappsockmi export_ssl() import_ssl() Fase d esportazione export_app_socket() import_socket() export_ssl(ssl *ssl, int state, int af, const void *to) sockmi ssl è il puntatore alla struttura SSL socket 1 state è lo stato del protocollo applicativo af è una costante che indica la famiglia dell indirizzo di rete TCP/IP Stack sockmid to è il puntatore all eventuale indirizzo di rete verso cui esportare la comunicazione sicura export buffer import buffer application handler ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Applicazione sessione SSL descrittore 1 Meccanismo di migrazione SockMi libappsockmi esporta sessione SSL export_ssl() import_ssl() libsockmi export_app_socket() import_socket() Fase d esportazione 1. Congelato il protocollo applicativo La libreria libappsockmi: socket 1 TCP/IP Stack sockmi esporta dati applicativi salva i dati del protocollo applicativo in un buffer di memoria apre una connessione TCP/IP con il demone sockmid export buffer import buffer sockmid application handler invia i dati del protocollo applicativo al demone tramite un messaggio HTTP ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Applicazione sessione SSL descrittore 1 Meccanismo di migrazione SockMi libappsockmi esporta sessione SSL export_ssl() import_ssl() libsockmi export_app_socket() import_socket() sockmi Fase d esportazione 1. Congelato il protocollo applicativo richiesta HTTP: PUT <filename> HTTP/1.0 socket 1 Application-Type: <app> esporta dati applicativi Application-State: Content-Length: User-Agent: <app_state> <data_length> libappsockmi TCP/IP Stack sockmid <protocol_data> export buffer import buffer application handler <filename>: <pid>_<fd>.<app_name> ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Applicazione sessione SSL descrittore 1 Meccanismo di migrazione SockMi libappsockmi esporta sessione SSL export_ssl() import_ssl() libsockmi Fase d esportazione 2. Esportazione del socket export_app_socket() import_socket() esporta socket Le informazioni sul socket vengono copiate nel modulo sockmi e associate a un header: socket 1 copia strutture socket 1 sockmi sysctl() pid è il process ID dell applicazione che esporta fd è il descrittore del socket esporta dati applicativi app è l identificativo univoco del protocollo associato al socket TCP/IP Stack sockmid state è lo stato del socket to è l indirizzo dell eventuale sistema obiettivo export buffer import buffer application handler conn è la quadrupla che identifica il socket (I src, P src, I dst, P dst ) ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Meccanismo di migrazione SockMi Applicazione sessione SSL descrittore 1 esporta sessione SSL libappsockmi export_ssl() import_ssl() libsockmi export_app_socket() esporta socket import_socket() Fase d esportazione sockmi socket 1 copia strutture socket 1 esporta dati applicativi Per trasferire le informazioni dal livello kernel a quello utente si utilizza un dispositivo virtuale TCP/IP Stack esporta buffer signal USR1 sockmid export buffer import buffer application handler ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Meccanismo di migrazione SockMi Applicazione sessione SSL descrittore 1 esporta sessione SSL libappsockmi export_ssl() import_ssl() Fase di trasmissione libsockmi Il demone: export_app_socket() import_socket() esporta socket seleziona l obiettivo della migrazione invia una richiesta in multicast socket 1 copia strutture socket 1 sockmi seleziona il primo sistema che risponde invia i dati del socket esporta dati applicativi invia i dati del protocollo applicativo (<pid>_<fd>.<app_name>) TCP/IP Stack trasmetti dati ad un altro sockmid esporta buffer export buffer import buffer sockmid application handler definisce le opportune regole di NAT inoltra i pacchetti IP relativi alla connessione migrata al sistema obiettivo della migrazione ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Applicazione sessione SSL descrittore 1 Meccanismo di migrazione SockMi libappsockmi esporta sessione SSL export_ssl() import_ssl() Fase di trasmissione Il demone del sistema obiettivo: libsockmi export_app_socket() esporta socket riceve i dati del socket import_socket() sockmi riceve i dati del protocollo applicativo socket 1 copia strutture socket 1 definisce le opportune regole di NAT TCP/IP Stack trasmetti dati ad un altro sockmid ricevi dati da un altro sockmid esporta buffer export buffer import buffer sockmid esporta dati applicativi application handler sostituisce l indirizzo IP sorgente con quello del sistema che ha esportato la connessione per i pacchetti relativi alla connessione importata ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Meccanismo di migrazione SockMi Applicazione sessione SSL descrittore 1 esporta sessione SSL libappsockmi export_ssl() import_ssl() Fase di trasmissione libsockmi export_app_socket() import_socket() esporta socket le informazioni sul socket vengono trasferite nello spazio kernel tramite l apposito dispositivo virtuale sockmi i dati del protocollo applicativo vengono salvati in un file temporaneo socket 1 copia strutture socket 1 socket 2 esporta dati applicativi le informazioni principali del protocollo vengono inserite in una lista (accesso regolato da un meccanismo di lock esclusivo) TCP/IP Stack trasmetti dati ad un altro sockmid ricevi dati da un altro sockmid esporta buffer export buffer importa buffer ioctl() import buffer sockmid application handler tipo, stato, quadrupla (I src, P src, I dst, P dst ) che indentifica il socket associato, nome del file temporaneo ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Meccanismo di migrazione SockMi Applicazione sessione SSL descrittore 1 esporta sessione SSL importa sessione SSL libappsockmi export_ssl() import_ssl() Applicazione libsockmi export_app_socket() esporta socket Fase d importazione import_socket() socket 1 copia strutture socket 1 sockmi L applicazione importa una o più connessioni sicure tramite la primitiva import_ssl(), specificando: socket 2 esporta dati applicativi un vettore di richieste d importazione TCP/IP Stack esporta buffer importa buffer il tempo massimo di attesa sockmid trasmetti dati ad un altro sockmid ricevi dati da un altro sockmid export buffer import buffer application handler ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Applicazione sessione SSL descrittore 1 Applicazione Meccanismo di migrazione SockMi libappsockmi esporta sessione SSL export_ssl() importa sessione SSL import_ssl() libsockmi esporta socket export_app_socket() import_socket() Fase d importazione 1. Importazione del protocollo applicativo La libreria libappsockmi: socket 1 copia strutture socket 1 sockmi importa dati applicativi apre una connessione TCP/IP con il demone sockmid per ogni richiesta d importazione: TCP/IP Stack esporta buffer socket 2 importa buffer esporta dati applicativi richiede, tramite un messaggio HTTP v1.1, di poter importare una connessione coerente con i criteri specificati nella richiesta trasmetti dati ad un altro sockmid ricevi dati da un altro sockmid export buffer import buffer sockmid application handler il demone controlla se è stato importato almeno un protocollo applicativo che soddisfa tutti i criteri d importazione e risponde ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Applicazione sessione SSL descrittore 1 Meccanismo di migrazione SockMi libappsockmi esporta sessione SSL export_ssl() importa sessione SSL import_ssl() Fase d importazione richiesta HTTP: Applicazione libsockmi export_app_socket() import_socket() esporta socket POST <app_name> HTTP/1.1 Application-Type: <app> Application-State: <prio_state> socket 1 copia strutture socket 1 sockmi importa dati applicativi Content-Length: <criteria> <crit_length> socket 2 esporta dati applicativi HTTP/1.1 200 OK risposta HTTP: TCP/IP Stack esporta buffer importa buffer sockmid Content-Type: Content-Length: application/data <data_length> trasmetti dati ad un altro sockmid ricevi dati da un altro sockmid export buffer import buffer application handler <criteria><protocol_data> ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione di una connessione sicura Meccanismo di migrazione SockMi Applicazione sessione SSL descrittore 1 esporta sessione SSL importa sessione SSL libappsockmi export_ssl() import_ssl() Fase d importazione socket 1 Applicazione sessione SSL descrittore 2 copia strutture libsockmi export_app_socket() import_socket() socket 1 sockmi esporta socket importa socket importa dati applicativi 2. Importazione del socket import_socket(): per importare il socket associato al protocollo applicativo socket 2 TCP/IP Stack imposta strutture trasmetti dati ad un altro sockmid ricevi dati da un altro sockmid esporta buffer export buffer socket 2 importa buffer import buffer sockmid esporta dati applicativi application handler per selezionare il socket associato al protocollo importato, utilizza i criteri d importazione ottenuti dal demone sockmid ARCHITETTURA DEL MECCANISMO DI MIGRAZIONE SockMi SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 17/29

Migrazione del protocollo SSL MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 18/29

OpenSSL Software open source scritto in linguaggio C MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 19/29

OpenSSL Software open source scritto in linguaggio C Comprende: una libreria di cifratura (libcrypto) che implementa i più popolari e sicuri: algoritmi di cifratura a chiave simmetrica algoritmi a chiave pubblica algoritmi di hash MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 19/29

OpenSSL Software open source scritto in linguaggio C Comprende: una libreria di cifratura (libcrypto) che implementa i più popolari e sicuri: algoritmi di cifratura a chiave simmetrica algoritmi a chiave pubblica algoritmi di hash un toolkit SSL (libssl) che implementa i protocolli: SSL versione 2.0 SSL versione 3.0 TLS versione 1.0 MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 19/29

Utilizzo di un canale sicuro (1) inizializzare le librerie con la primitiva SSL_library_init MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 20/29

Utilizzo di un canale sicuro (1) inizializzare le librerie con la primitiva SSL_library_init inizializzare il contesto SSL (SSL_CTX) cifrari supportati, algoritmi di compressione, certificati, chiavi pubbliche e private, etc... MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 20/29

Utilizzo di un canale sicuro (1) inizializzare le librerie con la primitiva SSL_library_init inizializzare il contesto SSL (SSL_CTX) cifrari supportati, algoritmi di compressione, certificati, chiavi pubbliche e private, etc... creare una connessione SSL a partire dal contesto SSL * SSL_new(SSL_CTX *ctx) MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 20/29

Utilizzo di un canale sicuro (1) inizializzare le librerie con la primitiva SSL_library_init inizializzare il contesto SSL (SSL_CTX) cifrari supportati, algoritmi di compressione, certificati, chiavi pubbliche e private, etc... creare una connessione SSL a partire dal contesto SSL * SSL_new(SSL_CTX *ctx) associare la connessione a un socket MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 20/29

Utilizzo di un canale sicuro (1) inizializzare le librerie con la primitiva SSL_library_init inizializzare il contesto SSL (SSL_CTX) cifrari supportati, algoritmi di compressione, certificati, chiavi pubbliche e private, etc... creare una connessione SSL a partire dal contesto SSL * SSL_new(SSL_CTX *ctx) associare la connessione a un socket eventualmente connettere il socket a un server oppure accettare una connessione da un client MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 20/29

Utilizzo di un canale sicuro (2) eseguire la fase di negoziazione (SSL Handshake) SSL_connect() o SSL_accept() versione protocollo, algoritmo di cifratura, algoritmo di compressione, algoritmo digest, stati di connessione, etc... MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 21/29

Utilizzo di un canale sicuro (2) eseguire la fase di negoziazione (SSL Handshake) SSL_connect() o SSL_accept() versione protocollo, algoritmo di cifratura, algoritmo di compressione, algoritmo digest, stati di connessione, etc... eseguire le operazioni di lettura e/o scrittura sul canale sicuro SSL_read() o SSL_write() MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 21/29

Utilizzo di un canale sicuro (2) eseguire la fase di negoziazione (SSL Handshake) SSL_connect() o SSL_accept() versione protocollo, algoritmo di cifratura, algoritmo di compressione, algoritmo digest, stati di connessione, etc... eseguire le operazioni di lettura e/o scrittura sul canale sicuro SSL_read() o SSL_write() chiudere il canale SSL_shutdown() MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 21/29

Meccanismo di migrazione La migrazione del protocollo SSL/TLS avviene copiando in un area di memoria, detta buffer di migrazione, tutte le informazioni necessarie a ricostruire la connessione sicura su un altra applicazione il buffer consiste in una successione di strutture contigue che rappresentano i dati del protocollo MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 22/29

Meccanismo di migrazione La migrazione del protocollo SSL/TLS avviene copiando in un area di memoria, detta buffer di migrazione, tutte le informazioni necessarie a ricostruire la connessione sicura su un altra applicazione il buffer consiste in una successione di strutture contigue che rappresentano i dati del protocollo definire cosa trasferire: solo le informazioni necessarie MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 22/29

Meccanismo di migrazione La migrazione del protocollo SSL/TLS avviene copiando in un area di memoria, detta buffer di migrazione, tutte le informazioni necessarie a ricostruire la connessione sicura su un altra applicazione il buffer consiste in una successione di strutture contigue che rappresentano i dati del protocollo definire cosa trasferire: solo le informazioni necessarie tutte le informazioni della connessione sicura MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 22/29

Meccanismo di migrazione La migrazione del protocollo SSL/TLS avviene copiando in un area di memoria, detta buffer di migrazione, tutte le informazioni necessarie a ricostruire la connessione sicura su un altra applicazione il buffer consiste in una successione di strutture contigue che rappresentano i dati del protocollo definire cosa trasferire: solo le informazioni necessarie tutte le informazioni della connessione sicura consente di migrare la connessione prima della fase di SSL Handshake permette di creare una nuova connessione sicura il sistema che importa può sostituire completamente l entità che ha esportato la connessione MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 22/29

API del meccanismo di migrazione La libreria libappsockmi ha un duplice scopo: separare l implementazione di SockMi dallo sviluppo delle applicazioni che lo utilizzano MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 23/29

API del meccanismo di migrazione La libreria libappsockmi ha un duplice scopo: separare l implementazione di SockMi dallo sviluppo delle applicazioni che lo utilizzano definire una API che nasconda i complessi meccanismi che realizzano la migrazione: MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 23/29

API del meccanismo di migrazione La libreria libappsockmi ha un duplice scopo: separare l implementazione di SockMi dallo sviluppo delle applicazioni che lo utilizzano definire una API che nasconda i complessi meccanismi che realizzano la migrazione: save_ssl() copia tutte le informazioni della connessione sicura in un buffer di memoria definita in app/ssl.h e implementata in app/ssl.c export_ssl() per esportare la connessione sicura specificata verso il sistema obiettivo definita in appexport.h e implementata in export_app.c invia i dati del protocollo SSL al demone sockmid MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 23/29

API del meccanismo di migrazione La libreria libappsockmi ha un duplice scopo: separare l implementazione di SockMi dallo sviluppo delle applicazioni che lo utilizzano definire una API che nasconda i complessi meccanismi che realizzano la migrazione: import_ssl() per importare una o più connessioni sicure contemporaneamente definita in appimport.h e implementata in import_app.c riceve i dati del protocollo SSL dal demone sockmid load_ssl() rigenera la connessione sicura a partire dalle informazioni contenute in un buffer di memoria definita in app/ssl.h e implementata in app/ssl.c MIGRAZIONE DEL PROTOCOLLO SSL SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 23/29

Esempi di migrazione ESEMPI DI MIGRAZIONE SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 24/29

Programmi di echo input stream read() ssl_echo_cli SSL_write() SSL_read() ssl_echo_srv SSL_read() SSL_write() write() Client Echo/SSL (ssl_echo_cli) output stream Canale sicuro SSL ESEMPI DI MIGRAZIONE SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 25/29

Programmi di echo input stream read() ssl_echo_cli SSL_write() SSL_read() ssl_echo_srv SSL_read() SSL_write() write() Client Echo/SSL (ssl_echo_cli) Server Echo/SSL (ssl_echo_srv) output stream Canale sicuro SSL ESEMPI DI MIGRAZIONE SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 25/29

Programmi di echo input stream read() ssl_echo_cli SSL_write() SSL_read() ssl_echo_srv SSL_read() SSL_write() write() Client Echo/SSL (ssl_echo_cli) Server Echo/SSL (ssl_echo_srv) Modalità d operazione: output stream Canale sicuro SSL normale: il programma si comporta come un echo client-ssl o server-ssl tradizionale ESEMPI DI MIGRAZIONE SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 25/29

Programmi di echo input stream read() ssl_echo_cli SSL_write() SSL_read() ssl_echo_srv SSL_read() SSL_write() write() Client Echo/SSL (ssl_echo_cli) Server Echo/SSL (ssl_echo_srv) Modalità d operazione: output stream Canale sicuro SSL normale: il programma si comporta come un echo client-ssl o server-ssl tradizionale importazione: il programma importa una connessione sicura in un certo stato ESEMPI DI MIGRAZIONE SockMi: un meccanismo per la migrazione di connessioni sicure Samuele Ruco p. 25/29