
Säkerhet för bilnycklar i iOS
Utvecklare kan lägga till stöd för säker nyckellös åtkomst till ett fordon med en iPhone som stöds och en parkopplad Apple Watch.
Parkoppling utförd av ägaren
Ägaren måste bevisa att den äger fordonet (metoden är olika för olika biltillverkare, men ofta krävs en eller två fjärrnycklar) och kan starta parkopplingsprocessen i biltillverkarens app genom att använda en e-postlänk som biltillverkaren skickat eller via fordonets meny. Oavsett metod måste ägaren alltid ange ett hemligt engångslösenord för parkoppling på iPhone. Lösenordet används till att generera en säker parkopplingssignal med protokollet SPAKE2+ med NIST P-256-kurvan för att skapa en säker Global Platform SCP03-kanal för att överföra data mellan enheten och fordonet. När appen eller e-postlänken används överförs lösenordet automatiskt till iPhone medan det måste anges manuellt när parkopplingen startas från fordonet.
I ägarens parkopplingsprocess skickar fordonet en förfrågan via SCP03-kanalen som instruerar enhetens Secure Element att generera ett ECC (elliptisk kurvkryptografi)-nyckelpar. Fordonets ID och fordonets publika nyckel kopplas sedan säkert till detta nyckelpar. Enhetens publika nyckel (device.PK) skickas tillbaka till fordonet i ett X.509-certifikatformat tillsammans med en certifikatkedja som kan verifieras mot biltillverkarens publika nyckel för rotcertifikatet (root.PK) som bäddas in i fordonet vid tillverkningen. Det här gör det möjligt att verifiera och ta emot enhetens publika nyckel som ägarnyckel.
Ägarnyckeln i enhetens Secure Element kopplar också biltillverkarens root.PK, som tillhandahålls av fordonet via SCP03-kanalen, till device.PK för nyckeldelning på ett säkert sätt.
Om det krävs av försäkringsskäl måste varje ägarnyckel registreras i biltillverkarens server. Enheten skickar sin device.PK-certifikatkedja till nyckelspårningsservern (key tracking server, KTS) som skickar tillbaka en signatur för att bekräfta registreringen. Enheten tillhandahåller signaturen till fordonet vid slutet av ägarparkopplingsprocessen eller vid nästa standardtransaktion med fordonet (se nedan) och fordonet aktiverar ägarnyckeln om KTS-signaturen har verifierats som den ska. KTS-signaturnycklar är företagsägda av biltillverkaren.
Nyckeldelning
Sändarens iPhone kan dela nycklar till behöriga enheter genom att skicka en inbjudnings-URL till mottagaren genom valfri kommunikationskanel, till exempel iMessage, WhatsApp, WeChat eller AirDrop. URL:en dirigerar mottagaren till en integritetsskyddad brevlåda på en reläserver som implementeras baserat på en IETF-specifikation. Integritetskrypteringsnyckeln skickas som ett fragment i delnings-URL:en.
Under den här processen begär sändarens iPhone en användarautentisering (Face ID, Touch ID eller lösenkod) och en säker bekräftelse av användarens avsikt enligt beskrivningen i Användningsområden för Optic ID, Face ID och Touch ID. Sändarauktoriseringen lagras tillfälligt i Secure Element för användning senare när mottagarenheten returnerar sändarens signeringsbegäran.
För ytterligare säkerhet vid aktivering av den delade nyckeln kan sändaren kräva att mottagaren använder en av de tillgängliga aktiveringsalternativen som stöds av biltillverkaren eller lösenkoden som anges på mottagarenheten.
När inbjudan godkänns hämtar mottagarens enhet nyckelskapelsedata från reläserverbrevlådan och skapar en digital nyckel i enlighet med CCC Digital Key Specification. Som en del av nyckelskapelseprocessen signeras nyckeln av sändaren. Mottagarenheten skickar certifikatkedjan för nyckelskapelsen via reläservern till sändarens iPhone. Sändarens iPhone använder sedan root.PK som är inbäddat i Secure Element till att verifiera att mottagarnyckeln skapades med den förväntade certifikatkedjan. Om allt går som det ska signerar sändarens iPhone den publika ECC-nyckeln för mottagarenheten och skickar tillbaka signaturen till mottagaren via reläservern. Signaturen auktoriseras genom att använda sändarauktoriseringen som tidigare lagrades i Secure Element.
Nyckelbehörigheterna och sändarsignaturen överförs till fordonet första gången den delade nyckeln används på enheten (se Standardtransaktioner). Behörigheter beskriver följande:
Åtkomstnivå: Till exempel upplåsning eller körning.
Omdelningspolicy: Till exempel ingen omdelning, begränsad omdelning eller obegränsad omdelning (avseende delningskedjelängd).
En del biltillverkare kräver att varje delad nyckel registreras hos biltillverkarens server. Om det krävs skickar mottagarenheten sin device.PK-certifikatkedja till biltillverkarens KTS som returnerar en signatur för att bekräfta registreringen. Mottagarenheten presenterar den signaturen för fordonet under den första transaktionen med fordonet (se Standardtransaktioner). Fordonet validerar signaturen och aktiverar den delade nyckeln om KTS-signaturen var korrekt. De här signaturnycklarna är företagsägda av biltillverkaren.
Nyckelradering
Nycklar kan raderas på följande sätt:
På nyckelhållarens enhet
Från ägarens enhet
Från en delningsenhet med korrekta auktoriseringar
Inuti fordonet
Raderingar på den iPhone som är nyckelhållare sker omedelbart, även om nyckelhållaren använder nyckeln eller om enheten saknar internetanslutning.
Radering av nycklar i fordonet kan vara möjliga beroende på biltillverkarens policy:
När som helst
Endast när fordonet är uppkopplat
Endast när fjärrnyckeln är i närheten (för att slippa bli strandsatt utan nyckel)
I varje scenario rapporteras raderingen på nyckelhållarens enhet eller i fordonet till KTS-servern hos biltillverkaren som i sin tur registrerar utfärdade nycklar för ett fordon av försäkringsskäl.
Ägaren och behöriga användare kan skicka en begäran om fjärradering som signeras med användarens privata nyckel (device.SK) genom att markera användarna i listan med delade nyckelhållarkonton på baksidan av sitt bilnyckelkort i Plånbok. Begäran skickas först till biltillverkaren så att nyckeln tas bort i fordonet. Villkoren för att ta bort nyckeln från fordonet fastställs av biltillverkaren (se listan ovan). Biltillverkarens server skickar en signerad begäran om fjärradering till nyckelhållarens enhet först när nyckeln tas bort från fordonet.
När en nyckel avslutas i en enhet skapar appleten som hanterar de digitala bilnycklarna en kryptografiskt signerad avslutningsattest. Den används som bevis på att nyckeln har raderats av biltillverkaren och till att ta bort nyckeln från KIS.
Integritet
Biltillverkarens KTS lagrar inte enhetens ID, SEID eller Apple-konto. Den lagrar endast en muterbar identifierare – t.ex. instansens CA-identifierare. Identifieraren är inte bunden till privata data på enheten eller servern, och den raderas när användaren startar Radera allt innehåll och inst.
CCC-standarden kräver också att KTS-informationen hålls konfidentiell på biltillverkarens sida och endast används i händelse av försäkringsfrågor eller andra behöriga förfrågningar.
Nyckelregistreringsdata (nyckelidentifierare, fordonsidentifierare, publik fordonsnyckel, enhetens publika nyckelcertifikatkedja, nyckelbehörigheter) som skickas av enheten till KTS krypteras mot en publik KTS-integritetskrypteringsnyckel. Apple-servrar som överför nyckelregistreringsdata från enheten till biltillverkarservern kan inte avkryptera dessa data. Apple vet inte med vilka personer ägaren har delat nycklar till sitt fordon.
Alla andra tillbehör till iPhone eller Apple Watch, som inte kan autentisera till enheten, kan inte ta emot en stabil identifierare genom en standardtransaktion eller snabb transaktion via NFC eller Bluetooth. Om enheten inte känner igen fordonets identifierare (om den till exempel av misstag försöker få åtkomst till ett fordon som liknar nyckelhållarens fordon) använder appleten i Secure Element en ersättningsnyckel som genererar slumpmässiga värden istället för meningsfulla nycklar eller kryptogram.
Den inledande Bluetooth-anslutningen skyddas genom användningen av tillfälliga nycklar som tillhandahålls vid delning av bilnyckeln eller av biltillverkaren som svar på en nyckelspårningsbegäran.