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žijteNSLocationAlwaysUsageDescription
neboNSLocationWhenInUseUsageDescription
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:
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:
Pravým tlačítkem myši klikněte na soubor Info.plist v Průzkumník řešení a vyberte Otevřít s....
V seznamu programů vyberte obecný editor PList a otevřete soubor a klepněte na tlačítko OK.
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.Klikněte na název vlastnosti a zobrazí se rozevírací seznam.
V rozevíracím seznamu vyberte klíč ochrany osobních údajů (například Privacy - HomeKit Usage Description):
Do sloupce Hodnota zadejte popis, proč chce aplikace získat přístup k dané funkci nebo informacím o uživateli:
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.