Just in time for these long Christmas nights, Apple has released an updated version of their Platform Security Guide. If you want to understand how security on Apple’s platforms works, you must read this document. But it will take time. The updated guide has 302 pages. If you did read the May 2024 edition, go to page 290. There you will find a revision history with all the updated and added topics.
Author: Abdelkader Boui
Collect sysdiagnose logs using AssistiveTouch
When troubleshooting issues on iPhones or iPads, it can be helpful to collect sysdiagnose logs. To get the device to collect these types of logs, you must simultaneously press both volume buttons and the side or top button, depending on the iPhone or iPad model you have. When the device vibrates for a brief moment, the log collection was triggered successfully. It can be very trick to get the button pressing right. There is a much easier way to trigger sysdiagnose log collection. You can use AssistiveTouch to simplify the process.
- Go to Settings-> Accessibility-> Touch-> AssistiveTouch.
- Turn on the switch for AssistiveTouch. Your device will now display a bright button on your screen (not shown in the screenshots).
- Under Custom Actions tap on Single-Tap.
- Select Analytics from the menu list
- Tap on the AssistiveTouch button shown on the device screen to trigger the log collection.
Your device will display a message (second device screen) that it is gathering analytics. The log collection will take about ten minutes to complete. When the log collection is completed, another message will be displayed (third device screen). You can then collect the logs from Settings-> Privacy & Security-> Analytics & Improvements-> Analytics Data. The log files you want always start with the name sysdiagnose_. As the log files are usually a few hundred Megabytes in size, I recommend sending them via AirDrop to your Mac for further analysis. Thank you, Markus B. for reminding me of this feature.
For extended logging, Apple provides debug profiles. Usually, Apple support or the software vendor will tell you when it is necessary to install these debug profiles.
Quick fix for slow iOS update downloads
When new iOS updates are released, it can happen that even small updates take exceptionally long to download. In my experience the easiest fix to speed up the download is to delete the partially downloaded update and start the software update again. To delete the update in progress, navigate to Settings-> General-> iPhone Storage. Scroll down to the list of apps. There you should have an entry for the iOS update, e.g., iOS 18.1.1. Open that entry and tap on Delete Update as shown in the screenshot. Go back to Settings-> General-> Software Update to start the download again. This time the download should happen much faster. The same fix will work on your iPad, too.
What are Passkeys?
Inspired by Ludwig’s comment, here is my explanation what Passkeys are. Foremost Passkeys are a replacement for passwords. Passkeys are trying to solve the issue of passwords being stolen by attackers and reused to access resources. When a Passkey is generated, your device generates a public and private key pair. The public key you have generated, is stored on the server you are trying to authenticate against. The private key remains on our device. When you try to login to the server, the server sends a challenge to your device. Using your private key, the device generates a response. The server verifies your response using the public key it has stored for your account. If the verification is successful, you will be allowed to login.
As the private key for a given service or server is only stored on your device, there is no risk that the private key gets leaked when the server is compromissed. Neither is there is a risk that the password is leaked on your client device because there is no password you have to enter. This approach makes it impossible to phish a passkey.
Besides storing the passkeys on your device, e.g., your smartphone or laptop, you can use FIDO keys (#reklame) that support passkeys. When using these physical keys, you don’t need to rely on cloud sync services to use your passkeys across multiple devices. The Yubico Yubikeys support up to 25 passkeys, starting with firmware version 5.7 up to 100 passkeys. If you are planning to store a larger number of passkeys, you should consider this FIDO key from Token2. This key allows you to store up to 300 passkeys. Another option is the Titan Security key offered by Google. The Google key can store up to 250 passkeys. Should you go the physical FIDO key route, make sure to get two keys for backup purposes. Else you could potentially lockout yourself in case your FIDO key gets lost or damaged.
Share Wi-Fi passwords
Apple devices have this neat feature to share Wi-fi passwords with other Apple devices, e.g., iPhone, iPad and Mac. With iOS 18 Apple introduced an easier way to share Wi-Fi credentials even outside the Apple ecosystem, e.g., with Android smartphones. Within the Passwords app you can display a QR code that can be used by any other device to join a Wi-Fi network. Open the Passwords app on your iPhone, navigate to the Wi-Fi section. The Wi-Fi network you are currently connected to is shown at the top of the list. All other Wi-Fi networks your device has saved, are shown in alphabetical order. Search for the Wi-Fi network you want to share and open that entry. Tap on Show Network QR Code. Scan the QR code with the camera app of the Android smartphone and the device will join the Wi-Fi network. The QR code can be used by Apple devices, too.
Note: Wi-Fi networks that do not require a password or have other means of authentication, e.g., WPA2 Enterprise, will not have the Show Network QR code option in the Passwords app.
Neuer ist besser für die Sicherheit
Ich freue mich immer, wenn Hersteller kontinuierlich Softwareupdates für ihre Produkte veröffentlichen. Damit werden die Geräte ein Stück sicherer und hoffentlich länger genutzt. Ein Hersteller, der hier einen guten Track Record hat, ist Apple. Hier gibt es teilweise noch für alte Geräte Software- und Sicherheitsupdates. Was aber bei diesen Updates gerne übersehen wird, ist die Tatsache, dass nur die aller neuesten Apple Betriebssystemversionen alle Sicherheitsupdates enthalten. Ein Gerät, das heute mit iOS 17.7 betrieben wird, dem aktuellen Update für den 17.x Branch, enthält gegebenenfalls Schwachstellen, die mit dem neuesten iOS 18.x Update, zurzeit iOS 18.0.1, geschlossen sind. Diese Regel gilt auch für macOS. Apple beschreibt das auf ihrer Webseite in einem kurzen Hinweis:
Hinweis: Aufgrund von Abhängigkeiten der Architektur und Systemänderungen in jeder aktuellen Version der Apple Betriebssysteme (beispielsweise von macOS 14. iOS 17 usw.) werden nicht alle bekannten Sicherheitsprobleme in früheren Versionen behoben, etwa von macOS 13, iOS 16 usw.
Daher mein Rat: Im Zweifel sollte man, wenn es keine anderen Abhängigkeiten gibt, sein iPhone besser auf iOS 18 aktualisieren als es auf iOS 17 zu belassen.
P.S.: Wenn ich iOS schreibe, meine ich damit auch immer iPadOS.
Profilinstallation unter iOS 18
Unter iOS 17 war es möglich, ein Profil von einer Webseite über den Safari-Browser herunterzuladen und dann direkt in den iOS-Einstellungen zu installieren. Das ist unter iOS 18 nicht mehr möglich. Unter iOS 18 wird das Profil nur heruntergeladen. Safari unter iOS 18 fügt das Profil nicht in die Installationsliste hinzu. Beim Versuch ein heruntergeladenes Profil aus der Download-Liste zu installieren, wird nur der Klartext des Profils angezeigt.
Um das Profil zu installieren, muss in den Downloads-Ordner in der Dateien-App gewechselt werden. Von dort aus kann man das Profil öffnen und bekommt den Hinweis die Profilinstallation in den Einstellungen abzuschließen.
Diese Änderung betrifft nur die Installation von Profilen über den Safari-Browser. Empfängt man das gleiche Profil per AirDrop, z.B. von einem anderen iPhone oder Mac, dann wird das Profil direkt der Liste der zu installierenden Profile in den Einstellungen hinzugefügt. Dort kann man die Installation des Profils abschließen, so wie es schon unter iOS 17 möglich war. Es bleiben, wie bisher, acht Minuten zum Abschluss der Profilinstallation. Das beschriebene Verhalten gilt auch für die Installation von Zertifikaten, da deren Installation auf iOS wie eine Profilinstallation behandelt wird. Soweit ich das recherchieren konnte, ist das neue Verhalten unter iOS 18 von Apple gewollt. Das ist nicht die enizige Änderung im Kontext von Profilen unter iOS 18. Mit iOS 18 ist z.B. auch die profilbasierte Benutzerregistrierung (Profile-based User Enrollment) weggefallen.
Danke an Steffen, der mich auf das Problem hingewiesen hatte.
Geräte per Apple Business Manager am BlackBerry UEM aktivieren
Am BlackBerry UEM gibt es drei im Alltag relevante Optionen iPhones und iPads über den Apple Business Manager (ABM) zu aktivieren:
- Direkte Zuweisung des Gerätes an einen Benutzer in der BlackBerry UEM-Konsole unter Users-> Apple DEP devices
- Aktivierung über ein vorher gesetztes Aktivierungskennwort
- Aktivierung über die Active Directory Anmeldedaten
Technisch wären auch eine Aktivierung über einen Identity Provider und über den Apple Configurator möglich. Auf diese beiden Optionen gehe im Folgenden nicht ein. Für alle drei Optionen müssen die Geräte im Apple Business Manager (ABM) existieren. Sobald sie dort gelistet sind, kann man sie der jeweiligen BlackBerry UEM Instanz zuweisen. Nach der Synchronisation des BlackBerry UEM mit dem ABM, erscheinen die Geräte in der UEM-Konsole unter Users-> Apple DEP devices. Die Synchronistation der Geräteliste mit dem ABM erfolgt alle 24 Stunden. Die Synchronisation lässt sich auch manuell anstoßen. Aus der Geräteliste heraus kann das Gerät direkt einem Benutzer zugewiesen. Die Aktivierung erfolgt ohne Eingabe weiterer Anmeldedaten. Diese Aktivierungsart ist z.B. für Kiosk-Mode-Szenarien sinnvoll. Damit wäre die erste Option aus der obigen Liste abgedeckt.
Für die Option 2, der Aktivierung per E-Mail-Adresse und Aktivierungskennwort, muss im Feld Benutzername die E-Mail-Adresse des Benutzers eingetragen werden. Das Aktivierungskennwort hat der Benutzer per E-Mail erhalten bzw. wurde durch den UEM-Administrator in der UEM-Konsole gesetzt und dem Benutzer mitgeteilt. Das Aktivierungskennwort kann der Benutzer auch selbstständig im Self Service Portal des BlackBerry UEM setzen. Im folgenden Beispiel hat der Benutzer die E-Mail-Adresse aboui@lab.boui.de. Nach Eingabe des Aktivierungskennworts im Feld Passwort, kann die Aktivierung am UEM über den ABM erfolgen.
Für die Option 3, Aktivierung per Active Directory Anmeldeinformatione, müssen die Daten im Eingabefeld Benutzername im Format FQDN\Username eingetragen werden. In meinem Beispiel laut der FQDN der AD-Domain LAB.BOUI.DE. Der Username lautet aboui. Folglich muss in dem Feld Benutzername folgendes eingetragen werden: lab.boui.de\aboui. Da das Eingeben des Zeichens \ am iPhone nicht einfach ist, kann man alternativ das Zeichen / verwenden. Mit beiden Zeichen funktioniert die Anmeldung. Dass der FQDN in meinem Beispiel identisch mit dem Teil nach dem @-Zeichen aus Option 2 ist, ist reiner Zufall. Das könnte und dürfte in den meisten Umgebungen sehr wahrscheinlich unterschiedlich sein.
Falls der FQDN der AD-Domain nicht bekannt ist, kann man sich den FQDN in der Kommandzeile auf einem Windows-Rechner einfach anzeigen lassen. Dafür reicht der Befehl set userdnsdomain.
Mit der dritten Option ist es für einen Benutzer oder eine Benutzerin ganz einfach sein iPhone oder iPad zu aktivieren. Viele meiner Kunden nutzen diese dritte Option, weil es den Benutzern ermöglich die Geräte ohne IT-Unterstützung bzw. direkten Zugriff auf das eigene E-Mail-Postfach zu aktivieren. Das ist z.B. bei größeren Geräterollouts oder beim Austausch des iPhones oder iPads sehr hilfreich.
Per-App-VPN-Profil für die Nutzung mit Apple indigo erstellen
Das Thema Apple indigo ist sicherlich einigen bekannt. Ich hatte vor einiger Zeit hier darübergeschrieben. Da es für die notwendigen Konfigurationseinstellungen nur wenig öffentliche Dokumentation gibt, möchte hier beginnen diese Dokumentation zu erstellen. Da einer der wesentlichen Komponenten einer Apple Indigo-Lösung das VPN ist, beginne ich mit der Dokumentation zur Erstellung des VPN-Profils. Ich zeige, wie ihr am BlackBerry UEM ein passendes VPN-Profil erstellen könnt. Dieses VPN-Profil kann dann dazu genutzt werden, um auf Ressourcen und Dienste im internen Netz zuzugreifen. Dieses VPN-Profil ist für die Nutzung mit BlackBerry UEM in einem Brightsite-Setup gedacht. Auf das VPN-Profil für eine Darksite-MDM-Installation gehe ich nicht ein, weil praktisch keine Organisation bei Apple indigo auf ein Darksite-MDM setzen möchte. Darksite-MDM für Apple indigo bringt einfach zu viele Nachteile und praktisch keine Vorteile.
- In der UEM-Konsole unter Richtlinien und Profile-> Netzwerke und Verbindungen->VPN wird über das Plus-Symbol ein neues VPN-Profil angelegt
- Im Feld Name muss der Name für das VPN-Profil vergeben werden, z.B. indigo_VPN_Profil
- Bei den Gerätetypen ist nur die Auswahlbox für iOS auszuwählen
- In der Auswahlliste Verbindungstyp muss IKEv2 ausgewählt werden
- Unter Remote-Adresse muss der FQDN des VPN-Gateways eingetragen werden, z.B. vpngw.boui.de
- Für Lokale ID wir der VPN-Benutzername benötigt. Da das Profil für mehrere Nutzer verwendet werden soll, tragen wir hier eine Variable ein. Das kann z.B: %username% sein.
- Für die Remote-ID wird wieder FQDN des VPN-Gateways eingetragen. Je nach VPN-Lösung muss hier gegebenenfalls ein anderer Wert eingetragen werden
- In der Auswahlliste Authentifizierungstyp muss Benutzeranmeldeinformationen ausgewählt werden.
- In der Auswahlliste Verknüpftes Profil für Benutzeranmeldeinformationen muss das zuvor angelegte Profil für Benutzeranmeldeinformationen ausgewählt werden. In unserem Beispiel heißt das Profil indigo_VPN_Zertifikat.
Hinweis: Im Kontext von indigo darf das VPN-Zertifikat nicht über den MDM-Kanal auf das Endgerät gepusht werden. Das VPN-Zertifikat kann z.B. über ein sicheres, internes Netz (Wifi oder Ethernet) über den Safari-Browser auf das Gerät installiert werden. - Den Wert für Keep-alive-Intervall muss auf 10 Minuten gesetzt werden.
- Die Haken für MOBIKE deaktivieren und IKVEv2-Umleitung deaktivieren bleiben abgewählt
- Der Haken für Perfekte Geheimhaltung bei der Weiterleitung aktivieren muss gesetzt werden
- Die Option NAT-Keep-alive aktivieren wird eingeschaltet und der Wert 110 gesetzt
- Die Haken für Interne IPv4- und IPv6-IKEv2-Subnetze verwenden, Zertifikatwiderrufprüfung aktivieren und Fallback aktivieren bleiben entfernt
- Der Haken für Untergeordnete Sicherheitszuordnungsparameter anwenden wird gesetzt und die Werte wie folgt konfiguriert
- DH-Gruppe: 19
- Verschlüsselungsalgorithmus: AES-128-GCM
- Integritätsalgorithmus: SHA2 256
- Schlüsseländerungsintervall: 1440
- Der Haken für IKE-Sicherheitszuordnungsparameter anwenden wird gesetzt und die Werte wie folgt konfiguriert
- DH-Gruppe: 19
- Verschlüsselungsalgorithmus: AES-128
- Integritätsalgorithmus: SHA2 256
- Schlüsseländerungsintervall: 1440
- Der Wert für MTU kann bei 1280 bleiben
- Da wir das Profil für Per App VPN und Per Account VPN nutzen wollen, muss der Haken für Enable per-app VPN gesetzt werden.
- Da Safari bei indigo nicht über den VPN-Tunnel auf interne Ressourcen zugreifen darf, dürfen keine Safari Domains eingetragen würden. Das gleiche gilt für die anderen Domain-Listen.
- Der Haken für Allow apps to connect automatically muss gesetzt werden.
- In der Auswahlliste Traffic Tunneling muss der Wert Application layer ausgewählt werden
- Über den Button Hinzufügen wird das neue VPN-Profil gespeichert.
- Das fertige VPN-Profil sollte dann wie folgt aussehen
Configure certificate-based VPN authentication in BlackBerry UEM for iPhones and iPads
If you want to use IKEv2-based VPNs for per Account and per App VPN and require certificate-based authentication, I will explain the required steps to make use of this in BlackBerry UEM. The below configuration assumes that the VPN username and actual username are different, e.g., vpnuser001@boui.de is the VPN username and abdelkader@boui.de is the username. The certificate for the VPN authentication is issued to the VPN username.
- Enable the use of custom variables in BlackBerry UEM. We will need this later on as this gives us a simple way to map the VPN certificate to the actual user account.
- Login to the UEM console
- Navigate to Settings-> General settings-> Custom variables
- Enable the checkbox “Show custom variables when adding or editing a user”
- For the variable %custom1% set the label to vpn_user_iphone
- For the variable %custom2% set the label to vpn_user_ipad
- It is necessary to differentiate between iPhone and iPad VPN accounts as in my setup I need to use one VPN certificate per device.
- Click on Save.
- Configure the custom variables in user account
- Navigate to Users-> All Users in the UEM console
- Search for the user account you want to modify and open the user view
- Click on the Edit button in the top right corner
- In the new view navigate to the bottom and expand the section Custom variables. Enter the VPN username for the iPhone and iPad, respectively.
- Click on Save.
- Navigate to Users-> All Users in the UEM console
- Create the two user credential profile – one for iPhones and one for iPads
- In the UEM console navigate to Policies and profiles-> Managed devices-> Certificates-> User credential
- Click on the plus symbol to create a new user credential profile
- In the name field enter the name for the profile, e.g. vpn_user_iphone_certificate
- In the drop-down list for Certificate authority connection select Manually uploaded certificate
- Disable the checkboxes for macOS and Android
- Click on Add to save the profile
- Repeat the previous steps and create the user credential profile we will use with for the iPads, e.g., vpn_user_iphone_certificate
- Create the IKEv2 VPN profile
- In the UEM console navigate to Policies and profiles-> Managed devices-> Networks and Connections-> VPN
- Click on the plus symbol to create a new VPN profile
- In the field Name enter a name for the profile, e.g., iphone_vpn_profile
- As we will use the VPN profile only for iPhones and iPads, you can disable the checkboxes for macOS, Android and Windows
- In the drop-down list Connection type select IKEv2
- For Remote address enter your VPN gateway FQDN, e.g., vpngw.boui.de
- For Local ID enter %custom1%
- For Remote ID enter the remote ID of your VPN gateway, e.g., vpngw.boui.de
- In the drop-down list Authentication type select User credential
- We will get a new drop-down list named Associated user credential profile. Select the user credential profile we created for iPhones. In our case it is named vpn_user_iphone_certificate. This selection now gives us the mapping between the custom variable we have entered in Local ID and the VPN certificate, which we will assign to the user further down in this guide.
- Confirm that Enable per-App VPN and Allow apps to connect automatically are enabled.
- It is optional to add any domains. We will skip that for now.
- In the drop-down list Traffic tunnelling confirm that Application layer is selected
- All other settings depend on the requirements of your VPN solution. Configure the remaining as required.
- Click on Add to save the VPN profile.
- Open the newly created VPN profile and click on the Copy VPN profile button in the top right corner
- You only need to change two values – the profile name and the Local ID
- For the profile name we will use vpn_profile_ipad
- For the Local ID we will change the value to %custom2% as this is the custom variable we are using for our setup to authenticate the iPad
- All other settings will remain the same.
- Click on Save to save to copied profile
- The two newly created VPN profiles should look like the below screenshot
- Assign the user credential profiles to the user
- To make easier user of the user credential profiles, I have created two user groups in BlackBerry UEM – one for iPhone users, one for iPad users
- The user credential profiles we created, are assigned to the respective group as shown in the below screenshot, e.g., the iPhone user credential profile is assigned to the iPhone user group and the iPad user credential profile is assigned to the iPad user group
- Our test user is member of both groups
- We are now have the option to add the two certificates to the user
- In our setup we have two VPN user certificates – one issued to vpn001@boui.de for the iPhone and the other issued to vpn002@boui.de to be used with the iPad. We will add the certificates to user by click on Add a certificate. We will be prompted for the password of the private key when we upload it to the UEM server. Make sure you have the relevant passwords at hand when adding the certificates. After the certificates were successfully added, the view should be like the screenshot shown below
Our VPN setup in BlackBerry UEM is now completed. As we are differentiating between iPads and iPhones, I would recommend doing the app assignment, to use per App VPN, and mail profile, for the per Account VPN, through device groups. If you are planning to use per Account VPN in the email profile, you will require one mail profile per device type. For a simple setup, set the device query in the device group to Model Starts with iPhone and scope the device group to the iPhone users’ group. For the iPad group change the value to Model Starts with iPad and modify the user groups scope to the iPad users. When assigning the apps to the device groups, make sure to use the correct VPN profile.
The screenshot below shows the device group setup for iPhone and configured with an email profile and the app SecuFOX to use the per App VPN tunnel. The per Account VPN configuration for the email profile is not shown in the screenshot. You can add additional profiles and apps to the device group as required.