# Schlüsselbund (Software)

Der Schlüsselbund (englisch Keychain) ist ein System von Apple zur Verwaltung von Kennwörtern und digitalen Zertifikaten. Es erschien erstmals in Mac OS 8.6 (1999) als Teil von Apples Mail-System PowerTalk und ist seit Mac OS 9 in das System integriert.

## Schlüsselbunde

Ein Schlüsselbund ist eine Datei, in der Kennwörter (etwa für Internetseiten oder drahtlose Netzwerke), digitale Zertifikate und sichere Notizen gespeichert werden können. Standardmäßig besitzt jeder Benutzer einen eigenen und das System einen gemeinsam genutzten Schlüsselbund. Über das Programm Schlüsselbundverwaltung können weitere Schlüsselbunde hinzugefügt und verwaltet werden. Standardmäßig sind drei Schlüsselbunde vorhanden:
* Den Benutzer-Schlüsselbund (Anmeldung genannt; befindet sich unter ~/Library/Keychains/) kann der jeweilige Benutzer verändern; er beinhaltet z. B. persönliche Zertifikate oder Passwörter.
* Im System-Schlüsselbund (System genannt; befindet sich unter /Library/Keychains/) werden z. B. Zertifikate für alle Nutzer oder WLAN-Passwörter gesichert.
* Ein besonderer Schlüsselbund ist System-Roots: in ihm befinden sich sämtliche Root-CAs des Systems und vertrauenswürdige Zertifizierungsinstanzen.
Zudem kann es je nach Konfiguration, etwa in Firmennetzwerken unter /Network/Library/Keychains/, weitere Schlüsselbunde geben.

## Sicherheit

Alle Schlüsselbunde sind mit einem Passwort gesichert. Der Benutzer-Schlüsselbund wird mit dem Benutzer-Passwort verschlüsselt und beim Login geöffnet, und erst beim Abmelden wieder geschlossen.
Weitere Schlüsselbunde können mit eigenen Passwörtern gesichert werden, und es kann festgelegt werden, dass sich der Schlüsselbund nach einigen Minuten Inaktivität schließt.
Standardmäßig muss man, um den Inhalt von z. B. Passwörtern oder sicheren Notizen anzuzeigen, das Passwort eingeben, selbst wenn der Schlüsselbund geöffnet ist.
Sicherheitslücke Im Februar 2019 ist es dem Sicherheitsforscher Linus Henze gelungen, mit einer manipulierten macOS-App Passwörter aus der Keychain auszulesen, ohne dass der Nutzer dies erlaubt hat. Der Exploit funktioniert sowohl für die Keychain „Anmeldung“, als auch für die Keychain „System“. Diese Sicherheitslücke (CVE-2019-8526) wurde von Apple im März 2019 als Teil von macOS 10.14.4 geschlossen.

## Funktionen
### Zertifikate

Die Schlüsselbundverwaltung bietet eine sehr umfangreiche Verwaltung für digitale Zertifikate. Unter anderem ist folgendes möglich:
* Anzeigen von Zertifikat-Details und Überprüfung der Zertifikate.
* Zertifikaten kann das Vertrauen entzogen oder gegeben werden.
* Erstellung einer Zertifizierungsstelle (CA), mit OpenSSL als Backend. Seit Mac OS X Lion ist auch die Erstellung einer Root-CA möglich.
* Erstellung selbst-signierter Zertifikate.
* Erstellung von Zertifikatsanfragen zur Stellung an eine CA.
* Speichern von Public und Private Keys.
Genau genommen findet die Erstellung/Signierung von Zertifikaten nicht in der Schlüsselbundverwaltung statt, sondern im Programm Zertifikatsassistent. Die Schlüsselbundverwaltung dient somit lediglich der Anzeige und Verwaltung von Zertifikaten.

### Passwörter

Benutzer und Programme können Passwörter in den Benutzerschlüsselbund schreiben. Auf diese Weise sind z. B. das E-Mail-Passwort oder Passwörter für Websites sicher gespeichert, und der Nutzer muss sie nicht jedes Mal neu eingeben.
Standardmäßig ist der Zugriff nur dem Programm erlaubt, das den Eintrag erstellt hat; greifen andere Programme darauf zu, erscheint eine Warnung. Der Benutzer kann dieses Verhalten aber ändern.
Die Schlüsselbundverwaltung bietet weiterhin einen Passwortgenerator für beliebig sichere Kennwörter.

### Sichere Notizen

Benutzer können zudem sogenannte sichere Notizen erstellen und in einen Schlüsselbund speichern. Diese Notizen werden, wie der Rest des Schlüsselbunds, verschlüsselt gespeichert.

## Technologie

Der Schlüsselbund besteht aus zwei Teilen: dem UI (z. B. die Schlüsselbundverwaltung oder das Kommandozeilen-Tool security) und dem dahinter liegenden Framework.
Apple hat den Quelltext des Frameworks, libsecurity_keychain, unter der Apple Public Source License veröffentlicht.
Für Entwickler bietet Apple mit Security.framework ein öffentlich dokumentiertes C-API für libsecurity_framework an; mit diesem API können Programme auch den Schlüsselbund lesen und schreiben.
Die Schlüsselbunde selber sind mit Triple DES verschlüsselt; für Root-CAs unter Mac OS X Lion wird Elliptic Curve Cryptography verwendet.

## iCloud-Keychain

Bei der iCloud-Keychain handelt es sich um einen Schlüsselbund, der in der gleichnamigen iCloud gespeichert wird und so auf allen, mit der iCloud verbundenen Geräten, verwendet werden kann. In diesem Schlüsselbund können beispielsweise Passwörter, Adressen oder Kreditkartennummern sicher gespeichert werden.

## Anzeige-Programme

Zugriff auf den Schlüsselbund erhält der Mac-Nutzer über das Dienstprogramm Schlüsselbundverwaltung. Außerdem ist unter Mac OS X das Kommandozeilenprogramm security verfügbar.
Schlüsselbunde sind u. a. auch in iOS, iPadOS und visionOS enthalten, aber dort nicht für den Benutzer einsehbar.
Mit macOS 15, iOS 18, iPadOS 18 und visionOS 2 wurde die Betriebssystemübergreifende App Passwörter eingeführt. Seitdem ist unter macOS 15 die Schlüsselbundverwaltung im Lauchpad ausgeblendet und der Mac-Benutzer soll diese stattdessen über die Spotlightsuche aufrufen, wenn er bspw. auf Geheime Notizen zugreifen will, die nicht in der neuen App Passwörter automatisch migriert werden. Mit einem Trick lässt sich die Schlüsselbundverwaltung auch im Launchpad unter macOS 15 als Icon wieder herrichten. Hierzu muss im Finder nach dem Dateinamen (englisch Keychain Access.app) gesucht werden und dann das Icon per Drag-and-Drop-Geste auf das Launchpad-Icon in der Seitenleiste fallen lassen.