Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Manipulation beim Übertragen von Daten erkennen. (https://www.delphipraxis.net/143948-manipulation-beim-uebertragen-von-daten-erkennen.html)

Hedge 26. Nov 2009 16:44


Manipulation beim Übertragen von Daten erkennen.
 
Ich habe ein Delphi-Programm das Daten an ein php-Script schickt.
Die Verbindung ist mit SSL gesichert.

Die Daten werden via POST übertragen und sind im Moment nicht extra verschlüsselt.
Jetzt möchte ich aber verhindern, dass Jemand das PHP-Script selbst aufruft und mit POST-Daten füttert.
Wenn er sich selbst da was zurechtbastelt bzw. er versucht Daten zu manipulieren, dann muss das vom PHP-Script erkannt werden.

Ich belese mich zwar zum Thema Kryptografie, aber steht trotzdem auf dem Schlauch da es nicht unbedingt darum geht die zu übermittelnde Nachricht zu verschleiern sondern eine Manipulation zu verhindern.

Prüfsummen machen ja Sinn, aber die kann Jemand der davon Ahnung sich auch selber ausrechnen.

mjustin 26. Nov 2009 19:12

Re: Manipulation beim Übertragen von Daten erkennen.
 
Selbser habe ich damit noch nicht gearbeitet, aber Client SSL Zertifikate würden es ermöglichen, dass der Server nur die Verbindungen von authorisierten Clients annimmt.

http://de.wikipedia.org/wiki/Hyperte...rotocol_Secure

http://it.toolbox.com/blogs/security...ificates-11500

Auch ein Client-Zertifikat kann natürlich "gestohlen" werden (so wie ein Autoschlüssel...) - und "SSL-Verbindungen sind grundsätzlich gefährdet durch Man-in-the-middle-Angriffe, bei denen der Angreifer den Datenverkehr zwischen Client und Server abfängt bzw. sich als Zwischenstelle ausgibt." - http://de.wikipedia.org/wiki/Hyperte...rotocol_Secure

Cheers,

Hedge 26. Nov 2009 20:46

Re: Manipulation beim Übertragen von Daten erkennen.
 
Wie du schon sagst.
Auch die Client-Zertifikate können ausgehebelt werden und Man In The Middle-Attacken sind genau das dem ich versuche entgegenzuwirken.

Wir wäre es wenn ich alle Daten die an das Script geschickt werden sollen logisch zusammenfasse, symetrisch verschlüssele. Dann berechne ich davon einen Hashwert und häng den noch ans Ende der Daten ran?

Matze 26. Nov 2009 21:02

Re: Manipulation beim Übertragen von Daten erkennen.
 
Wenn deine Software das verschlüsselt und man das wirklich knacken will, dann schafft man das auch dann. Man kann Veränderungen im RAM auslesen, die Software disassemblieren etc. pp. Das Passwort, mit dem du verschlüsselst, steht in der Exe (wenn auch versteckt) und den Algorithmus selbst kann man auch auslesen.
Das ist doch wie mit diesen ganzen Cracks. Da gibt es Leute, die lesen den Algorithmus zur Prüfung der Seriennummern aus und erstellen damit Tools, die zufällige, gültige Seriennnummern generieren.

Erschweren werden solche Maßnahmen den potentiellen Angriff eines Normalbenutzer sicherlich, aber ob es bei sowas hundertprozentige Sicherheit gibt, bezweifel ich etwas.

Hedge 26. Nov 2009 21:07

Re: Manipulation beim Übertragen von Daten erkennen.
 
Die Normalbenutzer sind schonmal wegen SSL und Hash-Checks der Werte im RAM außenvor.
Wenn ich jetzt noch die dran hindere die vielleicht schonmal nen SoftICE-Tutorial gelesen haben, dann bin ich glücklich.

Hab hier im Nebenraum so einen Hacker-Spezi, aber der ist weniger kommunikativ, deswegen frage ich hier nach.

mjustin 27. Nov 2009 06:30

Re: Manipulation beim Übertragen von Daten erkennen.
 
Die Banken haben doch diese TAN-Listen (bzw. iTAN), das wäre doch eine relativ sichere Lösung?

Nachteil: die Benutzer müssen dann vorab eine Liste von TAN Nummern erhalten.

Wenn es eine einfachere Lösung gäbe, die gegen Missbrauch und Hacking sicher ist, würden die Banken die ja sonst sicher schon lange einsetzen.

Auch eine TAN Liste und eine Chipkarte oder einen Tokengenerator kann man natürlich klauen - illegale Handlungen in einem Sicherheitskonzept zu berücksichtigen, ist nicht leicht :)

Cheers,

Hedge 27. Nov 2009 07:57

Re: Manipulation beim Übertragen von Daten erkennen.
 
Merk schon dass das ganz schön hart ist.

Vom Benutzer verlangen TAN-Nummern einzugeben ist schon wieder zu viel des Guten (Im Angesichts des Zwecks des Programms).

Habt ihr noch andere Ideen?

Wie wäre denn das was ich schon unten beschrieben habe:

Zitat:

Wir wäre es wenn ich alle Daten die an das Script geschickt werden sollen logisch zusammenfasse, symetrisch verschlüssele. Dann berechne ich davon einen Hashwert und häng den noch ans Ende der Daten ran?
Klar ist das auch nicht so toll weil es ja auch reverse-engineert werden kann, aber ich könnte den Algorithmus ja immer mal wieder verändern.
Habe schon eingebaut dass der Benutzer zum Programm-Update gewzungen wird.

p80286 27. Nov 2009 14:23

Re: Manipulation beim Übertragen von Daten erkennen.
 
Hallo Hedge,

wär das hier vielleicht etwas für Dich?
Sicherer dateiheader....

Gruß
K-H

negaH 27. Nov 2009 23:06

Re: Manipulation beim Übertragen von Daten erkennen.
 
Dein Program soll automatisch ohne zb. Benutzerpasswörter bzw. echte Benutzerzertifikate arbeiten ? Wenn ja ist es nur mit kryptographischer Hardware sicher zu bekommen, die du zu deinem Program herausgibts.

Mein des öftern zitiertes Beispiel mit der Wäscheleine. Möchtest du eine Wäscheleine aufspannen dann benötigst du zwei stabile Pfosten. Du hast einen Pfosten schon unter Kontrolle, nämlich deinen Server mit dem PHP Script. Den Pfosten "Client und Clientsoftware" hast du nur im Griff wenn
a) der Client selber ein ernsthaftes Interesse an einer sicheren Verbindung hat und entweder bei dir registriert ist und Passwörter/Zertifikate benutzt, oder
b) der Client eine einbruchsichere Hardware benutzt die schlußendlich du kontrolliert, siehe Smartcard, FitzChip, Palladium, Trusted Plattform Alliance/Management, HDTV/HDMI. Diese Allianzen wissen schon was sie wie und warum tuen.

Ich persönlich würde dann a) bevorzugen bevor ich über b) keine wahre Kontrolle mehr über meinen Rechner und damit meine Daten habe.

Gruß Hagen

Hedge 28. Nov 2009 13:06

Re: Manipulation beim Übertragen von Daten erkennen.
 
Danke p80286, da ich gerade wenig Zeit habe, schaue ich morgen mal rein was da so geschrieben wurde.

@negah:
Alle Benutzer sind registriert und beim Aufruf des Scripts werden auch Benutzername und ein Hash des Passworts mit übertragen um denjenigen zu authentifizieren.
Darüber hinaus muss er einen zufälligen Token mitliefern den ihm der Server irgendwann mal gegeben hat und der nur 1 Mal und auf diesen Nutzer beschränkt gültig ist.

Die Frage ist nur inwieweit das einen registrierten Nutzer daran hindert manipulierte Daten an das Script zu schicken, wobei die Manipulation unerkannt bleibt, sobald er die 3 obigen Informationen zur Verfügung hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.
Seite 1 von 2  1 2      

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