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
| Device | What it is | What it carries |
|---|---|---|
| RS-232 adapter (DIY / 323), 232 UP↑SCALER | Cryptographic Serial-to-Bluetooth Data Bridge | the RS-232 data of your existing scale → encrypted Bluetooth → your app |
| UP↑SCALE 420 / 710 (prototypes) | Cryptographic Scale-to-Mobile Data Bridge | the weight of its own load cell → encrypted Bluetooth → your app |
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.
The encrypted link TRY 14 DAYS FREEPROENTERPRISE
On PRO and ENTERPRISE it is on by default; the switch is in the settings box USB, BLE & ESP-NOW. What happens when your app connects (it takes about one second):
- Hello: the app asks the scale for its state and its public key. Only public things go openly here, nothing secret.
- A one-time key on both sides: the app and the scale each make a brand-new key pair for this connection only (ECDH P-256).
- The scale signs: it signs its one-time key with its own permanent key. The app checks that signature. On an ENTERPRISE scale with a seal certificate the app checks the key against our certificate; otherwise it remembers the key at the first connection and asks you if it ever changes. A device posing as your scale fails here.
- The same keys on both sides, without sending them: both compute them from the two one-time keys (HKDF-SHA256). One key for app → scale, and one key for scale → app for each connection, so two phones never share one.
- Every packet is encrypted with AES-128 and gets a counter and a 128-bit check code. A packet that was changed, sent again or sent to the wrong place is thrown away; after 16 such packets the scale drops the connection.
- When you disconnect, the keys are wiped from memory. The next connection starts again from step 1 with new keys.
Manual: Encrypted Link, registered apps
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.
Manual: users, password rules, registered apps
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
| What | Why |
|---|---|
| The name of the scale in the Bluetooth advertising | so 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 service | coffee machines and their apps need it plain; switch it off in the settings if you don't use it |
| USB serial | a cable to your computer |
| ESP-NOW | the 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 against | Not 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 packets | That 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 data | Browser tabs that share one Bluetooth connection also share its key |
| Passwords recorded over the air | Weak 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.
| Function | Algorithm | Standard |
|---|---|---|
| Identity key of the scale | ECDSA P-256 key pair, made once on the scale | FIPS 186-5 |
| Key agreement | ECDH P-256, one-time keys on both sides for every connection (forward secrecy) | SP 800-56A |
| Scale authentication | ECDSA P-256 signature over both one-time public keys; ENTERPRISE: key checked against the UP↑SCALE seal certificate | FIPS 186-5 |
| Key derivation | HKDF-SHA256 | RFC 5869 |
| Packets | AES-128-GCM, 96-bit IV (salt + counter), 128-bit tag, direction and counter in the AAD; 42 bytes plain = 63 bytes on air | FIPS 197, SP 800-38D |
| Keys scale → app | a random key per Bluetooth connection, wrapped with AES-GCM | SP 800-38D |
| Registered apps (optional) | ECDSA P-256 app key, non-extractable in the browser, signs the handshake | FIPS 186-5 |
| Password envelope | ECDH P-256 with the scale key + AES-128-GCM | SP 800-56A, SP 800-38D |
| Stored passwords | PBKDF2-HMAC-SHA256, 16-byte salt, 10,000 iterations | SP 800-132 |
| Activity log, sales records | SHA-256 hash chain | FIPS 180-4 |
| Seals, certificates, licence keys | ECDSA P-256 over SHA-256 | FIPS 186-5 |
| Random numbers | hardware 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 →