This thesis describes the design and implementation of a full-stack web application for the secure management of personal data, based on a “zero-knowledge” model for the service provider. The primary objective is to ensure maximum confidentiality of user data, making it inaccessible to anyone, including the system administrator. The architecture is based on a front-end developed in React and a RESTful back-end in Spring Boot with a MySQL database. The core of the system is an end-to-end asymmetric encryption mechanism executed entirely on the client side. Upon registration, an RSA key pair is generated for each user: the public key is stored on the server, while the private key is delivered exclusively to the user, who assumes full responsibility for its safekeeping. All data entered is encrypted in the user's browser using their public key before being transmitted to the server. As a result, the database stores only encrypted data, which is unreadable without the corresponding private key. This model shifts the burden of decryption to the end user, effectively exempting the database manager from direct responsibility for the confidentiality of the content, in line with the principles of privacy-by-design. Authentication is managed via JSON Web Tokens (JWT) to ensure stateless and secure sessions.
La presente tesi descrive la progettazione e l'implementazione di un'applicazione web full-stack per la gestione sicura di dati personali, basata su un modello di "zero-knowledge" per il fornitore del servizio. L'obiettivo primario è garantire la massima confidenzialità dei dati dell'utente, rendendoli inaccessibili a chiunque, incluso l'amministratore del sistema. L'architettura si basa su un frontend sviluppato in React e un backend RESTful in Spring Boot con database MySQL. Il nucleo del sistema è un meccanismo di crittografia asimmetrica end-to-end eseguito interamente lato client. Al momento della registrazione, per ogni utente viene generata una coppia di chiavi RSA: la chiave pubblica viene memorizzata sul server, mentre la chiave privata viene consegnata esclusivamente all'utente, che ne assume la piena responsabilità di custodia. Ogni dato inserito viene crittografato nel browser dell'utente utilizzando la sua chiave pubblica prima di essere trasmesso al server. Di conseguenza, il database memorizza unicamente dati crittografati, illeggibili senza la corrispondente chiave privata. Questo modello sposta l'onere della decrittografia sull'utente finale, esonerando di fatto il gestore del database da responsabilità dirette sulla confidenzialità del contenuto, in linea con i principi di privacy-by-design. L'autenticazione è gestita tramite JSON Web Tokens (JWT) per garantire sessioni stateless e sicure.
Gestione dei Dati con Tutela della Privacy mediante Tunneling dall'Origine all'Utente
GIANCOLA, GIOVANNI
2024/2025
Abstract
This thesis describes the design and implementation of a full-stack web application for the secure management of personal data, based on a “zero-knowledge” model for the service provider. The primary objective is to ensure maximum confidentiality of user data, making it inaccessible to anyone, including the system administrator. The architecture is based on a front-end developed in React and a RESTful back-end in Spring Boot with a MySQL database. The core of the system is an end-to-end asymmetric encryption mechanism executed entirely on the client side. Upon registration, an RSA key pair is generated for each user: the public key is stored on the server, while the private key is delivered exclusively to the user, who assumes full responsibility for its safekeeping. All data entered is encrypted in the user's browser using their public key before being transmitted to the server. As a result, the database stores only encrypted data, which is unreadable without the corresponding private key. This model shifts the burden of decryption to the end user, effectively exempting the database manager from direct responsibility for the confidentiality of the content, in line with the principles of privacy-by-design. Authentication is managed via JSON Web Tokens (JWT) to ensure stateless and secure sessions.| File | Dimensione | Formato | |
|---|---|---|---|
|
Giancola_Giovanni.pdf
accesso aperto
Dimensione
1.1 MB
Formato
Adobe PDF
|
1.1 MB | Adobe PDF | Visualizza/Apri |
The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License
https://hdl.handle.net/20.500.12608/97834