Asterisk
Work

Clasply

The default state is Locked: a secure desktop that opens only when every check passes, in order.

Client
Self-initiated
Services
Product design, Engineering
Platform
Desktop (Linux)
Sector
Secure devices

A self-initiated project, with no client, deployment or users. Clasply is built and tested in software. The golden image hasn’t been built end to end, it hasn’t booted on real hardware, and it hasn’t been used with a physical security key.

Clasply in 20 seconds: the vault dial, a failed check, all five lamps, the workspace and the door shutting.

Is this device safe to use, right now?

A kiosk that handles sensitive work has one job before any other: tell the person in front of it, instantly, whether this device is safe to use, and if it isn’t, exactly what’s wrong and what to do.

Clasply is a hardened Linux system that runs one app, and that app stays closed until a USB security key, the device’s own state and a private mesh network all check out. A key or device failure, or a crash, goes to Lockdown. A mesh failure goes to Degraded, which recovers by itself if the session is still valid. The workspace behind the door is deliberately small: a signed message board shared between Clasply devices. The work is the lock around it.

  • Fail closed, everywhere.

    Unknown states, crashes, hangs, stale data and results arriving out of order all count as failures, never as passes.

  • Offline and self-contained.

    Nothing is fetched while it runs: no remote scripts, fonts or content.

  • Untrusted networks.

    The device trusts no peer, no update mirror, and nothing the interface sends.

  • Kiosk use.

    Operators under time pressure, sometimes on touchscreens, reading a fixed panel.

One way in, in one order.

Security key, then the device, then the mesh. A check that passes out of turn is ignored, and a result from an abandoned attempt can’t move the door.

  1. Security key

    Verified

    The app talks to the key directly and verifies its signature itself, never through the browser. A count that goes backwards, the mark of a cloned key, is rejected.

    Rejectedgoes to Lockdown

  2. Secure Boot

    Enabled

    Secure Boot must be switched on and out of setup mode.

    Disabledgoes to Lockdown

  3. Disk encryption

    Encrypted

    The system must be running from the encrypted disk.

    Not encryptedgoes to Lockdown

  4. Integrity

    Intact

    The app and its key settings must match a signed list written when the device was set up. That catches tampering while the device is off, not an attacker who already controls a running system.

    Modifiedgoes to Lockdown

  5. Mesh

    3 of 3 peers

    The private mesh must be healthy and enough peers must answer in time. Results that are too old count as failures.

    Below thresholdgoes to Degraded

Try the door.

Pick what the device finds and watch it decide. Then pull the key, lose the mesh or walk away, and see where it goes next.

What does the device find?

Clasplyclasply-04Locked

Locked

Press Unlock with key, then tap your key when it blinks.

  • Security keyWaiting
  • Secure BootWaiting
  • Disk encryptionWaiting
  • IntegrityWaiting
  • MeshWaiting
  1. Locked
  2. Key
  3. Device
  4. Mesh
  5. Unlocked
  6. Degraded
  7. Lockdown

Locked

Every failure has somewhere to go.

Lockdown

What sends it here
The key, Secure Boot, the disk or integrity fails, or anything crashes.
How it comes back
Only a new key tap, and every check runs again.
Clasply in Lockdown: Secure Boot check failed, with a reason code and one solid red lamp reading Disabled.

Degraded

What sends it here
The mesh falls below its threshold.
How it comes back
On its own, if the mesh recovers and the session is still valid.
Clasply degraded: too few peers reachable, with four green lamps and one amber lamp reading 0 of 3 peers.

Locked

What sends it here
The key is pulled, 5 minutes pass idle, or the 8-hour session limit is reached.
How it comes back
A new key tap.
Clasply locked with no key: Insert your security key to begin, and the vault dial showing No key detected.

Seven states, five faces.

The door has seven states: Locked, three checking stages, Unlocked, Degraded and Lockdown. These are the five someone at the panel sees.

Clasply locked with a key inserted: the word Locked, one instruction, an Unlock with key button, and a soft vault dial whose channel glows green with Key detected beneath it.

1 of 5

Locked

The door is closed and the workspace is shut. One instruction, one action: insert the security key and tap it when it blinks.

Clasply checking: the security key lamp has risen green, Secure Boot is in progress, and three lamps wait pressed into the surface, while the dial’s tick ring fills and its knob reads 1 of 5.

2 of 5

Checking

Five checks run in strict order, and lamps rise one at a time as real results arrive. A result from an abandoned attempt can’t move the door, and a check that passes out of turn is ignored.

Clasply’s unlocked workspace: a signed message board on the left, and a rail on the right with all five check lamps green, mesh health at 92 of 100 with peer latency trends, and the stable update channel.

3 of 5

Unlocked

All five lamps green, and the plate parts onto the workspace: a signed message board, mesh health and the update channel. Pull the key and it locks within a second. The device checks repeat every minute.

Clasply degraded: Too few peers reachable, reason code MESH_BELOW_THRESHOLD, router and peer facts, four green lamps and one amber lamp reading 0 of 3 peers.

4 of 5

Degraded

Too few peers answered. The mesh lamp turns amber and the screen stays calm, because this one recovers on its own if the mesh comes back and the session is still valid.

Clasply in Lockdown: Secure Boot check failed, reason code SECURE_BOOT_DISABLED, what happened and what to do, and one solid red lamp reading Disabled beside a green Verified lamp.

5 of 5

Lockdown

A key or device check failed, or something crashed. One solid red lamp, a reason code, what happened and what to do. The only way back is a new key tap, and every check runs again.

Behind the door, deliberately little.

The workspace is a signed message board shared between Clasply devices. Every message is signed by the device that wrote it. Invalid ones are dropped by the node and again by the app.

The work isn’t the board. The work is the lock around it.

Message board

0 of 500 characters
  • nd-81c04e9aSigned · 08:45

    Stable channel is on 0.1.0 everywhere. No update pending.

  • nd-5be210d4Signed · 08:37

    Reminder: pull your key when you leave the desk. The panel locks after 5 minutes anyway.

  • nd-81c04e9aSigned · 08:18

    Factory batch 14 enrolled; report signed and filed.

  • nd-3f9a21c7Signed · 07:49

    Node 2 online. Mesh rebuilt after the uplink swap.

It has to get past the node, then the app.

The status rail: five compact lamps, a mesh score of 92, router figures, three peers with latency trends, and the update channel.
Everything about the device’s health, beside the work.

Why it works this way.

The door only advances in order
A check that passes out of turn is ignored, and a result from an earlier, abandoned attempt can’t move the door. The only path to Unlocked is security key, then the device checks, then the mesh, every time.
The key is checked by the app, not the browser
Browser-based security-key checks are unreliable on Linux, so the app reads the key directly and verifies its signature itself. The interface is treated as untrusted: it can show a result but never produce one.
The app can’t install its own updates
The app can only set a signed update aside. A separate system service checks the signature again before installing it, and each signature names the exact file it covers. Downgrades and wrong-channel updates are rejected.
Almost everything is blocked
Every direction is closed by default. Only the mesh may reach the internet, apart from the address, name and time lookups a network needs, each held to one system user and one port.

Try to slip an update past it

Artifact signature did not verify; update rejected and logged.UPDATE_BAD_SIGNATURE

Clasply’s workspace after a tampered update: the Updates card reports that the artifact signature did not verify, with the code UPDATE_BAD_SIGNATURE.
A tampered update, rejected and logged.
  • Surface#E0E3E7
  • Well#D6D9DE
  • Pass#C5E9CB
  • Caution#F3DBA9
  • Pass text#006129
  • Caution text#7B4C00
  • Secondary#4F565E
  • Text#21272E
  • Fail#C2181D
Clasply in Lockdown: Secure Boot check failed, reason code SECURE_BOOT_DISABLED, what happened and what to do, and one solid red lamp reading Disabled beside a green Verified lamp.

One grey surface, with green and amber kept for state, and one solid red for the only thing that should shout.

One surface, from the key to the workspace.

Clasply is one grey surface, lit from the top left and shaped into everything on it. It stays quiet so the state of the device is the only thing to read, and only a failure gets a solid block of colour.

ClasplySecure desktop

The default
state is
Locked.

The vault dial with a key inserted: a raised disc and a green-glowing channel around a key, inside a ring of ticks.

Colour, shape and a word on every lamp

  • KeyVerified
  • BootEnabled
  • DiskEncrypted
  • FilesIntact
  • Mesh3 of 3 peers

7

commands the interface may call. Everything else is refused.

One loud thing

Lockdown

The only solid block of saturated colour on the screen.

Calm on purpose

0 of 3 peers

Degraded stays amber, because it recovers on its own.

92 of 100

  • node-21.8 s22 s ago
  • node-32.5 s42 s ago
  • node-43.1 s1 min ago

The one big movement

Aa

Atkinson Hyperlegible, built to be read at a glance. Every text colour pair meets WCAG AA.

13 of 13

The factory test prints pass or fail for every item, and won’t pass a unit without a live key tap.

do not ship this unit

Stay shut. Say exactly why. Let only a failure shout.

Where it stands.

Clasply is self-initiated, so there’s no client, no deployment and no users. It’s built and tested in software. The hardening is a design, not an audit.

What hasn’t happened yet

  • The golden image, the complete system a device ships with, hasn’t been built end to end, and it hasn’t booted on real hardware. Its configuration is written and checked.
  • It hasn’t been used with a physical security key. Testing uses a software key that makes real signatures.
  • The check that a build can be reproduced exactly hasn’t been run.

What has been shown

  • On the public network, three devices passed every health check between them and completed a signed message round trip in 267 seconds.
  • The factory test passes 13 of 13 on a healthy test unit, and stops with “do not ship this unit” when Secure Boot is off and a program has been modified.
  • In testing, one valid update was set aside for install, and every bad one was rejected.

All names, devices and messages shown are fictional.

Next

JMERC

A website for an education NGO in Uganda, kept current by its own team.

The jmerc.org home page scrolling from the hero through the promise, featured news, the two programmes, reach by programme and partners.

Tell us what you’re building.

A 30-minute call is the quickest way to see if we’re the right fit. Or send us a message, whichever suits you.