AGB  ·  Datenschutz  ·  Impressum  







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

Bestehende TCP/IP-Kommunikation sicher machen

Ein Thema von 361 · begonnen am 29. Mär 2018 · letzter Beitrag vom 30. Mär 2018
Antwort Antwort
Seite 1 von 3  1 23   
361

Registriert seit: 27. Okt 2005
Ort: Berlin und Brandenburg
93 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 10:37
Hallo zusammen,

ich habe das Internet und auch das Forum hier bereits durchforstet aber stehe nach wie vor ohne Lösung dar. Folgender Sachverhalt:

Ich habe ein Delphi-Projekt, bestehend aus zwei Windows-Anwendungen, eine Server- und eine Client-Anwendung. Die Server-Anwendung nutzt TIdTCPServer und die Client-Anwendung die zugehörige TIdTCPClient-Komponente. Beide tauschen Daten darüber mittels "TIdIOHandler.ReadLn" und "TIdIOHandler.WirteLn" aus. Nun gibt es die Anforderung, diese Daten verschlüsselt zu übertragen. Also dachte ich mir, suche ich mir eine Komponente, welche einfach eine Verschlüsselung darüber legen kann und bin bei meiner Suche bei Devart SecureBridge gelandet. Anscheinend kann man den "ScIdIOHandler" dem Client zuweisen, nicht jedoch dem Server und nun gehe ich davon aus, dass das gar nicht für meinen Anwendungsfall gedacht ist. Es gibt auch kein Beispiel hierfür.

Welche Möglichkeiten seht Ihr hier, eine Verschlüsselung einzubringen? Ich möchte keine DLLs verwenden, würde auch Geld für eine Komponente ausgeben und ich würde auch einen Kryptoalgorithmus, der die zu sendenden Strings verschlüsselt in Betracht ziehen. Ich freue mich, auf Eure Antworten und auch Hinweise.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 10:45
Du könntest auf HTTPS setzen.
Dann hast Du zwar etwas mehr Overhead als in Deiner jetzigen Variante, die vmtl. tatsächlich ausschließlich die Nutzdaten überträgt aber Du würdest auf einen allseits bekannten und akzeptierten Standard setzen. Ob Dein HTTP-Stream dann rein aus den Nutzdaten besteht oder ob Du diese z.B. in JSON verpackst, steht Dir dann frei. Wenn die Daten wirklich nur zwischen Deinen eigenen Anwendungen ausgetauscht werden und keinerlei Fremdsysteme im Spiel sind, bist Du da ja recht frei in der Gestaltung.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
361

Registriert seit: 27. Okt 2005
Ort: Berlin und Brandenburg
93 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 10:48
Hallo Daniel,

vielen Dank für Deine Antwort. Ich habe vergessen zu erwähnen, dass es sich bei den Verbindungen um Satellitenverbindungen handelt, welche recht langsam ist und wo es auch auf den Traffic ankommt. Ich habe lediglich einen bestimmten Port (den ich hier nicht nennen darf) zur Verfügung. Mit HTTPS kenne ich mich gar nicht aus, ich weiß nur, dass die Maschinen die über meine Lösung kommunizieren wollen, kein DNS und keinen sonstigen Zugang ins Internet haben. Vielleicht schränkt das HTTPS und andere Lösungen ein?
  Mit Zitat antworten Zitat
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 10:49
Keine DLLs? Schließt das nur deren direkten Gebrauch ein oder ganz generell?
Wenn du nämlich mit der Nutzung der Bibliotheken von OpenSSL einverstanden bist, kann man SSL-Verschlüsselung ganz einfach durch die Nutzung der SSL-Handler (TIdSSLIOHandlerSocketOpenSSL und TIdServerIOHandlerSSLOpenSSL) der Indys erreichen. Das ist ziemlich einfach und dank SSL/TLS auch mit guter, standardisierter Verschlüsselung.
Ein nettes Beispiel gibt es hier: https://github.com/rlove/Indy-SSL-Ex...o/TestForm.pas
  Mit Zitat antworten Zitat
361

Registriert seit: 27. Okt 2005
Ort: Berlin und Brandenburg
93 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 10:56
Hallo Benedikt,

Vorgabe ist, nur die Anwendung ohne zusätzliche Dateien wie DLLs oder ähnliches. Alles soll in der Anwendung drin sein. Ich habe bereits die OpenSSL-Variante an einem Beispeil getestet und es wäre recht einfach aber widerspricht der Anforderung. Hat jemand Erfahrungen mit Indy und SecureBridge im Bereich TCP/IP oder zur Not eine kommerzielle Alternative zu Indy, die Verschlüsselung bereits implementiert hat? Zur Not würde ich den Bestands-Code dazu auch noch mal umschreiben...
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.123 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 10:56
Nimm einfach Lockbox.

Mach einen Handshake um die Infos auszutauschen und dann go...

Im Prinzip wie es HTTPS auch "unten drunter" macht...

Mavarik
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 10:56
Wenn es aufgrund von Restriktionen Theater im Netzwerk geben könnte, dann kannst Du natürlich auch überlegen, nicht die Verbindung als Ganzes, sondern nur Deine Nutzdaten zu verschlüsseln.

Da gibt es Bibliotheken, die sich vollständig in Deinen Quellcode integrieren lassen (z.B. LockBox oder auch von TMS) und z.B. AES-256 oder dgl. anbieten. Auch da reden wir dann über anerkannte Standards. Wichtig wird dann jedoch deren korrekte Verwendung - die schönste Verschlüsselung nützt nichts, wenn man bei der Aufbewahrung des Schlüssels schlampt. Stell Dir einen wirklich guten Tresor vor, dessen Schlüssel außen mit einem Streifchen Tesafilm befestigt wurde, damit er nicht verloren geht.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 10:59
Welche Zielplattformen hast Du denn zu unterstützen? Die neuen HTTP-/Net-Komponenten von Delphi unterstützen z.B. direkt die Windows-Schnittstellen, um gesicherte Verbindungen aufzubauen. Dabei wäre OpenSSL nicht erforderlich.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
361

Registriert seit: 27. Okt 2005
Ort: Berlin und Brandenburg
93 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 11:09
Hallo Mavarik, hallo Daniel,

vielen Dank für den Hinweis mit Lockbox, habe ich mir angesehen und scheidet wegen der Lizenzen aus. TMS meint Ihr sicherlich das "TMS Cryptography Pack"? Das würde bedeuten, man verschlüsselt nur die Strings? Das wäre sehr interessant für mich.

Mit den neuen HTTP-/Net-Komponenten von Delphi kenne ich mich noch gar nicht aus. Immer wenn ich HTTP lese, denke ich an Port 80, weil ich keinerlei Erfahrungen hier habe und dieser Port würde sich ja ausschließen. Auch kenne ich mich nicht mit Zertifikaten aus, die Software muss relativ leicht einrichtbar sein, aktuell einfach eine Service-DLL welche mittels kleinem Setup installiert und registriert wird. Eigentlich sollte dann schon die Kommunikation losgehen.

"Aufbewahrung des Schlüssels": Kannst Du hier Tipps oder Hinweise geben? Um es mal zu sortieren. Wenn ich eine String-Verschlüsselung verwende, ist dieses Thema dann auch wichtig? Ich würde den Schlüssel gern im Code haben, jedenfalls ist es aktuell so. Oder bezieht sich das bei der Verwendung eines Zertifikats?

Ich bin parallel auch noch auf RCx von Hagen/Himitsu gestoßen. Ein paar Empfehlungen von Euch wären jetzt schön oder auch Input wie das mit dem HTTP/Net-Komponenten von Delphi grob ginge.

VG
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Bestehende TCP/IP-Kommunikation sicher machen

  Alt 29. Mär 2018, 11:09
Hallo Benedikt,

(..) Ich habe bereits die OpenSSL-Variante an einem Beispeil getestet und es wäre recht einfach aber widerspricht der Anforderung.(..)
Inwiefern kann OpenSSL einer Anforderung an die Verschlüsselung widersprechen?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:02 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