16 research outputs found

    ByzID: Byzantine Fault Tolerance from Intrusion Detection

    Full text link
    Building robust network services that can withstand a wide range of failure types is a fundamental problem in distributed systems. The most general approach, called Byzantine fault tolerance, can mask arbitrary failures. Yet it is often considered too costly to deploy in practice, and many solutions are not resilient to performance attacks. To address this concern we leverage two key technologies already widely deployed in cloud computing infrastructures: replicated state machines and intrusiondetection systems.First, we have designed a general framework for constructing Byzantine failure detectors based on an intrusion detection system. Based on such a failure detector, we have designed and built a practical Byzantine fault-tolerant protocol, which has costs comparable to crash-resilient protocols like Paxos. More importantly, our protocol is particularly robust against several key attacks such as flooding attacks, timing attacks, and fairness attacks, that are typically not handled well by Byzantine fault masking procedures

    Interactive Consistency in practical, mostly-asynchronous systems

    Full text link
    Interactive consistency is the problem in which n nodes, where up to t may be byzantine, each with its own private value, run an algorithm that allows all non-faulty nodes to infer the values of each other node. This problem is relevant to critical applications that rely on the combination of the opinions of multiple peers to provide a service. Examples include monitoring a content source to prevent equivocation or to track variability in the content provided, and resolving divergent state amongst the nodes of a distributed system. Previous works assume a fully synchronous system, where one can make strong assumptions such as negligible message delivery delays and/or detection of absent messages. However, practical, real-world systems are mostly asynchronous, i.e., they exhibit only some periods of synchrony during which message delivery is timely, thus requiring a different approach. In this paper, we present a thorough study on practical interactive consistency. We leverage the vast prior work on broadcast and byzantine consensus algorithms to design, implement and evaluate a set of algorithms, with varying timing assumptions and message complexity, that can be used to achieve interactive consistency in real-world distributed systems. We provide a complete, open-source implementation of each proposed interactive consistency algorithm by building a multi-layered stack of protocols that include several broadcast protocols, as well as a binary and a multi-valued consensus protocol. Most of these protocols have never been implemented and evaluated in a real system before. We analyze the performance of our suite of algorithms experimentally by engaging in both single instance and multiple parallel instances of each alternative.Comment: 13 pages, 10 figure

    Tolerância a faltas bizantinas usando técnicas de introspecção de máquinas virtuais

    Get PDF
    Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2015.Atualmente é quase impossível uma pessoa não utilizar direta ou indiretamente um sistema computacional. Ao realizar uma operação bancária ou até mesmo ao fazer compras em uma loja, nós somos auxiliados por sistemas computacionais. Em contrapartida, surgem novos ataques para comprometer o funcionamento correto dos sistemas utilizados. Várias técnicas são utilizadas para que os sistemas funcionem conforme sua especificação, entre elas,destacam-se sistemas tolerantes a faltas bizantinas/intrusões (BFT) através de replicação de máquina de estados (RME). Nessa abordagem, é proposta uma arquitetura de sistema tolerante a intrusões que garante o seu funcionamento correto, mesmo na presença de réplicas faltosas.Este trabalho propõe um algoritmo que une replicação de máquina de estados e sistema de detecção de intrusões (IDS) para tolerar faltas bizantinas. A tecnologia de virtualização é utilizada no algoritmo proposto para replicar o serviço e também para isolar o IDS da aplicação monitorada. Dessa forma, é proposto um detector de intrusões como um componente confiável do sistema BFT. As principais contribuições são: (1) propor um modelo unificado, o qual utiliza replicação de máquina de estados e IDS em conjunto, e faz uso dos recursos da tecnologia de virtualização, (2) detector de intrusões como componente confiável do sistema e (3) elaborar um algoritmo BFT baseado no modelo proposto. Através desta abordagem foi possível reduzir o número de réplicas do sistema de 3f + 1 para 2f + 1 e reduzir o número de passos do protocolo do algoritmo tradicional BFT de Castro e Liskov de 5 para 3 no caso normal de operação e sem precisar da participação do cliente no protocolo.Abstract : Currently, it is almost impossible for a person not to use a computing system, in a direct or indirect way. When we are using a banking machine, or shopping in a store, we need to use a computing system. On the other hand, there are new attacks to damage the correct workingof the systems. There are several techniques to help the systems to work correctly according to their specification; among them, the Byzantine/intrusions fault tolerant systems (BFT) through the state machine replication (SMR) are important ones. In this perspective, it proposes a system architecture tolerant to intrusions that guarantees its proper functioning, even if there are faulty replicas.This research proposes an algorithm which presents a unified approachby using state machine replication and intrusion detection system in order to tolerate Byzantine faults. The virtualization technology is usedon the proposed algorithm to replicate the service and also to isolate the IDS of the monitored application. Therefore, we propose an intrusion detector as a reliable component of the BFT system. The main contributions are: (1) to propose a unified model, which uses state machine replication together with IDS, using the virtualization technology resources; (2) intrusion detector as a reliable component of the system; and (3) to make a BFT algorithm based on the proposed model. This approach made it possible to decrease the number of the system replicas from the 3f + 1 to 2f + 1, and to reduce the number of steps of the protocol of the BFT traditional algorithm from Castro and Liskov from 5 to 3 in a normal case of operation without the participation of the client in the protocol

    Asynchronous Byzantine Consensus with 2f+1 Processes (extended version)

    Get PDF
    Reviewed by Paulo J. SousaByzantine consensus in asynchronous message-passing systems has been shown to require at least 3f+13f+1 processes to be solvable in several system models (e.g., with failure detectors, partial synchrony or randomization). Recently a couple of solutions to implement Byzantine fault-tolerant state-machine replication using only 2f+12f+1 replicas have appeared. This reduction from 3f+13f+1 to 2f+12f+1 is possible with a hybrid system model, i.e., by extending the system model with trusted/trustworthy components that constrain the power of faulty processes to have certain behaviors. Despite these important results, the problem of solving Byzantine consensus with only 2f+12f+1 processes is still far from being well understood. In this paper we present a methodology to transform crash consensus algorithms into Byzantine consensus algorithms with different characteristics, with the assistance of a reliable broadcast primitive that requires trusted/trustworthy components to be implemented. We exemplify the methodology with two algorithms, one that uses failure detectors and one that is randomized. We also define a new flavor of consensus and use it to solve atomic broadcast with only 2f+12f+1 processes, showing the practical interest of the consensus algorithms presented

    Byzantine Failure Detection for Dynamic Distributed Systems

    Get PDF
    Byzantine failure detectors provide an elegant abstraction for implementing Byzantine fault tolerance. However, as far as we know, there is no general solution for this problem in a dynamic distributed system over wireless networks with unknown membership. This paper presents thus a first Byzantine failure detector for this context. The protocol has the interesting feature to be time-free, that is, it does not rely on timers to detect omission failures. This characteristic favors its scalability and help to deal with the dynamics and unpredictability of those networks.Les détecteurs de défaillances Byzantines offrent une abstraction élégante pour implanter la tolérance aux fautes Byzantines. Cependant, à notre connaissance, il n'existe pas de solution générale pour ce problème dans un système réparti dynamique. Cet article présente un premier détecteur de défaillance Byzantin pour ce type d'environnement. Le protocole proposé est asynchrone dans le sens où les processus n'utilisent pas de temporisateur pour détecter les fautes. Cette caractéristique rend le protocole extensible et adaptable

    How to Tolerate Half Less One Byzantine Nodes in Practical Distributed System

    Get PDF
    The application of dependability concepts and approaches to the design of secure distributed systems is raising a considerable amount of interest in both communities under the designation of intrusion tolerance. However, practical intrusion-tolerant replicated systems based on the state machine approach can handle at most f Byzantine components out of a total of n=3f+1, which is the maximum resilience in asynchronous systems. This paper extends the normal asynchronous system with a special distributed oracle called TTCB. Using this extended system we manage to implement an intrusion-tolerant service, based on the state machine approach (SMA), with 2f+1 replicas only. Albeit a few other papers in the literature present intrusion-tolerant services based on the SMA, this is the first time the number of replicas is reduced from 3f+1 to 2f+1. Another interesting characteristic of the described service is a low time complexit

    Low Complexity Byzantine-Resilient Consensus

    Get PDF
    The application of the tolerance paradigm to security intrusion tolerance has been raising a good deal of attention in the dependability and security communities. This paper is concerned with a novel approach to intrusion tolerance. The idea is to use privileged distributed components generically designated by wormholes to support the execution of intrusion-tolerant protocols, often called Byzantine-resilient protocols in the literature. The paper introduces the design of wormhole-aware intrusion-tolerant protocols using a classical distributed systems problem: consensus. The system where the consensus protocol runs is mostly asynchronous and can fail in an arbitrary way, except for the wormhole, which is secure and synchronous. Using the wormhole to execute a few critical steps, the protocol manages to have a low time complexity: in the best case, it runs in a single round, even if some processes are malicious. The protocol is also arguably faster than classical Byzantine protocols, because it does not use public-key cryptography in runtime. The protocol has the interesting feature of not being bound by the FLP impossibility resul

    Resilient authentication service

    Get PDF
    Tese de mestrado em Engenharia Informática, apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2013A grande maioria dos sistemas online depende dos serviços básicos de autenticação e autorização. Estes são responsáveis por prover os recursos necessários para evitar acessos indevidos ou não autorizados a aplicações, dados ou redes. Para aceder aos recursos por norma os utilizadores usam um nome de utilizador e uma prova, que geralmente é uma senha, ou seja, uma informação teoricamente conhecida unicamente pelo respectivo utilizador. Nos últimos anos o uso de redes sem fios sofreu um grande aumento. A maioria destes serviços necessita de algum tipo de autenticação e mecanismos de autorização para dar ou não o acesso ao serviço e verificar os direitos e permissões dos utilizadores. Para isso o utilizador tem de se autenticar perante o serviço. É comum os utilizadores terem um par de nome de utilizador/palavra chave para cada serviço que usam. Isso traz problemas de gestão tanto para os utilizadores, que têm de memorizar as suas credenciais, como para os administradores, que têm de gerir um grande número de utilizadores. O utilizador não só tem de memorizar as credenciais para os serviços que usa como também passa a ter várias identidades, uma vez que identidades não são partilhadas entre serviços. Para resolver o problema de múltiplas identidades apareceu o modelo de identidade federada. As contas de utilizadores são agregadas num único provedor de identidade, a escolha de cada utilizador. Assim os utilizadores têm os seus dados num só local em que eles confiam e só tem de memorizar uma credencial. Isso permite usar as suas credenciais para acesso a vários serviços. Como exemplo podemos dar a rede sem fios eduroam. Esta dissertação vai se focar nos serviços de autenticação para redes sem fios com grande número de utilizadores. Com as identidades federadas os utilizadores podem aceder aos serviços de rede usando as suas credenciais a partir de qualquer local. No caso de serviço eduroam, um utilizador tendo credencias de uma instituição de ensino pode deslocar-se a outra instituição da federação em qualquer parte do mundo e ter acesso a rede usando as credenciais da sua instituição. Para isso os pontos de acesso usam um servidor de autenticação AAA (autenticação, autorização e responsabilidade), que no caso de eduroam é RADIUS. AAA é uma arquitectura que permite uso de protocolos de autenticação dos utilizadores nas redes de grande porte e é baseada em três componentes base, suplicante, NAS (e.g., router Wi-Fi) e o servidor de autenticação. Quando suplicante quer aceder a rede, ele manda as suas credenciais ao NAS e este usa o servidor de autenticação para validá-las. Ao longo da existência de arquitectura AAA foi dado mais enfase à segurança dos protocolos de autenticação do que a resiliência das componentes, tais como o NAS e o servidor de autenticação. No caso de falha do NAS o suplicante pode escolher outro e voltar tentar autenticar. Se o servidor de autenticação falhar, sofrer um ataque ou mesmo uma intrusão o atacante consegue negar acesso a rede aos utilizadores legítimos, ou roubar as credenciais dos mesmos e fazer um ataque à rede. No caso de uma federação, em que os utilizadores usam uma credencial para aceder a vários serviços, esse problema torna-se ainda mais grave, visto que o atacante consegue atacar não só um servidor de autenticação como toda a federação e os serviços prestados na rede da mesma. O grande objectivo desta dissertação é desenvolver um servidor de autenticação para redes sem fios resiliente, tolerante a faltas e as intrusões. Para cumprir estes objectivos foi escolhido o protocolo RADIUS devido a seu alargado uso (e.g., eduroam, provedores de Internet) e a sua simplicidade. As garantias de tolerância a faltas e a intrusões foram conseguidas através do uso de replicação activa, com máquinas de estados em conjunto com uma componente segura. A replicação de um serviço, por norma, obriga a uma mudança de cliente, neste caso seria o NAS, de modo a suportar a replicação. Durante o desenho de arquitectura teve-se o cuidado de evitar a mudança nas componentes mais próximas do suplicante, de modo a possibilitar a integração de novo serviço resiliente nas redes actuais. O protocolo RADIUS suporta, na sua definição base, mecanismos de autenticação fracos baseados em nome de utilizador/password, porque foi projectado para redes com fios. Em redes sem fios, geralmente é mais fácil escutar a comunicação e, assim, roubar credenciais dos utilizadores. A solução para este problema foi a adição de suporte de métodos de autenticação EAP (Extensible Authentication Protocol). Com a utilização de EAP, podemos adicionar métodos de autenticação fortes a fim de conseguir as propriedades de segurança durante a autenticação. A principal razão para usar EAP é eliminar a necessidade de mudar os componentes intermédios da rede, tais como NAS. Precisamos mudar apenas o suplicante e o servidor de autenticação. Os pacotes EAP são transportados através dos componentes de rede do suplicante para o servidor de autenticação através de, por exemplo, o protocolo 802.1X entre suplicante e NAS e RADIUS entre NAS e servidor de autenticação. O método de autenticação EAP escolhido foi EAP-TLS visto que é um padrão aberto e um dos mais robustos protocolos de autenticação. Permite uma autenticação fim-afim e a geração de chaves simétricas entre o suplicante e o servidor de autenticação de forma secreta. Apesar de ser um sistema de autenticação forte existe uma dificuldade em distribuição de credenciais. Ao contrário das credenciais baseadas em nome de utilizador/palavra chave, este método necessita de geração de um certificado para cada servidor de autenticação e para cada utilizador do sistema. O sistema desenhado e desenvolvido é composto por quatro componentes: suplicante (pede acesso a rede), NAS (no nosso caso é um router de rede sem fios), gateway (elimina a necessidade de alterarmos os clientes RADIUS existentes e funciona como cliente do nosso servidor de autenticação replicado) e servidor de autenticação RADIUS replicado (um serviço replicado tolerante a faltas bizantina e a intrusões). Para implementação do servidor de autenticação replicado e do seu cliente (gateway) foi usada biblioteca de replicação BFT-SMaRt. Cada servidor de autenticação tem a sua componente segura, que providencia a tolerância a intrusão escondendo os dados sensíveis do servidor, tais como seu certificado e chaves partilhadas com o NAS. Se o servidor necessitar de usar esses dados a componente segura providencia um interface que permite o servidor executar todas as operações necessárias que envolvem esses dados. Para validar o desempenho do sistema foram feitos vários testes de latência e de débito comparando o protótipo concretizado a uma implementação bastante popular de FreeRADIUS. Notaram-se algumas diferenças em termos de desempenho de serviço de RADIUS replicado em relação ao FreeRADIUS. Os testes mostraram que o RADIUS replicado tem uma latência superior e o débito inferior ou de FreeRADIUS. Isso deve-se, em especial, pelo facto do primeiro ser um sistema replicado e necessitar uma maior troca de mensagens devido aos protocolos BFT e replicação de máquina de estados. Apesar do RADIUS replicado ser um sistema replicado, consegue mostrar uma latência razoável e aceitável em ambientes de redes locais.The increasing use of the wireless networks in the last years has created the demand for authentication and authorization for these networks. The basic model usually requires a user, to access the network, authenticate itself before the authentication server using its credentials. Authentication and authorization in networks with the large number of users is usually achieved using the WPA-Enterprise mode. WPA-Enterprise allows the use of the external authentication server to validate user credentials and determinate his rights. Most common and widely used protocol for WPA-Enterprise is RADIUS, which follows AAA architecture. Normally RADIUS servers are running in a single machine and in a single process. If RADIUS server stops users are unable to authenticate and access the network. To solve this problem, most RADIUS servers are replicated for redundancy and load management. AAA architecture and RADIUS protocol fail completely in case of server Byzantine behavior, i.e., if a failure makes the system present arbitrary behavior. In case of intrusion on authentication server, the attacker is able to access user credentials and other sensible data, such as server certificates. The major focus of this work is to develop a resilient, fault- and intrusion-tolerant authentication server for WPA-Enterprise wireless networks, without changing existent systems. To meet these objectives we implemented a replicated RADIUS-compliant protocol, which uses EAP-TLS as its authentication method. Fault and intrusion tolerance is ensured using state machine replication, together with a tamper-proof component used for storing cryptographic keys related with user credentials. The service was evaluated and compared with a popular non-fault-tolerant solution, which is used in the eduroam network, FreeRADIUS. Initial results demonstrate the applicability of the proposed solution

    The Failure Detector Abstraction

    Get PDF
    A failure detector is a fundamental abstraction in distributed computing. This paper surveys this abstraction through two dimensions. First we study failure detectors as building blocks to simplify the design of reliable distributed algorithms. In particular, we illustrate how failure detectors can factor out timing assumptions to detect failures in distributed agreement algorithms. Second, we study failure detectors as computability benchmarks. That is, we survey the weakest failure detector question and illustrate how failure detectors can be used to classify problems. We also highlight some limitations of the failure detector abstraction along each of the dimensions

    An Efficient Fault-Tolerant method for Distributed Computation Systems

    Get PDF
    Fault tolerance is one of the most important features required by many distributed systems. We consider the efficiency issues of constructing distributed computing systems that can tolerate Byzantine faults. The well-recognized technique is to introduce replicated computation and derive the correct results through a voting mechanism. While this technique is applied to each computation request individually, we believe that by considering multiple requests at the same time in a distributed environment, we can greatly improve its efficiency. This is based on the observations that computation requests may be ordered in a different way for computation at different nodes, and the verdict of the correct result for one request may imply the correct result for another request. We propose to exploit a suitable solution to improve the efficiency of the existing technique to avoid unnecessary computation and unnecessary message exchanges among distributed processes
    corecore