ReplayKitin suojaus iOS:ssä ja iPadOS:ssä
ReplayKit on sovelluskehys, jota käyttäen kehittäjät voivat lisätä appeihinsa elokuvatallennus- ja livelähetysominaisuuksia. Lisäksi se mahdollistaa käyttäjälle huomautusten tekemisen tallenteisiin ja lähetyksiin käyttäen etukameraa ja mikrofonia.
Elokuvan tallentaminen
Elokuvan tallentamisessa on monikerroksinen suojaus:
Oikeusvalintaikkuna: Ennen kuin tallennus alkaa, ReplayKit näyttää käyttäjälle suostumusta pyytävän ilmoitusviestin, jossa käyttäjän tulee vahvistaa aikovansa tallentaa näytöllä, mikrofonilla ja etukameralla. Tämä ilmoitusviesti näytetään yhden kerran appiprosessia kohden, ja se esitetään uudelleen, jos appi jätetään taustalle yli 8 minuutiksi.
Näytön ja äänen tallentaminen: Näytön ja äänen tallentaminen tapahtuu apin prosessin ulkopuolella ReplayKitin palveluprosessissa nimeltä replayd. Tämä on suunniteltu varmistamaan, että apin prosessi ei koskaan pääse tallennettuun sisältöön.
Apin sisäinen näytön ja äänen tallentaminen: Tämä sallii apin saada video- ja näytepuskureita, joita suojataan oikeusvalintaikkunalla.
Elokuvan luominen ja tallennustila: Elokuvatiedosto kirjoitetaan hakemistoon, johon pääsevät vain ReplayKitin alijärjestelmät eivätkä koskaan mitkään apit. Tämä auttaa estämään kolmansia osapuolia käyttämästä tallenteita ilman käyttäjän suostumusta.
Loppukäyttäjän esikatselu ja jakaminen: Käyttäjä voi esikatsella ja jakaa elokuvaa ReplayKitin myymällä käyttöliittymällä. Käyttöliittymä esitetään prosessin ulkopuolella iOS-laajennusinfrastruktuurin kautta, ja se pääsee luotuun elokuvatiedostoon.
ReplayKit-lähetys
Elokuvan lähettämisessä on monikerroksinen suojaus:
Näytön ja äänen tallentaminen: Näytön ja äänen tallentamismekanismi lähetyksen aikana on samanlainen kuin elokuvaa tallennettaessa, ja se tapahtuu
replayd
-palveluprosessissa.Lähetyslaajennukset: Osallistuakseen ReplayKit-lähetyksiin kolmannen osapuolen palveluiden täytyy luoda kaksi uutta laajennusta, jotka määritellään käyttäen päätepistettä com.apple.broadcast-services:
Käyttöliittymälaajennus, jolla käyttäjä voi määrittää lähetyksen
Latauslaajennus, joka käsittelee video- ja äänidatan lataamisen palvelun taustapalvelimille
Arkkitehtuuri auttaa varmistamaan, että isännöivillä apeilla ei ole oikeuksia lähetettävään video- ja äänisisältöön. Vain ReplayKitillä ja muun valmistajan lähetyslaajennuksilla on käyttöoikeus.
Lähetysvalitsin: Lähetysvalitsimen avulla käyttäjä käynnistää järjestelmän lähetyksen suoraan apista käyttäen samaa järjestelmän määrittelemää käyttöliittymää, johon pääsee Ohjauskeskuksesta. Käyttöliittymä toteutetaan käyttäen yksityistä rajapintaa, ja se on ReplayKit-sovelluskehyksessä toimiva laajennus. Se on isännöivän apin prosessin ulkopuolella.
Latauslaajennus: Laajennus, jota kolmannen osapuolen lähetyspalvelut käyttävät video- ja äänisisällön käsittelemiseen lähetyksen aikana, käyttää koodaamattomien näytteiden puskureita. Tämän käsittelytavan aikana video- ja äänidata sarjoitetaan ja annetaan kolmannen osapuolen latauslaajennukselle reaaliajassa suoran XPC-yhteyden kautta. Videodata koodataan erottamalla IOSurface-objekti videonäytepuskurista, koodaamalla se suojatusti XPC-objektina, lähettämällä XPC:n kautta kolmannen osapuolen laajennukseen ja dekoodaamalla suojatusti takaisin IOSurface-objektiksi.