UAlg secure vote module - Matos, Tiago Alexandre Pereira (2024)
This dissertation proposes the development of an election system to be held, following the common electoral procedures. Since elections collect sensitive data, the system must be as secure as possible while respecting its users privacy. To register who voted on which candidate would completely hinder an election and the public trust on a system would be completely ruined. The objective of this web-based system is for users to vote from whatever location without having, physically to go into a polling station. A web-based system requires components for data processing or backend application, data storage i.e. databases and data presentation or frontend application. For a backend application, a REST API will be developed, this API is responsible for processing all data regarding elections and other features of the system itself. This API must be as secure as possible without compromising its users privacy, therefore a cipher suite must be used. The cipher suite describes the encryption being used on the system, where all votes must be encrypted before stored, so nobody can view it before the tallying process starts. Since asymmetric encryption is sometimes used and due to these keys being too long in length, a key management system must also be developed to store these keys. This key management system is an independent component of the main system to decentralize the keys from the election system. In case of the election system being compromised, the key management system is not necessarily also compromised. All data will have to be stored in databases since its the most efficient way to store it. The databases must take into account the system requirements, where in some situations, availability may be precedent over ACID capabilities. An user interface must also exist to interact easily and securely with the application and the system itself. This user interface must also encrypt the users votes so the backend application never "sees" the votes in plaintext when a vote is cast and stored.