Date: Sun, 21 Aug 2016 21:55:31 +0100 From: Luke Kenneth Casson Leighton lkcl@lkcl.net To: Linux on small ARM machines arm-netbook@lists.phcomp.co.uk Subject: Re: [Arm-netbook] Verifying firmware Message-ID: <CAPweEDw6dqih5=B-bod2iNU1KzpNFD9NDOhkCu7cHgUrqr2Y1g@mail. gmail.com> Content-Type: text/plain; charset=UTF-8
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
On Sun, Aug 21, 2016 at 9:19 PM, Raphaël Mélotte raphael.melotte@gmail.com wrote:
Hello,
First of all I have been following the crowdfunding and mailing list
since
the first of august (I have been using another email adress) and I have
to
say I really like every aspect of this project and I highly respect and admire the ideology that goes with the project.
thanks. it's not quiiite "ideology" - there are genuine sound and practical business reasons for doing what we're doing. let me put it another way: when we get to mass-volume levels would you *like* us to be "yet another proprietary software peddler"? :)
I haven't been able to pledge until now but I will make sure to do so as soon as I can and before the crowdfunding ends. I really want to test
what
an EOMA68 laptop would look and behave like, and I want to replace my
tiny
Raspberry pi server with another EOMA68 (I will also be willing to buy
more
powerful computer cards if they ever get created).
cool. they will.
Since the EOMA68 is entirely free,
the *standard* is open (properly open), the source code is libre, and the hardware is 99% libre, aiming for 100%.
I was thinking that *theoretically* it should be possible to read and verify every firmware, and/or binaries present to run the chip (I don't really know how to call it so I will
call
it "microcode").
the only "microcode" - using the phrase you use - that we know of is the eGON Boot ROM, which hno has extracted and part-reverse-engineered, more info here: http://linux-sunxi.org/EGON#eGON.BRM
More and more people are worried about the microcodes that are run on our hardware and being able to verify what is actually
running on
our machine (when it boots for example) would be comforting. It seems to
me
that it's the first time the source code for every microcode in a
computer
will be available, since some projects tried to do so in the past, but
never
achieved to run 100% without proprietary code (purism, novena, ...).
there are actually plenty - many of them early beaglebone designs especially those around the AM Sitara series - but it's the first that could be deployed usefully in mass-volume scenarios as opposed to "engineering only" boards.
From a security point of view, open source code
no it isn't... *libre* source code is...
is the best option since it allows to check if the code being run isn't malware. However, if I don't verify the code present on my machine, how will I know it is the same
code
as the source that was analyzed and that it is not malicious code ?
well if you can't do it, at least someone else can.
That's why I'm asking if it would be possible to read the microcodes present on
the
chip, and check them against the online source codes (kind of a checksum
?).
no idea.
That way we would be able to know if the code had been tampered with, be
it
during shipping, after being infected by a malware that was somehow able
to
change the boot code or some firmware, an evil maid attack, etc.
well, we picked an "unbrickable" processor precisely so that you could download binaries / source from a *trusted* source and re-flash everything.
Just to be clear I'm not being paranoid to the point where I would
suspect
some bad guys inserting malware in my machine during shipping (I guess
the
country I live in is "libre" enough to not do that,
you _are_ joking, right? :) it's *well known* that the NSA unboxes Cisco products and other routers, installs replacement firmware *AND CHIPS*, then boxes them back up and sends them on their way. there's even photographs online of them carrying out these practices.
but that's surely not the case for everyone everywhere in the world), and I will probably not
try
to verify every firmware on the chip, but since this is one of the first truly free system I was asking myself if it would be possible.
yes.
I also understand that as of today, checking every code on a system is
more
an utopia then a doable thing (you'd also have to check firmware from
your
keyboard, mouse, webcam, USB flash drive, and pretty much everything you connect to the main board)
true... but here you *can* check the STM32F072's firmware (which controls the keyboard, mouse and PMIC), and you can re-flash on every boot should you so wish... bear in mind that's going to wreck the on-board flash at some point, but you can do it.
and may be pointless, but I'm also confident that in the future (maybe distant, maybe not) we will have to be able to do
so if
we want to keep our digital life private, as everything we do is more and more linked to the digital world, and malware techniques are becoming
more
and more creative (see for example BadUSB).
yep.... not a lot that can be done about that. shoving 240v AC down a 5v DC line is guaranteed to be disastrous, no matter what the piece of electronics is.
I'm not a computer scientist and although I do my best to learn how
software
works, I don't understand everything about hardware and I may be missing some important point that makes my idea impossible to realize. That's why I'm asking it here since you know far more about it then me.
Also please forgive my written expression: I'm doing my best to express
my
ideas clearly, but English isn't my native language and I sometimes don't know how to express myself to be best understood.
doing pretty well so far
Anyway, I sincerely hope this project becomes a great success, and that
you
will be able to make it grow even more.
thanks.
Thank you for your precise answer ! (As every of your answers I saw on the
mailing list)
Ideology probably wasn't the right word, of course I wouldn't like you to be "yet another proprietary software peddler". By the way if I got it right, you say 99% of the hardware is open because only the mali GPU isn't documented ? (but we won't use it) That is awesome ! I really didn't know that NSA was already intercepting shipments before they arrive to their destination, now I'm even more convinced that we need libre hardware for everyone.
What I forgot to ask was if it was possible to read and possibly reflash firmware from the userspace, or would it require some special hardware to be connected directly to the chip like when flashing libreboot ? Anyway I guess I will find out by myself as investigate more about it.
PS: I miss-configured my subscription to the mailing list and couldn't reply directly to your message. I hope this reply will get where it has to be, linked to the right thread.