unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Free firmware - A redefinition of the term and a new metric for it's measurement.
@ 2017-02-03 14:37 David Craven
  2017-02-03 17:40 ` Taylan Ulrich Bayırlı/Kammer
  2017-02-14 12:15 ` Denis 'GNUtoo' Carikli
  0 siblings, 2 replies; 25+ messages in thread
From: David Craven @ 2017-02-03 14:37 UTC (permalink / raw)
  To: gnu-linux-libre, guix-devel

Motivation:
We want to be able to exercise our freedoms in all parts of our
computing systems. This leads to the benefits of higher security and
maintaining hardware devices after their end of life.

Background:
All peripheral devices work roughly the same.

Host Controller Interface <-> Link Layer <-> Physical Layer

The physical layer is a mixed signal circuit responsible for
implementing the electrical interface of the device. The boundary
between LL and PHY is a clock domain crossing. The PHY layer is
implemented entirely in hardware and is fixed in silicone.

The link layer is implemented either in digital logic also fixed in
silicone or in complex peripherals partially in firmware.

HCI <-> Microcontroller <-> Digital logic <-> PHY

This leads to two models of loading the firmware that runs on the MCU.

1. The peripheral does not contain persistent storage and the firmware
is loaded by the linux kernel through a standard API.

2. The peripheral contains persistent storage containing the firmware
and uses a separate interface for flashing the firmware.

Problem:
Today as an example, a WiFi card using option 2 is considered more
free than one using option 1.

Implications on Security:
While in the first case we can check the hash of the binary blob and
be certain that the binary blob we are providing is what is running on
the device, in the second case we do not even have that guarantee. A
malicious party can reflash the firmware and no one would ever know.
Security through obscurity is no security at all.

Just as important a threat to security as a malicious party is human
error. With the second model there is no simple way to fix
vulnerabilities even if the vendor is aware and willing to fix it.

Implications on Freedom:
This also makes it much harder to write, debug and distribute free
firmware if such where available.

Solution:
We need to encourage and allow option 1 as opposed to option 2.
Hardware suggestions by the FSF should instead of focusing on a black
and white - needs binary blobs or does not need binary blobs - focus
on the following:

1. The firmware is freely redistributeable - allowing free software
distributions to redistribute the firmware as opposed to the user
having to download the firmware themselves and accept arbitrary terms
and conditions.

2. The firmware can be loaded using the standard kernel api and the
device does not contain any internal storage.

3. There is documentation available that enables the developement of
free firmware.

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2017-02-21 12:15 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-03 14:37 Free firmware - A redefinition of the term and a new metric for it's measurement David Craven
2017-02-03 17:40 ` Taylan Ulrich Bayırlı/Kammer
2017-02-03 18:18   ` David Craven
2017-02-03 18:44     ` Christopher Howard
2017-02-03 20:12       ` David Craven
2017-02-05 22:53       ` [GNU-linux-libre] " Maxim Cournoyer
2017-02-10 17:31         ` David Craven
2017-02-10 18:21           ` Christopher Howard
2017-02-13  7:02             ` Maxim Cournoyer
2017-02-13  8:42               ` [GNU-linux-libre] " John Darrington
2017-02-13 19:24                 ` David Craven
2017-02-13 21:21                   ` [GNU-linux-libre] " Hartmut Goebel
2017-02-13 22:48                     ` David Craven
2017-02-14  6:55                   ` Maxim Cournoyer
2017-02-14 10:41                     ` [GNU-linux-libre] " David Craven
2017-02-14 17:47                       ` Maxim Cournoyer
2017-02-14 12:15 ` Denis 'GNUtoo' Carikli
2017-02-14 18:43   ` [GNU-linux-libre] " David Craven
2017-02-14 20:11     ` Adonay Felipe Nogueira
2017-02-14 20:47       ` David Craven
2017-02-14 20:57         ` Christopher Howard
2017-02-14 21:01           ` David Craven
2017-02-14 21:13             ` [GNU-linux-libre] " David Craven
2017-02-20  7:50     ` Denis 'GNUtoo' Carikli
2017-02-21 12:15       ` David Craven

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).