Els servidors bizantins són un concepte derivat del problema dels generals bizantins, que il·lustra els reptes d'aconseguir un consens en sistemes informàtics distribuïts on els components poden fallar i hi ha informació imperfecta. En el context dels sistemes d'emmagatzematge, els servidors bizantins representen nodes d'emmagatzematge que poden mostrar un comportament arbitrari o maliciós, inclòs l'enviament d'informació conflictiva a diferents parts del sistema, la manca de resposta o l'intent activa de corrompre o manipular dades. Aquest comportament suposa amenaces importants per a la seguretat i la fiabilitat dels sistemes d'emmagatzematge, especialment els que depenen d'arquitectures distribuïdes.
El problema dels generals bizantins, presentat per primera vegada per Leslie Lamport, Robert Shostak i Marshall Pease l'any 1982, descriu un escenari en què un grup de generals ha de posar-se d'acord en una estratègia comuna per evitar el fracàs. Tanmateix, alguns dels generals poden ser traïdors, proporcionant informació falsa per evitar consens. Traduint això als sistemes informàtics, els errors bizantins es refereixen a errors arbitràries que poden ocórrer en qualsevol part del sistema, inclosos errors de programari, errors de maquinari o atacs maliciosos.
En els sistemes d'emmagatzematge, els servidors bizantins poden minar la integritat, la disponibilitat i la confidencialitat de les dades. Aquestes amenaces es poden classificar de la següent manera:
1. Amenaces a la integritat: els servidors bizantins poden corrompre les dades emmagatzemades dins del sistema. Aquesta corrupció pot ser subtil, com ara alterar alguns bits de dades, o més greu, com substituir completament les dades per informació falsa. El repte és que els servidors bizantins poden comportar-se correctament la major part del temps, cosa que dificulta detectar la corrupció immediatament. Per exemple, en un sistema de fitxers distribuït, si un servidor bizantí altera el contingut d'un fitxer, altres clients que accedeixin al mateix fitxer poden rebre dades incorrectes, la qual cosa pot provocar una possible pèrdua de dades o errors d'aplicació.
2. Amenaces de disponibilitat: els servidors bizantins poden interrompre la disponibilitat de les dades en negar-se a respondre a les sol·licituds o proporcionar respostes retardades. En un sistema d'emmagatzematge distribuït, si un subconjunt de servidors esdevé bizantí, pot provocar una situació en què el sistema no pot aconseguir el quòrum necessari per realitzar operacions de lectura o escriptura, fent que les dades siguin inaccessibles. Per exemple, en un servei d'emmagatzematge al núvol, si diversos nodes d'emmagatzematge no responen a causa del comportament bizantí, els usuaris poden experimentar retards significatius o incapacitat total per accedir a les seves dades emmagatzemades.
3. Amenaces de confidencialitat: els servidors bizantins poden filtrar informació sensible a persones no autoritzades. Això pot passar si el servidor es veu compromès per un atacant que després exfiltra les dades o si el servidor comparteix dades deliberadament amb entitats no autoritzades. En un escenari on s'emmagatzema informació personal confidencial o dades comercials de propietat, aquestes infraccions poden provocar greus violacions de la privadesa i pèrdues financeres.
Per mitigar els riscos que representen els servidors bizantins, s'han desenvolupat diverses estratègies i protocols. Això inclou:
- Protocols de tolerància a fallades bizantines (BFT).: Aquests protocols estan dissenyats per aconseguir consens davant la presència de falles bizantines. Un dels protocols BFT més coneguts és Practical Byzantine Fault Tolerance (PBFT), que permet que un sistema distribuït toleri que fins a un terç dels seus components siguin bizantins. PBFT funciona tenint múltiples rèpliques de les dades i requerint un nombre determinat de rèpliques per acordar l'estat de les dades abans que es consideri compromesa qualsevol operació. Això garanteix que encara que algunes rèpliques siguin bizantines, el sistema encara pugui funcionar correctament.
- Esborrat de codificació i redundància: Mitjançant l'ús de la codificació d'esborrat i l'emmagatzematge de dades de manera redundant en diversos servidors, els sistemes d'emmagatzematge poden tolerar errors bizantins. La codificació d'esborrat divideix les dades en fragments i les codifica amb informació redundant, de manera que, fins i tot si alguns fragments es malmeten o es perden, les dades originals es poden reconstruir. Aquest enfocament augmenta la tolerància a errors i garanteix la disponibilitat de dades malgrat la presència de servidors bizantins.
- Tècniques criptogràfiques: L'ús de mètodes criptogràfics com ara signatures digitals i funcions hash pot ajudar a detectar i prevenir la corrupció de dades per part dels servidors bizantins. Per exemple, els clients poden signar les seves dades abans d'emmagatzemar-les, i els servidors d'emmagatzematge poden verificar les signatures en recuperar-les. Qualsevol alteració per part d'un servidor bizantí donaria lloc a una discrepància de signatura, alertant el sistema d'una possible corrupció.
- Auditoria i Seguiment: L'auditoria i el seguiment periòdics dels servidors d'emmagatzematge poden ajudar a detectar el comportament bizantí. En verificar contínuament la integritat i la disponibilitat de les dades, els sistemes d'emmagatzematge poden identificar i aïllar els servidors bizantins. Es poden utilitzar tècniques com els protocols de resposta a desafiaments, on els servidors han de demostrar que encara posseeixen les dades correctes, es poden utilitzar per garantir la integritat de les dades.
- Sistemes de replicació i quòrum: La replicació de dades en diversos servidors i l'ús d'enfocaments basats en quòrum per a les operacions de lectura i escriptura pot mitigar l'impacte de les falles bizantines. Un sistema de quòrum requereix un nombre determinat de servidors per acordar una operació abans d'executar-la. Això garanteix que, fins i tot si alguns servidors són bizantins, no poden interrompre per si sols el funcionament del sistema.
Un exemple d'implementació pràctica de la tolerància a errors bizantina és la plataforma de cadena de blocs Hyperledger Fabric, que utilitza una variant de PBFT per aconseguir consens entre els seus nodes. En aquest sistema, les transaccions són proposades pels clients, avalades per un subconjunt de companys, i després ordenades i validades per un mecanisme de consens que tolera les falles bizantines. Això garanteix que, fins i tot si alguns companys són maliciosos o defectuosos, es mantingui la integritat i la coherència de la cadena de blocs.
Un altre exemple és Spanner de Google, una base de dades distribuïda globalment que utilitza una combinació de replicació, sistemes de quòrum i rellotges sincronitzats per aconseguir una gran disponibilitat i coherència. Tot i que no està dissenyada explícitament per a la tolerància a fallades bizantines, l'arquitectura de Spanner proporciona robustesa contra certs tipus d'errors i garanteix la integritat i la disponibilitat de les dades en centres de dades dispersos geogràficament.
La presència de servidors bizantins als sistemes d'emmagatzematge requereix un enfocament integral de la seguretat que combini múltiples tècniques i protocols. Mitjançant l'ús de protocols bizantins de tolerància a errors, redundància, mètodes criptogràfics, auditoria i sistemes de quòrum, els sistemes d'emmagatzematge poden aconseguir resiliència contra el comportament arbitrari i maliciós que mostren els servidors bizantins. Això garanteix la integritat, la disponibilitat i la confidencialitat de les dades, fins i tot davant d'atacs i errors sofisticats.
Altres preguntes i respostes recents sobre EITC/IS/ACSS Seguretat de sistemes informàtics avançats:
- Quins són alguns dels reptes i inconvenients que implica la implementació de mitigacions de maquinari i programari contra els atacs de temps mentre es manté el rendiment del sistema?
- Quin paper juga el predictor de branques en els atacs de temporització de la CPU i com poden els atacants manipular-lo per filtrar informació sensible?
- Com pot ajudar la programació en temps constant a mitigar el risc d'atacs de cronometratge en algorismes criptogràfics?
- Què és l'execució especulativa i com contribueix a la vulnerabilitat dels processadors moderns a atacs de temporització com Spectre?
- Com els atacs de temporització exploten les variacions en el temps d'execució per inferir informació sensible d'un sistema?
- En què difereix el concepte de consistència de bifurcació de la consistència de recuperació i modificació i per què es considera que la consistència de bifurcació és la més sòlida que es pot aconseguir en sistemes amb servidors d'emmagatzematge no fiables?
- Quins són els reptes i les solucions potencials per implementar mecanismes de control d'accés sòlids per evitar modificacions no autoritzades en un sistema de fitxers compartit en un servidor no fiable?
- En el context dels servidors d'emmagatzematge no fiables, quina és la importància de mantenir un registre d'operacions coherent i verificable i com es pot aconseguir?
- Com poden les tècniques criptogràfiques com les signatures digitals i el xifratge ajudar a garantir la integritat i la confidencialitat de les dades emmagatzemades en servidors no fiables?
- Com contribueixen protocols com STARTTLS, DKIM i DMARC a la seguretat del correu electrònic i quins són els seus respectius papers en la protecció de les comunicacions per correu electrònic?
Vegeu més preguntes i respostes a EITC/IS/ACSS Advanced Computer Systems Security