Security

What I can prove today.

This page states what Nocta One is designed to protect against, what it does not protect against, and what I have not decided. I publish an incomplete answer that can be checked.

What offline actually solves

Credentials live on the device. There is no account, no sync service and no server holding a copy. There is no breach of mine to expose them, no account password to phish, and no outage of mine to lock anyone out.

That is the reduction in attack surface the device exists for. It is also the limit of what offline covers.

What offline does not solve

Offline says nothing about someone holding the device. A pocket device gets lost, stolen, borrowed and confiscated. Offline is not my answer to that, and I do not offer it as one. What the device does in someone else’s hand is decided by the firmware.

At rest

None of what follows is built. The firmware does not exist and the secure element is not fitted on any board made so far. This is the design, written down so it can be held against the result.

Keys are to live on a TROPIC01 secure element, designed in at IC3 and marked do-not-populate on v3. You can see both facts in the schematic. V3 is a development board and does not protect credentials at rest.

The PIN is to be checked by the secure element, not by the firmware, with the attempt counter enforced in hardware, so reflashing the device does not reset it. The owner sets the limit and the default is ten wrong entries. At the limit the keys inside the secure element are destroyed and the encrypted store is erased.

Desoldering the flash is possible and always will be. What it should yield is ciphertext with no key left anywhere to open it. The secure element is tamper-resistant, which is a weaker word than tamper-proof, and the weaker word is the accurate one.

When the firmware is published, this section gets specifics and a link to the code that implements them.

What is public today

The hardware design is public. The schematic, the board layout, the production files and a sourced bill of materials are in the repository under CERN-OHL-S v2, a strongly reciprocal licence, so anything derived from the design stays open too.

Which parts are on the board is a matter of record. I publish the schematic first and the claims second, so every claim on this page can be checked against it.

github.com/NoctaLabs-Sh/Nocta-One-Hardware ↗

The radio

Bluetooth LE is optional, through a pre-certified module, and it can be off. That is a weaker position than a device with no radio, and I say so. I made the trade deliberately: the radio adds convenience, and it can be refused.

What I have not decided

  • Whether an independent review happens before or after the firmware is public.
  • The enclosure, which is not published yet.

When I am wrong

I read hello@noctalabs.sh and the issues on the repository. A correction to the schematic is more useful to me early than late. My policy on serious findings is private disclosure first, and public credit to the finder once the fix is out. That policy is written down, with the acknowledgement window and what is in scope.

github.com/NoctaLabs-Sh/Nocta-One-Firmware/blob/main/SECURITY.md ↗

This page changes as the work does. The blog records why