mirror of
https://github.com/QubesOS/qubes-doc.git
synced 2025-01-03 03:31:04 -05:00
282 lines
12 KiB
ReStructuredText
282 lines
12 KiB
ReStructuredText
==================
|
||
Certified hardware
|
||
==================
|
||
|
||
|
||
The Qubes OS Project aims to partner with a select few computer vendors
|
||
to ensure that Qubes users have reliable hardware purchasing options. We
|
||
aim for these vendors to be as diverse as possible in terms of
|
||
geography, cost, and availability.
|
||
|
||
.. DANGER::
|
||
Warning: The Qubes OS Project certifies only that a particular
|
||
hardware configuration is supported by Qubes OS and is available to
|
||
purchase with Qubes OS preinstalled. We take no responsibility for
|
||
any vendor’s manufacturing, shipping, payment, or other practices;
|
||
nor can we control whether physical hardware is modified (whether
|
||
maliciously or otherwise) en route to the user.
|
||
|
||
|
||
You may also be interested in the `community-recommended hardware <https://forum.qubes-os.org/t/5560>`__ list and the :doc:`hardware compatibility list (HCL) </user/hardware/hcl>`.
|
||
|
||
Qubes-certified computers
|
||
-------------------------
|
||
|
||
|
||
Qubes-certified computers are certified for a :doc:`major release </developer/releases/version-scheme>` and regularly tested by the Qubes
|
||
developers to ensure compatibility with all of Qubes’ features within
|
||
that major release. The developers test all new updates within that
|
||
major release to ensure that no regressions are introduced.
|
||
|
||
The current Qubes-certified models are listed below in reverse
|
||
chronological order of certification.
|
||
|
||
NitroPC Pro 2
|
||
^^^^^^^^^^^^^
|
||
|
||
|
||
|Photo of the NitroPC Pro 2|
|
||
|
||
The `NitroPC Pro 2 <https://shop.nitrokey.com/shop/nitropc-pro-2-523>`__
|
||
is a desktop based on the MSI PRO Z790-P DDR5 motherboard. It is
|
||
certified for Qubes OS 4.
|
||
|
||
Star Labs StarBook
|
||
^^^^^^^^^^^^^^^^^^
|
||
|
||
|
||
|Photo of the Star Labs StarBook|
|
||
|
||
The `Star Labs StarBook <https://starlabs.systems/pages/starbook>`__ is
|
||
a 14-inch laptop. It is certified for Qubes OS 4.
|
||
|
||
NitroPC Pro
|
||
^^^^^^^^^^^
|
||
|
||
|
||
|Photo of the NitroPC Pro|
|
||
|
||
The `NitroPC Pro <https://shop.nitrokey.com/shop/product/nitropc-pro-523>`__ is a
|
||
desktop based on the MSI PRO Z690-A DDR5 motherboard. It is certified
|
||
for Qubes OS 4.
|
||
|
||
NovaCustom NV41 Series
|
||
^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
|
||
|Photo of the NovaCustom NV41 Series|
|
||
|
||
The `NovaCustom NV41 Series <https://novacustom.com/product/nv41-series/>`__ is a 14-inch
|
||
custom laptop. It is certified for Qubes OS 4.
|
||
|
||
Dasharo FidelisGuard Z690
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
|
||
|Photo of the Dasharo FidelisGuard Z690|
|
||
|
||
The `Dasharo FidelisGuard Z690 <https://3mdeb.com/shop/open-source-hardware/dasharo-fidelisguard-z690-qubes-os-certified/>`__
|
||
is a desktop based on the MSI PRO Z690-A DDR4 motherboard. It is
|
||
certified for Qubes OS 4.
|
||
|
||
NitroPad T430
|
||
^^^^^^^^^^^^^
|
||
|
||
|
||
|Photo of the NitroPad T430|
|
||
|
||
The `NitroPad T430 <https://shop.nitrokey.com/shop/product/nitropad-t430-119>`__ is a
|
||
laptop based on the ThinkPad T430. It is certified for Qubes OS 4.
|
||
|
||
NitroPad X230
|
||
^^^^^^^^^^^^^
|
||
|
||
|
||
|Photo of the NitroPad X230|
|
||
|
||
The `NitroPad X230 <https://shop.nitrokey.com/shop/product/nitropad-x230-67>`__ is a
|
||
laptop based on the ThinkPad X230. It is certified for Qubes OS 4.
|
||
|
||
Insurgo PrivacyBeast X230
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
|
||
|Photo of the Insurgo PrivacyBeast X230|
|
||
|
||
The `Insurgo PrivacyBeast X230 <https://insurgo.ca/produit/qubesos-certified-privacybeast_x230-reasonably-secured-laptop/>`__
|
||
is a laptop based on the ThinkPad X230. It is certified for Qubes OS 4.
|
||
|
||
Become hardware certified
|
||
-------------------------
|
||
|
||
|
||
If you are a hardware vendor, you can have your hardware certified as
|
||
compatible with Qubes OS. The benefits of hardware certification
|
||
include:
|
||
|
||
- Your customers can purchase with confidence, knowing that they can
|
||
take full advantage of Qubes OS on your hardware for a specific major
|
||
version.
|
||
|
||
- We will continue testing your hardware to ensure compatibility with
|
||
the supported major version. In the course of this testing, we will
|
||
also test your hardware against upcoming versions, which can help
|
||
with future planning.
|
||
|
||
- Your hardware will continue to be compatible with Qubes OS as it
|
||
further develops within that major version, and we will work with you
|
||
toward preserving compatibility and certification in future releases.
|
||
|
||
- You can support the development of Qubes OS.
|
||
|
||
|
||
|
||
Hardware certification requirements
|
||
-----------------------------------
|
||
|
||
|
||
**Note:** This section describes the requirements for hardware
|
||
*certification*, *not* the requirements for *running* Qubes OS. For the
|
||
latter, please see the :doc:`system requirements </user/hardware/system-requirements>`. A brief list of the
|
||
requirements described in this section is available
|
||
:ref:`here <user/hardware/system-requirements:qubes-certified hardware>`.
|
||
|
||
A basic requirement is that all Qubes-certified devices must be
|
||
available for purchase with Qubes OS preinstalled. Customers may be
|
||
offered the option to select from a list of various operating systems
|
||
(or no operating system at all) to be preinstalled, but Qubes OS must be
|
||
on that list in order to maintain Qubes hardware certification.
|
||
|
||
One of the most important security improvements introduced with the
|
||
release of Qubes 4.0 was to replace paravirtualization (PV) technology
|
||
with **hardware-enforced memory virtualization**, which recent
|
||
processors have made possible thanks to so-called Second Level Address
|
||
Translation
|
||
(`SLAT <https://en.wikipedia.org/wiki/Second_Level_Address_Translation>`__),
|
||
also known as
|
||
`EPT <https://ark.intel.com/Search/FeatureFilter?productType=processors&ExtendedPageTables=true&MarketSegment=Mobile>`__
|
||
in Intel parlance. SLAT (EPT) is an extension to Intel VT-x
|
||
virtualization, which originally was capable of only CPU virtualization
|
||
but not memory virtualization and hence required a complex Shadow Page
|
||
Tables approach. We hope that embracing SLAT-based memory virtualization
|
||
will allow us to prevent disastrous security bugs, such as the infamous
|
||
`XSA-148 <https://xenbits.xen.org/xsa/advisory-148.html>`__, which —
|
||
unlike many other major Xen bugs — regrettably did
|
||
`affect <https://github.com/QubesOS/qubes-secpack/blob/master/QSBs/qsb-022-2015.txt>`__
|
||
Qubes OS. Consequently, we require SLAT support of all certified
|
||
hardware beginning with Qubes OS 4.0.
|
||
|
||
Another important requirement is that Qubes-certified hardware should
|
||
run only **open-source boot firmware** (aka “the BIOS”), such as
|
||
`coreboot <https://www.coreboot.org/>`__. The only exception is the use
|
||
of (properly authenticated) CPU-vendor-provided blobs for silicon and
|
||
memory initialization (see `Intel FSP <https://firmware.intel.com/learn/fsp/about-intel-fsp>`__) as well
|
||
as other internal operations (see `Intel ME <https://www.apress.com/9781430265719>`__). However, we specifically
|
||
require all code used for and dealing with the System Management Mode
|
||
(SMM) to be open-source.
|
||
|
||
While we
|
||
`recognize <https://blog.invisiblethings.org/papers/2015/x86_harmful.pdf>`__
|
||
the potential problems that proprietary CPU-vendor code can cause, we
|
||
are also pragmatic enough to realize that we need to take smaller steps
|
||
first, before we can implement even stronger countermeasures such as a
|
||
`stateless laptop <https://blog.invisiblethings.org/papers/2015/state_harmful.pdf>`__.
|
||
A switch to open source boot firmware is one such important step. To be
|
||
compatible with Qubes OS, the BIOS must properly expose all the VT-x,
|
||
VT-d, and SLAT functionality that the underlying hardware offers (and
|
||
which we require). Among other things, this implies **proper DMAR ACPI table** construction.
|
||
|
||
Most laptops use PS/2 connections internally for their input devices
|
||
(i.e., keyboard and touchpad). On most desktops, however, USB-connected
|
||
keyboards and mice have become standard. This presents a dilemma when
|
||
the computer has only one USB controller. If that single USB controller
|
||
is dedicated solely to the input devices, then no untrusted USB devices
|
||
can be used. Conversely, if the sole USB controller is completely
|
||
untrusted, then there is no way for the user to physically control the
|
||
system in a secure way. In practice, Qubes users on such hardware
|
||
systems are generally forced to use a single USB controller for both
|
||
trusted and untrusted purposes — :ref:`an unfortunate security trade-off <user/security-in-qubes/device-handling-security:security warning on usb input devices>`.
|
||
For this reason, we require that every Qubes-certified non-laptop device
|
||
**either** (1) supports non-USB input devices (e.g., via PS/2) **or**
|
||
(2) has a separate USB controller that is only for input devices.
|
||
|
||
Finally, we require that Qubes-certified hardware does not have any
|
||
built-in *USB-connected* microphones (e.g. as part of a USB-connected
|
||
built-in camera) that cannot be easily physically disabled by the user,
|
||
e.g. via a convenient mechanical switch. Thankfully, the majority of
|
||
laptops on the market that we have seen already satisfy this condition
|
||
out-of-the-box, because their built-in microphones are typically
|
||
connected to the internal audio device, which itself is a type of PCIe
|
||
device. This is important, because such PCIe audio devices are — by
|
||
default — assigned to Qubes’ (trusted) dom0 and exposed through our
|
||
carefully designed protocol only to select app qubes when the user
|
||
explicitly chooses to do so. The rest of the time, they should be
|
||
outside the reach of malware.
|
||
|
||
While we also recommend a physical kill switch on the built-in camera
|
||
(or, if possible, not to have a built-in camera), we also recognize this
|
||
isn’t a critical requirement, because users who are concerned about it
|
||
can easily cover it a piece of tape (something that, regrettably, is far
|
||
less effective on a microphone).
|
||
|
||
Similarly, we don’t consider physical kill switches on Wi-Fi and
|
||
Bluetooth devices to be mandatory. Users who plan on using Qubes in an
|
||
air-gap scenario would do best if they manually remove all such devices
|
||
persistently (as well as the builtin
|
||
`speakers <https://github.com/romanz/amodem/>`__!), rather than rely on
|
||
easy-to-flip-by-mistake switches, while others should benefit from the
|
||
Qubes default sandboxing of all networking devices in dedicated VMs.
|
||
|
||
We hope these hardware requirements will encourage the development of
|
||
more secure and trustworthy devices.
|
||
|
||
Hardware certification process
|
||
------------------------------
|
||
|
||
|
||
To have hardware certified, the vendor must:
|
||
|
||
1. Send the Qubes team two (2) units for testing (non-returnable) for
|
||
each configuration the vendor wishes to be offering.
|
||
|
||
2. Offer to customers the very same configuration (same motherboard,
|
||
same screen, same BIOS version, same Wi-Fi module, etc.) for at least
|
||
one year.
|
||
|
||
3. Pay the Qubes team a flat monthly rate, to be agreed upon between the
|
||
hardware vendor and the Qubes team.
|
||
|
||
|
||
|
||
It is the vendor’s responsibility to ensure the hardware they wish to
|
||
have certified can run Qubes OS, at the very least the latest stable
|
||
version. This could be done by consulting the :doc:`Hardware Compatibility List </user/hardware/hcl>` or trying to install it themselves before shipping any
|
||
units to us. While we are willing to troubleshoot simple issues, we will
|
||
need to charge a consulting fee for more in-depth work.
|
||
|
||
If you are interested in having your hardware certified, please `contact us <mailto:business@qubes-os.org>`__.
|
||
|
||
.. |Photo of the NitroPC Pro 2| image:: /attachment/posts/nitropc-pro.jpg
|
||
:target: https://shop.nitrokey.com/shop/nitropc-pro-2-523
|
||
|
||
.. |Photo of the Star Labs StarBook| image:: /attachment/site/starlabs-starbook.png
|
||
:target: https://starlabs.systems/pages/starbook
|
||
|
||
.. |Photo of the NitroPC Pro| image:: /attachment/posts/nitropc-pro.jpg
|
||
:target: https://shop.nitrokey.com/shop/product/nitropc-pro-523
|
||
|
||
.. |Photo of the NovaCustom NV41 Series| image:: /attachment/site/novacustom-nv41-series.png
|
||
:target: https://novacustom.com/product/nv41-series/
|
||
|
||
.. |Photo of the Dasharo FidelisGuard Z690| image:: /attachment/site/dasharo-fidelisguard-z690.jpg
|
||
:target: https://3mdeb.com/shop/open-source-hardware/dasharo-fidelisguard-z690-qubes-os-certified/
|
||
|
||
.. |Photo of the NitroPad T430| image:: /attachment/site/nitropad-t430.jpg
|
||
:target: https://shop.nitrokey.com/shop/product/nitropad-t430-119
|
||
|
||
.. |Photo of the NitroPad X230| image:: /attachment/site/nitropad-x230.jpg
|
||
:target: https://shop.nitrokey.com/shop/product/nitropad-x230-67
|
||
|
||
.. |Photo of the Insurgo PrivacyBeast X230| image:: /attachment/site/insurgo-privacybeast-x230.png
|
||
:target: https://insurgo.ca/produit/qubesos-certified-privacybeast_x230-reasonably-secured-laptop/
|