Apple implementiert CryptoKit-APIs für Swift

Mit der Swift-Implementierung eines großen Teils der APIs des Kryptographie-Frameworks CryptoKit sollen sich auch Nicht-Apple-Plattformen ansprechen lassen.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Apple implementiert CryptoKit-APIs für Swift

(Bild: wk1003mike/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Alexander Neumann

Mit Swift Crypto hat der bei Apple angestellte Entwickler Cory Benfield ein Open-Source-Projekt vorgestellt, das die APIs von Apples Kryptographie-Framework CryptoKit in die Welt der Programmiersprache Swift bringen will. Mit ihr sollen Swift-Entwickler, unabhängig von ihrer Anwendungsplattform, über diese APIs auf eine Reihe kryptographischer Operationen zugreifen können. Das neue Tool soll als nützliches Werkzeug beim Schreiben plattformübergreifenden kryptographischen Codes dienen.

Auf Apple-Plattformen greift Swift Crypto direkt auf CryptoKit zu, während auf allen anderen eine neue Implementierung zum Einsatz kommt, die auf der BoringSSL-Bibliothek von Google aufbaut, einem Fork von OpenSSL. Hierauf musste man zurückgreifen, weil Nicht-Apple-Plattformen keinen Zugriff auf die APIs von Apples "Secure Enclave"-Prozessor haben, die CryptoKit nutzt.

Mit Swift Crypto lassen sich etliche Aufgaben angehen, beispielsweise eine sichere, authentifizierte Verschlüsselung, die Daten vor Angreifern mit AES GCM (Galois/Counter Mode des Advanced Encryption Standard) schützt, die versuchen, sie zu korrumpieren. Außerdem lassen sich damit Authentifizierungscodes für Nachrichten generieren, mit denen sich sicherstellen lässt, dass die Daten nicht manipuliert wurden. Schließlich wird die komplexe Logik der Durchführung von Schlüsselaustauschen mit elliptischen Kurven durch Swift Crypto abgedeckt.

Zur Softwareverteilung nutzt Swift Crypto den Swift Package Manager, mit dem sich Sicherheitsfixes und API-Aktualisierungen einspielen lassen, und aus Gründen der Kompatibilität ist eine gemeinsame Testsuite für Swift Crypto und CryptoKit entstanden. Auf die Frage, warum man sich für den Weg in Richtung zweier Backendsysteme entschieden hat, gibt Benfield Verifikation als Hauptvorteil an. Mit zwei unabhängigen Implementierungen der CryptoKit-API sei man in der Lage, die Implementierungen sowohl gegeneinander als auch gegen ihre eigenen Testsuiten zu testen. Das verbessere die Zuverlässigkeit und Kompatibilität beider Implementierungen, reduziere die Änderungen der Regression und mache es einfach, Fehler durch den Vergleich der Ausgabe der beiden Implementierungen zu identifizieren.

Swift Crypto ist Open Source und steht unter der Apache-2.0-Lizenz auf GitHub bereit. Weitere Informationen finden sich im Swift-Blog. (ane)