etminan

Browser, desktop app or terminal? Why the Etminan console is a TUI

The screen an operator approves trust from is part of the security boundary. So the question is not which interface looks best. It is which one adds the least to what has to be defended.

01The screen is inside the trust path

In Etminan, the monitored host never judges itself. A separate verifier replays each host's measurement log, checks it against the value the TPM signed, and is the only place an alarm can fire. Every trust-changing action on that verifier — approving a change, enrolling a host, signing off a boot policy — is signed and appended to a hash-chained audit log.

An operator console is where those actions are taken. Whatever draws that screen and carries that keystroke sits inside the boundary the whole product exists to protect. A console that is easy to attack is a quiet way around everything else.

We are building that console now, so we compared the three usual answers against one question: what does each one add to the attack surface of the box that decides trust?

02A browser GUI

The browser is the default answer, and for good reasons. Nothing to install. Everyone knows how to use it. Charts, layout and accessibility come almost for free. For someone who looks at the system twice a month, it is the friendliest option.

The cost lands on the verifier:

03A native desktop app

A native app gives a rich interface without a web server on the verifier, works offline and feels fast. It moves the problem rather than removing it.

04A terminal UI

The Etminan console runs in a terminal, on the verifier, reached over SSH. That choice removes more than it adds:

05Side by side

Browser GUINative appTerminal UI
New network listener on the verifierYesUsuallyNo
Own login system to buildYesYesNo — SSH
Extra dependency treeLarge (JavaScript)Large (GUI toolkit)Small
Update channel to defendBrowser + web appPer-OS installer + updaterThe verifier package
Air-gapped / serial consoleLimitedNo serialYes
Hostile-text riskScript injectionToolkit renderingControl sequences
Reach for non-technical readersBestGoodWeakest
Accessibility, chartsBestGoodWeakest

06What the terminal costs us

The bottom two rows are real, and we do not hide them.

The trade we made: the people who approve trust get the interface with the least to defend. Convenience for occasional readers is not worth a web server on the box that decides whether a host is genuine.

07Where this stands

The console is in development. Everything it does is available today from the command line, where it was built first and where it is tested. The screen is the second way in, not the only one.

We are building it in a fixed order: first the data each screen needs and where it comes from, then the decisions each screen makes, then the drawing. Most of the work is not visual. A screen that says “three of 340 hosts differ” needs the verifier to answer that question inside the operator's own scope, before a signature exists, and in exactly the way the approval will count it — otherwise the screen and the signature disagree about who was in the set.

The first screens are drawn. The work now is the verifier answering what they ask.

← All posts