* 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
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 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-14 12:15 ` Denis 'GNUtoo' Carikli 1 sibling, 1 reply; 25+ messages in thread From: Taylan Ulrich Bayırlı/Kammer @ 2017-02-03 17:40 UTC (permalink / raw) To: David Craven; +Cc: guix-devel, gnu-linux-libre David Craven <david@craven.ch> writes: > 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. Being freely redistributeable doesn't make a blob free software obviously, so endorsing such blobs would be out of the question as per the core principles of the FSF. Correct me if I misunderstand. > 2. The firmware can be loaded using the standard kernel api and the > device does not contain any internal storage. Sounds good. Having non-free software hidden within a hardware device is obviously no better than having the OS insert it there whenever the device is connected, as per the reasons you explained. (Assuming I understood it correctly that that's how it normally works; I'm a hardware noob. I actually thought firmware blobs are just code loaded into kernel space, like drivers. Embarrassing?) > 3. There is documentation available that enables the developement of > free firmware. Definitely yes. If I understand the situation correctly, I definitely agree that the FSF should stop being blind to proprietary software hidden within hardware devices in their endorsements. Such devices should be discouraged. But the FSF would never endorse any other proprietary software / binary blobs either, if I know anything about their principles. :-) (And I agree with those principles, to be clear.) Thanks for raising this issue. I had not heard of the trend of putting proprietary firmware directly into flash storage on hardware devices to give the illusion that they don't require binary blobs to run. Taylan ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-03 17:40 ` Taylan Ulrich Bayırlı/Kammer @ 2017-02-03 18:18 ` David Craven 2017-02-03 18:44 ` Christopher Howard 0 siblings, 1 reply; 25+ messages in thread From: David Craven @ 2017-02-03 18:18 UTC (permalink / raw) To: Taylan Ulrich Bayırlı/Kammer; +Cc: guix-devel, gnu-linux-libre Hi Taylan, > Being freely redistributeable doesn't make a blob free software > obviously, so endorsing such blobs would be out of the question as per > the core principles of the FSF. Correct me if I misunderstand. The requirements I proposed for the definition of free firmware is already more than most companies are willing to do. Any company willing to do these things should IMO get a medal pinned on their chest and not be disadvantaged. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 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 0 siblings, 2 replies; 25+ messages in thread From: Christopher Howard @ 2017-02-03 18:44 UTC (permalink / raw) To: Workgroup for fully free GNU/Linux distributions, Taylan Ulrich Bayırlı/Kammer Cc: guix-devel Hi David, I don't agree that just being given a redistributable blob is any wonderful thing. What you end up with down the road (and this is where we are now) is systems that need several (or many) blobs that only the providing company understands and controls. Usually these blobs are in control of critical or highly desirable functionality. You don't know for sure what the blobs do or whether or not they have security vulnerabilities. And sometimes the blobs come with restrict licensing allowing distribution but not allowing you to reverse engineer. For firmware development to be practical, you want more than documentation. You want source code. Also (for embedded development) you want a tool chain. You might have the source code but find it near impossible to build because you don't have a good tool chain. Yeah, with documentation, you might be able to engineer the source code and tool chain... but it might take you 3+ years, and then only if enough people are interested. And by that time no one will want the hardware anymore. This isn't a moderately annoying problem for x86, but it is a major problem for tablets, cell phones, and other embedded development. The companies that should be the rewarded are the ones that release firmware, source code, and tool chain. E.g., Thinkpenguin and the TPE-R1100. On 02/03/2017 09:18 AM, David Craven wrote: > Hi Taylan, > >> Being freely redistributeable doesn't make a blob free software >> obviously, so endorsing such blobs would be out of the question as per >> the core principles of the FSF. Correct me if I misunderstand. > > The requirements I proposed for the definition of free firmware is > already more than most companies are willing to do. Any company > willing to do these things should IMO get a medal pinned on their > chest and not be disadvantaged. > -- Christopher Howard, Computer Assistant Alaska Satellite Internet 3239 La Ree Way, Fairbanks, AK 99709 907-451-0088 or 888-396-5623 (toll free) fax: 888-260-3584 mailto:christopher@alaskasi.com http://www.alaskasatelliteinternet.com ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-03 18:44 ` Christopher Howard @ 2017-02-03 20:12 ` David Craven 2017-02-05 22:53 ` [GNU-linux-libre] " Maxim Cournoyer 1 sibling, 0 replies; 25+ messages in thread From: David Craven @ 2017-02-03 20:12 UTC (permalink / raw) To: Christopher Howard Cc: guix-devel, Workgroup for fully free GNU/Linux distributions Hi Christopher, I like to understand things. For me the most important thing is that I have the documentation available to me and can study how it works. For most modern chips there is simply no documentation available to me. But I guess you are right, even if I think that some hardware that works with linux-libre is less favorable than some that does not. Thank you for your reply. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [GNU-linux-libre] Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-03 18:44 ` Christopher Howard 2017-02-03 20:12 ` David Craven @ 2017-02-05 22:53 ` Maxim Cournoyer 2017-02-10 17:31 ` David Craven 1 sibling, 1 reply; 25+ messages in thread From: Maxim Cournoyer @ 2017-02-05 22:53 UTC (permalink / raw) To: Christopher Howard Cc: guix-devel, Workgroup for fully free GNU/Linux distributions [-- Attachment #1: Type: text/plain, Size: 4182 bytes --] Hi, Christopher Howard <christopher@alaskasi.com> writes: > Hi David, I don't agree that just being given a redistributable blob is > any wonderful thing. What you end up with down the road (and this is > where we are now) is systems that need several (or many) blobs that only > the providing company understands and controls. Usually these blobs are > in control of critical or highly desirable functionality. You don't know > for sure what the blobs do or whether or not they have security > vulnerabilities. And sometimes the blobs come with restrict licensing > allowing distribution but not allowing you to reverse engineer. > +1. I don't see how having blobs helps security at all. David, you mentioned that having blobs could help manufacturers fix security issues (human errors) in their products; while true, this is a double-edged sword; it could also be used to insert spyware or whatnot, and very easily (simply release a new version of the blob for distribution, advertising it as bringing "fixes"). I think the FSF's position, as expressed in their "Respects Your Freedom" certification guidelines [0], is reasonable given the current state of things. Basically it says that "All the product software must be free software.", but grants some exceptions for software equivalent to hardware (e.g., fixed in ROM and non-upgradable) [1] and which runs on "secondary embedded processors" (which can include firmware built into I/O devices). For the time being, the hardware we use is closed. Just as we reluctantly accept to use non-free hardware for the time being, we can reluctantly accept to use non-free software which is equivalent to hardware. Whether the non-free firmware is stored as a loadable blob or in the ROM of a device doesn't change the fact that it's non-free. The subtlety is whether this firmware is used as hardware (upgradable) or software (easily replaced or extended). The later puts more control in the hands of the manufacturer, which is why the former is preferred. The RYF criteria page also states that they "want users to be able to upgrade and control the software on as many levels as possible.". In other words, a device with completely free firmware is more valued than a device with a closed firmware used as hardware, as it should be. Finally, preferring built-in, closed firmware to loadable blobs (closed firmware) could be seen as an incentive for manufacturers to release their firmware as free software (user-upgradable): releasing it as free software enables them to fix things (in a transparent manner) after the product is launched, which reduces risk (if the firmware is non-upgradable, the product could have to be recalled in case a serious problem is later found with it). > For firmware development to be practical, you want more than > documentation. You want source code. Also (for embedded development) you > want a tool chain. You might have the source code but find it near > impossible to build because you don't have a good tool chain. > The RYF criteria includes a "Compilation" (all the software must be buildable using free tools) and "Documentation", so this is at least summarily covered. > Yeah, with documentation, you might be able to engineer the source code > and tool chain... but it might take you 3+ years, and then only if > enough people are interested. And by that time no one will want the > hardware anymore. This isn't a moderately annoying problem for x86, but > it is a major problem for tablets, cell phones, and other embedded > development. > > The companies that should be the rewarded are the ones that release > firmware, source code, and tool chain. E.g., Thinkpenguin and the TPE-R1100. > Indeed, we ought to put our money where our mouth is, i.e. back the companies which are helping the cause of free software/hardware. My two cents, Maxim [0] http://www.fsf.org/resources/hw/endorsement/criteria [1] The "fixed" part is not worded directly in the RYF criteria, but from the anti-tivoization clause found in the GPLv3, I would expect that this is how they would consider the matter. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-05 22:53 ` [GNU-linux-libre] " Maxim Cournoyer @ 2017-02-10 17:31 ` David Craven 2017-02-10 18:21 ` Christopher Howard 0 siblings, 1 reply; 25+ messages in thread From: David Craven @ 2017-02-10 17:31 UTC (permalink / raw) To: Maxim Cournoyer Cc: guix-devel, Workgroup for fully free GNU/Linux distributions Hi Maxim > +1. I don't see how having blobs helps security at all. Well the problem I was getting at is that things are not as fixed as they may seem. Quoting wikipedia: >> Decreasing cost of reprogrammable devices had almost eliminated the market for mask ROM by the year 2000. Translation: ROM is not RO. It is not a theoretical threat, and just as dangerous as other threats that people put a lot of effort in avoiding [0] I don't see how trusting the manufacturer when buying the product is any different from trusting him down the road. I was talking about malicious third parties. Obviously planting something in difficult to upgrade persistent memory is a lucrative target for attackers - manipulating firmware becomes plain uninteresting in the other case. > The companies that should be the rewarded are the ones that release > firmware, source code, and tool chain. E.g., Thinkpenguin and the TPE-R1100. > Indeed, we ought to put our money where our mouth is, i.e. back the > companies which are helping the cause of free software/hardware. I don't think they actually produce any silicon, toolchain or firmware themselves. At least I didn't find a link to it. So they are basically using other peoples silicon, toolchain and firmware. Giving them credit for complying with the GPL is not quite right either. (But I don't know who's behind the thinkpenguin and it looks like a great accomplishement). To independently verify the claim that the firmware they are using is indeed fixed, would actually require them to release both schematics and datasheets of their designs. [0] https://www.wired.com/2015/02/nsa-firmware-hacking/ ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-10 17:31 ` David Craven @ 2017-02-10 18:21 ` Christopher Howard 2017-02-13 7:02 ` Maxim Cournoyer 0 siblings, 1 reply; 25+ messages in thread From: Christopher Howard @ 2017-02-10 18:21 UTC (permalink / raw) To: David Craven, Maxim Cournoyer Cc: guix-devel, Workgroup for fully free GNU/Linux distributions On 02/10/2017 08:31 AM, David Craven wrote: > Hi Maxim > >> +1. I don't see how having blobs helps security at all. > > Well the problem I was getting at is that things are not as fixed as > they may seem. > Quoting wikipedia: > >>> Decreasing cost of reprogrammable devices had almost eliminated the market for mask ROM by the year 2000. > > Translation: ROM is not RO. > > It is not a theoretical threat, and just as dangerous as other threats > that people put a lot of effort in avoiding [0] > > I don't see how trusting the manufacturer when buying the product is > any different from trusting him down the road. I was talking about > malicious third parties. Obviously planting something in difficult to > upgrade persistent memory is a lucrative target for attackers - > manipulating firmware becomes plain uninteresting in the other case. > >> The companies that should be the rewarded are the ones that release >> firmware, source code, and tool chain. E.g., Thinkpenguin and the TPE-R1100. > >> Indeed, we ought to put our money where our mouth is, i.e. back the >> companies which are helping the cause of free software/hardware. > > I don't think they actually produce any silicon, toolchain or firmware > themselves. At least I didn't find a link to it. So they are basically > using other peoples silicon, toolchain and firmware. Giving them > credit for complying with the GPL is not quite right either. (But I > don't know who's behind the thinkpenguin and it looks like a great > accomplishement). > > To independently verify the claim that the firmware they are using is > indeed fixed, would actually require them to release both schematics > and datasheets of their designs. > > [0] https://www.wired.com/2015/02/nsa-firmware-hacking/ > Stallman did an extensive article in 2015 which I think is relevant to this discussion: https://www.gnu.org/philosophy/free-hardware-designs.en.html I don't have the schematics for TPE-R1100, though I think they would send them if I asked. It is based on the AR9331 SoC which is quite open. There was one other large chip on the board... I'll have to check what that is after I get home. -- Christopher Howard, Computer Assistant Alaska Satellite Internet 3239 La Ree Way, Fairbanks, AK 99709 907-451-0088 or 888-396-5623 (toll free) fax: 888-260-3584 mailto:christopher@alaskasi.com http://www.alaskasatelliteinternet.com ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-10 18:21 ` Christopher Howard @ 2017-02-13 7:02 ` Maxim Cournoyer 2017-02-13 8:42 ` [GNU-linux-libre] " John Darrington 0 siblings, 1 reply; 25+ messages in thread From: Maxim Cournoyer @ 2017-02-13 7:02 UTC (permalink / raw) To: Christopher Howard Cc: guix-devel, David Craven, Workgroup for fully free GNU/Linux distributions [-- Attachment #1: Type: text/plain, Size: 3201 bytes --] Hi, Christopher Howard <christopher@alaskasi.com> writes: > On 02/10/2017 08:31 AM, David Craven wrote: >> Hi Maxim >> >>> +1. I don't see how having blobs helps security at all. >> >> Well the problem I was getting at is that things are not as fixed as >> they may seem. >> Quoting wikipedia: >> >>>> Decreasing cost of reprogrammable devices had almost eliminated the market for mask ROM by the year 2000. >> >> Translation: ROM is not RO. >> You have a point, although reading the article linked (from Wired), this kind of attack requires a lot of effort (to reverse engineer the proprietary interfaces used to reprogram the firmware of a HD). At this level of seriousness they might as well find other means to get at you, such as physically altering one of the device you use without you noticing. >> It is not a theoretical threat, and just as dangerous as other threats >> that people put a lot of effort in avoiding [0] >> They were using Windows and allowing people to shuffle USB keys. That fits strangely with "putting a lot of effort in avoiding security risks" ;). >> I don't see how trusting the manufacturer when buying the product is >> any different from trusting him down the road. I was talking about >> malicious third parties. Obviously planting something in difficult to >> upgrade persistent memory is a lucrative target for attackers - >> manipulating firmware becomes plain uninteresting in the other case. >> >>> The companies that should be the rewarded are the ones that release >>> firmware, source code, and tool chain. E.g., Thinkpenguin and the TPE-R1100. >> >>> Indeed, we ought to put our money where our mouth is, i.e. back the >>> companies which are helping the cause of free software/hardware. >> >> I don't think they actually produce any silicon, toolchain or firmware >> themselves. At least I didn't find a link to it. So they are basically >> using other peoples silicon, toolchain and firmware. Giving them >> credit for complying with the GPL is not quite right either. (But I >> don't know who's behind the thinkpenguin and it looks like a great >> accomplishement). >> Probably not themselves, but they could hire someone to work on it. I remember reading a story where ThinkPenguin had been involved in negotiating with a hardware company and played a part in having that company agree to release their firmware. Sadly I can't find that story anymore! And the company seems active in the free software community and promoting/defending values of the movement. You can have a look at their blog to see for yourself (https://www.thinkpenguin.com/blog). >> To independently verify the claim that the firmware they are using is >> indeed fixed, would actually require them to release both schematics >> and datasheets of their designs. >> >> [0] https://www.wired.com/2015/02/nsa-firmware-hacking/ >> > > Stallman did an extensive article in 2015 which I think is relevant to > this discussion: > > https://www.gnu.org/philosophy/free-hardware-designs.en.html > A recommended read for anyone interested in the idea of free hardware! Thanks for sharing. Maxim [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [GNU-linux-libre] Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-13 7:02 ` Maxim Cournoyer @ 2017-02-13 8:42 ` John Darrington 2017-02-13 19:24 ` David Craven 0 siblings, 1 reply; 25+ messages in thread From: John Darrington @ 2017-02-13 8:42 UTC (permalink / raw) To: Maxim Cournoyer Cc: guix-devel, Workgroup for fully free GNU/Linux distributions, Christopher Howard [-- Attachment #1: Type: text/plain, Size: 1379 bytes --] On Sun, Feb 12, 2017 at 11:02:29PM -0800, Maxim Cournoyer wrote: Hi, Christopher Howard <christopher@alaskasi.com> writes: > On 02/10/2017 08:31 AM, David Craven wrote: >> Hi Maxim >> >>> +1. I don't see how having blobs helps security at all. >> >> Well the problem I was getting at is that things are not as fixed as >> they may seem. >> Quoting wikipedia: >> >>>> Decreasing cost of reprogrammable devices had almost eliminated the market for mask ROM by the year 2000. >> >> Translation: ROM is not RO. >> You have a point, although reading the article linked (from Wired), this kind of attack requires a lot of effort (to reverse engineer the proprietary interfaces used to reprogram the firmware of a HD). At this level of seriousness they might as well find other means to get at you, such as physically altering one of the device you use without you noticing. If the attacker *is* vendor who supplies the proprietary device then they would not have to reverse engineer it. -- Avoid eavesdropping. Send strong encrypted email. PGP Public key ID: 1024D/2DE827B3 fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3 See http://sks-keyservers.net or any PGP keyserver for public key. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 181 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 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-14 6:55 ` Maxim Cournoyer 0 siblings, 2 replies; 25+ messages in thread From: David Craven @ 2017-02-13 19:24 UTC (permalink / raw) To: John Darrington Cc: guix-devel, Workgroup for fully free GNU/Linux distributions, Maxim Cournoyer > If the attacker *is* vendor who supplies the proprietary device then they would > not have to reverse engineer it. You can always choose not to apply the vendors update. If for example the company you initially trusted with by purchasing their device gets bought by another company or you have some other reason to stop trusting it. CEO changed, their website was hacked or whatever. > A recommended read for anyone interested in the idea of free hardware! > Thanks for sharing. Don't know if you've heard of sifive [0]. If there is a startup that has the potential to create lasting change in the semiconductor industry, my money is on them... :) I should be getting one of the first riscv boards soon! [0] https://www.sifive.com/ ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [GNU-linux-libre] Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-13 19:24 ` David Craven @ 2017-02-13 21:21 ` Hartmut Goebel 2017-02-13 22:48 ` David Craven 2017-02-14 6:55 ` Maxim Cournoyer 1 sibling, 1 reply; 25+ messages in thread From: Hartmut Goebel @ 2017-02-13 21:21 UTC (permalink / raw) To: guix-devel Am 13.02.2017 um 20:24 schrieb David Craven: > You can always choose not to apply the vendors update. Is the vendor always trustworthy? Think about vulnerabilities in e.g. router firmware from companies like Cisco and Juniper, which were undiscovered for a long time – and one can reasonably argue that these have been back-doors. Also Intel Chips include a lot of magic called "Intel Management Engine" (IME) or "Active Management Technology" [1]. [1] https://en.wikipedia.org/wiki/Intel_Active_Management_Technology -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [GNU-linux-libre] Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-13 21:21 ` [GNU-linux-libre] " Hartmut Goebel @ 2017-02-13 22:48 ` David Craven 0 siblings, 0 replies; 25+ messages in thread From: David Craven @ 2017-02-13 22:48 UTC (permalink / raw) To: Hartmut Goebel; +Cc: guix-devel > Is the vendor always trustworthy? I agree with you. But the thing is that we already bought the device. It says on the label that the device does A and only A at time x when we bought the device. The question is do we need to add more trust than that to the equation. If we look at security as a function we are trying to maximize, we already introduced one axiom, that device does A and only A at time x. By putting the firmware in ROM instead of fixing it with a hash we are introducing a new axiom. That our previous axiom is time invariant. Also consider this: Device comes with firmware A 2015. The vendor creates an update B. In 2016 the same device comes with firmware B. You were happy with the device in 2015 but your laptop was stolen or broke. So you buy the same device in 2016. That is a hidden firmware update. How is that different than knowing that you updated your firmware? In this case you simply pretend that you have not updated your device, but the truth is - you really don't know. So the more axioms (assumptions) our security is based on - the weaker is the house of cards we are building. But I'm totally fine with burring this discussion. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-13 19:24 ` David Craven 2017-02-13 21:21 ` [GNU-linux-libre] " Hartmut Goebel @ 2017-02-14 6:55 ` Maxim Cournoyer 2017-02-14 10:41 ` [GNU-linux-libre] " David Craven 1 sibling, 1 reply; 25+ messages in thread From: Maxim Cournoyer @ 2017-02-14 6:55 UTC (permalink / raw) To: David Craven Cc: guix-devel, John Darrington, Workgroup for fully free GNU/Linux distributions [-- Attachment #1: Type: text/plain, Size: 1767 bytes --] David Craven <david@craven.ch> writes: >> If the attacker *is* vendor who supplies the proprietary device then they would >> not have to reverse engineer it. > > You can always choose not to apply the vendors update. If for example > the company you initially trusted with by purchasing their device gets > bought by another company or you have some other reason to stop > trusting it. CEO changed, their website was hacked or whatever. > Either ways, as long as it's opaque, either shipped in a (semi) fixed state or loaded at runtime, it's not auditable, so there's nothing too interesting to be discussed in regards of trust or freedom. The later at least doesn't clutter our view (and the Linux git tree) -- blobs have grown from ~10 MiB in Linux 2.6.33 [0] to 158 MiB (du -sh on a checkout of the the linux-firmware git tree [1] (pruned from its .git)) >> A recommended read for anyone interested in the idea of free hardware! >> Thanks for sharing. > > Don't know if you've heard of sifive [0]. If there is a startup that > has the potential to create lasting change in the semiconductor > industry, my money is on them... :) I should be getting one of the > first riscv boards soon! > > [0] https://www.sifive.com/ I had followed some earlier developments but had lost track recently! I'm happy to see that they have released the sources of their microcontroller chip design. Apparently the design (Apache licensed) is described using a tool/language called Chisel, which is Scala based and can generate two flavors of Verilog as well as a C++ version for simulation purposes. Interesting times! Maxim [0] https://www.fsfla.org/ikiwiki/anuncio/2010-03-Linux-2.6.33-libre.en [1] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [GNU-linux-libre] Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-14 6:55 ` Maxim Cournoyer @ 2017-02-14 10:41 ` David Craven 2017-02-14 17:47 ` Maxim Cournoyer 0 siblings, 1 reply; 25+ messages in thread From: David Craven @ 2017-02-14 10:41 UTC (permalink / raw) To: Maxim Cournoyer Cc: guix-devel, Christopher Howard, Workgroup for fully free GNU/Linux distributions > I had followed some earlier developments but had lost track recently! > I'm happy to see that they have released the sources of their > microcontroller chip design. It's more than a microcontroller chip design. The people behind sifive are from uc berkeley and also developed a full gcc toolchain backend, a linux port, a qemu and a clang port. They have taped out multiple chips capable of booting Linux, and are still working on putting the finishing touches on the privileged architecture spec which is an open collaborative effort of the RISCV foundation, before releasing their SoC.. The sifive developers play an important role there. Benchmarks for code size and performance show that their SoC and the ISA they developed is comparable to and out performs at least all ARM cortex-a chips with an in-order-pipeline. They also are developing and have taped out an out-of-order core. All of their developments are released as free hardware. Their specifications have enabled me to study a real world instruction set architecture, studying something like ARM or x86 - I'm sure people have looked at those manuals - are not something a beginner can study to any form of completeness, they are simply to large and too complicated. Cheers, David ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [GNU-linux-libre] Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-14 10:41 ` [GNU-linux-libre] " David Craven @ 2017-02-14 17:47 ` Maxim Cournoyer 0 siblings, 0 replies; 25+ messages in thread From: Maxim Cournoyer @ 2017-02-14 17:47 UTC (permalink / raw) To: David Craven Cc: guix-devel, Christopher Howard, Workgroup for fully free GNU/Linux distributions [-- Attachment #1: Type: text/plain, Size: 1421 bytes --] Hi David, David Craven <david@craven.ch> writes: >> I had followed some earlier developments but had lost track recently! >> I'm happy to see that they have released the sources of their >> microcontroller chip design. > > It's more than a microcontroller chip design. The people behind sifive are > from uc berkeley and also developed a full gcc toolchain backend, a linux > port, a qemu and a clang port. > > They have taped out multiple chips capable of booting Linux, and are > still working on putting the finishing touches on the privileged architecture > spec which is an open collaborative effort of the RISCV foundation, before > releasing their SoC.. The sifive developers play an important role there. > > Benchmarks for code size and performance show that their SoC and the > ISA they developed is comparable to and out performs at least all ARM > cortex-a chips with an in-order-pipeline. > > They also are developing and have taped out an out-of-order core. All of > their developments are released as free hardware. > > Their specifications have enabled me to study a real world instruction set > architecture, studying something like ARM or x86 - I'm sure people have > looked at those manuals - are not something a beginner can study to > any form of completeness, they are simply to large and too complicated. > Impressive! Sounds like something I should look more into :) Thanks for sharing. Maxim [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 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-14 12:15 ` Denis 'GNUtoo' Carikli 2017-02-14 18:43 ` [GNU-linux-libre] " David Craven 1 sibling, 1 reply; 25+ messages in thread From: Denis 'GNUtoo' Carikli @ 2017-02-14 12:15 UTC (permalink / raw) To: David Craven; +Cc: guix-devel, Workgroup for fully free GNU/Linux distributions On Fri, 3 Feb 2017 15:37:32 +0100 David Craven <david@craven.ch> wrote: > 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. When using the Linux kernel, the firmwares are sometimes loaded by something else than the linux kernel: - In most Replicant devices, the modem firmware is in a separate eMMC partition in the device(Smartphone/Tablet), and it is loaded by libsamsung-ipc. - Some bootloaders such as u-boot have the ability to load some firmwares or FPGA bitstreams. > 2. The peripheral contains persistent storage containing the firmware > and uses a separate interface for flashing the firmware. This doesn't differenciate between a chip with internal non-voltaile memory, and a chip with external (potentially shared) flash chip. This can have some serious freedom privacy and security implications when the peripheral's firmware is on the same flash chip than the OS (GNU/Linux or Android/Replicant). In that case the processor running that non-free firmware can also access the OS partition. I think it is the case on some older qualcomm devices like the HTC Dream, where the modem firmware is on the same flash chip than the Android Operating system... On samsung smartphones and tablets supported by recent Replicant versions, libsamsung-ipc, which is a library that talks to the modem, loads the modem firmware. Thanks to that hardware architecture, the modem doesn't have access to the eMMC that holds the Android distribution (here Replicant). > Problem: > Today as an example, a WiFi card using option 2 is considered more > free than one using option 1. I understand the point, but let's approach the issue from another point of view to better understand its contradictions and the tradeoffs that have been made. Let's take it from a top-down perspective where the top is application software that runs on top of lower level software. Down goes deep down in the hardware, like down to how a resistor is made. If applications have to be free software (It's morally wrong not to respect the users freedom), the software that makes the hardware works also needs to be free software: - For the same reasons than applications have to be free software. - Since that software is more privileged it's very useful and important for it to be free software. - As you stated it also impacts the ability to use hardware beyond their end of life, which reduces waiste. Given the above one might wonder how deep we should go down and what is the fronteer between hardware and software. Given that even hardware and chip design has freedom privacy and security inplications it is desirable to have freedom there too. However given that we are not there I think that we need to have some criterias that are reachable. One can for instance use a computer that respects the FSF RYF criterias as of today. I am for instance using one to write this mail. My computer is not ideal though since: - Its hard disk has a non-free firmware - Its embedded controller has a non-free firmware Beside the fact that I added the tor-browser, all rest is RYF and FSDG compliant. The question for me is then how to use the acceptable/not-acceptable line to get more freedom out of it: - If redistributing (and using) non-free firmwares was: - still acceptable - not an issue in the FSDG guidelines - done in the FSDG compliant distributions Then we would probably: - Not have had the ath9k_htc firmware liberated (thanks to Thinkpenguin,Atheros and the people who made it possible) - May have more people using FSDG compliant distributions. Having the ath9k_htc firmware liberated was really really important, especially because: - The Intel WiFi cards present in many laptops require non-free firmware to work, at least with recent kernels. - Many laptop boot-firwmare(BIOS, UEFI) will refuse to boot if the user either changed the wifi card like with the default BIOS of the Lenovo Thinkpad X60 and X200, or removed it like with at least one of the HP Envy laptops. - The ath9k_htc compatible cards can still be bought and found and have been for a long time. - The ath9k_htc compatible cards supports modern-enough WiFi standards. With that we can still use WiFi by ignoring the intel wifi card and using an USB wifi card instead. There are also free software firmware to support some other peripherals such as: - Old b43 compatible wifi cards (OpenFWWF). - keyspan compatible devices. - Older atheros based USB wifi cards. - Probably few other devices. While this is really great and that each new free firmware is a great achievement and is really important, they are also crucial because we failed: - ATI GPUs are almost unusable with free software, in the best case we can load the radeon driver but do not have 3D accelerations and many of the features of that driver working because of the lack of a free firmware. - Intel WiFi cards are a pain, the user has to go buy new USB WiFi cards. I think that the solution is not to make the use and redistribution of such non-free firmwares okay, instead we should find way to make some people work to replace them with free software: - Intel WiFi Cards: The idea if and which ones can work without a non-free firmware. The easiest way to do it is to: 1) Look in h-node which intel WiFi cards work 2) Try to reproduce it and make them work with the same setup 3) Try to understand why they work 4) Try to forward-port what makes them work in recent linux-libre and send the patch upstream, to linux-libre (or linux if applicable). - Radeon GPUs: The people working on porting GNU/Linux to the Sony Playstation 4 have tools to work with radeon firmwares, and probably enough understanding and documentation to be able to create free software firmwares: https://github.com/fail0verflow/radeon-tools.git Theses are not the only hardware-related issues with reguard to free software, however they impact *a lot* of people, directly if they use FSDG distributions and harve hardware not supported by free software because of non-free firmwares, or indirectly because they cannot use such hardware or distributions. > Implications on Security: [...] Hardware design also has huge implications on security. Some busses allow access to the RAM used by the main processor, which holds the linux kenrel and other programs being executed... Preventing peripherals to access all of the memory is possible but depends on a lot of factors. With the PCI and derivated busses to work we need the following: - In the case of x86 computers, the hardware has to have an IOMMU, and that IOMMU has not to be flawed to allow PCI devices to bypass it. - The operating system needs to configure the IOMMU correctly. - In the case of AMD devices, the boot firmware(BIOS/UEFI) needs to have IVRS ACPI tables that contains part of the configuration of the IOMMU. - If the devices are enabled at boot, the boot firmware needs to setup the IOMMU before the RAM is initialized and accesible to the devices on the PCI/PCIe bus. To get more information on the availability of such feature on common computers, see https://www.qubes-os.org/hcl/ When taking security seriously, the fact that a non-free firmware is running in peripherals that can have access to the main system's RAM has to be taken into account. However I don't have a clear idea on whether it has to be dealt with within free software policies or not, and how much it is in the scope of free software. I don't think we, as the free software community, can ignore it as it means that some non-free code can take control of your computer... For instance in Replicant, we decided not to focus on devices that can permit non-free firmwares to take control of the main processor, and instead to prioritize work on devices where the hardware doesn't have any physical ways to allow a non-free firmware to access the main processor's RAM. Even if I disagree with your suggestion below, as I think it might not be the best strategy, I'll give some input nevertheless. For me the best strategy would be to have some people work on the technical issues not to have to adjust policies backward and allow more and more non-free software. If we have enough free firmwares, many GNU/Linux distributions may consider getting rid of non-free firmwares entierely. Making loadable and non-loadable firmwares policies consistent would then makes a lot of sense as it would probably have a good impact on freedom. We might also be able to leverage loadable firmwares code to make other peripherals with non-loadable-by-a-host-computer firmwares work. > 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. Freely redistributable firmwares often have conditions that I find unacceptable. The validity of such conditions then depends on the jurisdiction you live in. Many have no-modification and no-reverse-engineering clauses. > 2. The firmware can be loaded using the standard kernel api and the > device does not contain any internal storage. You might want to consider the following alternative: - The firmware can be loaded using free software and the device does not contain any internal storage. - The firmware can be loaded using free software and the device does not contain any internal storage for code. - The firmware can be loaded using free software and the device does not contain any internal storage that can be used for other purposes than storing documented configuration data. The last two alternatives contains takes into account the storage of data such as the MAC Address and calibration data of network devices. > 3. There is documentation available that enables the developement of > free firmware. - There is sufficent documentation available to permit the development of a free firmware. - There is sufficent documentation available to permit the development of a free firmware, and to be able to understand the freedom/security/privacy implication of that hardware. The later might be interesting to: - Make sure that an IOMMU works correctly. - Have an idea of what the management engine bootrom does. - Have an idea of what a CPU does to the data during context switch. - Have an idea of the risk associated with the use of a network interface chip like the Intel e1000e: - Where is a firmware supposed to be stored, can you be sure that the card runs no firmware? - What a remote computer might be able to do to the chip? - Know if an external pc-card can access your main processor's RAM if you didn't load drivers that enable it. - Know which peripherals or busses have access to your RAM while your operating system is not started yet. - Know if a bus or device allow DMA: - Make sure that a superIO doesn't allow DMA access to the main processor's RAM in the dock connector of a laptop. - Make sure that the PCI lanes aren't exported on a dock connector of a laptop. Denis. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [GNU-linux-libre] Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-14 12:15 ` Denis 'GNUtoo' Carikli @ 2017-02-14 18:43 ` David Craven 2017-02-14 20:11 ` Adonay Felipe Nogueira 2017-02-20 7:50 ` Denis 'GNUtoo' Carikli 0 siblings, 2 replies; 25+ messages in thread From: David Craven @ 2017-02-14 18:43 UTC (permalink / raw) To: Denis 'GNUtoo' Carikli Cc: guix-devel, Workgroup for fully free GNU/Linux distributions Hi Denis, Thank you for your extensive feedback. > With that we can still use WiFi by ignoring the intel wifi card and > using an USB wifi card instead. I considered using this option but realized that I had a buggy thunderbolt controller in my laptop, that I can only update from a windows computer and therefore know for sure it can be modified remotely poses a much larger security issue, that I would not actually gain anything from replacing my wifi card. And besides these obvious and visible firmwares I have no clue what other non-free firmware is running on my laptop. I concluded that if I didn't know, that likely most linux-libre users didn't know either and where likely much less aware of what that could actually mean. While obviously you understand hardware and the hardware you are using, most people do not. And I think we need to make sure that people that don't - I consider myself being one of those people - can do the *best* with what we have and have the information available to us to make informed decisions. I bought my dell xps developer edition before I had any involvement with a GNU project, and I bought it because dell was actually providing at least some kind of linux support. I currently can't afford to buy a new laptop even if the one you are using is much more free. Besides I have the dream of building a replacement mainboard with a RISCV SoC for it. But that is still beyond my capabilities :) FYI: This dream mainboard would also feature a software defined radio [0] instead of a wifi card - another interesting free hardware project, although the sources have not been released yet. Another thing I found very frustrating was a conversation that I had on IRC. It went like this: Can guixsd run on a RPiv2? Yes, sure. You'll need to use vanilla linux and add some firmware, I'll show you how to do it. No thank you. I don't want to use binary blobs. I'll just use another distro until guixsd works without binary blobs. I expect that everyone recognizes the irony in that. > While this is really great and that each new free firmware is a great > achievement I agree. > When taking security seriously, the fact that a non-free firmware is > running in peripherals that can have access to the main system's RAM > has to be taken into account. > > However I don't have a clear idea on whether it has to be dealt with > within free software policies or not, and how much it is in the scope > of free software. > > I don't think we, as the free software community, can ignore it as it > means that some non-free code can take control of your computer... Yes with buggy thunderbolt controllers this is becoming a real problem. > For instance in Replicant, we decided not to focus on devices that can > permit non-free firmwares to take control of the main processor, and > instead to prioritize work on devices where the hardware doesn't have > any physical ways to allow a non-free firmware to access the main > processor's RAM. Replicant looks very interesting, especially since I owned quite a few of those nexus devices that are supported. Sadly not anymore :/ I wasn't aware that there was so much documentation available about mobile devices. How do you know all that stuff? :) Thank you for your input, David [0] https://xtrx.io/ ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 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-20 7:50 ` Denis 'GNUtoo' Carikli 1 sibling, 1 reply; 25+ messages in thread From: Adonay Felipe Nogueira @ 2017-02-14 20:11 UTC (permalink / raw) To: guix-devel, gnu-linux-libre About that conversation involving some GuixSD user: He gave that kind of recommendation so easily? I'm shocked... Unless the conversation was cut somewhere, I didn't see indication that you wanted/want to develop free/libre replacement for the non-free software needed for RPI 2 to work. In this case, that is if he was wasn't made aware of such commitment (if it ever exists on your part), then he shouldn't have made such recommendation, according to [[http://www.gnu.org/philosophy/applying-free-sw-criteria.html]] and [[http://www.gnu.org/philosophy/is-ever-good-use-nonfree-program.html]]. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-14 20:11 ` Adonay Felipe Nogueira @ 2017-02-14 20:47 ` David Craven 2017-02-14 20:57 ` Christopher Howard 0 siblings, 1 reply; 25+ messages in thread From: David Craven @ 2017-02-14 20:47 UTC (permalink / raw) To: Adonay Felipe Nogueira Cc: guix-devel, Workgroup for fully free GNU/Linux distributions > About that conversation involving some GuixSD user: He gave that kind of > recommendation so easily? I'm shocked... The irony is that unless you know as much about hardware as Denis you ARE USING NON-FREE FIRMWARE. As proven by you suggestion to simply use a different distro. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-14 20:47 ` David Craven @ 2017-02-14 20:57 ` Christopher Howard 2017-02-14 21:01 ` David Craven 0 siblings, 1 reply; 25+ messages in thread From: Christopher Howard @ 2017-02-14 20:57 UTC (permalink / raw) To: Workgroup for fully free GNU/Linux distributions, Adonay Felipe Nogueira Cc: guix-devel Some folks are working a free firmware for Rpi2: https://wiki.debian.org/RaspberryPi2 What you say below is not necessarily true. You can buy libre systems. Of course, sometimes they cost more... but in a non-ideal world freedom sometimes comes with a price. Anyway, the point of projects like this and RYF and other libre projects is to make freedom available to everyone, even the "non-technical" folks. David, I think you need to give up wasting your time trying to convince a Gnu/Linux *Libre* list that proprietary kernel blobs are a good idea. Most people are here because they care more about freedom than getting the support of every manufacturer on the market. If you want to make headway, just register at any "Linux" forum on the web and you'll find that 80% of the people there already agree with you. On 02/14/2017 11:47 AM, David Craven wrote: >> About that conversation involving some GuixSD user: He gave that kind of >> recommendation so easily? I'm shocked... > > The irony is that unless you know as much about hardware as Denis you > ARE USING NON-FREE FIRMWARE. As proven by you suggestion to simply use > a different distro. > -- Christopher Howard, Computer Assistant Alaska Satellite Internet 3239 La Ree Way, Fairbanks, AK 99709 907-451-0088 or 888-396-5623 (toll free) fax: 888-260-3584 mailto:christopher@alaskasi.com http://www.alaskasatelliteinternet.com ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-14 20:57 ` Christopher Howard @ 2017-02-14 21:01 ` David Craven 2017-02-14 21:13 ` [GNU-linux-libre] " David Craven 0 siblings, 1 reply; 25+ messages in thread From: David Craven @ 2017-02-14 21:01 UTC (permalink / raw) To: Christopher Howard Cc: guix-devel, Workgroup for fully free GNU/Linux distributions, Adonay Felipe Nogueira > David, I think you need to give up wasting your time trying to convince > a Gnu/Linux *Libre* list that proprietary kernel blobs are a good idea. > Most people are here because they care more about freedom than getting > the support of every manufacturer on the market. If you want to make > headway, just register at any "Linux" forum on the web and you'll find > that 80% of the people there already agree with you. I really love guixsd and want people to use it. That's the only reason I'm trying to convince anyone of anything. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [GNU-linux-libre] Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-14 21:01 ` David Craven @ 2017-02-14 21:13 ` David Craven 0 siblings, 0 replies; 25+ messages in thread From: David Craven @ 2017-02-14 21:13 UTC (permalink / raw) To: Christopher Howard Cc: guix-devel, Workgroup for fully free GNU/Linux distributions And to be clear I never suggested adding the raspberry pi firmware to a FSDG compliant distribution. I don't think the suggestion I made actually qualifies the raspberry pi firmware - or any current firmware for that matter. It was made to encourage hardware manufacturers that are willing to dip a toe in to becoming more open, without getting scorned for not going all the way. Anyway I'm sorry that this discussion has gotten out of hand. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-14 18:43 ` [GNU-linux-libre] " David Craven 2017-02-14 20:11 ` Adonay Felipe Nogueira @ 2017-02-20 7:50 ` Denis 'GNUtoo' Carikli 2017-02-21 12:15 ` David Craven 1 sibling, 1 reply; 25+ messages in thread From: Denis 'GNUtoo' Carikli @ 2017-02-20 7:50 UTC (permalink / raw) To: David Craven; +Cc: guix-devel, Workgroup for fully free GNU/Linux distributions On Tue, 14 Feb 2017 19:43:48 +0100 David Craven <david@craven.ch> wrote: > Hi Denis, Hi, > > > With that we can still use WiFi by ignoring the intel wifi card and > > using an USB wifi card instead. > > [Thunderbolt] poses a much larger security issue, > that I would not actually gain anything from replacing my wifi card. > And besides these obvious and visible firmwares I have no clue what > other non-free firmware is running on my laptop. While security is important, it's far from being the only reason that makes free software important. When security and freedom conflicts, I usually prefer freedom. That said, if you care about free software only for the security and privacy benefits: - With Respect Your Freedom(RYF) certified computer, firmware freedom matters a lot. - Not considering non-free firmware as an issue and having most FSDG distribution users run them would make freeing firmwares appear way less important. Most GNU/Linux users aren't even aware of hardware related freedom issues, because it just works. According to many of them the ATI GPU can be used with fully free software, and some even think that everything in their distribution is free software. This doesn't help promoting the importance of having free firmwares, and way less developers would want to work on their replacement. More broadly, users that need the hardware to work would not care anymore about free firmwares anymore either. To successfully convince Atheros to liberate the firmware of the ath9k_htc compatible chips, thinkpenguin probalby needed a valid buisness case, which probably was selling USB WiFi dongles to users that desperately wanted WiFi to work with free software. > While obviously you understand hardware and the hardware you are > using, most people do not. And I think we need to make sure that > people that don't - I consider myself being one of those people - can > do the *best* with what we have and have the information available to > us to make informed decisions. I think that not using non-free firmwares is the best decision for all users collectively. If more users and developers were taking that decisions, we would not have the issue we have here: - You have hardware that doesn't work because it requires non-free firmwares. - Many non-free firmwares aren't being replaced because there is not enough interest in replacing them, because many GNU/Linux distributions still ship non-free firmwares and it works for their developers and/or users. The more interest in free software replacement, the more probability there is to have them replaced with free software. > I bought my dell xps developer edition before I had any involvement > with a GNU project, and I bought it because dell was actually > providing at least some kind of linux support. I currently can't > afford to buy a new laptop even if the one you are using is much more > free. You may be able to find cheap or gratis laptops supported by the libreboot project but it will require you to spend time for that, with no guarantee of success. As for how cheap it can get, I bought a Lenovo Thinkpad X60 for about 50E. The downside is that, at that time, I was lucky to find it that cheap, and that its CPU is single core. Since I bought it to use it for coreboot/libreboot development/testing only, I didn't need a fast CPU. > Besides I have the dream of building a replacement mainboard > with a RISCV SoC for it. But that is still beyond my capabilities :) > FYI: This dream mainboard would also feature a software defined radio > [0] instead of a wifi card - another interesting free hardware > project, although the sources have not been released yet. RISCV is probably not yet ready to be used as a laptop SOC. However there are some microcontrollers projects with that architecture: - https://www.crowdsupply.com/onchip/open-v - https://www.crowdsupply.com/sifive/hifive1 As a side note, if you think that microcontrollers are not very useful, think again because, since you have some interest in security and probably privacy as well: - Microcontrollers can have critical security functions, as it is the case in this computer: https://www.crowdsupply.com/design-shift/orwl They can also be used for password external management. - We probably have the Hardware description language source for it under a free software license. > Another thing I found very frustrating was a conversation that I had > on IRC. It went like this: > > Can guixsd run on a RPiv2? > > Yes, sure. You'll need to use vanilla linux and add some firmware, > I'll show you how to do it. > > No thank you. I don't want to use binary blobs. I'll just use another > distro until guixsd works without binary blobs. > > I expect that everyone recognizes the irony in that. I don't. I don't see any issue with the above assuming that non-free firmwares are the only difference between the "other distro" and the free software distribution. Missleading users into thinking that they run 100% free software everywhere is not a good idea: - As a user, If I run Trisquel or Parabola, I assume that everything that this distribution ships is free software. - As a user, I don't want to have to review each package for proprietary software, this is the role of the distribution. - As a user knowing how hardware works, I however know that Trisquel or Parabola are not the only software running on my computer: - Coreboot/Libreboot runs without any blobs - The proprietary Embedded controller firmware runs. - The HDD firmware runs. - Some other firmware that I'm not aware of might run on some chips. It also depends on which laptop and peripherals I use: - If I use an X60 Tablet, it might have some touchscreen controller firmware. - If I use an external mouse, it might have a firmware too. > > While this is really great and that each new free firmware is a > > great achievement > > I agree. It would be sad not to continue freeing firmwares. Especially if more and more functionality and trust is being put in them. > > When taking security seriously, the fact that a non-free firmware is > > running in peripherals that can have access to the main system's RAM > > has to be taken into account. > > > > However I don't have a clear idea on whether it has to be dealt with > > within free software policies or not, and how much it is in the > > scope of free software. > > > > I don't think we, as the free software community, can ignore it as > > it means that some non-free code can take control of your > > computer... > > Yes with buggy thunderbolt controllers this is becoming a real > problem. Yes it is, however there are mitigations in some cases: - It might be possible to have them disabled, there might also be some other workarounds. - Thunderbolt tend to be present on recent hardware, and some of that recent hardware also have an IOMMU that can protect the RAM from DMA attacks. Note that not all recent computers supports it, see https://www.qubes-os.org/hcl/ for more details. - If you take firewire, and the firewire_ohci module, you have the following module parameter: > remote_dma:Enable unfiltered remote DMA (default = N) (bool) I didn't research yet how it works to understand what it exactly means, but some hardware, in some conditions, can mitigate such issues. > I wasn't aware that there was so much documentation available about > mobile devices. How do you know all that stuff? :) - I learned most/all that knowledge by working on Replicant and researching myself the various freedom privacy and security issues. - You can however take a huge shortcut and instead read the following: http://www.replicant.us/freedom-privacy-security-issues.php I think that documentation is really important and in many cases as much important as the sofware itself. > [0] https://xtrx.io/ You forgott to add a [0] in the mail text that points to this reference. Denis. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: Free firmware - A redefinition of the term and a new metric for it's measurement. 2017-02-20 7:50 ` Denis 'GNUtoo' Carikli @ 2017-02-21 12:15 ` David Craven 0 siblings, 0 replies; 25+ messages in thread From: David Craven @ 2017-02-21 12:15 UTC (permalink / raw) To: Denis 'GNUtoo' Carikli Cc: guix-devel, Workgroup for fully free GNU/Linux distributions > While security is important, it's far from being the only reason that > makes free software important. > When security and freedom conflicts, I usually prefer freedom. I agree here too. While security and privacy are a factor for me it's far from the most important. To me the most important is it's role in increasing computer literacy and education and how it helps small businesses to be competitive which leads to a distribution of wealth. I think it helps to remember that free software is a means to an end and focus more on the end. It is my impression that too much focus is being placed on the means. For example: All those services as software substitutes are extremely important for computer illiterates, for small businesses and for individuals that don't want to host their own mail servers etc. As an example, I doubt that it would be really that much more secure to host my own mailserver. While Snowden did make us aware that many large "cloud" service providers have had security breaches, I have not found any evidence of malice on part of many of those providers. The NSA was planting surveillance devices within and around their data centers. > I think that not using non-free firmwares is the best decision for all > users collectively. If more users and developers were taking that > decisions, we would not have the issue we have here: I understand the sentiment, but I don't think that this is an effective solution. Only because the firmware is in ROMs or a developer spent the time to reverse engineer a firmware for a device does not reward the right behavior and could actually lead to less free devices. > I don't. I don't see any issue with the above assuming that non-free > firmwares are the only difference between the "other distro" and the > free software distribution. I understand that that is the case for most FSDG distros, but guix has merit in it's own right. If we focus on the end instead of the means, guix can do a lot to increase computer literacy. > Missleading users into thinking that they run 100% free software > everywhere is not a good idea: I had the impression that a computer running linux-libre was more free than one that does not. When I realized that that was likely not actually the case and that it depended on an array of other factors I felt betrayed for having been led to believe that. > It would be sad not to continue freeing firmwares. Especially if more > and more functionality and trust is being put in them. I think that the best way to free firmwares is by creating truly free devices and firmwares. This sets an example and shows existing companies that it is actually possible to sustain a business while being open and creates the market pressure for them to release their firmwares. Again focusing on the end instead of the means, working on SDRs and their firmware is much more important than reversing an intel wifi firmware. The first can have a tremendous impact on computer literacy and for small businesses and may one day lead to truly free wifi cards, while the other "just" allows running linux-libre with intel wifi cards. I hope to not offend anyone - these are just my opinions and feelings :) David ^ 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).