4 ms·
Why not just cross compile!?
by ailideex 8y ago
Why not just cross compile!?
- giomasce 8y agoBecause when you cross compile you have to trust your compiler. https://en.wikipedia.org/wiki/Backdoor_(computing)#Compiler_backdoors https://en.wikipedia.org/wiki/Backdoor_(computing)#Compiler_...
- ailideex 8y agoAnd when you compile regularly you don't?
- giomasce 8y agoYes, but if you want to rebuild the trust chain you cannot restart from an untrusted compiler. The idea is to bootstrap a trusted compiler from nothing (i.e., from little enough so that you can check it directly), and then use the trusted compiler for everything else.
- geezerjay 8y agoWhen you compile regularly you don't, mainly because you're more interested in ensuring your code isn't broken and you have no intention to ship the binaries to anyone.
- phoe-krk 8y agoBootstrapping isn't an issue of convenience, it is an issue of trust. You can't trust the compiler doing the cross-compilation. You literally have to start from the smallest chunks of assembly code and build your way up to a fully featured compiler through several stages, each of which is more complex and can in turn compile more complex code.
- nickpsecurity 8y agoThat it's an issue of trust is the reason that's not true. You know certain groups are highly-unlikely to work together on a backdoor that works same for all of them. There's also folks like Wirth's group at ETH that's unlikely to be backdooring things at all. So, the easiest route is to write your bootstrap phase is several languages that use tools from very different people and countries. You can trust it once they produce the same output. Use that output to bootstrap the rest. Also, do it on different hardware and OS's if concerned about that level. Make sure the CPU's were done at different fabs. Aside from trust, the other reason people are doing this is for fun challenge of building things from ground up. They also are learning about interpreters, compilers, assembly, etc. The author of this work talked like he is doing it the way he is mainly for the challenge.
- weberc2 8y agoThis still doesn't get you all the way, since you're ultimately trusting your chip manufacturer.
- cellularmitosis 8y agoIf we are just talking about bootstrapping, you could also homebrew a CPU: https://news.ycombinator.com/item?id=13208516 https://news.ycombinator.com/item?id=13208516 Creating a backdoor distributed across a bunch of 7400-series logic chips would be pretty unlikely.
- haberman 8y agoI think this is a very cool concept, but it doesn't seem to protect you from your environment. When you write the program in your editor, how do you know it's not inserting rogue code before it writes them to disk? When you run an assembly program stored on disk, how do you know the OS or even the hardware isn't patching it before it runs it?