News for hackers. Stuff that matters.
Re:Guix Reduces Bootstrap Seed by Half by yourapostasy on Wednesday October 09, 2019 @07:01AM (#21201934)
Dayum...just how far do the turtles go? Even when they reach full source bootstrap, are they ruminating over concerns about the firmware/BIOS? If those concerns are addressed with an equivalent bootstrap-seeded coreboot, then are there concerns with the silicon? I never even thought someone was taking this level of security seriously enough to actually put the effort into it, but I'm extremely glad to see they are. I can easily see high-security DevOps builds of secrets management stores driven by such a bootstrapped Guix to nearly indefinitely satisfy the provenance-type questions from the regulatory compliance teams I work with.
Re:Guix Reduces Bootstrap Seed by Half by mikelevins on Wednesday October 09, 2019 @10:52AM (#21203796)
There are researchers considering things all the way down to silicon.

I worked on a contract for about a year and a half on a subproject of the research program described in this New York Times article:

  https://www.nytimes.com/2012/10/30/science/rethinking-the-computer-at-80.html
The project I consulted on was an attempt at a comprehensive system design that replaced everything all the way down to and including the hardware. System software was written in Haskell and in a newly-designed language called Breeze that offered both static and dynamic typing. The dynamic typing was supported by tagged hardware with specialized instructions (that effort included Tom Knight, one of the original designers of Lisp Machines).

The organizing principle was that every piece of code and data was owned by a well-defined system entity with well-defined permissions that were proven correct both statically and dynamically. For example, sending data to an endpoint that did not have the required authorization to receive it was a type error.

The thinking was that the state of the art is so broken (from the point of view of data integrity and security) that it's necessary to start from scratch. The overarching project name, appropriately enough, was "Clean Slate".

I don't know what they're up to now.

Re:Guix Reduces Bootstrap Seed by Half by orblivion on Wednesday October 09, 2019 @10:49AM (#21203769)
If you're worried enough, I think there's some trick where you use multiple different C compilers made by different organizations to build (let's say) gcc. Then you use all those gccs to rebuild gcc in a deterministic way. If all of those rebuilt gccs are byte-for-byte the same, then either it's safe, or all of the initial compilers you used were in cahoots. Depending on who you pick to start, that's arguably very unlikely.
Re:Guix Reduces Bootstrap Seed by Half by thfuran on Wednesday October 09, 2019 @01:24PM (#21205466)
>If all of those rebuilt gccs are byte-for-byte the same

Isn't that pretty unlikely even if all the compilers are uncompromised?

Re:Guix Reduces Bootstrap Seed by Half by delroth on Wednesday October 09, 2019 @01:41PM (#21205689)
No, that's what reproducible builds are all about: https://reproducible-builds.org/

Debian is currently sitting at around 93% of packages being reproducibly built. NixOS is close to 99% of the minimal install image set (https://r13y.com/).

Re:Guix Reduces Bootstrap Seed by Half by tjoff on Wednesday October 09, 2019 @04:35PM (#21207739)
Reproducible builds don't mean compiling with different compilers, or even different versions of the same compiler, to result in the same binary.
Re:Guix Reduces Bootstrap Seed by Half by comex on Wednesday October 09, 2019 @05:25PM (#21208280)
That's why you don't compare the GCC binaries built by different compilers. Instead, you use each of those GCC binaries (which may use different machine code but should implement the exact same functionality) to build another GCC, and you compare those binaries. That should result in identical binaries as long as GCC:

- is deterministic,

- does not invoke undefined behavior, and

- was correctly compiled by the original compilers.

Re:Guix Reduces Bootstrap Seed by Half by z29LiTp5qUC30n on Wednesday October 09, 2019 @07:30AM (#21202114)
well if you look at #bootstrappable's logs it looks like they are planning on building custom hardware out of TTL chips to eliminate all software/bios/firmware from the bootstrap; which when combined with libresilicon means no place for any attacks to hide.
Re:Guix Reduces Bootstrap Seed by Half by everlastingfan on Wednesday October 09, 2019 @07:58AM (#21202316)
Well there is when you design signals that play on the physical properties of the silicon and the silicon design is known, think Rowhammer. The next level of this is making permanent modifications to the silicon, e.g. using focused RF signals to change the properties of individual transistors.

Relying on security through obscurity is bad, but you need some obscurity.

Passwords and keyfiles are ultimately a form of security through obscurity.

Re:Guix Reduces Bootstrap Seed by Half by kragen on Wednesday October 09, 2019 @03:34PM (#21207046)
“Planning on” is an exaggeration. It would be good if someone did that, but those 120MB are still five orders of magnitude bigger than the MES seed, and that's a much bigger problem right now.
Re:Guix Reduces Bootstrap Seed by Half by nwah1 on Wednesday October 09, 2019 @07:43AM (#21202204)
Unless Dennis Ritchie or Ken Thompson placed a "trusting trust" attack in the original C compiler, since virtually all modern code was compiled by something that was once compiled by it.

(Ken Thompson coined the term and knows how to do it.)

Re:Guix Reduces Bootstrap Seed by Half by pdw on Wednesday October 09, 2019 @07:57AM (#21202300)
To counter that, they're working on a bootstrap chain that starts with a tiny 500 byte hex editor and ends with a compiler that can build the GNU toolchain.
Re:Guix Reduces Bootstrap Seed by Half by newnewpdro on Wednesday October 09, 2019 @07:53AM (#21202269)
That's the whole point of these projects - they're preventing that type of attack.

If you implement your bootstrap C compiler entirely in machine code for instance, it doesn't matter if the "original C compiler" is compromised, since it's not being compiled.

Re:Guix Reduces Bootstrap Seed by Half by jtl999 on Wednesday October 09, 2019 @10:39AM (#21203692)
>building custom hardware out of TTL chips to eliminate all software/bios/firmware from the bootstrap

I'd be curious to learn more about this.

Re:Guix Reduces Bootstrap Seed by Half by everlastingfan on Wednesday October 09, 2019 @07:52AM (#21202265)
It's turtles all the way down.

I'm ruminating on the potential for "regular" electric signals to carry quantum information, that's the next aspect of security to consider with quantum around the corner.

So don't worry, there are and will be bigger things to worry about.

Re:Guix Reduces Bootstrap Seed by Half by chungy on Wednesday October 09, 2019 @09:57AM (#21203264)
Malicious firmware concerns might be alleviated with cross-compilation. There might be an assumption that firmware inserting untrusted code only actually inserts trusted code of its native architecture, though even this is no guarantee.
Re:Guix Reduces Bootstrap Seed by Half by secraetomani on Wednesday October 09, 2019 @07:11AM (#21201997)
> secrets management stores

Maybe starting from something like an Arduino is a better route for that.

Re:Guix Reduces Bootstrap Seed by Half by everlastingfan on Wednesday October 09, 2019 @08:02AM (#21202339)
Is Arduino firmware open? Are the PCB and chip designs open?
Re:Guix Reduces Bootstrap Seed by Half by kragen on Wednesday October 09, 2019 @03:37PM (#21207079)
Yes, yes, and no. Also the compilation toolchain depends on GCC. Open silicon designs aren't enough; you need to be able to verify that the design correctly describes the physical hardware you are actually using.
Re:Guix Reduces Bootstrap Seed by Half by secraetomani on Wednesday October 09, 2019 @08:13AM (#21202402)
Even if not, way less stuff hiding in there than in your average computer. Remember that these days, Intel CPUs have web-servers embedded in them.