Funkce zabezpečení a ochrany osobních údajů pro iOS

Tento článek popisuje práci se zabezpečením a ochranou osobních údajů v iOSu a o tom, jak ovlivňují aplikaci Xamarin.iOS.

Společnost Apple provedla několik vylepšení zabezpečení i ochrany osobních údajů v iOSu 10 (a vyšší), která vývojářům pomůže zlepšit zabezpečení svých aplikací a zajistit ochranu osobních údajů koncového uživatele. Tento článek se zabývá implementací těchto funkcí v aplikaci Xamarin.iOS.

Obecná vylepšení

V iOSu 10 byly provedeny následující obecné změny zabezpečení a ochrany osobních údajů:

  • Rozhraní API CDSA (Common Data Security Architecture) bylo zastaralé a mělo by být nahrazeno rozhraním API SecKey, aby se vygenerovaly asymetrického klíče.
  • Nový NSAllowsArbitraryLoadsInWebContent klíč lze přidat do souboru Info.plist aplikace a umožní správné načtení webových stránek, zatímco ochrana Apple Transport Security (ATS) je stále povolená pro zbytek aplikace. Další informace najdete v naší dokumentaci ke službě App Transport Security .
  • Vzhledem k tomu, že nová schránka v iOSu 10 a macOS Sierra umožňuje uživateli kopírovat a vkládat mezi zařízeními, rozhraní API bylo rozšířeno tak, aby bylo možné schránku omezit na konkrétní zařízení a časové razítko, aby se v daném bodě automaticky vymaže. Pojmenované pasteboardy se navíc už neuchovávají a měly by být nahrazeny kontejnery sdílené pasteboardu.
  • U všech připojení SSL/TLS je teď symetrická šifra RC4 ve výchozím nastavení zakázaná. Kromě toho rozhraní API zabezpečeného přenosu už nepodporuje SSLv3 a doporučuje se, aby vývojář co nejdříve přestal používat kryptografii SHA-1 a 3DES.

Přístup k soukromým datům uživatelů

Aplikace běžící v iOSu 10 (nebo novějším) musí staticky deklarovat svůj záměr přístupu ke konkrétním funkcím nebo uživatelským informacím zadáním jednoho nebo více klíčů ochrany osobních údajů do souborů Info.plist , které vysvětlují uživateli, proč chce aplikace získat přístup.

Důležité

Aplikace, které neposkytnou požadované klíče, budou systémem bezobslužně ukončeny, když se pokusí o přístup k některé z omezených funkcí nebo informací o uživateli bez chyby. Pokud aplikace v iOSu 10 neočekávaně selhává, ujistěte se, že jsou zadané všechny požadované soubory Info.plist .

K dispozici jsou následující klíče související s ochranou osobních údajů:

  • Ochrana osobních údajů – Apple Music usage Description (NSAppleMusicUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat k knihovně médií uživatele.
  • Ochrana osobních údajů – Popis využití periferních zařízení Bluetooth (NSBluetoothPeripheralUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat k Bluetooth na zařízení uživatele.
  • Ochrana osobních údajů – Popis použití kalendářů (NSCalendarsUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat ke kalendáři uživatele.
  • Ochrana osobních údajů – Kamera Popis použití (NSCameraUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat ke kameře zařízení.
  • Soukromí – Popis použití kontaktů (NSContactsUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat k kontaktům uživatele.
  • Ochrana osobních údajů – Popis použití služby Health Share (NSHealthShareUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace získat přístup k datům o stavu uživatele. Další informace najdete v referenčních informacích ke třídě HKHealthStore společnosti Apple.
  • Ochrana osobních údajů – Popis použití aktualizace stavu (NSHealthUpdateUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace upravovat data o stavu uživatele. Další informace najdete v referenčních informacích ke třídě HKHealthStore společnosti Apple.
  • Privacy - HomeKit Usage Description (NSHomeKitUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat ke konfiguračním datům HomeKit uživatele.
  • Ochrana osobních údajů – Popis funkce Always Usage Description (NSLocationAlwaysUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace vždy mít přístup k poloze uživatele.
  • [Zastaralé] Ochrana osobních údajů – Popis použití polohy (NSLocationUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace získat přístup k poloze uživatele. POZNÁMKA: Tento klíč je v iOSu 8 (a novějším) zastaralý. Použijte NSLocationAlwaysUsageDescription nebo NSLocationWhenInUseUsageDescription místo toho.
  • Ochrana osobních údajů – Umístění při použití popisu použití (NSLocationWhenInUseUsageDescription) – Umožňuje vývojáři popsat, proč má aplikace během běhu přistupovat k poloze uživatele.
  • [Zastaralé] Soukromí – Popis použití knihovny médií – Umožňuje vývojáři popsat, proč chce aplikace přistupovat k knihovně médií uživatele. POZNÁMKA: Tento klíč je v iOSu 8 (a novějším) zastaralý. Místo toho použijte NSAppleMusicUsageDescription.
  • Ochrana osobních údajů – Popis použití mikrofonu (NSMicrophoneUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat k mikrofonu zařízení.
  • Privacy - Motion Usage Description (NSMotionUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat k akcelerometru zařízení.
  • Ochrana osobních údajů – Popis použití knihovny fotek (NSPhotoLibraryUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat ke knihovně fotek uživatele.
  • Soukromí – Popis použití připomenutí (NSRemindersUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace přistupovat k připomenutím uživatele.
  • Ochrana osobních údajů – Popis využití Siri (NSSiriUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace odesílat uživatelská data do Siri.
  • Ochrana osobních údajů – Popis použití rozpoznávání řeči (NSSpeechRecognitionUsageDescription) – Umožňuje vývojáři popsat, proč chce aplikace odesílat uživatelská data na servery Apple pro rozpoznávání řeči.
  • Soukromí – Popis použití televizního poskytovatele (NSVideoSubscriberAccountUsageDescription) – Umožňuje vývojáři popsat, proč aplikace chce získat přístup k účtu poskytovatele televizního vysílání uživatele.

Další informace o práci s klíči Info.plist najdete v referenční dokumentaci ke klíči seznamu vlastností společnosti Apple.

Nastavení klíčů ochrany osobních údajů

Podívejte se na následující příklad přístupu k HomeKitu v iOSu 10 (a vyšším), vývojář bude muset přidat NSHomeKitUsageDescription klíč do souboru Info.plist aplikace a zadat řetězec, který deklaruje, proč chce aplikace získat přístup k databázi HomeKit uživatele. Tento řetězec se uživateli zobrazí při prvním spuštění aplikace:

An example NSHomeKitUsageDescription alert

Xamarin.iOS pro Visual Studio v současné době nepodporuje úpravy klíčů ochrany osobních údajů Info.plist z výchozího editoru manifestu iOS. Místo toho budete muset použít obecný editor PList, takže postupujte takto:

  1. Pravým tlačítkem myši klikněte na soubor Info.plist v Průzkumník řešení a vyberte Otevřít s....

  2. V seznamu programů vyberte obecný editor PList a otevřete soubor a klepněte na tlačítko OK.

    Select the Generic PList Editor

  3. Kliknutím na + tlačítko na posledním řádku v editoru přidejte novou položku do seznamu. Tato vlastnost se bude jmenovat "Vlastní vlastnost" s typem nastaveným na String a prázdnou hodnotou.

  4. Klikněte na název vlastnosti a zobrazí se rozevírací seznam.

  5. V rozevíracím seznamu vyberte klíč ochrany osobních údajů (například Privacy - HomeKit Usage Description):

    Select a Privacy key

  6. Do sloupce Hodnota zadejte popis, proč chce aplikace získat přístup k dané funkci nebo informacím o uživateli:

    Enter a description

  7. Uložte změny souboru.

Důležité

V příkladu uvedeném výše by selháním nastavení NSHomeKitUsageDescription klíče v souboru Info.plist docházelo k tichému selhání aplikace (zavření systémem za běhu) bez chyby při spuštění v iOSu 10 (nebo novějším).

Shrnutí

Tento článek se zabývá změnami zabezpečení a ochrany osobních údajů, které apple provedl v iOSu 10 a jaký vliv mají na aplikaci Xamarin.iOS.