Wer kennt sich mit SSL aus?

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

  • Wer kennt sich mit SSL aus?

    Hi,

    ich habe hier Code geerbt der sich via SSL mit einem Proxy-Server verbindet. Das klappt auch alles, allerdings benutzt er deprecated Flags und ich würde gerne wissen was man da jetzt ändern muss, damit es aktuell ist?

    Der Code ist

    Quellcode

    1. NSDictionary *sslProperties = [[NSDictionary alloc] initWithObjectsAndKeys:
    2. [NSNumber numberWithBool:YES], kCFStreamSSLAllowsExpiredCertificates, <- deprecated
    3. [NSNumber numberWithBool:YES], kCFStreamSSLAllowsAnyRoot, <- deprecated
    4. [NSNumber numberWithBool:NO], kCFStreamSSLValidatesCertificateChain,
    5. kCFNull,kCFStreamSSLPeerName,
    6. nil];


    Danke

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Richtig auskennen tue ih mich auch nicht.
    Hab ein paar Pointer für dich mit denen ich meine Aufgabe gelöst habe.
    openbook.galileocomputing.de/a…ff-43cd-8f1c-0a78640511db
    developer.apple.com/library/io…s/Introduction/Intro.html
    github.com/robbiehanson/CocoaAsyncSocket
    github.com/AFNetworking/AFNetw…orking/AFSecurityPolicy.m

    Edit:
    Hier haben Alex und Pepi auch noch was dazu. macoun.de/material2013

    Chris
    Man macht einfach solange irgendwelche Dinge, bis man tot ist.
    Und dann bekommen die anderen Kuchen.
  • gandhi schrieb:

    Warum lässt Du "kCFStreamSSLAllowsExpiredCertificates" und "kCFStreamSSLAllowsAnyRoot" nicht einfach weg? Der Sicherheit zuträglich sind die beiden Properties ja nicht gerade 8)

    ciao

    gandhi


    Wenn ich wüßte das ich das einfach so kann würde ich das machen. Aber einfach mal was weglassen ohne das ich weiß wozu das überhaupt gut ist, halte ich für nicht sehr sinnvoll.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    gandhi schrieb:

    Warum lässt Du "kCFStreamSSLAllowsExpiredCertificates" und "kCFStreamSSLAllowsAnyRoot" nicht einfach weg? Der Sicherheit zuträglich sind die beiden Properties ja nicht gerade 8)

    ciao

    gandhi


    Wenn ich wüßte das ich das einfach so kann würde ich das machen. Aber einfach mal was weglassen ohne das ich weiß wozu das überhaupt gut ist, halte ich für nicht sehr sinnvoll.

    Ich würde auch dafür plädieren, beide wegzulassen.

    Das eine sorgt einfach dafür, dass abgelaufene Zertifikate akzeptiert werden. Will man das? Sicher nicht.

    Das müsste bewirken, dass auch unbekannte Root-CAs anerkannt werden. Das will man äußerstenfalls dann, wenn man self-signed Zertifikate einsetzt – aber dann sollte man die selbst erzeugte Root-CA eigenhändig auf sein Device schieben und dann dürfte es (reine Vermutung) auch ohne das Flag funktionieren. Auch in diesem Fall spricht also wenig dafür, es drin zu lassen.

    Carsten
  • Thallius schrieb:

    gandhi schrieb:

    Warum lässt Du "kCFStreamSSLAllowsExpiredCertificates" und "kCFStreamSSLAllowsAnyRoot" nicht einfach weg? Der Sicherheit zuträglich sind die beiden Properties ja nicht gerade 8)

    ciao

    gandhi


    Wenn ich wüßte das ich das einfach so kann würde ich das machen. Aber einfach mal was weglassen ohne das ich weiß wozu das überhaupt gut ist, halte ich für nicht sehr sinnvoll.

    Gruß

    Claus


    "kCFStreamSSLAllowsExpiredCertificates" lässt abgelaufene Zertifikate zu.
    "kCFStreamSSLAllowsAnyRoot" lässt selbstsignierte Zertifikate und unbekannte Root-CAs zu.

    Ich habe beides schon in der Wildnis und in Firmen erlebt.

    Chris
    Man macht einfach solange irgendwelche Dinge, bis man tot ist.
    Und dann bekommen die anderen Kuchen.
  • SteveJ schrieb:

    Thallius schrieb:

    ich habe hier Code geerbt der sich via SSL mit einem Proxy-Server verbindet. Das klappt auch alles, allerdings benutzt er deprecated Flags und ich würde gerne wissen was man da jetzt ändern muss, damit es aktuell ist?


    ASIHTTPRequest löschen und durch etwas Unterstütztes ersetzen, zum Beispiel AFNetworking. Wenn du ganz verzweifelt bist nimmst Du das hier.


    Ich habe bis heute nicht verstanden, warum man eine Wrapper-Bibliothek für Networking braucht. Und grundlegende Fragen zu SSL beantwortet einem so eine Bibliothek auch nicht. NSURLSession ist ja nun beileibe kein Hexenwerk.
  • SteveJ schrieb:

    kmr schrieb:

    Ich habe bis heute nicht verstanden, warum man eine Wrapper-Bibliothek für Networking braucht.


    Weil den Leuten -[NSURLConnection scheduleInRunLoop:forMode:] zu kompliziert war. NSURLSession gibt es ja erst in der aktuellen iOS-Version...


    Meine Aussage gilt natürlich genauso für NSURLConnection. Allein, wem das zu kompliziert ist, dem hilft bei SSL-Fragen (siehe OP) auch ein Wrapper-Framework nicht, denn das beantwortet keine Fragen, sondern packt alle Probleme schön in Watte bevor es sie ins Internet pustet. ;)