Enforcing network policies and inspecting packets content is fundamental when a company is managing devices that perform critical operations or collect sensitive data. It becomes a difficult task when data is encrypted and even more difficult if middleboxes on the path between a client and the server cannot be trusted to handle plaintext traffic. Grubbs et al. recently proposed to address this issue by using a Zero-Knowledge protocol to prove that an encrypted packet complies with a previously agreed policy. The proof, generated by a client and verified by the middlebox, reveals nothing about the packet content, except the fact that it complies to the policy. This thesis extends that work by proposing a practical implementation of the architecture of Grubbs et al. as an Intrusion Detection System deployed at the ingress of a cloud employing the Function-as-a-Service paradigm. Clients call remote functions by sending HTTPS requests to a well-known OpenWhisk server. These requests are encrypted end-to-end and the client must provide proof that it is authorized to send them. With respect to their work, this contribution describes a full-stack implementation of the middlebox performing the policy verification. This novel implementation overcomes some simplifications and introduces a communications protocol between the client and the middlebox. Then, two new components are introduced to the IDS: one allows data (proofs and keys) and parameters (policy-related variables) to be exchanged between clients and IDS, and the other intercepts the client-server communication and collects relevant data to verify the proofs. The last contribution is the introduction of three new policy checks for HTTP traffic, each implementing progressively more features. These new policies are then compared and evaluated in terms of time and resources needed in the different phases, and a study is conducted to understand the impact of different inputs on execution times and circuit complexity. The results show that an IDS based on Zero-Knowledge proofs is feasible, but that a real-time policy check is not yet possible, because with state-of-the-art computational capabilities, executing proof generation and verification takes at least 90 seconds for each request.

Applicare policy ed esaminare il contenuto di un pacchetto è fondamentale se un'azienda controlla dispositivi che svolgono operazioni critiche o raccolgono dati sensibili. Questo compito si complica se i dati sono cifrati, ed ancora di più se i dispositivi (middlebox) nel percorso tra client e server non sono affidabili nel trattare traffico in chiaro. Grubbs et al. hanno di recente proposto di affrontare questo problema usando un protocollo a Zero-Knowledge (conoscenza zero), per dimostrare la conformità di un pacchetto cifrato con una policy concordata in precedenza. La proof (dimostrazione), generate da un client e verificata dal middlebox, non rivela niente riguardo il contenuto del pacchetto, eccetto attestare il rispetto della policy. Questa tesi estende quel lavoro, proponendo una implementazione concreta della loro architettura come Intrusion Detection System, dove i pacchetti dai client verso un server OpenWhisk attraversano l'IDS e vengono salvati per verificarne la conformità. Il client deve poi fornire una proof di legittimità della richiesta. A differenza loro, questo lavoro descrive una implementazione full-stack del middlebox che esegue la verifica della policy. La nuova implementazione supera alcune semplificazioni e introduce un protocollo di comunicazione tra i client e il middlebox. In seguito, due nuove componenti dell'IDS vengono illustrate: la prima, permette lo scambio di dati (dimostrazioni e chiavi) e parametri (variabili legate alle policy) tra client e IDS, mentre la seconda permette di intercettare gli scambi tra client e server per raccogliere dati necessari alla verifica delle proof. L'ultimo contributo è l'introduzione di tre nuovi controlli-policy per traffico HTTP, dove ciascuno implementa progressivamente più funzionalità. I tre nuovi controlli vengono poi confrontati ed analizzati in termini di tempo e risorse richieste dalle varie fasi di esecuzione, e un'analisi è stata svolta per capire l'impatto di diversi input sui tempi di esecuzione e sulla complessità dei circuiti. I risultati hanno mostrato che un IDS basato sulle Zero-Knowledge proof è fattibile, ma che controllare in tempo reale la conformità dei pacchetti non è ancora possibile, poiché anche con le capacità di calcolo più all'avanguardia, generare e verificare una proof richiede almeno 90 secondi per richiesta.

A Middlebox for Intrusion Detection Using Zero-Knowledge Proofs

Andreotti, Davide
2022/2023

Abstract

Enforcing network policies and inspecting packets content is fundamental when a company is managing devices that perform critical operations or collect sensitive data. It becomes a difficult task when data is encrypted and even more difficult if middleboxes on the path between a client and the server cannot be trusted to handle plaintext traffic. Grubbs et al. recently proposed to address this issue by using a Zero-Knowledge protocol to prove that an encrypted packet complies with a previously agreed policy. The proof, generated by a client and verified by the middlebox, reveals nothing about the packet content, except the fact that it complies to the policy. This thesis extends that work by proposing a practical implementation of the architecture of Grubbs et al. as an Intrusion Detection System deployed at the ingress of a cloud employing the Function-as-a-Service paradigm. Clients call remote functions by sending HTTPS requests to a well-known OpenWhisk server. These requests are encrypted end-to-end and the client must provide proof that it is authorized to send them. With respect to their work, this contribution describes a full-stack implementation of the middlebox performing the policy verification. This novel implementation overcomes some simplifications and introduces a communications protocol between the client and the middlebox. Then, two new components are introduced to the IDS: one allows data (proofs and keys) and parameters (policy-related variables) to be exchanged between clients and IDS, and the other intercepts the client-server communication and collects relevant data to verify the proofs. The last contribution is the introduction of three new policy checks for HTTP traffic, each implementing progressively more features. These new policies are then compared and evaluated in terms of time and resources needed in the different phases, and a study is conducted to understand the impact of different inputs on execution times and circuit complexity. The results show that an IDS based on Zero-Knowledge proofs is feasible, but that a real-time policy check is not yet possible, because with state-of-the-art computational capabilities, executing proof generation and verification takes at least 90 seconds for each request.
ING - Scuola di Ingegneria Industriale e dell'Informazione
5-ott-2023
2022/2023
Applicare policy ed esaminare il contenuto di un pacchetto è fondamentale se un'azienda controlla dispositivi che svolgono operazioni critiche o raccolgono dati sensibili. Questo compito si complica se i dati sono cifrati, ed ancora di più se i dispositivi (middlebox) nel percorso tra client e server non sono affidabili nel trattare traffico in chiaro. Grubbs et al. hanno di recente proposto di affrontare questo problema usando un protocollo a Zero-Knowledge (conoscenza zero), per dimostrare la conformità di un pacchetto cifrato con una policy concordata in precedenza. La proof (dimostrazione), generate da un client e verificata dal middlebox, non rivela niente riguardo il contenuto del pacchetto, eccetto attestare il rispetto della policy. Questa tesi estende quel lavoro, proponendo una implementazione concreta della loro architettura come Intrusion Detection System, dove i pacchetti dai client verso un server OpenWhisk attraversano l'IDS e vengono salvati per verificarne la conformità. Il client deve poi fornire una proof di legittimità della richiesta. A differenza loro, questo lavoro descrive una implementazione full-stack del middlebox che esegue la verifica della policy. La nuova implementazione supera alcune semplificazioni e introduce un protocollo di comunicazione tra i client e il middlebox. In seguito, due nuove componenti dell'IDS vengono illustrate: la prima, permette lo scambio di dati (dimostrazioni e chiavi) e parametri (variabili legate alle policy) tra client e IDS, mentre la seconda permette di intercettare gli scambi tra client e server per raccogliere dati necessari alla verifica delle proof. L'ultimo contributo è l'introduzione di tre nuovi controlli-policy per traffico HTTP, dove ciascuno implementa progressivamente più funzionalità. I tre nuovi controlli vengono poi confrontati ed analizzati in termini di tempo e risorse richieste dalle varie fasi di esecuzione, e un'analisi è stata svolta per capire l'impatto di diversi input sui tempi di esecuzione e sulla complessità dei circuiti. I risultati hanno mostrato che un IDS basato sulle Zero-Knowledge proof è fattibile, ma che controllare in tempo reale la conformità dei pacchetti non è ancora possibile, poiché anche con le capacità di calcolo più all'avanguardia, generare e verificare una proof richiede almeno 90 secondi per richiesta.
File allegati
File Dimensione Formato  
2023_10_Andreotti_Thesis_01.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Thesis
Dimensione 975.8 kB
Formato Adobe PDF
975.8 kB Adobe PDF   Visualizza/Apri
2023_10_Andreotti_Summary_02.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Executive Summary
Dimensione 570.98 kB
Formato Adobe PDF
570.98 kB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/210892