WHY UP↑SCALE › FOR GOOD! › SECURITY

Security in plain words: what protects your weights, records and passwords

Every UP↑SCALE is a cryptographic data bridge: it carries the weight from the scale to your phone or computer, and nobody in between can read or change it. Here is what is protected, how it works, where the limits are - and, at the end, the exact algorithms for your IT.

In short

  • No internet on the device: it has no network connection at all, so nobody can reach it from the internet. It talks only to the phones and computers next to it.
  • Everything over Bluetooth is encrypted on PRO and ENTERPRISE (AES-128): weights, settings, sales, users. A listener sees only random bytes.
  • New keys for every connection. They are thrown away afterwards, so a recording of today's connection stays closed even if somebody steals the device later.
  • The app checks that it really talks to your scale (a digital signature), so nobody can sit in between.
  • Only your devices, if you want: ENTERPRISE scales can let in only the phones and computers you registered.
  • Passwords never cross the air in plain text, and the scale stores only a salted, slow hash of them.
  • Records you can check: a SHA-256 chain links the entries of the activity log, and reports are sealed so that anybody can check them.
  • Only standard algorithms (AES, ECDH, ECDSA, SHA-256, HKDF, PBKDF2) from well-known crypto libraries: no cipher of our own.

Two kinds of data bridge

DeviceWhat it isWhat it carries
RS-232 adapter (DIY / 323), 232 UP↑SCALERCryptographic Serial-to-Bluetooth Data Bridgethe RS-232 data of your existing scale → encrypted Bluetooth → your app
UP↑SCALE 420 / 710 (prototypes)Cryptographic Scale-to-Mobile Data Bridgethe weight of its own load cell → encrypted Bluetooth → your app
Your scale or the load cell cable/plug RS-232 THE UP↑SCALE its own key activity log & chain users & seal 🔒 AES-128 Bluetooth Your app checks the signature ✗ no internet, no cloud

The cable/connection between your scale and the adapter stays where it is: plain RS-232, as the scale sends it. Everything that leaves the bridge by radio to the app is encrypted.

Who may connect

1Users and roles ENTERPRISE

Up to 50 users with an ADMIN, QM, operator or user role. On a scale with users, a device gets nothing until it has logged in: no weight, no data. The ADMIN decides what only an ADMIN may do (settings, calibration, licence, deleting). After 5 wrong passwords in a row a user is locked for 15 minutes; a restart of the scale does not end the lock, and every wrong try goes into the activity log. Machines and other apps (for example coffee machines that use the Decent Scale service) cannot log in.

2Registered apps only ENTERPRISE

Off by default. When you switch it on, only the browsers and phones you registered get the keys of the scale - a stranger's phone cannot even finish the connection. Each registered browser keeps its own key that cannot be copied out of the browser; the scale keeps up to 8 of them. A new device is let in from a registered one, for 2 minutes. Lost all your devices? Connect the scale by USB and send LINKOPEN - that needs the scale in your hands. Every change goes into the activity log.

Passwords

  • Never in plain text over the air: the app puts the password into an envelope that only this scale can open (encrypted with its key) - and on PRO and ENTERPRISE that envelope travels inside the encrypted link as well.
  • Never stored as they are: the scale keeps only a salted hash, made slow on purpose (PBKDF2, 10,000 rounds), so that guessing is hard even for somebody who reads out the memory.
  • Nobody can read them back - not even we. A forgotten password is set new by another ADMIN.
  • Rules if you need them: lockout after 5 wrong tries, an optional maximum age, and a password set by an ADMIN must be changed at the first login.

Records you can check ENTERPRISE

  • Activity log in the scale: the last 10,000 events (who changed or did what, and when). Each entry carries the SHA-256 fingerprint of the one before it: change, remove or insert one, and the chain shows it.
  • Power cuts: an entry is written in steps that a power cut cannot mix up. If the power goes off in the middle, the scale finishes or leaves out that one entry at the next start, so the chain stays whole, and it notes the interruption in the log. Saved entries, users and settings are not affected; a lost Bluetooth connection changes nothing.
  • Sealed files: reports, PDF files and exports are sealed by the scale with its own key (ECDSA P-256), and our licence key vouches for that scale. Anybody can check a file on up-scales.com/check - in the browser, nothing is uploaded.
  • Sales records PRO are numbered and chained by the scale, with the weight it measured itself.

This is tamper-evident: a change or a gap cannot be hidden unnoticed. The memory of the scale and the files on your disk can still be overwritten or deleted - keep the record files on read-only, backed-up storage. In detail: audit trail & data integrity, sealed sales records, how it works.

Licence, updates and the app

  • Updates only from you: new firmware is installed by you, by USB from your computer. Nobody can push one to your scale over the air.
  • Signed licence keys: a licence key is signed by us (ECDSA P-256) and bound to the chip of your scale; the scale checks it with our public key.
  • The app never calls home: it runs in your browser, also offline. The online lookup of a lost licence or a seal certificate happens only after you say OK, and only the Device ID is sent.
  • Your data stays on your scale and in your browser - no cloud, no account.

What is not encrypted - on purpose

WhatWhy
The name of the scale in the Bluetooth advertisingso your app can find it
BLE FOR ALL (off by default)sends the weight openly to every device nearby, for displays and demos. It goes off when you switch the encrypted link on; you can switch it on again.
The Decent Scale servicecoffee machines and their apps need it plain; switch it off in the settings if you don't use it
USB seriala cable to your computer
ESP-NOWthe direct radio link between UP↑SCALEs

Your own Bluetooth programs (like the example sketches for developers) cannot read an encrypted link: switch it off for them.

The limits - honestly

Protected againstNot protected against
A device posing as your scale (the signature does not fit)On PRO (no certificate): the very first connection of a browser - the key is remembered then, and you are asked if it changes
Changed, injected, replayed or redirected packetsThat a connection exists, and how often packets go (so someone can see that there is a connection ongoing, but not whats in there...)
Unknown devices (ENTERPRISE, registered apps only)Without registered apps: any phone can connect - users and passwords are the lock then
One app reading another app's dataBrowser tabs that share one Bluetooth connection also share its key
Passwords recorded over the airWeak passwords guessed after the memory was read out. (needs physical connection via USB to the device)

Tested: the app against a full emulation of the scale (signature check, wrong signature, replay, changed packets, registration, refused devices), and the whole connection. The algorithms are standard; the way they are put together is our own protocol. This is a description of what we built, not a certification.

For your IT: the algorithms

The scale uses mbedTLS (ESP-IDF), the app the Web Crypto API of your browser.

FunctionAlgorithmStandard
Identity key of the scaleECDSA P-256 key pair, made once on the scaleFIPS 186-5
Key agreementECDH P-256, one-time keys on both sides for every connection (forward secrecy)SP 800-56A
Scale authenticationECDSA P-256 signature over both one-time public keys; ENTERPRISE: key checked against the UP↑SCALE seal certificateFIPS 186-5
Key derivationHKDF-SHA256RFC 5869
PacketsAES-128-GCM, 96-bit IV (salt + counter), 128-bit tag, direction and counter in the AAD; 42 bytes plain = 63 bytes on airFIPS 197, SP 800-38D
Keys scale → appa random key per Bluetooth connection, wrapped with AES-GCMSP 800-38D
Registered apps (optional)ECDSA P-256 app key, non-extractable in the browser, signs the handshakeFIPS 186-5
Password envelopeECDH P-256 with the scale key + AES-128-GCMSP 800-56A, SP 800-38D
Stored passwordsPBKDF2-HMAC-SHA256, 16-byte salt, 10,000 iterationsSP 800-132
Activity log, sales recordsSHA-256 hash chainFIPS 180-4
Seals, certificates, licence keysECDSA P-256 over SHA-256FIPS 186-5
Random numbershardware random number generator of the chip; the browser's CSPRNG—

Replay: the scale takes an app packet only with a higher counter than the one before; the app takes each counter once inside a window of 64. Up to 4 connections at once. Need more for a security review? Write to us: joan[at]farm23.es.

For good! → · audit trail & data integrity → · for laboratories →

READY TO UP↑SCALE YOUR SCALE?

Start with the free version - the board costs under 15 EUR and you may never need more. If you do, unlock PRO from 3.32 EUR a month, 34.90 EUR a year or once for 119.00 EUR incl. VAT - or ENTERPRISE & COMPLIANCE from 8.78 EUR a month (once: 399.00 EUR). The lifetime licences are once and forever, no subscription needed; no advertisements, everything works offline, updates stay free.