AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy 10 HTTPClient mit SSL, Verständnisfrage zu den Zertifikaten
Thema durchsuchen
Ansicht
Themen-Optionen

Indy 10 HTTPClient mit SSL, Verständnisfrage zu den Zertifikaten

Ein Thema von Codehunter · begonnen am 13. Nov 2014 · letzter Beitrag vom 14. Nov 2014
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Indy 10 HTTPClient mit SSL, Verständnisfrage zu den Zertifikaten

  Alt 13. Nov 2014, 12:27
Hallo!

Ich gebe zu mir ist für die Frage irgendwie kein gescheiter Titel eingefallen. Mir geht es um folgendes:

Ich habe auf meinem Apache Webserver ein selbst erstelltes Zertifikat installiert und mit einem VHost verbunden. Funktioniert prima.

Nun will ich mit Indy auf den VHost zugreifen. HTTPClient und SSLIOHandler konfiguriert. Läuft auch. Im OnVerifyPeer muss ich zwar den X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT Fehler abfangen, aber sonst kein Problem.

Was ich an den Zertifikat nicht verstehe: Auf dem Server habe ich mit "openssl" drei Dateien erzeugt: eine .csr, eine .key und eine .crt. Im Apache VHost abe ich die die .key und die .crt angegeben. Die .crt scheint er bei einem GET-Request an den Client auszuliefern. Der Client scheint dann Infos aus der .crt an den Server zurück zu senden und die Verbindung damit zu verschlüsseln.

Was ich nicht verstehe: Wenn der Server das Client-Zertifikat selbst ausliefert, ist das dann nicht eine dicke Sicherheitslücke? Müsste man das nicht vielmehr mit seinem Setup mitliefern? Ich gaub, ich steh da auf dem Schlauch

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Indy 10 HTTPClient mit SSL, Verständnisfrage zu den Zertifikaten

  Alt 13. Nov 2014, 12:53
Erstmal hast Du damit nur eine verschlüsselte Verbindung.

Mit wem die besteht, musst Du anders klären. Du kannst zum Beispiel den CommonName oder andere Details prüfen. Bringt natürlich bei selbstsignierten nichts, weil die sich jeder erstellen kann. Oder Du prüfst die Seriennummer des Zertifikates, oder einen Hash dessen. Mit der Stolperfalle, dass Du nach Ablauf (falls es zeitlich beschränkt ist) natürlich ein anderes wirst auf dem Server installieren müssen, und der Client dann eine andere Seriennummer sieht.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Indy 10 HTTPClient mit SSL, Verständnisfrage zu den Zertifikaten

  Alt 13. Nov 2014, 12:56
Was ich nicht verstehe: Wenn der Server das Client-Zertifikat selbst ausliefert, ist das dann nicht eine dicke Sicherheitslücke? Müsste man das nicht vielmehr mit seinem Setup mitliefern?
Es handelt sich nicht um ein Client-Zertifikat, es ist ja global für den Server hinterlegt.

Alle Serverzertifikate (signiert oder nicht) werden vom Webserver automatisch an den HTTP(S) Client ausgeliefert. Sie müssen ja vom Client stets kontrolliert werden, da sie AFAIK auch zurückgezogen werden können.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Indy 10 HTTPClient mit SSL, Verständnisfrage zu den Zertifikaten

  Alt 13. Nov 2014, 14:02
Erstmal hast Du damit nur eine verschlüsselte Verbindung.

Mit wem die besteht, musst Du anders klären. Du kannst zum Beispiel den CommonName oder andere Details prüfen. Bringt natürlich bei selbstsignierten nichts, weil die sich jeder erstellen kann. Oder Du prüfst die Seriennummer des Zertifikates, oder einen Hash dessen. Mit der Stolperfalle, dass Du nach Ablauf (falls es zeitlich beschränkt ist) natürlich ein anderes wirst auf dem Server installieren müssen, und der Client dann eine andere Seriennummer sieht.
Ok, das kann ich nachvollziehen. Da ich ja beide Seiten "in der Hand" habe könnte ich bestimmte Zertifikatsmerkmale in meinem Programm hinterlegen und gegenchecken.

Um ehrlich zu sein sehe ich in dem Szenario irgendwie keinen Sinn darin, "offizielle", also von einem Trustcenter signierte Zertifikate zu verwenden. Ich brauche nach meinem Verständnis keine externe Instanz die meinem Programm versichert, dass meine Zertifikate auch wirklich von mir sind. Anders siehts ja aus wenn eine Seite der verschlüsselten Verbindung eben nicht weiß, ob das gelieferte Zertifikat authentisch ist.

Trotzdem bleibe ich dabei dass es in diesem Szenario doch sicherer wäre, der Server würde das Zertifikat nicht in die Welt hinaus "brüllen". Andererseits war ja SSL/TLS nie dazu gedacht, als Zugangsschutz zu funktionieren sondern als Absicherung des Transportweges.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Indy 10 HTTPClient mit SSL, Verständnisfrage zu den Zertifikaten

  Alt 14. Nov 2014, 11:05
Wenn Du extern signierte Zertifikate nimmst, musst Du nicht die Seriennummer prüfen (die sich ja auch ändern kann, wenn Du nach Ablauf neue ausstellst) - Du prüfst einfach, ob die Zertifikate auf "Codehunter AG" ausgestellt sind. Da die Trustcenter sowas "sicher" prüfen, d.h. Deinen Perso, Deinen Führerschein, die letzte Stromrechnung Deines Büros und nen Handelsregisterauszug fordern (als Beispiel).

Wenn Du also ein gültig geprüftes Zertifikat hast, bist Du sehr sicher, dass der Eigentümer ("Codehunter AG") stimmt.

In Deinem Fall übernimmt es also lediglich die nervige fehleranfällige Geschichte, den Clients neue Serverzertifikate beibringen zu müssen.

In Sachen Zugangsschutz hat mjustin übrigens das Stichworte genannt: Client-Zertifikate. Kennt man am ehesten von SSH - Anmeldung per Zertifikat statt Passwort. Macht StartSSL auch für ihr Benutzerkontrolzentrum (https). IRC-Nutzer können das bei euirc auch...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz