iOS-Sicherheits- und Datenschutzfeatures

Dieser Artikel behandelt die Arbeit mit Sicherheit und Datenschutz in iOS und ihre Auswirkungen auf eine Xamarin.iOS-App.

Apple hat mehrere Verbesserungen an Sicherheit und Datenschutz in iOS 10 (und höher) vorgenommen, die den Entwicklern 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 CDSA-API (Common Data Security Architecture) 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 das ordnungsgemäße Laden von Webseiten, während der Schutz von Apple Transport Security (ATS) für den Rest der App weiterhin 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 eine Zwischenablage auf ein bestimmtes Gerät zu beschränken und zeitstempelt zu werden, um an einem bestimmten Punkt automatisch 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 symmetrische RC4-Verschlüsselung jetzt standardmäßig deaktiviert. Darüber hinaus unterstützt die Secure Transport-API SSLv3 nicht mehr, und es wird empfohlen, die Verwendung der SHA-1- und 3DES-Kryptografie so schnell wie möglich einzustellen.

Zugreifen auf private Benutzerdaten

Apps, die unter iOS 10 (oder höher) ausgeführt werden, müssen statisch ihre Absicht zum Zugriff auf bestimmte Features oder Benutzerinformationen deklarieren, 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, ohne Fehler auf eines der eingeschränkten Features oder Benutzerinformationen zuzugreifen. Wenn eine App unter iOS 10 unerwartet fehlschlägt, stellen Sie sicher, dass alle erforderlichen Info.plist angegeben wurden.

Die folgenden Datenschutzschlüssel sind verfügbar:

  • Datenschutz – Apple Music-Nutzungsbeschreibung (NSAppleMusicUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Medienbibliothek des Benutzers zugreifen möchte.
  • Datenschutz – Beschreibung zur Verwendung von Bluetooth-Peripheriegeräten (NSBluetoothPeripheralUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf bluetooth auf dem Gerät des Benutzers zugreifen möchte.
  • Datenschutz – Kalendernutzungsbeschreibung (NSCalendarsUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf den Kalender des Benutzers zugreifen möchte.
  • Datenschutz – Beschreibung der Kameranutzung (NSCameraUsageDescription) – Ermöglicht dem Entwickler, zu beschreiben, warum die App auf die Kamera des Geräts zugreifen möchte.
  • Datenschutz – Nutzungsbeschreibung für Kontakte (NSContactsUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Kontakte des Benutzers zugreifen möchte.
  • Datenschutz – Health Share Usage Description (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.
  • Privacy – Health Update Usage Description (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.
  • Datenschutz – HomeKit-Nutzungsbeschreibung (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 – Standortverwendungsbeschreibung (NSLocationUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf den Benutzerstandort zugreifen möchte. HINWEIS: Dieser Schlüssel ist in iOS 8 (und höher) veraltet. Verwenden Sie stattdessen NSLocationAlwaysUsageDescription oder NSLocationWhenInUseUsageDescription.
  • Privacy – Location When In Use Usage Description (NSLocationWhenInUseUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App während der Ausführung auf den Speicherort des Benutzers zugreifen möchte.
  • [Veraltet] Datenschutz – Medienbibliotheksverwendungsbeschreibung : 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 – Mikrofonverwendungsbeschreibung (NSMicrophoneUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf das Mikrofon des Geräts zugreifen möchte.
  • Datenschutz – Bewegungsverwendungsbeschreibung (NSMotionUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf den Beschleunigungsmesser des Geräts zugreifen möchte.
  • Datenschutz – Fotobibliotheksverwendungsbeschreibung (NSPhotoLibraryUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Fotobibliothek des Benutzers zugreifen möchte.
  • Datenschutz – Nutzungsbeschreibung für Erinnerungen (NSRemindersUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App auf die Erinnerungen des Benutzers zugreifen möchte.
  • Datenschutz – Siri-Nutzungsbeschreibung (NSSiriUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App Benutzerdaten an Siri senden möchte.
  • Datenschutz – Beschreibung der Spracherkennungsverwendung (NSSpeechRecognitionUsageDescription) – Ermöglicht dem Entwickler zu beschreiben, warum die App Benutzerdaten an die Spracherkennungsserver von Apple senden möchte.
  • Datenschutz – Tv Provider Usage Description (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 Referenz zu den Listenschlüsseln der Informationseigenschaft 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 angeben, die erklärt, warum die App auf die HomeKit-Datenbank des Benutzers zugreifen möchte. Diese Zeichenfolge wird dem Benutzer beim ersten Ausführen der App angezeigt:

Beispielwarnung für NSHomeKitUsageDescription

Xamarin.iOS für Visual Studio unterstützt derzeit die Bearbeitung der Info.plist-Datenschutzschlüssel im iOS-Standardmanifest-Editor nicht. Stattdessen müssen Sie den generischen PList-Editor verwenden, also gehen Sie wie folgt vor:

  1. Klicken Sie mit der rechten Maustaste auf die Datei Info.plist im Projektmappen-Explorer, und wählen Sie Öffnen mit... aus.

  2. Wählen Sie den generischen PList-Editor aus der Liste der Programme aus, um die Datei zu öffnen, und klicken Sie dann auf OK.

    Auswählen des generischen PList-Editors

  3. Klicken Sie auf die + Schaltfläche in der letzten Zeile im Editor, um der Liste einen neuen Eintrag hinzuzufügen. Dies wird als "Benutzerdefinierte Eigenschaft" bezeichnet, wobei type auf String und ein leerer Wert festgelegt ist.

  4. Klicken Sie auf den Eigenschaftennamen, und eine Dropdownliste wird angezeigt.

  5. Wählen Sie in der Dropdownliste einen Datenschutzschlüssel aus (z. B . Datenschutz – HomeKit-Nutzungsbeschreibung):

    Auswählen eines Datenschutzschlüssels

  6. Geben Sie in die Spalte Wert eine Beschreibung ein, warum die App auf das angegebene Feature oder die Benutzerinformationen zugreifen möchte:

    Geben Sie eine Beschreibung ein

  7. Speichern Sie die Änderungen in der Datei.

Wichtig

Im obigen Beispiel würde ein Fehler beim Festlegen des NSHomeKitUsageDescription Schlüssels in der Datei Info.plist dazu führen, dass die App bei der Ausführung in iOS 10 (oder höher) ohne Fehler ausfällt (vom System zur Laufzeit geschlossen wird).

Zusammenfassung

Dieser Artikel behandelt die Sicherheits- und Datenschutzänderungen, die Apple in iOS 10 vorgenommen hat, und wie sie sich auf eine Xamarin.iOS-App auswirken.