A tag that never knows where it is
A BluTag beacon is a Bluetooth radio, a battery and a small microcontroller. It has no cellular modem, no GPS receiver and no Wi-Fi. It cannot phone home, and at no point does it have any idea where on earth it is. It still turns up on a map in your dashboard, usually within minutes of somebody walking past it. This is the whole trick, start to finish.
When we provision a beacon, we generate an elliptic-curve keypair on the P-224 curve. The private half stays with you. The public half — 28 bytes — is patched directly into the firmware image before it is flashed, and becomes the only thing the tag ever says out loud. Note the direction of that: the private key never travels to the device, never crosses the air, and is never stored on the beacon. If somebody prises your tag open and dumps its flash, they get a public key. That is all it was ever holding.
Every fifty seconds the tag wakes up, advertises that public key over Bluetooth Low Energy for two seconds at −4 dBm, and goes back to sleep. It is not connecting to anything. It is not listening for a reply. It is shouting a number into the street and then going quiet again for another forty-eight seconds.
Any Apple device in earshot hears it: a phone in a passing pocket, a watch on a delivery driver, a laptop in the cab of the next van over. iOS recognises the advertisement format, takes its own GPS position, encrypts that position against the public key it just overheard, and uploads the ciphertext to Apple. The owner of that phone is never told, never asked, and gets nothing out of it. Apple ends up storing a blob it cannot read, indexed only by a hash of the key.
When your dashboard wants a position, we ask Apple for any reports matching your tag's key hash, and decrypt them with your private key. Apple never held the plaintext. We hold it only long enough to put a pin on your map. That is the entire pipeline, and the reason there is no SIM to activate, no data plan to pay for and no gateway to install in your yard.
The chain, end to end
- Provision. A P-224 keypair is generated. The private key stays with you; the 28-byte public key is compiled into the firmware image.
- Broadcast. The tag advertises that public key for two seconds every fifty seconds, then sleeps. It never listens and never connects.
- Encrypt. A passing Apple device fixes its own position and encrypts it against the key it overheard.
- Relay. The ciphertext goes to Apple, indexed by a hash of the key. Apple stores something it cannot read.
- Decrypt. We fetch reports by hash and decrypt them with your private key to draw your map.
What it costs
Our firmware is built on OpenHaystack, the research project out of the Secure Mobile Networking Lab at TU Darmstadt that worked out how to speak this protocol with non-Apple hardware. Their own README carries a warning we think belongs on our website rather than buried in a repository:
“ Accessories using our firmware broadcast a fixed public key and, therefore, are trackable by other devices in proximity. ”
OpenHaystack, SEEMOO Lab, TU Darmstadt
That is worth sitting with, because it is the honest price of the design. A real AirTag rotates its broadcast key on a schedule, which is what stops a stranger with a scanner from recognising the same tag on Tuesday that they saw on Monday. Our beacons broadcast a fixed key. Your location data stays unreadable to everyone but you — that part of the cryptography is sound and does not depend on the key rotating. But the mere presence of a specific tag is, in principle, correlatable over time by somebody deliberately looking for it with their own scanner. For a generator in a yard or a trailer on a job site, that trade is usually worth making. We would rather you made it knowingly.
The second cost is coverage, and it is the one that surprises people. Nothing about this design guarantees a position. A fix exists only because an Apple device happened to walk past, so the network is superb on a roadside or in a depot and thin behind a locked gate in a remote quarry. We poll Apple roughly every five minutes by default, tunable per organisation, but that is our polling rate rather than the tag's: the underlying report is only as fresh as the last stranger who passed it. Allow up to half an hour for a newly provisioned tag's first report to land.
What you get in exchange is a tracker with no recurring cost, no cellular contract, nothing to wire into a vehicle, and a radio that is asleep 96% of the time. If you want to know what that sleep is actually worth in milliamps — and why we still will not quote you a battery life — that is the other post.