Proprietary firmware


Proprietary firmware is any firmware on which the producer has set restrictions on use, private modification, copying, or republishing.
Proprietors may enforce restrictions by technical means, such as by restricting source code access, firmware replacement restrictions, or by legal means, such as through copyright and patents.
Proprietary firmware may range from just a few kilobytes of microcode for a network interface controller to megabytes of binaries for a wireless router. Custom firmware may still be available for certain products, which is often free and open-source software, and is especially popular in certain segments of hardware like gaming consoles, wireless routers and Android phones, which are capable of running complete general-purpose operating systems like GNU/Linux, FreeBSD or NetBSD, which are often the systems used by the manufacturer in their original proprietary firmware.

Difficult to avoid

Proprietary firmware is much more difficult to avoid than proprietary software or even proprietary device drivers, because the firmware is usually very specific to the manufacturer of each device, and the programming documentation and complete specifications that would be necessary to create a replacement are often withheld by the hardware manufacturer. One potential solution is going with open-source hardware, which goes a step further by also providing schematics for replicating the hardware itself.
Even though both proprietary firmware and proprietary device drivers are shipped in binary form, to be practical, the branding "binary blobs" is used only for the binary drivers.

Distribution issues

Many open-source operating systems reluctantly have to include proprietary firmware files in their distributions simply to make their device drivers work, because manufacturers try to save money by removing flash memory or EEPROM from their devices, requiring the operating system to upload the firmware each time the device is used. However, in order to do so, the operating system still has to have distribution rights for this proprietary microcode. If such distributions rights are not obtained, then the device will not work; this especially presents a chicken-and-egg issue with wireless network interface controllers from certain short-sighted manufacturers like Intel, which cannot be used until such files are somehow obtained first, which is difficult to accomplish when the wireless card doesn't work.

Security concerns

Proprietary firmware poses a significant security risk to the user, because of the direct memory access architecture of modern computers, and the potential for DMA attacks. Theo de Raadt of OpenBSD suggests that wireless firmware are kept proprietary because of poor design quality, as well as firmware defects. Mark Shuttleworth of Ubuntu suggests that "it's reasonable to assume that all firmware is a cesspool of insecurity courtesy of incompetence of the worst degree from manufacturers, and competence of the highest degree from a very wide range of such agencies".
However, the security and quality/reliability risks posed by proprietary microcode may be lower than those posed by proprietary device drivers, because the microcode in this context isn't linked against the operating system, and doesn't run on the host's main processor.

Examples