.titleBar { margin-bottom: 5px!important; }

[PATCH] CA-Bundle Location für cURL

Dieses Thema im Forum "Freetz" wurde erstellt von adn77, 11 Nov. 2017.

  1. adn77

    adn77 Neuer User

    Registriert seit:
    27 Mai 2005
    Beiträge:
    13
    Zustimmungen:
    2
    Punkte für Erfolge:
    3
    Da hier ja weiterhin das inoffizielle Freetz Entwicklerforum zu sein scheint (?!), poste ich mal meinen winzigen Vorschlag.

    Auf meienr 7490 war mir aufgefallen, dass cURL keine Zertifikate für verschlüsselte Verbindungen überprüfen konnte. Man kann zwar immer den CA-PATH manuell setzen, aber eleganter wäre doch ein direkter Einbau im Image.

    Der Patch setzt den ca-bundle Pfad auf /mod/etc/ssl.

    In der rc.custom habe ich dazu folgende Befehle:
    Code:
    ln -s /var/InternerSpeicher/opt/etc/ssl /mod/etc/ssl
    
    und per cron ein monatliches
    Code:
    curl -k -s -o /var/InternerSpeicher/opt/etc/ssl/cacert.pem https://curl.haxx.se/ca/cacert.pem
    
     

    Anhänge:

  2. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    10,298
    Zustimmungen:
    379
    Punkte für Erfolge:
    83
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    #2 PeterPawn, 11 Nov. 2017
    Zuletzt bearbeitet: 12 Nov. 2017
    Da muß man dann aber das Verzeichnis sehr gut gegen (fremde/unerwünschte) Schreibzugriffe sichern (praktisch alle NAS-Services könnten dort schreiben in der Standardeinstellung des FRITZ!OS) ... ansonsten kann ein Angreifer da einfach sein eigenes CA-Zertifikat hinterlegen (inkl. Symlink mit dem Hash über's "subject") und alle Programme mit entsprechender Prüfung (nicht nur "curl") würden dann Verbindungen (bzw. Zertifikate) akzeptieren, die mit diesem CA-Zertifikat signiert wurden.

    Das Fehlen des CA-Bundle bewirkt halt auch (ohne passende Optionen beim Aufruf von Programmen, die auf OpenSSL aufbauen), daß solche Verbindungen fehlschlagen und man sich so tatsächlich immer beim Aufruf vergegenwärtigen muß, mit welchem TLS-Server man da eigentlich kommuniziert bzw. kommunizieren will.

    EDIT: Nein, andere Programme (die wirklich die Chain anhand der Hash-Werte über die "subject"-Lines verifizieren) sind von dieser Änderungen nicht betroffen (anders als oben von mir zu lesen), denn das ist ja nur die Aneinanderreihung der PEM-Files für die Root-CAs von Mozilla. Da muß ich glatt mal in den Quelltext von "curl" schauen, wie dort die Verifikation erfolgt ... ohne die Hash-Links müßte "curl" ja jedes einzelne Root-Zertifikat anschauen und der TLS-Server müßte alle "intermediate certificates" zwischen seinem eigenen und einem dort enthaltenen Root-Zertifikat mit ausliefern bei jedem Verbindungsaufbau. Das ändert natürlich noch nichts daran, daß man bei falsch konfiguriertem Schreibzugriff auf die "cacert.pem" dann einfach eigene Zertifikate dort anhängen könnte.
     
  3. adn77

    adn77 Neuer User

    Registriert seit:
    27 Mai 2005
    Beiträge:
    13
    Zustimmungen:
    2
    Punkte für Erfolge:
    3
    Stimmt, aber erstens kann man den Link (und das Bundle) auch auf woanders hinlegen und zweitens sollte man sich schon fragen, ob ein SAMBA auf dem Router so eine schlaue Idee ist...