Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi HTTPS und Zertifikate - wie mache ich es richtg? (https://www.delphipraxis.net/208098-https-und-zertifikate-wie-mache-ich-es-richtg.html)

Mavarik 9. Jun 2021 09:11

HTTPS und Zertifikate - wie mache ich es richtg?
 
Hallo Zusammen!

HTTPS und die dadurch gegebene Verschlüsselung des Datenverkehrs ist ja gut und schon, aber nur, wenn man auch sicher gehen kann, das es auch funktioniert.

Vielleicht mache ich etwas falsch oder habe es nicht verstanden...

Ich verbinde mich mit der nativen HTTP-Komponete zu einem REST Service. Im
Delphi-Quellcode:
OnValidateCertificate
prüfe ich, ob es überhaupt das richtige Zertifikat ist. (Sonst macht das ganze keinen Sinn)

Vom Zertifikat habe ich bisher immer die URL und den Issuer geprüft. (z.B. Let's Entcrypt)
Leider musste ich feststellen, das wenn auf dem Kundenrechner Kaspersky installiert ist, der
Delphi-Quellcode:
Certificate.Issuer
"Kaspersky" lautet.

Eigentlich sagt mir das doch das Kaspersky hier ein Man-In-The-Middle spielt, oder? In diesem Fall kann es doch nicht mehr sicher sein...

Übersehe ich etwas oder mache ich etwas falsch?

Grüsse
Mavarik :coder:

Union 9. Jun 2021 09:25

AW: HTTPS und Zertifikate - wie mache ich es richtg?
 
Kaspersky agiert hier als Proxy, deshalb sieht der Client das lokale Zertifikat und nicht dasjenige des Servers. Siehe z.B.https://hex64.net/blog/browsing-erro...-virus-update/

Mavarik 9. Jun 2021 09:33

AW: HTTPS und Zertifikate - wie mache ich es richtg?
 
Zitat:

Zitat von Union (Beitrag 1490870)
Kaspersky agiert hier als Proxy, deshalb sieht der Client das lokale Zertifikat und nicht dasjenige des Servers. Siehe z.B.https://hex64.net/blog/browsing-erro...-virus-update/

Ja ok, aber dadurch ist doch die Verschlüsselung nicht mehr sicher, oder? Nehmen wir mal an Kaspersky hat ne Backdoor und übermittelt die Daten and die NSA... ;-)

Der schöne Günther 9. Jun 2021 09:33

AW: HTTPS und Zertifikate - wie mache ich es richtg?
 
Ja, im Endeffekt ist das "Man in the Middle" was Kaspersky da macht. Der Grund ist, dass sich somit der gesamte HTTPS-Traffic vom Virenscannern prüfen lässt bevor es an die Anwendung auf deinem PC weiterkommt. Ob das jetzt eine gute oder schlechte Sache ist kann ich nicht beurteilen, damit kenne ich mich nicht aus. Ich glaube mein persönlicher Geschmack wäre es nicht. Wenn du jetzt einem Virenscanner hast dem du nicht traust macht das natürlich keinen Sinn 😉

Falls du es deaktiveren möchtest:
Zitat:

In order to disable this functionality you have to go into Settings, select “Additional” on the left side, then click “Network.” There you will see a section called “Encryption connection scanning” where you need to choose “Do not scan encrypted connections.”
Quelle

PS: Waren Kaspersky nicht die, welche die ShadowBrokers der NSA haben auffliegen lassen? Ich glaube die beiden werden keine Freunde mehr.

Mavarik 9. Jun 2021 09:48

AW: HTTPS und Zertifikate - wie mache ich es richtg?
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1490872)
Ja, im Endeffekt ist das "Man in the Middle" was Kaspersky da macht. Der Grund ist, dass sich somit der gesamte HTTPS-Traffic vom Virenscannern prüfen lässt bevor es an die Anwendung auf deinem PC weiterkommt. Ob das jetzt eine gute oder schlechte Sache ist kann ich nicht beurteilen, damit kenne ich mich nicht aus. Ich glaube mein persönlicher Geschmack wäre es nicht. Wenn du jetzt einem Virenscanner hast dem du nicht traust macht das natürlich keinen Sinn 😉

Schon klar, aber das Problem ist ein anderes...

Kunde: Ich kann die Software nicht installieren, da kommt immer eine Fehlermeldung: Zertifikat ungültig!
Ich: Hab Sie gelesen, dass es an Ihrem Virenscanner liegt? Schalten Sie die HTTP Kontrolle bitte ab.
Kunde: Nein, das mache ich auf keinen Fall das ist mir zu unsicher.
Ich: Sorry dann funktioniert die Installation nicht.
Kunde: Dann gebe ich die Software zurück, bitte erstatten Sie mir sofort mein Geld.
Ich: Hier ist ein neuer Installer. (Der akzeptiert auch Kaspersky-Zertifikate)
Kunde: Na geht doch...

WTF...

DeddyH 9. Jun 2021 10:15

AW: HTTPS und Zertifikate - wie mache ich es richtg?
 
Man könnte auch bei einem ungültigen Zertifikat den Kunden darauf hinweisen, ihm aber die Möglichkeit bieten, es auf eigene Gefahr trotzdem zu akzeptieren. Wenn man sehr freundlich ist, kann man auch einen Abschnitt in die Doku schreiben, der den Sachverhalt erklärt.

Mavarik 9. Jun 2021 10:40

AW: HTTPS und Zertifikate - wie mache ich es richtg?
 
Zitat:

Zitat von DeddyH (Beitrag 1490874)
Man könnte auch bei einem ungültigen Zertifikat den Kunden darauf hinweisen, ihm aber die Möglichkeit bieten, es auf eigene Gefahr trotzdem zu akzeptieren. Wenn man sehr freundlich ist, kann man auch einen Abschnitt in die Doku schreiben, der den Sachverhalt erklärt.

Bei jeder offenen Schnittstelle läuft man Gefahr, dass diese Missbraucht wird.
Warum soll man eine SQL Server nicht öffentlich ins Netz hängen? Damit keiner damit Mist baut.
Wenn ich aber einen REST-Service für die gleichen Funktionalitäten einsetze, möchte ich auch nicht, dass ein 3. den Traffic abhört und dann die Schnittstelle nutzt um genau das gleiche zu machen.

Jetzt könnte man sagen, Kaspersky kann man vertrauen, aber wie weit soll man gehen... Fiddler sicherlich nicht.

Mavarik

Der schöne Günther 9. Jun 2021 11:00

AW: HTTPS und Zertifikate - wie mache ich es richtg?
 
Ich verstehe noch nicht so ganz weshalb der gute Mann normal im Internetz-Surfen kann, aber deine Anwendung streikt. Hast du im Event-Handler hartkodiert dass das Zertifikat von "Lets's Encrypt" ausgestellt sein muss? Ich hätte mich auf den Boolean-Parameter "Accepted" verlassen, denn ob das ok ist oder nicht (z.B. abgelaufen oder dem Zertifikat vertraut das System nicht) prüft ja das Betriebssystem.

CCRDude 9. Jun 2021 11:07

AW: HTTPS und Zertifikate - wie mache ich es richtg?
 
Das Betriebssystem prüft nur, ob die Kommunikation verschlüsselt ist.

Erst mit Certificate Pinning stellt man sicher, dass man mit der bekannten Gegenseite kommuniziert. Da gibt es auf diversen Ebenen Möglichkeiten; dass es ein Zertifikat von Lets Encrypt sein muss, kann man etwa auch per DNS einstellen, dann prüft es das Betriebssystem auc.

Wenn man niemanden auf der Leitung schnüffeln haben möchte, ist ein Pinning auf ein konkretes Zertifikat hilfreich. Sei es um Reverse Engineering zu erschweren oder tatsächlich Daten zu schützen.

Der schöne Günther 9. Jun 2021 11:19

AW: HTTPS und Zertifikate - wie mache ich es richtg?
 
Danke für das Fachwort. Wenn man in der Suchmaschine seines Vertrauens nach "Certificate Pinning" sucht findet man ja doch hilfreiche Infos und Meinungen von verschiedenen Seiten. Seinen persönlichen Schluss muss man wohl selber ziehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf