Sicherheit beim WidgetKit
WidgetKit ist das Framework, mit dem Entwickler Widgets und Apple Watch-Komplikationen bereitstellen können. Beide können sensible Informationen auf deutlich sichtbare Weise anzeigen. Das gilt besonders für Geräte mit der aktivierten Option „Immer eingeschaltet“.
In iOS können Benutzer konfigurieren, ob sensible Daten auf dem Sperrbildschirm angezeigt werden, wenn die Option „Immer eingeschaltet“ aktiviert ist. In der App „Einstellungen“ können sie den Datenzugriff für Widgets auf dem Sperrbildschirm im Bereich „Im Sperrzustand Zugriff erlauben“ unter „Einstellungen“ > „Face ID & Code“ deaktivieren.
Auf der Apple Watch können Benutzer unter „Einstellungen“ > „Anzeige & Helligkeit“ > „Immer eingeschaltet“ > „Sensible Komplikationen ausblenden“ konfigurieren, ob sensible Daten angezeigt werden sollen, wenn die Option „Immer eingeschaltet“ aktiviert ist. Sie können außerdem auswählen, ob gekürzte Inhalte für alle oder einzelne Komplikationen angezeigt werden sollen.
Wenn Benutzer Inhalte ausblenden möchten, die sie als privat betrachten, zeigt WidgetKit einen Platzhalter oder Kürzungen an. Entwickler müssen wie folgt vorgehen, um Kürzungen zu konfigurieren:
1. Den Callback redacted(reason:)
implementieren.
2. Die Eigenschaft privacy
auslesen.
3. Eigene Platzhalteransichten bereitstellen.
Außerdem können Entwickler Ansichten mit dem Anzeigemodifikator unredacted()
ungekürzt darstellen.
Als Alternative zur Markierung einzelner Ansichten als privat, können Entwickler die Funktion „Datensicherheit“ zu einer Widget-Erweiterung hinzufügen (beispielsweise in Fällen, in denen der gesamte Inhalt eines Widgets datenschutztechnisch sensibel ist). Daraufhin zeigt WidgetKit Platzhalter anstelle des Widget-Inhalts an, bis der Benutzer sein Gerät gemäß der ausgewählten Datensicherheitsstufe entsperrt. Entwickler müssen die Funktion „Datensicherheit“ für die Widget-Erweiterung in Xcode aktivieren und dann den Wert für Data Protection
gemäß der Datensicherheitsstufe festlegen, die sie bereitstellen wollen:
NSFileProtectionComplete
NSFileProtectionCompleteUnlessOpen
Im WidgetKit sind diese Widget-Inhalte ausgeblendet, wenn das Gerät passwortgeschützt ist und einen Platzhalter anzeigt, bis die Benutzerauthentifzierung nach dem Neustart ihrer Geräte erfolgt ist. iOS-Widgets sind zudem als iPhone-Widgets auf dem Mac verfügbar.