
ReplayKit-sÀkerhet i iOS och iPadOS
ReplayKit Àr ett ramverk som gör det möjligt för utvecklare att lÀgga till funktioner för inspelning och direktsÀndningar i sina appar. Dessutom fÄr anvÀndare möjlighet att kommentera sina inspelningar och sÀndningar via enhetens framÄtvÀnda kamera och mikrofon.
Filminspelning
Flera sÀkerhetslager Àr inbyggda vid inspelningen av en film:
TillstÄndsdialogruta: Innan inspelningen börjar visar ReplayKit en varningsdialogruta dÀr anvÀndaren blir ombedd att bekrÀfta sin avsikt att spela in skÀrmen och spela in med mikrofonen och kameran pÄ framsidan. Varningen visas en gÄng per approcess och visas igen om appen lÀmnas i bakgrunden lÀngre tid Àn 8 minuter.
SkÀrm- och ljudinsamling: SkÀrm- och ljudinsamling sker via appens process i ReplayKit-bakgrundsappens replayd. Det Àr utformat för att sÀkerstÀlla att det inspelade innehÄllet aldrig Àr tillgÀngligt för approcessen.
SkÀrm- och ljudinsamling i appar: Detta gör det möjligt för en app att hÀmta video- och samplingsbuffertar, vilka skyddas av behörighetsdialogrutan.
Skapa och lagra film: Filmfilen skrivs till en katalog som bara Àr tillgÀnglig för ReplayKit-undersystemen. Den Àr aldrig tillgÀnglig för nÄgra appar. Detta hjÀlper till att förhindra att inspelningar anvÀnds av tredje part utan anvÀndarens godkÀnnande.
Förhandsvisning och delning: AnvÀndaren kan förhandsvisa och dela filmen med ett anvÀndargrÀnssnitt som tillhandahÄlls av ReplayKit. Detta anvÀndargrÀnssnitt presenteras vid sidan av processen via iOS-tillÀggsinfrastrukturen och har tillgÄng till den skapade filmfilen.
ReplayKit-sÀndning
Flera sÀkerhetslager Àr inbyggda vid sÀndningen av en film:
SkÀrm- och ljudinsamling: Mekanismen för skÀrm- och ljudinsamling under sÀndning Àr identisk med filminspelning och sker i
replayd
.SÀndningstillÀgg: För att tjÀnster frÄn tredje part ska kunna delta i ReplayKit-sÀndningar mÄste de skapa tvÄ nya tillÀgg som konfigureras med slutpunkten com.apple.broadcast-services:
Ett anvÀndargrÀnssnittstillÀgg dÀr anvÀndaren kan stÀlla in sin sÀndning.
Ett överföringstillÀgg som hanterar överföring av video- och ljuddata till tjÀnstens back-end-servrar.
Arkitekturen hjÀlper till att sÀkerstÀlla att vÀrdappar inte har nÄgon behörighet till det video- och ljudinnehÄll som sÀnds. Endast ReplayKit och sÀndningstillÀgg frÄn tredje part har tillgÄng till det.
SÀndningsvÀljare: Med sÀndningsvÀljaren kan anvÀndare starta systemsÀndningar direkt frÄn en app med samma systemdefinierade anvÀndargrÀnssnitt som Àr tillgÀngligt via Kontrollcenter. AnvÀndargrÀnssnittet implementeras med en privat API och Àr ett tillÀgg som finns i ReplayKit-ramverket. Det ligger inte i samma process som vÀrdappen.
ĂverföringstillĂ€gg: TillĂ€gget som sĂ€ndningstjĂ€nster frĂ„n tredje part implementerar för att hantera video- och ljudinnehĂ„ll under sĂ€ndning anvĂ€nder okodade raw-samplingsbuffertar. I det hĂ€r hanteringslĂ€get serialiseras video- och ljuddata och skickas till överföringstillĂ€gget frĂ„n tredje part i realtid via en direkt-XPC-anslutning. Videodata kodas genom att extrahera IOSurface-objektet frĂ„n videosamplingsbufferten, sĂ€kert kodat som ett XPC-objekt. Data skickas sedan via XPC till tillĂ€gget frĂ„n tredje part och avkodas sĂ€kert tillbaka till ett IOSurface-objekt.