ReplayKit-sikkerhed i iOS og iPadOS
ReplayKit er et framework, som udviklere kan bruge til at tilføje optagelses- og liveudsendelsesfunktioner i deres apps. Det giver også brugerne mulighed for at føje noter til deres optagelser og udsendelser ved hjælp af kameraet og mikrofonen på enhedens forside.
Optagelse af film
Der er flere indbyggede sikkerhedslag, når der optages film:
Dialogen Tilladelser: Inden optagelsen starter, viser ReplayKit en samtykkeadvarsel for brugerne, der giver dem mulighed for at bekræfte, at de har til hensigt at optage skærmen, mikrofonen og kameraet på forsiden. Advarslen vises en gang pr. proces i appen. Hvis appen er i baggrunden længere end 8 minutter, vises advarslen igen.
Optagelse af skærm og lyd: Optagelse af skærm og lyd sker uden for appens proces i dæmonen replayd i ReplayKit. Formålet er at sikre, at appens proces aldrig har adgang til det optagede indhold.
Optagelse af skærm og lyd fra app: Dette sætter en app i stand til at hente video- og eksempelbuffere, som beskyttes af tilladelsesdialogen.
Oprettelse og opbevaring af film: Filmarkivet skrives til et bibliotek, som kun ReplayKit-subsystemerne har adgang til. Apps kan aldrig få adgang. Det er med til at forhindre, at optagelser kan bruges af tredjepart uden brugerens samtykke.
Brugerens filmfremvisning og deling: Brugeren kan se et eksempel på og dele filmen fra en brugergrænseflade, der stilles til rådighed af ReplayKit. Brugergrænsefladen præsenteres uden om processen via udvidelsesinfrastrukturen i iOS og har adgang til det oprettede filmarkiv.
ReplayKit-udsendelse
Der er flere indbyggede sikkerhedslag, når der udsendes film:
Optagelse af skærm og lyd: Teknikken til optagelse af skærm og lyd under udsendelse er den samme som til filmoptagelse og foregår i
replayd
.Udvidelser til udsendelse: Hvis tjenester fra tredjeparter vil deltage i udsendelse via ReplayKit, skal de oprette to nye udvidelser, der konfigureres med slutpunktet com.apple.broadcast-services:
En udvidelse af brugergrænsefladen, der gør det muligt for brugeren at indstille sin udsendelse
En udvidelse til overførsel, der håndterer overførsel af video- og lyddata til tjenestens backend-servere
Arkitekturen er med til at sikre, at værtsapps ikke har nogen rettigheder til det udsendte video- og lydindhold. Kun ReplayKit og tredjeparters udvidelser til udsendelse har adgang.
Vælger til udsendelser: Med vælgeren til udsendelser kan brugere starte systemudsendelser direkte fra appen vha. den samme systemdefinerede brugergrænseflade som den, der er tilgængelig via Kontrolcenter. Brugergrænsefladen er implementeret ved hjælp af et privat API og er en udvidelse i ReplayKit-framework. Den er ikke til rådighed for værtsappens proces.
Udvidelse til overførsel: Den udvidelse, som tredjeparters tjenester til udsendelse implementerer for at håndtere video- og lydindhold under udsendelse, bruger ubehandlede eksempelbuffere, der ikke er kodet. Med denne håndteringsfunktion serialiseres video- og lyddata og videregives til tredjepartens udvidelse til overførsel i realtid via en direkte XPC-forbindelse. Videodata kodes ved at uddrage IOSurface-objektet fra bufferen med videoeksempler, kode denne sikkert som et XPC-objekt, sende den via XPC til tredjepartens udvidelse og afkode den sikkert til et IOSurface-objekt igen.