AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Bestehende TCP/IP-Kommunikation sicher machen
Thema durchsuchen
Ansicht
Themen-Optionen

Bestehende TCP/IP-Kommunikation sicher machen

Ein Thema von 361 · begonnen am 29. Mär 2018 · letzter Beitrag vom 30. Mär 2018
 
slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#18

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 30. Mär 2018, 11:17
Hallo,

Es gibt auch noch SecureBlackBox ohne externe Abhängigkeiten zu DLLs. Updates erscheinen sehr regelmäßig. SourceCode gibt es allerdings nur im teuersten Paket und nicht mehr als Abo.[..]
Habe auch die SBB im Einsatz - das einzige, was mich immer noch ärgert ist, dass mit Übernahme durch /n software meine Lifetime Lizenz hinfällig war/ist.

Was ich auch gut finde, ist der Source (ja, ich habe dann das "große" Paket gekauft), keine DLLs, 64bit Unterstützung - und ein wirklich guter & schneller Support.

Insgesamt ist die Lernkurve bei SBL aber eher steil, man muss noch an einiges selber denken, wie Prüfen auf Zertifikat-Revocation, etc.
Stimmt nicht ganz

Delphi-Quellcode:
    idUri:=TIdUri.Create(FRemoteURL);
    CertificateValidator.ValidateForSSL(Certificate, idUri.Host, '', hrServer, nil, true, Now, Validity, Reason);
https://www.secureblackbox.com/kb/he...ateforssl.html

Ich benutze die Komponenten zusammen mit Indy (IdHTTP.IOHandler) - ich glaube, in es sind aber auch Komponenten enthalten, die die Indys komplett ablösen könnten (bin mir nicht ganz sicher, fahre sehr gut mit den Indys). Die .ValidateForSSL wird in der Funktion OnCertificateValidate der TElClientIndySSLIOHandlerSocket Klasse aufgerufen. Es gibt bei der SBB auch ein paar Beispiele.

Persönlich bin ich noch einen Schritt weiter gegangen - ValidateForSSL prüft die komplette Chain (lässt sich auch noch weiter parametrisieren) - inklusive Revokes, Gültigkeitszeitraum, etc. Um einen MITM Angriff zu verhinden (man könnte ja selber eine CA erstellen, die man im Zertifikatsspeicher als vertrauenswürdig kennzeichnet) prüfe ich zusätzlich den public Teil des Serverzertifikates gegen einen hard codierten Wert (klar, bei einem Reissue muss man den Source anpassen). Alternativ könnte auch prüfen, ob es sich um die korrekte CA handelt.

Kurzum: Für das Vorhaben würde ich persönlich wahrscheinlich auf HTTPS setzen mit entsprechender Prüfung der Zertifikate. Ist sicher und man muss nicht ganz tief in die Krypto einsteigen. Halb oder falsch implementierte Krypto wiegt einen meistens in falscher Sicherheit. Hinzu kommt, dass HTTPS auch durch Firewalls i.d.R. problemlos druch geht

Optional auch noch - wie schon erwähnt - Client-SSL Zertifikate und/oder CA nutzen, dann kann der Server ebenfalls die Identität prüfen.

Grüße
Sebastian


Nachtrag:
unbedingt SBHTTPCRL und SBHTTPOCSPClient in dies uses Klausel aufnehmen, wenn man die Komponenten zur Laufzeit erzeugt (so mache ich das immer, dann muss man nach einer Delphi Neuinstallation nicht wieder etliche Packages installieren), sonst könnte der Revocation Check fehlschlagen.

Geändert von slemke76 (30. Mär 2018 um 11:26 Uhr) Grund: Nachtrag hinzugefügt
  Mit Zitat antworten Zitat
 


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 14:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz