Apple Airtag Detection and Simulation
Apple Airtag Detection and Simulation
DETECTION AND
SIMULATION
Larry Pesce
Director of Research & Development,
Principal Managing Consultant
July 2022
What are AirTags?
3
Privacy Issues
"We take customer safety very
seriously and are committed to
AirTag’s privacy and security. AirTag
Affix a registered tag to victim is designed with a set of proactive
features to discourage unwanted
• Surreptitiously drop into bag, pocket tracking — a first in the industry —
that both inform users if an unknown
• Affix to underside of a vehicle AirTag might be with them, and
deter bad actors from using an
• Insert other evil action here… AirTag for nefarious purposes. If
No built-in detection availability with the Android users ever feel their safety is at risk,
they are encouraged to contact local
ecosystem law enforcement who can work with
Apple to provide any available
• “Tracker Detect” app from the Google Play Store, information about the unknown
others AirTag.” - Apple
5
https://www.nbcconnecticut.com/news/local/apple-airtag-used-to-stalk-woman-naugatuck-police/2709492/
AirTag Technical details
• Registered z 00 Unknown
bt XXXXXXXXXXXXXX BDADDR (hex)
https://found.apple.com/airtag?pid=5500&b=00&pt=004c&fv=00
100e10&dg=00&z=00&pi=793f8d9fccaa91c3c177f32acf47160656873 sr XXXXXXXXXXXXXX Serial Number
168d72f070cd925ce97 (alpha)
bp 0015 Bluetooth
version?
• Unregistered
pi Varies Public Identity
https://found.apple.com/airtag?pid=5500&b=00&pt=004c&fv=00
100e10&dg=00&z=00&bt=A0B1C2D3E4F5&sr=ABCDEF123456&bp=0015
8
UWB
9
BLE advertising
0xFF 0x07
0x1E Manufacturer
0X004C New 0x19 Varies
31 bytes Apple’s BLE ID FindMy 25 bytes
specific
broadcast
11
Registered AirTag
Advertisements
Again, specific static values for AirTags registered to the FindMy network
• ECC P-224 Public key changes daily at 4AM, Counter (?) every 15 minutes
2000ms advertising interval
Some fields known; others static but unsure of actual functionality
Adv Length Adv Type Company ID Payload Payload Status ECC P-224 Upper 2 bits Counter?
Type Length Public Key ECC key
1 byte 1 byte 2 bytes 1 byte 1 byte 1 byte 23 bytes 1 byte 1 byte
12
Overall AirTag Detection
13
AirTag detection under Linux
Simple checks using hcidump and comparing the output to the following BLE beacon format
(in regex format)
^04\ 3E\ 2B\ 02\ 01\ .{26}\ 1E\ FF\ 4C\ 00\ 12\ 19
• Registered AirTag
• Unregistered AirTag ^04\ 3E\ 2B\ 02\ 01\ .{26}\ 1E\ FF\ 4C\ 00\ 07\ 19
# sudo ./AirTag-scan.sh
Registered AirTag Found!
04 3E 2B 02 01 00 01 E3 9A FE E5 9E C6 1F 1E FF 4C 00 07 19
05 00 55 10 00 00 01 6C 6E 0A 91 F9 B7 20 46 36 86 DA 43 6A
A1 F8 64 B7 80 E2
Unregistered AirTag Found!
04 3E 2B 02 01 00 01 CA 53 1F 56 0C C0 1F 1E FF 4C 00 12 19
10 CA 01 C1 53 C4 0E E2 A1 84 04 45 94 4E 31 0B 3A 55 E9 F3
A7 67 B3 02 09 C9
14 ^C
AirTag Simulation
hciconfig for up/down and LE enable, hcitool to set BD_ADDR (cmd 0x3f) and
send specific AirTag commands (cmd 0x08)
# sudo hcitool -i hci0 cmd 0x3f 0x001 0xec 0x3d 0xe2 0x92 0x52 0xd1
# sudo hcitool -i hci0 cmd 0x08 0x0008 1f 1e ff 4c 00 12 19 00 67 25 ac c7 7b 7e 7a 5c b8 b8 05 05 19
a2 f6 74 8a 5a c7 a0 0b 89 01 00
# sudo hcitool -i hci0 cmd 0x08 0x0006 d0 07 d0 07 03 00 00 00 00 00 00 00 00 07 00
# sudo hcitool -i hci0 cmd 0x08 0x000a 01
OpenHaystack!
• FOSS implementation from seemoo-labs to add your own stuff to Apple’s Find My
network
• BBC Micro:bit, ESP32, nRF51, linux HCI
• https://github.com/seemoo-lab/openhaystack
Making actual clones with a voltage glitching attack, also from seemoo-labs
• Glitch to recover firmware and restore it to a new AirTag 800 miles away
• https://raw.githubusercontent.com/seemoo-lab/airtag/main/woot22-paper.pdf
16
Wrapping up
Thanks!
@haxorthematrix (Twitter, IG, *all the things) Photo Credit: Joshua Wright
@joswr1ght
17