OSX Swift Kryptografie-API CryptoKit nur mit 10.15 Catalina und Xcode11 nutzbar

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • OSX Swift Kryptografie-API CryptoKit nur mit 10.15 Catalina und Xcode11 nutzbar

    Hallo,

    ich wollte mich gerade mit der neuen Kryptografie-API CryptoKit beschäftigen. Musste aber feststellen, dass diese nur unter 10.15 (Catalina) zur Verfügung steht. ;(

    Nun gut - externe Platte angeschlossen und 10.15 installiert. Nachdem dann auch Xcode 11 installiert war, ersten Playground eröffnet und dabei ist mir gleich folgendes aufgefallen. Nachdem ich diesen mit einer simplen Ausgabe versehen und gestartet habe, scheint dieser in einer Dauerschleife ausgeführt zu werden?!

    Kann mir jemand mitteilen, wie ich dies abschalten kann?

    Nun zum eigentlichen Anliegen. Nachdem ich mich nun ein wenig mit der API beschäftigt habe und feststellen musste, dass diese - zumindest i. A. noch - nur die als veraltet geltenden Funktionen MD5 und SHA-1 bereitstellt, bin ich ins grübeln gekommen, ob sich zum jetzigen Zeitpunkt schon ein Umstieg - verbunden mit dem Aufwand - auf 10.15 um eine "sichere", in die Zukunft gerichtete Verschlüsselung anbieten zu können lohnt? Wie handhabt Ihr dies?

    Außerdem wäre von Interesse welche API's - außer der CommonCrypto -, evtl. auch externe Lösungen, Ihr so einsetzt? Welche Funktionen diese bereitstellen und wie Ihr die Handhabung bewertet? Diese sollte unter 10.13 und 10.14 ebenfalls zur Verfügung stehen und genutzt werden können.

    Sicherlich geht der Schritt in Richtung 10.15 und weiter, ...

    Wenn alle Stricke reisen, dann entwicklen wir unsere eigene API. Davon möchte ich jedoch lieber Abstand nehmen.
  • OSXDev schrieb:


    Nun zum eigentlichen Anliegen. Nachdem ich mich nun ein wenig mit der API beschäftigt habe und feststellen musste, dass diese - zumindest i. A. noch - nur die als veraltet geltenden Funktionen MD5 und SHA-1 bereitstellt, bin ich ins grübeln gekommen, ob sich zum jetzigen Zeitpunkt schon ein Umstieg - verbunden mit dem Aufwand - auf 10.15 um eine "sichere", in die Zukunft gerichtete Verschlüsselung anbieten zu können lohnt? Wie handhabt Ihr dies?
    Vermutlich habe ich das falsch verstanden. Unter developer.apple.com/documentation/cryptokit sind
    MD5 und SHA-1 doch als legacy algorithms aufgeführt und SHA-256 etc als reguläre. Nur MD5 und SHA-1
    in einem neuen Framework würde Apple doch sicher ganz harsche Kritik einbringen.

    Mich irritiert auch ein wenig, dass Apple bei so vielen Neuerungen das neue OS als Mindestvoraussetzung vorgibt.
    Es gab schon weniger problematische Upgrades. Ich bin auch nicht überzeugt, dass ich nach bei einem Wechsel
    auf iOS 13 und macOS 10.15 zufrieden sein werde mit dem Schritt. Allerdings mehren sich interessante neue
    Apps, die eben nur noch dort laufen. Evtl. läuft es bei mir auf eine Trennung hinaus: alter Mac mini mit 10.14
    und Laptop mit 10.15. Bei den iOS-Geräten ähnlich, da gerade mein iPad kein Upgrade mehr auf iOS 13 bekommt.
  • gandhi schrieb:

    Was fehlt Dir bei CommonCrypto? Du kannst natürlich auch openSSL verwenden, macht aber auch keinen Spaß...
    Vorweggenommen - ich arbeite mich gerade in dieses Thema ein und wir benötigen nun eine Verschlüsselung für die Speicherung von personenbezogenen Daten, also um DGSVO-konform zu handeln.

    Die Verschlüsselung sollte von OSX 10.13 aufwärts kompatibel sein. Der damit verbundene Aufwand sollte nur einmal anfallen.

    @gandhi:
    Vielleicht habe ich da ja etwas missverstanden, aber ist CommonCrypto nicht in das OpenSourceProjekt openSSL überführt worden? Um Deine Frage zu beantworten, was mir bei CommonCrypto fehlt. Schlicht und ergreifend eine gute ausführliche Dokumentation und eine klares Statement, ob dies unserer Anforderung - zukünftige Kompatibilität - entspricht. ;(

    Da Apple aber nun CryptoKit mit Catalina eingeführt hat, bin ich da sehr am grübeln und die Doku ist auch nicht wirklich besser. Außerdem ist CrytpoKit nicht abwärtskompatibel. ?(

    Vielleicht hast ja ein paar Links oder gar Buchempfehlungen diesbzgl. für mich. Wäre Dir hierfür wirklich dankbar. :)
  • marcoo schrieb:


    Vermutlich habe ich das falsch verstanden. Unter developer.apple.com/documentation/cryptokit sindMD5 und SHA-1 doch als legacy algorithms aufgeführt und SHA-256 etc als reguläre. Nur MD5 und SHA-1
    in einem neuen Framework würde Apple doch sicher ganz harsche Kritik einbringen.

    Mich irritiert auch ein wenig, dass Apple bei so vielen Neuerungen das neue OS als Mindestvoraussetzung vorgibt.
    Es gab schon weniger problematische Upgrades. Ich bin auch nicht überzeugt, dass ich nach bei einem Wechsel
    auf iOS 13 und macOS 10.15 zufrieden sein werde mit dem Schritt. Allerdings mehren sich interessante neue
    Apps, die eben nur noch dort laufen. Evtl. läuft es bei mir auf eine Trennung hinaus: alter Mac mini mit 10.14
    und Laptop mit 10.15. Bei den iOS-Geräten ähnlich, da gerade mein iPad kein Upgrade mehr auf iOS 13 bekommt.
    @marcoo:
    Du musst zwischen synchroner und asynchroner Verschlüsselung unterscheiden. SHA-256 wird bei der synchronen Verschlüsselung (ein Schlüssel wird für die Ver- und Entschlüsselung der Daten) eingesetzt wohingegen MD5 und SHA-1 bei der asynchronen Verschlüsselung (Private und Public Key) zum Einsatz kommen.

    Deine Ausführungen hinsichtlich der Trennung der Systeme haben wir ebenfalls besprochen. Ich denke aber, dass wir dies mit Blick in die Zukunft, nicht mit vertretbarem Aufwand bewältigen können. ;( Die Befürchtungen, eine eigene API hierfür ins Leben zu rufen, rücken näher. :S
  • OSXDev schrieb:

    Du musst zwischen synchroner und asynchroner Verschlüsselung unterscheiden. SHA-256 wird bei der synchronen Verschlüsselung (ein Schlüssel wird für die Ver- und Entschlüsselung der Daten) eingesetzt wohingegen MD5 und SHA-1 bei der asynchronen Verschlüsselung (Private und Public Key) zum Einsatz kommen
    Ich glaube, hier verwechselst Du etwas:

    MD5, SHA-1 und SHA-256 sind allesamt Hash-Verfahren, bilden also sozusagen Prüfsummen in unterschiedlicher Güte bzgl. Kollisionen. Als solche werden sie in Bereichen der digitalen Signatur und zur Zertifikatserstellung genutzt. Sie sind - neben dem eigentlichen Verschlüsselungsalgorithmus wie RSA - alle ein wichtiger Bestandteil asymmetrischer Verschlüsselung (genauer gesagt der Signatur).

    Bei symmetrischer Verschlüsselung ist z. Z. AES-256 ein etabliertes Verfahren ... und ich vermute, dieses hast Du mit SHA-256 verwechselt.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MyMattes () aus folgendem Grund: Verwendung bzgl. Signatur konkretisiert.

  • @MyMattes:

    Bin einfach zu lange auf den Beinen. Sollte mich mal zu Bett begeben. :rolleyes: Ist einfach so wenn die Gedanken weiter als der Körper - in diesem Fall die Finger - sind. :D

    Du liegst mit Deinen Ausführungen richtig. AES-256 - symmetrische Verschlüsselung und MD5, SHA-1 und SHA-256 werden für das Hash-Verfahren bei asymmetrischer Verschlüsselung (Signatur, Zertifikate) verwendet. :thumbup:
  • OSXDev schrieb:

    Da Apple aber nun CryptoKit mit Catalina eingeführt hat, bin ich da sehr am grübeln und die Doku ist auch nicht wirklich besser. Außerdem ist CrytpoKit nicht abwärtskompatibel
    Wenn Du von Kryptographie wenig Ahnung hast, würde ich nicht in Erwägung ziehen, was eigenes zu machen. Das Risiko schwere Sicherheitslücken einzubauen ist recht hoch...

    Wie gesagt, mit CommonCrypto kommt man schon sehr weit. RNCryptor kommt der Anforderung "Kryptographie für Dummies" schon recht nahe, hast Du Dir das schonmal angesehen?
  • gandhi schrieb:

    OSXDev schrieb:

    Da Apple aber nun CryptoKit mit Catalina eingeführt hat, bin ich da sehr am grübeln und die Doku ist auch nicht wirklich besser. Außerdem ist CrytpoKit nicht abwärtskompatibel
    Wenn Du von Kryptographie wenig Ahnung hast, würde ich nicht in Erwägung ziehen, was eigenes zu machen. Das Risiko schwere Sicherheitslücken einzubauen ist recht hoch...
    Wie gesagt, mit CommonCrypto kommt man schon sehr weit. RNCryptor kommt der Anforderung "Kryptographie für Dummies" schon recht nahe, hast Du Dir das schonmal angesehen?
    @gandhi:
    Vielleicht habe ich mich nicht eindeutig mitgeteilt. Die kryptographischen Algorithmen bzw. die mathematischen Kenntnisse hierfür bereiten uns keine Probleme. Was uns jedoch vor eine Herausforderung stellt, sind die spärlichen Beschreibungen bzw. Dokumentationen.

    Die von Dir mitgeteilte Buchempfehlung - mag für manchen Einsteiger - der richtige Weg sein. Nur wir benötigen hier Literatur zu den API's (CommonCrypto, CryptoKit) von Apple und zwar in der Art, dass dort vermittelt wird, welche Methoden vorhanden sind? Wie man diese anspricht? Warum welche Container verwendet werden und wie man auf deren Inhalt zugreift. Bei API's von Drittherstellern tauchen evtl. Lizenzfragen auf bzw. gibt es in den meisten Fällen keinen Support und wer weiß wie lange diese einsetzbar sind.

    Wenn Du oder sonst jemand hierzu ebenfalls gute Literaturempfehlungen aussprechen könnte, wäre uns wirklich sehr geholfen. Ach ja, bitte nicht nur auf die Apple Doku hinweisen, diese kann, in unserem Fall, höchstens als Ergänzung gesehen werden. Nicht jedoch um die Konzepte dahinter zu verinnerlichen.

    Vielen Dank mal vorab.