|
|
|
|
|
by gregmac
2876 days ago
|
|
Another threat model is the people who build the software and hardware. How do you ensure: (1) The software is not doing anything nefarious (2) The software toolchain is not modifying the software in (1) to cause it to do something nefarious (3) The software loaded onto the machines is actually the software verified in (1) and compiled by the verified toolchain in (2) (4) The machine doesn't have any kind of hardware/firmware-based defeat device to trick you into falsely confirming (3) This is essentially the same problem as is outlined in Ken Thompson's Reflections on Trusting Trust [1]. [1] https://www.archive.ece.cmu.edu/~ganger/712.fall02/papers/p7... |
|
Open source
> (2) The software toolchain is not modifying the software in (1) to cause it to do something nefarious
Use open source toolchains and hash the result.
> (3) The software loaded onto the machines is actually the software verified in (1) and compiled by the verified toolchain in (2)
Maybe some kind of cryptographic puzzle, question/response, you need to make a hash with the program, and make the HDD not large enough to contain more than that. Or maybe read only storage. Even a combination.
> (4) The machine doesn't have any kind of hardware/firmware-based defeat device to trick you into falsely confirming (3)
Your voting results are confirmable on the blockchain, but not specific, you can check that your vote hasn't been changed, but not the vote itself.