DCENT_OS Firmware Security
Home » DCENT_OS — Open-Source Antminer Firmware » DCENT_OS Firmware Security
Firmware security is a chain: source review, trusted build inputs, signed artifacts, a verified update path, safe defaults and a recovery route. DCENT_OS documents each boundary instead of treating “open source” as the whole answer.
On this page
Threats in scope
- Compromised or downgraded update packages.
- Unauthorized dashboard, API, WebSocket or MCP control actions.
- Credential or release-key leakage.
- Unsafe voltage, thermal, fan or PSU changes.
- Pool redirection and configuration tampering.
- Persistent-install failures that damage boot or recovery state.
Release and update controls
| Control | Published behavior | Current caveat |
|---|---|---|
| Artifact integrity | SHA-256 checksum file plus an Ed25519-signed manifest inside current packages | Verify the exact file and model lane before any write |
| Install preflight | Backup-first, degraded-hardware refusal and dry-run planning through DCENT_Toolbox | Install readiness remains model-specific and guarded |
| First boot | Management-only state; mining must be explicitly enabled | Does not replace a tested SD/UART recovery path |
| Control authorization | Release-image writes require authenticated owner sessions and fail closed without a token | Local root access is intentionally operator-owned and outside that boundary |
| Network policy | Local dashboard/API; project states no cloud account, telemetry or license server | Independent network-capture verification is invited and should name the tested build |
| Vendor boot components | Explicitly isolated and attributed | They remain outside the source-level security guarantee |
Verify a package
- Download only the artifact for the exact model and control-board lane.
- Compare its SHA-256 digest with the published checksum list.
- Check the signed manifest yourself. Unpack the package and run both checks from inside the extracted directory:
You should seetar -xf DCENTOS_XIL1_S9_beta20260709.tar cd sysupgrade-am1-s9 sha256sum -c SHA256SUMS openssl pkeyutl -verify -pubin -inkey release_ed25519.pub \ -rawin -in MANIFEST.json -sigfile MANIFEST.sigkernel: OK,root: OK,METADATA: OKandrelease_ed25519.pub: OKfrom the first command, thenSignature Verified Successfullyfrom the second. Proves every payload matches the digest the manifest declares, and that the manifest itself was signed by the release key. Undo nothing is written to a miner by these commands — delete the extracted directory. Ed25519 verification needs-rawin, which requires OpenSSL 3.x. DCENT_Toolbox performs the same two checks and is designed to fail closed on a mismatch. - Anchor the key out of band.
release_ed25519.pubships inside the package it authenticates, so on its own it is trust-on-first-use. Print its raw 32-byte value and compare it against the fingerprint we publish on the release page:
You should see the single 64-character lineopenssl pkey -pubin -in release_ed25519.pub -outform DER | tail -c 32 | xxd -p -c 3226985575eae77d56c490ceeb9054af012eab5ae59119cd20eaa70dd7e722df83, matching the release-key fingerprint printed on the beta20260709 release page. The-c 32matters: without itxxd -pwraps at 30 bytes and prints the fingerprint across two lines, which looks like a mismatch when it is not. (Noxxd?| od -An -tx1 | tr -d ' \n'prints the same 64 characters on one line.) Proves the key inside the package is the key we published. - Run a dry-run preflight and keep a known-good recovery image plus UART access.
Evidence gap — honest note
The out-of-band anchor above is a fingerprint on a page served from the same host as the artifact, so a host compromise defeats both together. SHA256SUMS.txt.asc and SHA256SUMS.txt.sig do not exist — both return 404. A detached signature on a separate domain, which is what Braiins does with its braiins-os.gpg.pub release key, is a real gap in our posture and we would rather name it than imply we have closed it. Until we ship one, the strongest independent check available to you is comparing the fingerprint above against a copy you obtained through a different channel.
Independent network-verification recipe
- Record the artifact filename, SHA-256 digest, build/commit and exact miner/control-board lane.
- Place the miner on an isolated test VLAN with packet capture at the gateway.
- Exercise first boot, pool configuration, mining, dashboard/API reads, authenticated writes, update checks and a reboot.
- Publish DNS lookups, destination IPs, ports, byte counts and the redacted capture; distinguish configured pool traffic from unsolicited traffic.
- Repeat after a factory reset and disclose every test limitation. Do not turn a single quiet capture into a universal claim for other builds.
Disclosure and audit status
Report vulnerabilities through the repository's coordinated disclosure policy, not a public issue. The policy covers the firmware, dashboard, build/flash tooling and update path and includes safe-harbor language.
This page does not claim an independent security audit, a reproducible-build certification or a published SBOM unless those artifacts are linked from the repository for the named build. Independent researchers can use the reviewer and researcher kit; negative findings and failed reproductions are explicitly welcome.
Assurance ledger
| GPL-3.0 source | Published for daemon, dashboard and Buildroot integration; vendor boot-input boundary documented. |
|---|---|
| Signed artifacts | Published for exact S9 XIL and S19j Pro XIL files. |
| Independent security audit | None published. |
| SBOM | Not published for the named artifact set. |
| Reproducible-build certification | None; byte-for-byte reproducibility is not claimed. |
| Independent network-egress capture | None published. |
| Production-supported release | None; all current artifacts are experimental and guarded. |
Security surface reviewed 2026-08-29. See also D-Central's firmware verification guide.
Companion tool — DCENT_Toolbox: DCENT_Toolbox fail-closed verification & coverage.
