Noite!

No último vimos a parte 11, hoje a 12 da tradução de “Advances In Distributed Security”.
Replicação Bizantino-Resiliente
A teoria dos generais Bizantinos tem um equivalente prático – o problema de replicar um serviço – ou, equivalentemente, um objeto distribuído – de tal maneira a fornecer segurança distribuída, ou tolerância a falhas contra comportamento arbitrário de até T servidores maliciosos e coniventes.
Estes serviços ou objetos distribuídos são às vezes chamados “tolerantes a intrusões”, porque o serviço replicado poder resistir a ataques e corrupção de até T servidores. No entanto, no mundo real, mais perpetrados por insiders do que por intrusos. A replicação bizantino-resiliente de um serviço entre domínios administrativos ou jurisdições resolve os dois problemas.
Várias infraestruturas de serviço replicados bizantino-resilientes têm sido implementadas. Elas usam técnicas como criptografia de limiar e lançamento justo de moedas para conseguir transmissão lógica em redes assíncronas como a Internet, protegidas por estruturas de ataque e servidores maliciosos e coniventes, de forma que a estrutura de ataque é o conjunto complemento da estrutura de acesso. Veja o Apêndice A abaixo para fontes de mais informação. Uma ampla variedade de serviços bizantino-resilientes podem ser construídos sobre transmissão lógica. Uma rede de transmissão física não travável de muitos-para-muitos e de alta largura de banda pode fornecer soluções similares porém mais eficientes no futuro. Uma biblioteca de objetos replicados bizantino-resilientes, para implementar serviços online com confiança distribuída no sistema CORBA de objetos distribuídos é descrito nesta apresentação e neste artigo (link quebrado).
O sistema básico tem a habilidade de replicar objetos com estado, resilientes a até ⅓ de falhas bizantinas (arbitrariamente maliciosas).
Em outras palavras, a replicação de objetos é usada para distribuir confiança na integridade dos dados e cálculos. Em vez de se obter um serviço crítico de um único servidor de confiança – que pode ser inatamente malicioso ou pode ser craqueado por alguém de fora – obtém-se o serviço de N servidores diferentes, e o serviço mantém sua integridade enquanto menos de N/3 dos Vats forem/estiverem maliciosos.
Note que a “votação” implícita nos protocolos bizantino-resilientes com estes usados aqui protegem a integridade de uma chamada remota em particular. Entre tais invocações,os clientes podem atualizar suas próprias listas negras de servidores que acharam não-confiáveis. Com uma lista negra assim, o atacante deve manifestar seu comportamento faltoso em mais de N/3 servidores durante a mesma chamada para corrompê-la. Uma vez que isto é descoberto o cliente pode colocá-lo na lista negra, removendo-o da lista de Vats para chamadas subsequentes.
Técnicas de integridade tais como os hashes criptográficos, assinaturas digitais, compartilhamento secreto, e criptografia de limiar podem ser niveladas sobre este sistema básico de replicação bizantino-resiliente para aumentar ainda mais a integridade de certas propriedades do estado replicado. Qual(is) destas técnicas são usadas, e como, depende de qual funcionalidade crítica que se está protegendo.
A replicação, é claro, não distribui a confiança na privacidade dos dados – muito pelo contrário, ela aumenta a exposição. No entanto, onde este problema é relevante pode ser facilmente superado com criptografia e/ou computação segura multipartidária, descritos acima.
Uma parte necessária de qualquer bom kit de ferramentas de segurança distribuída é uma biblioteca criptográfica diversificada, implementando não apenas primitivas simétricas e assimétricas, mas também as descritas ou mencionadas neste artigo.
Vista a décima primeira parte. No versículo seguinte a parte final. Abraços!
