iOS-Sicherheits- und Datenschutzfeatures
In diesem Artikel wird die Arbeit mit Sicherheit und Datenschutz in iOS und deren Auswirkungen auf eine Xamarin.iOS-App behandelt.
Apple hat mehrere Verbesserungen an Sicherheit und Datenschutz in iOS 10 (und höher) vorgenommen, die dem Entwickler helfen, die Sicherheit ihrer Apps zu verbessern und die Privatsphäre des Endbenutzers zu gewährleisten. In diesem Artikel wird die Implementierung dieser Features in einer Xamarin.iOS-App behandelt.
Allgemeine Verbesserungen
Die folgenden allgemeinen Änderungen wurden an Sicherheit und Datenschutz in iOS 10 vorgenommen:
- Die Common Data Security Architecture (CDSA)-API ist veraltet und sollte durch die SecKey-API ersetzt werden, um asymmetrische Schlüssel zu generieren.
- Der neue
NSAllowsArbitraryLoadsInWebContent
Schlüssel kann der Info.plist-Datei einer App hinzugefügt werden und ermöglicht es Webseiten, ordnungsgemäß zu laden, während der Schutz von Apple Transport Security (ATS) für den Rest der App noch aktiviert ist. Weitere Informationen finden Sie in unserer App Transport Security-Dokumentation . - Da die neue Zwischenablage in iOS 10 und macOS Sierra es dem Benutzer ermöglicht, zwischen Geräten zu kopieren und einzufügen, wurde die API erweitert, um zuzulassen, dass eine Zwischenablage auf ein bestimmtes Gerät beschränkt und zeitstempelt wird, um automatisch zu einem bestimmten Zeitpunkt gelöscht zu werden. Darüber hinaus werden benannte Pasteboards nicht mehr beibehalten und sollten durch die freigegebenen Pasteboardcontainer ersetzt werden.
- Für alle SSL/TLS-Verbindungen ist die RC4 symmetrische Verschlüsselung jetzt standardmäßig deaktiviert. Darüber hinaus unterstützt die Secure Transport-API SSLv3 nicht mehr und es wird empfohlen, dass der Entwickler die Verwendung der SHA-1- und 3DES-Kryptografie so bald wie möglich beendet.
Zugreifen auf private Benutzerdaten
Apps, die unter iOS 10 (oder höher) ausgeführt werden, müssen ihre Absicht deklarieren, auf bestimmte Features oder Benutzerinformationen zuzugreifen, indem Sie einen oder mehrere Datenschutzschlüssel in ihre Info.plist-Dateien eingeben, die dem Benutzer erklären, warum die App Zugriff erhalten möchte.
Wichtig
Apps, die die erforderlichen Schlüssel nicht bereitstellen, werden vom System automatisch beendet, wenn sie versuchen, auf eine der eingeschränkten Features oder Benutzerinformationen zuzugreifen, ohne Fehler! Wenn eine App unerwartet unter iOS 10 gestartet wird, stellen Sie sicher, dass alle erforderlichen Info.plist angegeben wurden.
Die folgenden datenschutzbezogenen Schlüssel sind verfügbar:
- Datenschutz – Apple Musik Nutzungsbeschreibung (
NSAppleMusicUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Medienbibliothek des Benutzers zugreifen möchte. - Datenschutz – Beschreibung der Bluetooth-Peripheriegeräte (
NSBluetoothPeripheralUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf Bluetooth auf dem Gerät des Benutzers zugreifen möchte. - Datenschutz – Nutzungsbeschreibung für Kalender (
NSCalendarsUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf den Kalender des Benutzers zugreifen möchte. - Datenschutz – Kamera Nutzungsbeschreibung (
NSCameraUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Kamera des Geräts zugreifen möchte. - Datenschutz – Beschreibung der Kontaktverwendung (
NSContactsUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Kontakte des Benutzers zugreifen möchte. - Datenschutz – Beschreibung der Nutzung von Integritätsfreigaben (
NSHealthShareUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Integritätsdaten des Benutzers zugreifen möchte. Weitere Informationen finden Sie in der HKHealthStore-Klassenreferenz von Apple. - Datenschutz – Beschreibung der Nutzung von Integritätsupdates (
NSHealthUpdateUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App die Integritätsdaten des Benutzers bearbeiten möchte. Weitere Informationen finden Sie in der HKHealthStore-Klassenreferenz von Apple. - Privacy – HomeKit Usage Description (
NSHomeKitUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die HomeKit-Konfigurationsdaten des Benutzers zugreifen möchte. - Datenschutz – Standort immer Nutzungsbeschreibung (
NSLocationAlwaysUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App immer Zugriff auf den Standort des Benutzers haben möchte. - [Veraltet] Datenschutz – Standortnutzungsbeschreibung (
NSLocationUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf den Benutzerspeicherort zugreifen möchte. HINWEIS: Dieser Schlüssel ist in iOS 8 (und höher) veraltet. Verwenden Sie stattdessenNSLocationAlwaysUsageDescription
oderNSLocationWhenInUseUsageDescription
. - Datenschutz – Standort bei Verwendungsbeschreibung (
NSLocationWhenInUseUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App während der Ausführung auf den Standort des Benutzers zugreifen möchte. - [Veraltet] Datenschutz – Beschreibung der Medienbibliothek – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Medienbibliothek des Benutzers zugreifen möchte. HINWEIS: Dieser Schlüssel ist in iOS 8 (und höher) veraltet. Verwenden Sie stattdessen
NSAppleMusicUsageDescription
. - Datenschutz – Mikrofonnutzungsbeschreibung (
NSMicrophoneUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf das Mikrofon der Geräte zugreifen möchte. - Datenschutz – Bewegungsnutzungsbeschreibung (
NSMotionUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf den Beschleunigungsmesser des Geräts zugreifen möchte. - Datenschutz – Beschreibung der Fotobibliothek (
NSPhotoLibraryUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Fotobibliothek des Benutzers zugreifen möchte. - Datenschutz – Beschreibung der Verwendung von Erinnerungen (
NSRemindersUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Erinnerungen des Benutzers zugreifen möchte. - Datenschutz – Siri Usage Description (
NSSiriUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App Benutzerdaten an Siri senden möchte. - Datenschutz – Beschreibung der Spracherkennung (
NSSpeechRecognitionUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App Benutzerdaten an die Spracherkennungsserver von Apple senden möchte. - Datenschutz – Nutzungsbeschreibung für TV-Anbieter (
NSVideoSubscriberAccountUsageDescription
) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf das TV-Anbieterkonto des Benutzers zugreifen möchte.
Weitere Informationen zum Arbeiten mit Info.plist-Schlüsseln finden Sie in der Information Property List Key Reference von Apple.
Festlegen von Datenschutzschlüsseln
Im folgenden Beispiel für den Zugriff auf HomeKit unter iOS 10 (und höher) muss der Entwickler den NSHomeKitUsageDescription
Schlüssel zur Info.plist-Datei der App hinzufügen und eine Zeichenfolge bereitstellen, die angibt, warum die App auf die HomeKit-Datenbank des Benutzers zugreifen möchte. Diese Zeichenfolge wird dem Benutzer beim ersten Ausführen der App angezeigt:
Xamarin.iOS für Visual Studio unterstützt derzeit keine Bearbeitung der Info.plist-Datenschutzschlüssel aus dem standardmäßigen iOS-Manifest-Editor. Stattdessen müssen Sie den generischen PList-Editor verwenden. Gehen Sie dazu wie folgt vor:
Klicken Sie mit der rechten Maustaste in der Projektmappen-Explorer auf die Datei "Info.plist", und wählen Sie "Mit... öffnen" aus.
Wählen Sie den generischen PList-Editor aus der Liste der Programme aus, um die Datei zu öffnen, und klicken Sie dann auf "OK".
Klicken Sie auf die + Schaltfläche in der letzten Zeile im Editor, um der Liste einen neuen Eintrag hinzuzufügen. Dies wird als "Custom Property" bezeichnet, wobei der Typ auf
String
einen leeren Wert festgelegt ist.Klicken Sie auf den Eigenschaftennamen, und es wird eine Dropdownliste angezeigt.
Wählen Sie in der Dropdownliste einen Datenschutzschlüssel aus (z . B. "Privacy - HomeKit Usage Description"):
Geben Sie eine Beschreibung in die Spalte "Wert" ein, um zu erfahren, warum die App auf die angegebenen Features oder Benutzerinformationen zugreifen möchte:
Speichern Sie die Änderungen in der Datei.
Wichtig
Im obigen Beispiel würde das Festlegen des NSHomeKitUsageDescription
Schlüssels in der Info.plist-Datei dazu führen, dass die App automatisch fehlschlägt (vom System zur Laufzeit geschlossen wird) ohne Fehler, wenn sie in iOS 10 (oder höher) ausgeführt wird.
Zusammenfassung
In diesem Artikel werden die Sicherheits- und Datenschutzänderungen behandelt, die Apple in iOS 10 vorgenommen hat und wie sie sich auf eine Xamarin.iOS-App auswirken.