
ReplayKit-sikkerhed i iOS og iPadOS
ReplayKit sætter udviklere i stand 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 forsidekameraet og mikrofonen på enheden.
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 forsidekameraet. Advarslen vises en gang pr. proces i appen. Hvis appen er i baggrunden længere end otte minutter, vises advarslen igen.
Optagelse af skærm og lyd: Optagelse af skærm og lyd sker uden for appens proces i daemonen
replaydi 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 etIOSurface-objekt igen.