Signed unit-level identity
Each unit has its own identifier, signed with keys managed by the issuer. No one else can issue identities in its name.
The security of a verification platform is measured by what it checks and by how clearly it states what it cannot check. These are our principles and our limits.
Five principles guide the design of the platform and the language it uses to present each result.
Each unit has its own identifier, signed with keys managed by the issuer. No one else can issue identities in its name.
Signature, registry status, data match and anomalies are evaluated independently. The result shows each of them, not a single verdict.
Verifying does not require identifying yourself. Reports ask only for what is necessary, and only optionally. No personal or tax data is stored in identities.
Each result says what was checked, how much confidence it provides and what remains outside its scope. What is not supported is not claimed.
Events are kept in order, with responsible party and date, and can be exported for a third party to review.
The mechanisms the platform proposes to uphold those principles. They are described as a design target, not as implemented or audited controls.
For the spirits use case proposed to a regulator, identities would be signed with ECDSA over the P-256 curve, a widely documented standard.
Each manufacturer or importer holds its own signing keys. The platform verifies with the public key; it does not need the private one.
The verification service requires no sign-up or personal data. It answers any lookup with an explained result.
An ordered registry of each unit’s events, with who reported them and when, that makes it possible to reconstruct the history and detect inconsistencies.
Repeated lookups of the same code in different places, events out of sequence or inconsistent locations are flagged for review.
Worth saying first: the cryptographic signature does not protect against copying. A copied code is a valid code. What the signature prevents is inventing codes, which is a different problem. Against copying something else works: layers that add up, each weak on its own.
The same identifier looked up from places a single unit cannot travel between in the time elapsed, or at a frequency no bottle has. The state degrades and a case is opened.
The passport shows the lot and the expiry date; whoever holds the unit compares them with what is printed on the container. A code copied onto another lot does not match. It is free and it is the most effective step.
On durable goods the label is bound one to one with the manufacturer’s serial and the passport shows it: the buyer compares it with the serial printed on the device.
The passport says when it was first looked up and how many times since. A just-bought unit with a long history smells wrong, and anyone notices that without knowing anything about the system.
A substrate that tears when peeled prevents moving an already-applied label from one unit to another, which is the simplest fraud of all.
An identifier that is issued and labelled but not activated, turning up in a lookup out in the world, is a leak signal. That is why the result says “under review” and not “verified”.
The keys that sign an identifier are held in a hardware security module, not on the machine of whoever issues. The objective is explicit: that no person — including whoever operates the platform — can use them outside the authorised flow.
The master key is a native key of the module, non-exportable by design. Deriving each issuance’s key happens inside; only individual issuance keys ever reach the service’s memory.
Whoever can rotate or disable a key is denied its use, and the one principal that uses it is a service role. They are separate and deliberately incompatible permissions.
No exportable material, no touching the audit log, and policy changes only through the deployment pipeline. Nobody sits above the rule.
Nobody deploys by hand. Cryptographic code, permissions and key infrastructure all require double approval, with signed commits and images. Exfiltrating requires an accomplice.
Every key use is recorded to an archive administrators can neither write nor delete, with alerts on anomalous use and a copy to the supervising body’s mirror.
Creating or rotating an epoch’s master key requires several people with split credentials and hardware tokens, and a witness from the supervising body.
A fiscal system that stops a production line or a shop till has done more damage than the fraud it was chasing. That stops being an aspiration and becomes a design constraint, with concrete consequences.
The range of identifiers is downloaded once and a local process feeds the printer, with its own queue and deferred reporting when it reconnects. The plant does not wait for the network.
They are separate planes that talk through events. Public lookup has to keep answering even while issuance is under maintenance, and a bulk generation does not compete with someone standing at a shelf.
If the rate limiter degrades, the lookup is served: better to answer than to refuse. Writes and authentication, by contrast, fail closed.
An attempt to enumerate codes is itself a fraud signal: spikes of rejection by origin and by code prefix feed the analytics and open a case.
It is tempting to sum up a verification in one reassuring word. We do not, because it would be inaccurate. A valid signature proves that an identity was issued by the expected issuer; it proves nothing about the liquid, the container or the label in front of you.
The platform is designed so that verifying costs no personal data. This site applies the same standard.
Saying clearly what is not supported is part of trust. This site claims none of the following.
If you find a security issue on this site or in the platform, we would be grateful if you reported it responsibly before making it public. We commit to acknowledging receipt, keeping the conversation open and crediting the contribution if you wish.
Public verification shows each signal separately and the recommended next step, with sample codes covering every possible result.