Målgrupp: Compliance-ansvariga, ansvariga för inbyggd firmware och OEM-produktchefer som måste kunna förklara för en köpare varför en läs-penna för 4,20 USD utför ett ECDH P-256-nyckelutbyte vid första parkoppling, vad det innebär för COPPA, GDPR-K och PIPL, samt hur man väljer mellan Just Works, Numeric Comparison, Passkey Entry och Out-of-Band för en given marknad.
Bluetooth-parkopplingsmodellen på en läs-penna är en av de få platser där en billig konsumentleksak och en säkerhetsprimitiv på betalterminal-nivå delar samma kisel. Från Q6/Q8-firmware 3.3.1-stacken till F8-firmware 3.1.2-stacken utför varje ODM-leverans sedan 2023 (47 000+ enheter, 47 länder) ett ECDH P-256-nyckelutbyte vid första bindning. Vi har gjort detta eftersom alternativet – Legacy Just Works utan Man-in-the-Middle-skydd – är det felsätt som Bluetooth SIG specifikt designade SSP för att eliminera, och eftersom det är det enda trovärdiga svaret på en köpares CISO som läser COPPA-, GDPR-K- och PIPL-texten noggrant.
Den här artikeln förklarar exakt vad SSP gör på läs-pennan, vad LE Legacy gör istället, vad LE Secure Connections lägger till ovanpå SSP, och hur vi anpassar användarupplevelsen så att ett 6-årigt barn i ett klassrum eller en 80-åring hemma kan parkoppla utan friktion.
1. De tre parkopplingsgenerationerna på en läs-penna
| Generation | Spec | Nyckelutbyte | Används på |
|---|---|---|---|
| Legacy | BT 2.0 (före SSP) | E1/E21 (SAFER+) | Levereras inte |
| SSP | BT 2.1 / 4.0 | E1/E21 (4-siffrig PIN eller Just Works) | K7/KF1 firmware 1.9.5 |
| LE Secure Connections | BT 4.2 / 5.x | ECDH P-256 | F8, L5, Q6/Q8, T2, Y6 |
Alla elva nuvarande SKU:er levereras med LE Secure Connections som standardläge för parkoppling. K7/KF1 firmware 1.9.5 behåller SSP-fallback för äldre klassrums-hubbar som fortfarande kör BT 4.0-donglar, men vi rekommenderar kunder att migrera hubbarna till en 5.0+-dongel vid MOQ 1 000 för att avveckla fallback-vägen.
2. Vad SSP faktiskt gör
SSP ersätter den äldre PIN-baserade nyckelutbytet med en av fyra associationsmodeller:
| Modell | Användarens åtgärd | Säkerhetsnivå | Används på |
|---|---|---|---|
| Just Works | Tryck på "Parkoppla" | Inget MITM-skydd | Standard för omparning |
| Numeric Comparison | Jämför 6-siffrig kod, tryck Ja | MITM via användarbekräftelse | Standard för första parkoppling |
| Passkey Entry | Ange 6-siffrig passkey | MITM via delad hemlighet | Klassrumsadmin-läge |
| Out-of-Band | NFC-tryck | MITM via OOB-kanal | Framtida NFC-modeller |
Läs-pennan har Numeric Comparison som standard vid första bindning. Pennan visar ett 6-siffrigt nummer på sin valfria OLED (eller läser upp det via ljud på modeller utan display, som P2). Värdappen visar samma nummer. Användaren bekräftar att de matchar. En 6-siffrig kod har 10^6 = 1 000 000 möjliga värden; sannolikheten att en MITM gissar rätt är 10^-6.
ECDH P-256-nyckelutbytet bakom detta är samma primitiv som används av TLS 1.3 ECDHE_ECDSA-sviterna. Pennans radio (Nordic nRF52840 eller Realtek RTL8763E) har en hårdvaruaccelerator som utför P-256-skalärmultiplikationen på ~7,2 ms.
3. Parkopplingens tillståndsmaskin
Läs-pennans parkopplingstillståndsmaskin följer Bluetooth Core Specification v5.4, Volym 3, Del H, Avsnitt 2.3.5:
| Tillstånd | Pennans roll | Övergår vid |
|---|---|---|
| Standby | Advertiser | Peer ansluter |
| Advertising | Advertiser | Peer skickar CONNECT |
| Initiating | Initiator (sällsynt) | Används när pennan är värdsidan |
| Anslutning upprättad | Antingen | Parkeringsbegäran mottagen |
| Parkeringsfunktion utbyte | Svarande | Parkeringssvar skickat |
| Nyckelgenerering | Antingen | Bekräftelsevärde verifierat |
| Nyckeldistribution | Antingen | LTK + IRK + CSRK levererade |
| Kopplad | Antingen | Ny koppling lagrad i NV |
Pennen tillbringar 240 ms i "Connection Established"-tillståndet (BLE 5.0-specifikationens minsta anslutningsintervall + slavlatens), och hoppar sedan till Feature Exchange. Det fullständiga Numeric Comparison-parkeringsflödet slutförs på 1,4 s med Q6/Q8 firmware 3.3.1 och 1,8 s med F8 firmware 3.1.2. Just Works slutförs på 0,9 s.
4. Legacy Just Works vs LE Secure Connections Just Works
Ett vanligt misstag är att anta att "Just Works" alltid är svagt. Det är det inte. Det finns två mycket olika "Just Works"-lägen:
| Läge | Spec | ECDH? | MITM-skydd |
|---|---|---|---|
| Legacy Just Works | BT 4.0/4.1 SSP | Nej | Inget — avlyssnare kan fånga upp |
| LE Secure Connections Just Works | BT 4.2+ | Ja (P-256) | Avlyssnare kan inte dekryptera, men aktiv MITM kan fortfarande injicera |
En köpare som hör "Just Works" och blir orolig tänker på legacy-läget. På en aktuell läsande penna använder Just Works fortfarande ECDH, så radiolänken är krypterad mot passiva avlyssnare. Aktiv MITM (där angriparen är i radiosignalvägen och kan avlyssna båda sidor) skyddas inte mot i Just Works, vilket är anledningen till att vi levererar Numeric Comparison som förstagångsparningsstandard för T2/Y6-modellerna.
5. Pennsidans implementering
På Q6/Q8 firmware 3.3.1 är SSP-stacken byggd ovanpå SoftDevice-radiobiblioteket (Nordic nRF52840 SDK 17.1.0). Pennan lagrar:
| Element | Storlek | Lagrat i | Bevaring |
|---|---|---|---|
| Long Term Key (LTK) | 16 byte | Flash-sida 7, plats per peer | Tills parkoppling bryts |
| Identity Resolving Key (IRK) | 16 byte | Samma plats | Tills parkoppling bryts |
| Connection Signature Resolving Key (CSRK) | 16 byte | Samma plats | Tills parkoppling bryts |
| Peer IRK | 16 byte | Samma plats | Tills parkoppling bryts |
| Peer BD_ADDR | 6 byte | Samma plats | Tills parkoppling bryts |
Pennen stöder upp till 8 kopplade peers (8-platsgränsen sätts av vår 32 KB flash-kopplingstabell; vi skulle kunna utöka till 32 platser men på bekostnad av NV-slitage). När plats 8 är full och en 9:e peer försöker koppla, skriver pennan över den äldsta platsen. Vi loggar denna händelse till QA-telemetriflödet (TC-077) så att en skolans IT-administratör kan upptäcka "pennan byter ägare för ofta".
6. Sekretessfunktionen: LE Privacy 1.2
Varje läsande penna sedan 2023 levereras med LE Privacy 1.2 aktiverat. Detta innebär att pennan annonserar med en Resolvable Private Address (RPA) som roterar var 15:e minut som standard. IRK:n som delas vid parkoppling är det enda som kan lösa RPA:n tillbaka till pennans verkliga identitet.
| Integritetsinställning | Adressrotationsintervall | Batterikostnad |
|---|---|---|
| Inaktiverad (offentlig adress) | Aldrig | 0 |
| LE Privacy 1.2 | 15 min | +0,4 % per dag |
| LE Privacy 1.2 (Aggressiv) | 1 min | +5,6 % per dag |
Vi levererar 15-minutersstandarden eftersom den aggressiva rotationens batterikostnad på 5,6 % är betydande för en 500 mAh P2 men försumbar för en 2500 mAh T2. För skolutrullningar som körs hela dagen är T2-standarden 15-minutersrotation; P2-standarden är rotation inaktiverad (eftersom den säljs som en enanvändarpenna för hemmabruk).
7. Numerisk jämförelse på en penna utan display (P2)
P2 har varken OLED eller LED-matris, bara en enda trefärgad LED. Hur gör vi numerisk jämförelse?
Svaret är att vi använder ljud. P2 har en 1 W-högtalare. Vid start av numerisk jämförelse spelar P2 upp den 6-siffriga koden som en långsam, takthållande siffersekvens på engelska ("three… seven… one… zero… four… two") med 0,6 s per siffra. Den totala ljudtiden är 3,6 s. Värdappen visar samma kod på skärmen; användaren bekräftar matchningen.
För tillgänglighet spelas ljudkoden upp på det språk användaren för närvarande har valt (t.ex. mandarin, spanska, arabiska). Vi levererar ljudkoder på 12 språk. P2-firmware 2.0.3 har en dedikerad ljudkodsgenerator som tar 4 KB flash.
8. Varför OOB ännu inte finns på en läspenna
Vi utvärderade Out-of-Band (OOB)-parning via NFC för en 2024-modell, men BOM-kostnadsökningen var 1,40 USD per penna (NFC-kontroller + antenn + säkerhetselement), vilket höjer ODM-priset från 4,20 USD till 5,60 USD och överstiger den typiska marginalen för K7-utbildningskanalen. Vi har lagt OOB på is tills NFC-kontrollern kommer under 0,40 USD. Tills dess är Numeric Comparison + Just Works den rekommenderade vägen.
9. Passkey-läget för klassrumsutrullning
För ett skolprogram på 12 000 enheter vill skolans IT-admin ha engångsprovisionering utan att behöva vidröra varje penna. Passkey Entry-läget löser detta:
- Admin öppnar skolans adminapp.
- Appen genererar en 6-siffrig passkey, t.ex. 482917.
- Admin anger passkey i varje penna via pekgränssnittet.
- Pennan paras ihop med skolappen med den passkey som MITM-hemlighet.
Detta skyddar mot att en elev tar med en telefon och låtsas vara skolappen. Passkey är unik per session. I den utrullning på 12 000 pennor som vi levererade till en distrikt i Gulfstaten 2024 använde vi Passkey Entry med en enda roterande passkey och 4 admin-surfplattor, och slutförde provisioneringen på 8 dagar.
10. Efterlevnadsimplikationer
En köpare i Kalifornien kommer att fråga om SSP uppfyller COPPA:s klausul om "rimlig säkerhet". Svaret är ja, eftersom SSP använder ECDH P-256, som finns på FIPS 186-4-godkända listan. En köpare i EU kommer att fråga om SSP uppfyller GDPR-K-kravet på pseudonymisering. Svaret är ja, eftersom den roterande RPA:n är en pseudonym identifierare. En köpare i Kina kommer att fråga om SSP uppfyller PIPL artikel 51 (Kinas pseudonymisering). Svaret är detsamma, med tillägget att vår IRK-hantering följer GB/T 35273-2020-standarden för avidentifiering av personuppgifter.
| Förordning | Krav | SSP-täckning |
|---|---|---|
| COPPA (US) | Rimlig säkerhet för barndata | Ja (ECDH P-256) |
| GDPR-K (EU) | Pseudonymisering | Ja (RPA-rotation) |
| PIPL (CN) | Pseudonymisering | Ja (RPA + GB/T 35273) |
| LGPD (BR) | Säkerhet och pseudonymisering | Ja |
| PDPA (SG/MY) | Säkerhet och pseudonymisering | Ja |
| APPI (JP) | Anonymisering | Delvis — beror på RPA-nyckelhantering |
| DPDPA (IN) | Säkerhetsåtgärder | Ja (FIPS-godkänd primitiv) |
För skolutrullningar levererar vi ett ytterligare efterlevnadsdokument: "Bluetooth Pairing Security White Paper", 38 sidor, senast reviderad 2026-04. Det är tillgängligt för kvalificerade ODM-kunder under NDA.
11. Hotmodellen och vad SSP inte täcker
| Hot | Täcks av SSP? | Åtgärd |
|---|---|---|
| Passiv avlyssning | Ja | AES-CCM-länkryptering med LTK |
| Aktiv MITM (Just Works) | Nej | Använd Numeric Comparison eller Passkey |
| Komprometterad peer-enhet | Nej | App-lagers autentisering krävs |
| Stulen penna | Delvis | Länkade värdar kan rensas; pennan kan återställas till fabriksinställning genom att hålla knappen intryckt i 10 sekunder |
| Replay-attack vid parkoppling | Ja | ECDH genererar nya sessionsnycklar för varje länk |
| Nätfiske mot användaren | Nej | Lär användare att jämföra koder |
| RF-fingeravtryck | Nej | Acceptabel risk för leksak för konsument |
Vi dokumenterar detta uttryckligen i användarmanualen och i varumärkets utbildningsmaterial för distributörer.
12. Prestanda och batteri
ECDH P-256-nyckelutbytet tar 7,2 ms på nRF52840 och 8,4 ms på RTL8763E. Visningstiden för numeric comparison är 30 sekunders LED-aktivitet och drar ~3 mA. Skrivningen av länken till flash tar 12 ms och förbrukar en NV-cykel. Under en pennas livstid (300 länkningar/år i 5 år = 1 500 länkningar) motsvarar detta 0,0004 % av flash-minnets livslängdsbudget (10 000 cykler).
13. Hur detta hänger ihop med övriga artiklar
TC-059 ingår i kopplingsklustret. TC-057/TC-058 definierar HID-lagret. TC-060 dokumenterar de GATT-tjänster som följer efter parkoppling. TC-061 förklarar notifieringsflödet när länken är aktiv. TC-062 täcker Wi-Fi AP-provisioneringsvägen som samexisterar med BLE för L5 och Y6. TC-063 förklarar hur pennan annonserar sig på LAN när den har Wi-Fi. TC-064 täcker CoAP, vilket är protokollet som körs över LAN-anslutningen.
15. Relaterad läsning
- Läspenna USB HID och HID over GATT
- Läspenna HID-rapportdeskriptor och Usage Page
- Läspenna BLE-tjänstegenskap – UUID-design
- Läspenna GATT-server och notifieringsmekanism
- Läspenna BLE Mesh och parkopplingsmekanism
- Läspenna Bluetooth 5.0 vs 5.2 vs 5.3
- Läspenna kryptografi och TrustZone
- Läspenna certifikatpinnning och rotation