Website profiles · Technology insights · Alternatives

osresearch.net

Documentation for the Heads firmware project

No paid content found
Visit website
Profile views 0 Outbound visits 0 Normal
About | Heads - Wiki Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
2003
Hosting
FastlyInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is Heads?

Heads is an open-source custom firmware and OS configuration for laptops and servers, built on coreboot with a Linux boot loader in ROM. Its goal is to provide somewhat better physical security and data protection than a standard installation by moving the root of trust into the write-protected region of the SPI flash. From there it measures each step of the boot process into the TPM, so the machine can attest to you or a remote system that it hasn't been tampered with, and once in a known good state the TPM is used as hardware key storage to decrypt the drive. The hypervisor, kernel and initrd images are signed with keys the user controls.

How it differs from a privacy OS

Unlike Tails, which aims to be stateless and leave no trace, Heads is designed for the case where you need to store data and state on the computer. It is not simply another Linux distribution: it combines physical hardening of specific hardware platforms and flash security features with custom firmware. On platforms that support it, Bootguard enforces verified boot of the firmware. Modern Intel CPUs still require binary blobs to boot, but these non-free components are included in the measurements and are at least guaranteed to be unchanging.

Who it is for, and the trade-offs

It suits people who want persistent, encrypted data on a machine they physically control and who are willing to work within a narrow set of supported hardware. The trade-off is that this is not a drop-in install for arbitrary laptops; the hardening depends on specific platforms, and the project describes its work as raising the difficulty of attack rather than securing against every vector. If your need is a disposable session with no local traces, a stateless OS fits better; if your concern is tampering with the boot chain and drive on a machine you keep, Heads addresses that class of attack.

A useful next step is to check whether your exact laptop or server model appears in the project's supported-platform documentation before planning a deployment. Heads Wiki

How does Heads protect a laptop or server from physical tampering during boot?

Heads protects against physical tampering by moving the root of trust into hardware the attacker cannot easily rewrite, then using that anchor to detect changes before your data is unlocked. Per the project's own documentation, it combines custom coreboot firmware and a Linux boot loader in ROM with physical hardening of specific hardware platforms and SPI flash write protection. Because the first instruction the CPU executes is under Heads' control, each stage of the boot firmware and configuration is measured into the TPM. That lets the machine attest to you (or a remote system) that it has not been tampered with. Once the system reaches a known good state, the TPM acts as hardware key storage to decrypt the drive; the hypervisor, kernel and initrd images are signed with keys you control. Where the platform supports it, Bootguard enforces verified boot of the firmware, and non-free Intel blobs are included in the measurements so they are at least guaranteed to be unchanging. The project is explicit that this raises the cost of attack rather than closing every vector.

What this looks like in practice

  • Evil-maid swap of the boot code: an attacker with brief physical access reflashes the firmware. Write-protected SPI flash and measured boot make the altered code show up as a changed measurement rather than booting silently.
  • DMA attacks over Thunderbolt: the 33C3 talk by Trammel Hudson, cited on the page, describes Thunderstrike-style DMA rewriting of SPI flash and Heads' countermeasures, such as enabling IOMMU/VT-d and having coreboot disable the relevant ports.
  • Stolen or seized machine: the drive stays encrypted until the TPM unseals it in a verified state, so pulling the disk does not hand over data.

Where it fits, and where it doesn't

Heads is aimed at laptops and servers where you need to keep data and state on the machine, in contrast to Tails' stateless design. It is not a general-purpose distribution: it targets specific hardware platforms, so check that your model is supported before planning a deployment. It also does not defend against every attack class, and the page itself frames the goal as making attacks expensive rather than impossible.

A useful next step is to read the supported-platforms and flashing guidance on Heads and confirm your exact laptop or server model is listed, since the protection depends on platform-specific hardening and flash write protection being available.

What hardware platforms and laptops are supported by Heads firmware?

Heads is built for specific, individually supported laptops and servers rather than a broad hardware list. The project describes itself as open-source custom firmware plus an OS configuration for laptops and servers, with physical hardening tied to particular platforms and coreboot support. Its documentation is the place to confirm whether a given machine is supported.

How support is organized

Heads' support is platform-specific in a way that matters when choosing hardware:

  • Laptops and workstations are the primary target, with the boot firmware and Linux bootloader placed in the write-protected SPI flash region.
  • Servers are addressed through BMC, SSH or console access, as shown by the split main menu on the project's wiki.
  • Firmware-level verification depends on the platform: Heads notes that Bootguard enforces verified boot of the firmware "on platforms that support it," so this protection is not universal across supported machines.
  • Intel-based systems require binary blobs to boot; Heads includes these non-free components in its measurements so they are at least guaranteed to be unchanging.

A practical way to decide

If you are considering a laptop for a Heads install, start from the project's supported-device documentation rather than from a general "works with coreboot" list. Check three things for your exact model: that it is listed as supported, whether Bootguard-backed verified boot applies to it, and whether flashing the SPI flash is feasible on that machine. A concrete example: someone buying a used business-class ThinkPad for a tamper-evident travel machine should confirm the exact model appears in Heads' support documentation before purchase, because a near-identical variant may lack the same protections or flashing path.

For background on the project's goals and the attack classes it targets, see Heads Wiki.

How do I install Heads on my machine, and what are the risks?

Installing Heads means replacing your machine's firmware with a custom coreboot build plus a Linux boot loader in ROM, then configuring it to measure each boot step into the TPM. The wiki positions it as firmware and OS configuration for laptops and servers, not a distribution you install alongside an existing system. The practical answer is: check hardware support first, install only through the documented procedure for your exact board, and accept that a mistake can leave the machine unbootable until you recover it with external flashing hardware.

What the installation actually involves

  • Verify your platform is supported. Heads combines "physical hardening of specific hardware platforms" with coreboot firmware, so support is board-specific. Confirm your exact model appears in the project's supported-devices documentation before touching anything.
  • Plan for an external flash. Because the root of trust moves into the write-protected SPI flash region, initial installation is normally done by writing the firmware image directly to the flash chip with a hardware programmer, not by running an installer from the OS.
  • Prepare recovery before you start. Keep a full dump of your original firmware and a way to re-flash it. This is your only reliable path back if the new image fails to boot.
  • Set up keys and TPM enrollment. Heads signs the hypervisor, kernel and initrd with keys you control, and uses the TPM to attest boot integrity and later to decrypt the drive once the system is in a known good state. Budget time for key generation, signing your boot files, and TPM provisioning.

The risks, concretely

Risk What it means for you
Bricking A bad flash or interrupted write can leave the machine dead until re-flashed externally; some boards need case disassembly or a clip.
Irreversible or hard-to-reverse changes Write-protecting the flash and enabling Bootguard-style verified boot on supported platforms makes later firmware changes harder.
Losing drive access Drive decryption is tied to the TPM and a known good measurement state; a failed boot measurement or TPM reset can lock you out without a recovery key.
Signed-boot friction Every kernel or initrd update must be signed with your keys, so routine OS maintenance becomes a manual step.
Incomplete protection The project itself notes these changes don't secure against every attack vector; they raise the cost of boot-process and physical attacks.
Non-free components remain On modern Intel CPUs, binary blobs are still required to boot; Heads only measures them so they are guaranteed unchanging.

A sensible next step

Read the board-specific install page for your exact model and the project's recovery documentation before buying a programmer. As a decision criterion: if you are not comfortable opening the machine, using a hardware flasher, and managing your own signing keys, the risk of a bricked laptop outweighs the boot-integrity benefits. If you are, the wiki at Heads is the authoritative starting point, and coreboot's own documentation at coreboot explains the underlying firmware your board will run.

How does Heads differ from Tails or a standard Linux distribution?

Heads is not a privacy-focused live OS like Tails, and it is not a conventional Linux distribution you install and update like any other. It is custom coreboot firmware plus a Linux bootloader in ROM, designed for machines where you keep data and state on the disk—and it moves the root of trust into the write-protected SPI flash region.

How it differs

Dimension Heads Tails Standard Linux distribution
Primary aim Physical security and tamper evidence for a machine that stores data Stateless, amnesic use that leaves no trace General-purpose computing
Where trust starts Write-protected firmware in SPI flash; CPU's first instruction is controlled Boot medium and the running live system Bootloader and OS on disk, assumed intact
Boot integrity Measures each boot step into the TPM; attests to the user or a remote system Focuses on leaving no local trace, not on hardware attestation Typically no boot measurement or attestation by default
State Data and state persist on the machine; drive decrypted using the TPM once in a known good state No persistent state by design Persistent by default
Signed components Hypervisor, kernel and initrd signed with user-controlled keys Distribution-signed images Distribution-signed packages and kernels
Hardware scope Specific laptop and server platforms with physical hardening and flash protections Broad PC hardware via removable media Broad hardware

The practical consequence: with a standard distribution, an attacker who can rewrite the boot code or tamper with the firmware can often do so without leaving evidence. Heads makes that class of attack harder by measuring the boot chain and by enforcing verified boot where the platform supports Bootguard. It also addresses attacks that traditional installs neglect—the project cites Thunderstrike-style DMA over Thunderbolt rewriting SPI flash, countered by enabling IOMMU/VT-d and coreboot disabling the relevant interfaces.

Two trade-offs are worth stating plainly. First, Heads does not eliminate binary blobs: modern Intel CPUs need them to boot, though they are included in the measurements and therefore at least guaranteed to be unchanging. Second, the project is explicit that this raises the cost of attack rather than securing against every vector.

Choosing between them

If your concern is that a seized or accessed laptop reveals what you did, Tails is the fit. If your concern is that someone has quietly modified your machine's boot process while your data stays on it, Heads targets that threat. If you just need a working desktop, a standard distribution remains the simpler choice—Heads requires supported hardware and a willingness to manage signing keys.

As a concrete case: a journalist who travels with a work laptop and keeps sources on disk benefits more from Heads' boot measurement and TPM-bound disk decryption than from an amnesic OS, because the data must survive the trip.

A useful next step is to check the Heads wiki's supported-platform list before assuming your laptop qualifies, since the hardware hardening is platform-specific rather than generic.

How can I support or contribute to the Heads project?

The Heads project's own wiki says the clearest way to help is money: the firmware and wiki are free and open source, but keeping them maintained is ongoing work, and the project points to GitHub Sponsors (tlaurion) and Open Collective (Insurgo), with details on its Community page. Contributions of code, testing and documentation aren't spelled out on the page you supplied, so treat those as the usual open-source routes rather than documented asks.

Who this fits

  • You run Heads on a laptop or server: the most valuable non-financial help is reporting what works and what breaks on your specific hardware, since Heads depends on per-platform hardening and flash protection.
  • You're evaluating it for an organisation: funding through a sponsor channel is a low-effort way to keep the boot chain you rely on audited and updated.
  • You're a firmware developer: Heads builds on coreboot and a Linux boot loader in ROM, so familiarity with coreboot, TPM measurement and signing keys is the relevant background.

Practical next step

Pick one contribution and make it concrete: a monthly sponsorship at whatever level suits you, or a reproducible test report on your exact machine model and firmware version. The second costs nothing and directly helps other users decide whether Heads fits their hardware.

For background on the wider ecosystem Heads sits in, see coreboot and the Heads project's own documentation at Heads.

Related questions

More questions →
What Are Open-Source UI Element Libraries and How Do They Differ From UI Frameworks?

An open-source UI element library is a collection of individual, ready-made interface pieces—buttons, cards, inputs, toggles, loaders—that you copy into your own project and adapt. A UI framework, by contrast, is a structured system of components, conventions, and often a theming layer that governs how your whole interface is built. The practical difference: an element library gives you a snippet; a framework gives you a way of working. If you need a polished button in ten minutes, reach for the element library. If you're building a 40-screen product with a team, you probably want the framework.

What "open-source UI element library" actually means

The term gets used loosely, so it helps to separate the parts:

  • Open-source: the code is publicly available, and the license tells you what you may do with it—copy, modify, redistribute, or use commercially.
  • UI element: a single, self-contained piece of interface, usually small enough to read in one sitting. A button with hover states, a pricing card, a search field.
  • Library: a browsable, searchable collection of those elements, typically contributed by many different people.

On a site like Uiverse, elements are shared by a community and written in plain CSS or Tailwind. You find one you like, copy the markup and styles, paste them into your project, and adjust colors, spacing, and text to fit. There's no package to install and no build step required—which is exactly the appeal, and also the source of most of the confusion.

Element library vs. UI framework: the core differences

Dimension Open-source UI element library UI framework / design system
Unit of reuse A single snippet you copy A component you import or call
Installation None; paste into your code Package install, config, sometimes a provider
Consistency Depends on you; each element may look different Enforced by shared tokens and APIs
Theming Manual edits per element Central theme/config file
Updates You own the copy; no upstream updates Version bumps bring fixes and changes
Accessibility Varies per contributor; must be checked Usually tested and documented
Best for Prototypes, landing pages, small sites, one-off needs Multi-page apps, teams, long-lived products
Learning curve Low—read the CSS Higher—learn the API and conventions

The table isn't a verdict. It's a map of trade-offs. Element libraries win on speed and freedom; frameworks win on consistency and maintenance.

Licensing and attribution: what to check before you paste

This is where people get into trouble, and it's worth slowing down for.

  1. Find the license. Every element or collection should state one. Common open-source licenses include MIT, Apache-2.0, and BSD. Some projects use copyleft licenses like GPL, which can impose obligations if you redistribute your code.
  2. Understand what the license permits. MIT and Apache-2.0 are permissive: you can typically use the code in commercial and closed-source projects. Copyleft licenses may require you to release derivative source under the same terms.
  3. Check attribution requirements. Permissive licenses usually require you to keep the copyright notice and license text somewhere in your project. That's a real obligation, not a formality.
  4. Look for per-element terms. On community sites, the site's overall terms and the individual contributor's stated wishes may differ. If a contributor asks for credit, honor it.
  5. When in doubt, ask or avoid. If a snippet has no license at all, you don't have clear permission to reuse it. Treat "no license" as "not open source," even if the code is publicly visible.

This article is general information, not legal advice. For commercial products with real exposure, have someone qualified review the licenses you're relying on.

How to use a community element in your project: a practical workflow

Here's a repeatable process that avoids most of the usual mess.

1. Start from a real need, not a browsing session

Decide what you need first—"a compact primary button with a loading state"—then search. Browsing aimlessly produces a pile of pretty snippets that don't fit together.

2. Copy the smallest version that works

Take the markup and the styles. Strip anything you don't need: demo wrappers, extra animations, decorative layers. Less code means fewer surprises.

3. Convert it to your conventions

If your project uses design tokens or CSS variables, replace hard-coded values:

/* Before: hard-coded */
.button { background: #4f46e5; border-radius: 8px; }

/* After: token-based */
.button { background: var(--color-primary); border-radius: var(--radius-md); }

This one step is what keeps a copied element from looking like a foreign object in your UI.

4. Check accessibility before you ship

Community elements vary widely here. Verify at minimum:

  • Keyboard focus is visible and the element is reachable by Tab.
  • Color contrast meets WCAG AA (4.5:1 for normal text).
  • Interactive elements use semantic HTML (<button>, not a clickable <div>).
  • Form inputs have associated labels.
  • Motion respects prefers-reduced-motion.

5. Test in context

Paste it into a real page with real content. Long labels, small screens, and dark mode break more copied elements than anything else.

6. Note where it came from

Keep a short comment or an internal credits file: source, license, date. Future you—and your legal reviewer—will be grateful.

Where element libraries genuinely shine

  • Prototypes and demos: you need something clickable today, not a design system.
  • Landing pages and marketing sites: a handful of distinctive elements, each custom.
  • Filling gaps: your framework lacks one specific component, and you don't want to build it from scratch.
  • Learning: reading well-made CSS is one of the fastest ways to improve.
  • Small projects: a personal site doesn't need a theming architecture.

Where they fall short

  • Consistency at scale: ten elements from ten contributors rarely look like one product.
  • Maintenance: you own every copy. When your design changes, you edit each one.
  • Accessibility debt: you inherit whatever the contributor did or didn't do.
  • No upstream fixes: a bug fixed in the original won't reach your copy.
  • Integration friction: different naming conventions, different units, different assumptions about resets.

When to choose which

Choose an element library when the scope is small, the timeline is short, or you need a few distinctive pieces rather than a whole system.

Choose a framework or design system when multiple people build multiple screens over months, when consistency is a product requirement, or when accessibility and theming need to be guaranteed rather than checked.

A hybrid works well for many teams: adopt a framework for the structural components—forms, navigation, layout—and borrow individual elements for the places where you want personality. Just route every borrowed element through the same token and accessibility checks, so it lands as part of your system rather than beside it.

The short version: open-source UI element libraries are a fast, flexible way to get good-looking interface pieces into a project. They are not a substitute for a design system, and the license and accessibility details are the part worth reading carefully.

How to Support the Heads Project

Heads is free and open source, but keeping the firmware and this wiki maintained is ongoing work that is not free. The project page lists two ways to contribute financially: GitHub Sponsors (tlaurion) or Open Collective (Insurgo). For the full details, see the "Supporting the Project" section on the Community page of the Heads wiki.

Why Support Matters

Heads is a custom firmware and OS configuration for laptops and servers that aims to provide better physical security and data protection than a traditional installation. It combines hardware hardening with flash security features, custom coreboot firmware, and a Linux boot loader in ROM. That moves the root of trust into the write-protected region of SPI flash and lets the TPM measure each boot step so the machine can attest it has not been tampered with.

Maintaining that stack—supported hardware platforms, firmware builds, documentation, and the wiki—takes continuous effort. The project states plainly that this maintenance is not free, which is why the sponsorship channels exist.

The Two Support Channels

Channel Recipient Where to go
GitHub Sponsors tlaurion GitHub Sponsors page for the account
Open Collective Insurgo Open Collective page for the collective

Both are named directly on the Heads wiki. The wiki does not publish pricing tiers, amounts, or payment details for either channel, so check each platform for current options before committing.

GitHub Sponsors (tlaurion)

Use this if you already manage open-source funding through GitHub and want a recurring sponsorship tied to a GitHub account. It suits individuals and teams who prefer one dashboard for the projects they back.

Open Collective (Insurgo)

Use this if you want a transparent, collective-style funding route, typically associated with an organization rather than a single maintainer account. It can fit supporters who want to see how funds are handled at the organizational level.

Before You Contribute

  • Confirm the recipient. The wiki names tlaurion on GitHub Sponsors and Insurgo on Open Collective. Verify the account or collective matches these names before paying.
  • Check the current terms on the platform. Sponsorship tiers, one-time versus recurring options, and any fees are set by the platform, not described on the Heads wiki.
  • Read the Community page first. The "Supporting the Project" section is the canonical place for details and may list additional guidance beyond the two links.

Non-Financial Ways to Help

The wiki's framing is about funding maintenance, but the project is open source, so the usual contributions apply: testing on supported hardware, reporting issues, and improving documentation. If you are deciding between giving money and giving time, financial support directly addresses the stated maintenance gap, while testing and documentation help keep the supported platform list and wiki accurate.

Quick Answer

To support Heads, go to the Community page of the Heads wiki and open the "Supporting the Project" section. From there, choose GitHub Sponsors (tlaurion) for account-based recurring support or Open Collective (Insurgo) for collective-style funding. Confirm the recipient names and current platform terms before contributing.

Which hardware platforms does Heads support for laptops and servers?

Heads targets specific laptop/workstation and server platforms rather than offering a universal build, and its protection depends on hardware-specific hardening baked into each port. The wiki's main menu splits support into two tracks — laptops/workstations on one side and servers (managed via BMC, SSH, or console) on the other — so the practical answer is to check the Heads wiki's board list for your exact model before assuming support. The project does not claim coverage of arbitrary hardware.

What "supported" means for Heads hardware

Heads is not a Linux distribution you install on anything with a CPU. It combines:

  • Physical hardening of specific hardware platforms — each port is built around a particular board's flash layout, write-protect mechanism, and recovery path.
  • Flash security features with custom coreboot firmware and a Linux boot loader stored in ROM.
  • A root of trust moved into the write-protected region of the SPI flash, which blocks later software modification of the boot code.

Because the root of trust lives in write-protected SPI flash, a platform only works if its flash can actually be protected and its boot path can be measured. That is why support is enumerated per board rather than per CPU family.

Laptop and workstation targets

Laptop/workstation support is the track most individual users care about. On these machines Heads:

  1. Controls the first instruction the CPU executes, which lets it measure every step of boot firmware and configuration into the TPM.
  2. Uses the TPM to attest to the user or a remote system that the machine has not been tampered with.
  3. Once the system is in a known good state, uses the TPM as hardware key storage to decrypt the drive.
  4. Requires the hypervisor, kernel, and initrd images to be signed by keys the user controls.

Some laptop platforms additionally support Bootguard-enforced verified boot of the firmware, but the wiki describes this as conditional — "on platforms that support it" — so it is a per-board property, not a Heads-wide guarantee.

Server targets

Servers are a separate track, accessed through BMC, SSH, or console rather than a local keyboard and screen. The same measurement-and-attestation model applies, but the operational entry points differ, which matters for how you verify a machine's state and how you recover from a failed update. If you are evaluating Heads for a server fleet, confirm the specific board's BMC and console workflow in the wiki rather than assuming the laptop procedure transfers.

Limitations to weigh before choosing hardware

Consideration What the project states
Binary blobs Modern Intel CPUs require binary blobs to boot; these non-Free components are included in the measurements and are "at least guaranteed to be unchanging"
Scope of protection Heads "aims to provide slightly better physical security and protection for data" — it does not secure the system against every possible attack vector
Threat model It addresses several classes of attacks against the boot process and physical hardware neglected in traditional installations, raising difficulty rather than eliminating risk
Data persistence Unlike Tails, Heads is intended for machines where you store data and state — it is not a stateless OS

The binary-blob point is the one most likely to affect a hardware decision: you cannot get a blob-free boot on modern Intel, and Heads' answer is to measure the blobs so any change is detectable, not to remove them.

How to confirm a specific machine is supported

  1. Identify the exact board model, not just the CPU generation — Heads ports are board-specific.
  2. Check the Heads wiki's platform list for that model and note whether it is a laptop/workstation or server target.
  3. Read that board's page for its flash write-protection method, recovery procedure, and whether Bootguard verified boot applies.
  4. Confirm your intended use fits the design: persistent data on the machine, with user-controlled signing keys for hypervisor, kernel, and initrd.

If your model is not listed, treat it as unsupported rather than assuming a nearby board's build will work — the write-protect and measurement steps depend on the specific flash and boot path.

Where to go next

The wiki is the authoritative source for the current board list and per-platform notes, and it is maintained as ongoing work; the project asks for support via GitHub Sponsors (tlaurion) or Open Collective (Insurgo), with details on the Community page. For background on why the design looks this way, Trammel Hudson's 33C3 talk introduces Heads and catalogues the attack classes it targets — including Thunderstrike, where DMA over Thunderbolt rewrites SPI flash, countered by enabling IOMMU/VT-d and coreboot disabling the relevant path. That talk is a useful filter when judging whether a candidate board's hardening actually covers the attacks you care about.

How Heads Differs from Tails

Heads and Tails solve different problems. Tails is designed as a stateless operating system that leaves no trace of its presence on the computer; Heads is built for the case where you need to store data and state on the machine. Heads is not a Linux distribution at all — it is an open source custom firmware and OS configuration for laptops and servers that aims to provide slightly better physical security and protection for data on the system. If your goal is amnesia (nothing persists after you shut down), Tails is the closer fit. If your goal is a machine whose boot process you can verify and whose disk is unlocked by hardware-backed keys, Heads is the closer fit.

The core difference: amnesia vs. boot integrity

The two projects start from opposite assumptions about persistence.

Dimension Tails Heads
Primary aim Stateless OS that leaves no trace on the computer Slightly better physical security and data protection on a system that keeps state
Where trust is anchored The live OS session The write-protected region of the SPI flash
What is verified Not the machine's own boot chain Every step of boot firmware and configuration, measured into the TPM
Disk handling No persistent state by design TPM used as hardware key storage to decrypt the drive once the system is in a known good state
Scope An OS you boot Custom coreboot firmware plus a Linux boot loader in ROM, with hardware-specific hardening

Heads' own documentation draws this contrast directly: unlike Tails, Heads is intended for the case where you need to store data and state on the computer.

How Heads moves the root of trust

Heads combines physical hardening of specific hardware platforms and flash security features with custom coreboot firmware and a Linux boot loader in ROM. This moves the root of trust into the write-protected region of the SPI flash and prevents further software modifications to the bootup code. On platforms that support it, Bootguard enforces verified boot of the firmware.

Controlling the first instruction the CPU executes lets Heads measure every step of the boot firmware and configuration into the TPM. That measurement makes it possible to attest — to the user or to a remote system — that the machine has not been tampered with. Once the system is in a known good state, the TPM is used as hardware key storage to decrypt the drive. The hypervisor, kernel and initrd images are additionally signed by keys the user controls.

One honest caveat from the project: modern Intel CPUs require binary blobs to boot. These non-Free components are included in the measurements and are at least guaranteed to be unchanging — they are measured, not eliminated.

What Heads does and does not protect against

Heads addresses several classes of attacks against the boot process and physical hardware that have been neglected in traditional installations, hopefully raising the difficulty beyond what most attackers are willing to spend. The project is explicit that these firmware and software changes do not secure the system against every possible attack vector.

The 33C3 talk by Trammel Hudson introduces Heads and catalogues specific attack classes with their mitigations — for example, Thunderstrike (DMA over Thunderbolt rewriting SPI flash), which is countered by enabling IOMMU/VT-d and by coreboot disabling the relevant exposure. That talk is a useful reference for understanding which threats the design targets.

Choosing between them

  • Choose Tails when the requirement is that the computer retain no trace of the session — for example, using a borrowed or untrusted machine for a sensitive task and leaving it as you found it.
  • Choose Heads when the machine is yours, data must persist on it, and the threat you care about is tampering with the boot chain or physical access to the firmware and disk. Heads assumes state exists and protects how that state is unlocked and verified.
  • They are not substitutes. Heads does not provide amnesia, and Tails does not give you a measured, attested boot chain rooted in write-protected flash.

Practical notes before you commit

Heads is platform-specific: it depends on physical hardening of specific hardware platforms, so support is tied to particular laptop and server models rather than being installable on arbitrary hardware. The wiki's main menu separates laptop/workstation guidance from server guidance (BMC/SSH/Console), which reflects that split.

Heads and the wiki are free and open source, but the project states that keeping them maintained is ongoing work that is not free; it lists GitHub Sponsors (tlaurion) and Open Collective (Insurgo) as support channels, with details on the Community page. Start with the wiki's "Learn more about Heads" material to confirm your hardware is covered before planning a deployment.

What Heads Is and What the Heads Wiki Covers

Heads is an open-source custom firmware and OS configuration for laptops and servers, built on coreboot with a Linux bootloader in ROM, aimed at improving physical security and protecting data on machines that store data and state. The Heads wiki (osresearch.net) is the documentation site for the project: it explains how Heads works and how to use it. Heads is not a stateless operating system like Tails; it is designed for the case where you need to keep data and state on the computer.

What Heads actually changes

Heads moves the root of trust into the write-protected region of the SPI flash and prevents further software modification of the boot code. On platforms that support it, BootGuard enforces verified boot of the firmware. Because Heads controls the first instruction the CPU executes, it can measure every step of the boot firmware and configuration into the TPM, which makes it possible to attest to the user or a remote system that the machine has not been tampered with.

Two practical consequences follow from that design:

  • Disk decryption is tied to a known good state. Once the system is in a known good state, the TPM is used as hardware key storage to decrypt the drive.
  • Boot components are user-signed. The hypervisor, kernel, and initrd images are signed by keys the user controls.

Heads does not claim to stop every attack. The project's own framing is that it addresses several classes of attacks against the boot process and physical hardware that traditional installations neglect, raising the difficulty beyond what most attackers are willing to spend. Modern Intel CPUs require binary blobs to boot; those non-free components are included in the measurements and are at least guaranteed to be unchanging.

What the wiki covers

The wiki is the documentation for the Heads firmware project. Its main menu splits guidance by platform type: laptop/workstation on one side, server (BMC/SSH/Console) on the other. It also records project history and threat context — for example, Trammel Hudson's 2016 33C3 talk introducing Heads, which catalogues specific attack classes and mitigations such as Thunderstrike (DMA over Thunderbolt rewriting SPI flash, countered by enabling IOMMU/VT-d and coreboot disabling the relevant exposure).

Who it is for, and the cost caveat

Heads suits people who want verifiable boot integrity on hardware they physically control and who accept that the machine keeps data on it. It is not a fit if you want a leave-no-trace OS, or if your hardware is not among the supported platforms.

The wiki and Heads are free and open source, but the project states that keeping them maintained is ongoing work that is not free. Support is directed to GitHub Sponsors (tlaurion) or Open Collective (Insurgo), with details on the Community page. The site does not present Heads as a paid product; it presents maintenance as something that needs funding.

Getting oriented

Start with the wiki's overview to confirm your hardware is supported, then read the platform-specific section (laptop/workstation or server) before attempting anything. The overview is also where the trust model — SPI flash write protection, TPM measurements, attestation, and user-signed boot images — is explained, and understanding that model first is what makes the platform guides usable.

Website Overview

Identifiable technologies and additional version or configuration signals make the service easier to fingerprint, which may help targeted scanners narrow their checks. An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality.

Domain and Registration

Registered in 2003, this domain has about 23 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The registrar is Tucows Domains Inc., a widely used domain service provider. The domain uses the common .net extension, which is not an independent safety signal.

DNS and Email

The observed email authentication setup is incomplete: DMARC is missing. Nameservers are provided by swcp.com, indicating managed DNS hosting. MX records point to the swcp.com email service. No CNAME was found; the observed records resolve directly to addresses. DNSSEC signatures were not detected, so this additional DNS authenticity protection is not confirmed.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

The checked browser-security headers were not detected, leaving fewer explicit browser-side safeguards. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The x-cache, x-served-by, via response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.

Technology Stack Analysis

The public page identifies Jekyll 3.10.0, Fastly, with exact versions exposed for 1 technologies. These details can narrow vulnerability checks, although exposure alone is not a vulnerability.

Search and Social Sharing

The Generator tag identifies Jekyll v3.10.0, making the publishing system easier to fingerprint. Open Graph is partially configured; og:image is missing. Twitter Card metadata is configured. The title has 20 characters, within a common display range. A meta description is present, with 44 characters.

Hosting and Email

DNSswcp.com
HostingFastly
Emailswcp.com
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 185.199.108.153

Registration details

RDAP / WHOIS

RegistrarTucows Domains Inc.
Registered2003-02-05
Expires2027-02-05
Domain statusclient delete prohibited、client transfer prohibited、client update prohibited
Nameserverskitsune.swcp.com、ns2.swcp.com
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Aosresearch.net185.199.108.153600—
Aosresearch.net185.199.109.153600—
Aosresearch.net185.199.110.153600—
Aosresearch.net185.199.111.153600—
MXosresearch.netmx1.swcp.com60010
NSosresearch.netkitsune.swcp.com600—
NSosresearch.netns2.swcp.com600—
TXTosresearch.netv=spf1 ip4:216.184.2.0/24 a ~all600—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectosresearch.net
IssuerLet's Encrypt
Valid until2026-11-30T16:49 · Remaining when checked: 35 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlmax-age=600
serverGitHub.com
access-control-allow-origin*

Identified technologies

Jekyll 3.10.0Fastly

Pages, Search and Sharing

User reviews (0)

  • No reviews yet.