Safeguard
Security Guides•

Who should hold the OTA signing key at a ten person startup?

Nobody should hold the OTA signing key on a laptop. Here is how a small hardware team can split signing roles so one stolen account cannot ship malware.

Safeguard Security Team
4 min read

Nobody at a ten person startup should keep the production OTA signing key on a personal laptop. Put it in a hardware token or a managed signing service, let the release pipeline request signatures, and require a second person to approve each production release. One compromised account should not be enough to ship firmware.

Why the question is harder than it looks

Early teams sign with whatever works: a key file in a shared drive, or one engineer's machine. That is fine for a prototype. It becomes a problem the day a device in a customer's home trusts that key, because an attacker who gets the key can push a properly signed but malicious update. The Update Framework describes this exact case as key compromise, and says its design aims to minimise the impact of key compromises.

The point is not to buy expensive hardware. It is to make sure the key is not tied to one person or one disk.

Split the roles, even with few people

TUF names four top-level roles: root, targets, snapshot and timestamp. The root role lists the other roles and the keys each one trusts. Targets signs the list of files and hashes devices may download. Snapshot records the versions of the targets metadata. Timestamp has a short expiry and is normally re-signed automatically by an online key.

You do not need to adopt TUF to borrow the idea. A small team can use the same separation:

RoleWho or what holds itOnline?
Root of trust keyTwo founders, hardware tokens, in separate placesNo
Release signing keySigning service or token, used by the pipelineControlled
Freshness or timestamp keyAutomated, low blast radiusYes
Break glass copySealed, documented, tested yearlyNo

The TUF metadata page says the timestamp key is the one used online for automatic re-signing, which is the pattern to copy: keep the online key weak in power, and the strong key offline.

A practical release gate

  1. The pipeline builds the image from a tagged commit.
  2. A second person approves the release in the repository, not in chat.
  3. The pipeline asks the signing service to sign. The key never leaves it.
  4. Signing events are logged with who approved and which hash was signed.
  5. A staged rollout starts with a small group of devices.

What to write down now

Write the answer to three questions while things are calm. What do we do if the release key is stolen? How do devices learn to trust a new key? Who can authorise that? If your devices cannot accept a new key without a physical visit, you have found a design limit worth fixing before shipping at volume.

Where Safeguard fits

Safeguard's policies and gates can block a pull request or release when dependency checks fail, which keeps a known-vulnerable library out of the image you are about to sign. It does not manage your signing keys.

Quick check

Is a cloud key management service enough for a startup?

It can be a sound choice if access is tightly limited and every signing call is logged. The point is that the key is not exportable and not on a laptop.

Should the same key sign firmware and the mobile app?

No. Use separate keys so a problem in one channel does not become a problem in the other.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.