Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Informatica distribuita, parallela e in cluster

Costruire un Registro Audibile Forte per l'Integrità dei Dati

Un metodo per creare registri affidabili e verificabili nei sistemi distribuiti.

― 7 leggere min


Registro auditable controRegistro auditable controi guasti del serveraffidabile nei sistemi distribuiti.Nuovo metodo per l'auditing dei dati
Indice

Un Registro Auditabile aggiunge la possibilità di controllare chi ha letto le informazioni in esso memorizzate. Questo documento discute come costruire un tale registro che possa gestire problemi causati da server difettosi, noti come guasti bizantini. Questi guasti si verificano quando alcuni server forniscono risposte errate o non seguono il protocollo previsto. Il nostro obiettivo è creare un modo affidabile per registrare e auditare l'accesso ai dati in un sistema dove i server comunicano in modo asincrono, il che significa che non devono operare in sincronia.

Quando si implementano registri auditabili, è importante avere un numero sufficiente di server. Lavori precedenti hanno dimostrato che sono necessari almeno 4f + 1 server, dove f è il numero massimo di server che possono guastarsi. Tuttavia, mostriamo che per certe condizioni, è possibile utilizzare solo 3f + 1 server mantenendo forti capacità di auditing.

La necessità di auditabilità

Oggi molte persone e organizzazioni usano sistemi di archiviazione distribuita di terze parti. Questi sistemi offrono spazio e accessibilità aggiuntivi, ma presentano sfide legate alla fiducia nei dati, alla privacy e alla sicurezza. Gli utenti devono fare affidamento sui fornitori di archiviazione per mantenere l'integrità dei propri dati. Eventi recenti hanno evidenziato i rischi associati alle vulnerabilità di archiviazione dei dati e la necessità di una regolamentazione e protezione adeguata dei dati.

Questo lavoro cerca di fornire un metodo per monitorare chi accede ai dati memorizzati, migliorando la sicurezza dei sistemi di archiviazione distribuiti. Immaginiamo un'impostazione in cui i clienti (utenti) possano controllare tutte le azioni di lettura eseguite sui dati senza rivelare le azioni di coloro che non vi hanno avuto accesso.

Lavori correlati

Risultati pubblicati in precedenza hanno gettato le basi per registri auditabili. Questo articolo introduce un nuovo algoritmo per costruire un Registro Atomico auditabile forte usando 3f + 1 server, migliorando i metodi precedenti che assicuravano solo capacità di auditing di base.

Contributi

I principali contributi di questo lavoro includono:

  • Un algoritmo innovativo per implementare un registro atomico auditabile forte con 3f + 1 server.
  • Un'implementazione in Rust utilizzando Zenoh, dimostrando l'algoritmo in pratica.

Organizzazione del documento

La struttura del documento è la seguente:

  1. Modello di sistema: descriviamo l'impostazione del sistema distribuito.
  2. Definizioni di registro auditabile: delineiamo le funzioni e le proprietà dei nostri registri.
  3. Limiti sul numero di server: discutiamo il numero minimo di server necessari per creare un registro auditabile.
  4. Algoritmo ottimale: presentiamo l'algoritmo più efficiente e ne proviamo la correttezza.
  5. Contesto multi-scrittore: consideriamo come adattare più scrittori mantenendo i guasti bizantini.

Modello di sistema

Nel nostro modello utilizziamo un insieme di processi che comunicano tramite messaggi. Ogni processo ha un identificatore unico e può agire come client o server. I server sono responsabili di mantenere il registro, mentre i client possono leggerne e scriverne. Solo un client designato, lo scrittore, può scrivere nel registro, mentre qualsiasi numero di client può leggere il suo contenuto.

Dobbiamo garantire che tutti i processi corretti seguano lo stesso protocollo affinché il sistema funzioni efficacemente. Un processo bizantino può guastarsi in modi imprevisti. Definiamo le interazioni e i metodi di comunicazione per client e server, inclusi broadcasting affidabile e comunicazione diretta.

Modello di guasto

In questa configurazione, tutti i processi devono funzionare correttamente secondo un protocollo definito. Se un processo agisce in un modo che contraddice questo, viene contrassegnato come bizantino. Lo scrittore può guastarsi semplicemente fermandosi, mentre qualsiasi numero di lettori può essere bizantino. Tuttavia, assumiamo che i lettori difettosi non collaborino tra loro.

Primitivi di comunicazione

Per facilitare la comunicazione, utilizziamo un metodo di broadcasting affidabile. Quando un processo corretto invia un messaggio, questo verrà eventualmente ricevuto da tutti i processi corretti. Inoltre, stabiliamo una comunicazione punto a punto, dove i messaggi inviati da un processo raggiungeranno il destinatario previsto senza perderli o duplicarli.

Registro atomico auditabile a scrittore singolo/multi-lettore

Qui delineiamo le funzioni di un registro atomico. Questo oggetto condiviso fornisce due operazioni principali:

  1. Scrivere: consente allo scrittore designato di assegnare un valore al registro.
  2. Leggere: consente a qualsiasi processo di ottenere il valore attuale dal registro.

L'atomicità significa che le operazioni sembrano avvenire in un ordine rigoroso, anche quando avvengono contemporaneamente. Introduciamo l'operazione di audit, che tiene traccia dell'accesso al registro.

L'operazione di audit consente allo scrittore di monitorare quali lettori hanno accesso al registro, creando un elenco di lettori e dei valori che hanno recuperato. Tuttavia, se un lettore accede a un valore e lo rivela senza utilizzare il meccanismo di audit, questo non verrà riportato.

Sistemi correlati e impossibilità

Ricerche precedenti indicano che costruire un registro auditabile con server bizantini può essere una sfida, specialmente quando almeno un server ha una copia completa dei dati. Se un lettore difettoso accede ai dati da quei server, potrebbe farlo senza lasciare traccia di accesso.

Per affrontare questo, suggeriamo di utilizzare tecniche di condivisione segreta e dispersione dell'informazione. Quando lo scrittore memorizza informazioni, le crittografa e le suddivide in più parti per garantire la sicurezza e ridurre le necessità di spazio. In questo modo, i lettori devono raccogliere più parti per ricostruire il valore.

Risultati di impossibilità

Dimostriamo che non è possibile creare un registro auditabile con meno di 4f + 1 processi senza consentire la comunicazione tra server. Analizziamo quanti blocchi sono necessari per un'operazione di audit efficace, estendendo i risultati esistenti al nostro sistema.

Concludiamo che se vengono utilizzati solo pochi server, il potenziale per lettori bizantini di sfruttare il sistema aumenta notevolmente, il che renderebbe l'audit inefficace.

Specifica della soluzione

Forniamo un algoritmo in grado di implementare un registro atomico auditabile forte, rimanendo resiliente ai guasti. Questo sistema richiede 3f + 1 server per garantire prestazioni ottimali. Sottolineiamo che la comunicazione tra server è essenziale, poiché consente una migliore coordinazione e garantisce che l'auditabilità possa essere raggiunta senza eccessivo sovraccarico.

Descrizione dell'algoritmo

L'algoritmo ha variabili specifiche sia per il lato dello scrittore che per quello del lettore, dettagliando come sono strutturati e elaborati i messaggi. Lo scrittore trasmette aggiornamenti, mentre i server confermano gli aggiornamenti dopo averli elaborati.

L'operazione di lettura coinvolge più fasi, garantendo che il lettore raccolga le informazioni necessarie per auditare efficacemente le risposte dei server. L'operazione di audit viene condotta in modo simile, con processi che inviano richieste e ricevono registri dai server per verificare i lettori.

Prova dell'efficacia dell'algoritmo

Proviamo che l'algoritmo presentato soddisfa i requisiti di atomicità e auditabilità. La prova mostra che ogni operazione di lettura eseguita da un processo corretto restituisce un valore valido. Ogni server registra le azioni e le risposte, garantendo che il sistema mantenga precisione e completezza.

Mostrando il comportamento del sistema in diverse condizioni, ci assicuriamo che il nostro meccanismo di audit possa monitorare efficacemente quali lettori hanno avuto accesso ai valori memorizzati nel registro. L'algoritmo tiene conto di potenziali problemi causati da processi difettosi e garantisce l'affidabilità dei dati recuperati.

Conclusione

In sintesi, abbiamo sviluppato un nuovo metodo per creare un registro atomico auditabile forte che opera in un sistema distribuito. Abbiamo affrontato le sfide dei guasti bizantini assicurandoci che il nostro sistema mantenga l'integrità dei registri di accesso ai dati. Utilizzando una combinazione di crittografia, condivisione segreta e comunicazione affidabile, abbiamo gettato le basi per soluzioni di archiviazione dei dati più sicure che possono essere fidate dagli utenti.

I nostri risultati offrono spunti preziosi per migliorare le capacità di audit nei sistemi di archiviazione distribuita, aprendo la strada a una maggiore sicurezza e affidabilità nella gestione dei dati. L'approccio delineato qui può servire come riferimento per lavori futuri in questo dominio, contribuendo ai progressi nei sistemi distribuiti e alle loro applicazioni.

Fonte originale

Titolo: Preliminaries paper: Byzantine Tolerant Strong Auditable Atomic Register

Estratto: An auditable register extends the classical register with an audit operation that returns information on the read operations performed on the register. In this paper, we study Byzantine resilient auditable register implementations in an asynchronous message-passing system. Existing solutions implement the auditable register on top of at least 4f+1 servers, where at most $f$ can be Byzantine. We show that 4f+1 servers are necessary to implement auditability without communication between servers, or implement does not implement strong auditability when relaxing the constraint on the servers' communication, letting them interact with each other. In this setting, it exists a solution using 3f+1 servers to implement a simple auditable atomic register. In this work, we implement strong auditable register using 3f+1 servers with server to server communication, this result reinforced that with communication between servers, auditability (event strong auditability) does not come with an additional cost in terms of the number of servers.

Autori: Antonella Del Pozzo, Antoine Lavandier, Alexandre Rapetti

Ultimo aggiornamento: 2023-09-19 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2309.10664

Fonte PDF: https://arxiv.org/pdf/2309.10664

Licenza: https://creativecommons.org/licenses/by/4.0/

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Altro dagli autori

Articoli simili