Diversity on State Machine Replication
Caio Yuri Da Silva Costa, Eduardo Alchieri · 2018
The dependability and security properties of a system could be impaired by a system failure or by an opponent that exploits its vulnerabilities, respectively. An alternative to mitigate this risk is the implementation of fault- and intrusion-tolerant systems, in which the system properties are ensured even if some of its components fail (e.g., because a software bug or a failure in the runtime environment) or are compromised by a successful attack. State Machine Replication (SMR) is widely used to implement these systems. In SMR, servers are replicated and client requests are deterministically executed in the same order by all replicas in a way that the system behavior remains correct even if some of them are compromised since the correct replicas mask the misbehavior of the faulty ones. Unfortunately, the proposed solutions for SMR do not consider diversity in the implementation and all replicas execute the same software. Consequently, the same attack or software bug could compromise all the system. Trying to circumvent this problem, this work proposes an architecture to allow diversity in SMR, allowing the implementation and execution of replicas in different development languages. The main problems addressed by the proposed architecture are twofold: (1) communication among different languages; and (2) data representation. The proposed architecture was integrated in BFT-SMART, a SMR library, and a set of experiments showed its practical feasibility.