Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Datenübertragung an PHP-Skript verschlüsseln. RSA? (https://www.delphipraxis.net/112069-datenuebertragung-php-skript-verschluesseln-rsa.html)

Spessi 14. Apr 2008 18:11


Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
Guten Abend DP,
zur Zeit stehe ich vor einem, für mich als verhältnismäßig schlechten Mathematiker, großen Problem. Ich habe vor Systeminfos (die Uptime) auszulesen und per IdHTTP.Get() an ein PHP Skript zu schicken. Zur Zeit sind die Parameter:
Code:
bla.php?uptime=UPTIME_IN_SEKUNDEN&chksm=MD5_VON_UPTIME&nick=NICK&pwd=PASSWORT
Die Checksum ist dafür da, dass die Uptime nicht manipuliert werden kann. Ich weiß, ein lächerlicher Versuch, denn ein jemand, der schon wenig Erfahrung hat, kann die Pakete abfangen, Uptime manipulieren, Checksumme schnell anpassen und weiterschicken.

Nun habe ich mich heute in Wikipedia etwas schlaugelesen, was Verschlüsselungen angeht und habe dort das RSA-Chiffrierverfahren ausfindig gemacht - passt eigentlich wie die Faust auf's Auge.


Meine Fragen:
- Eignet sich RSA für mein Vorhaben?
- Könnte jemand das RSA Verfahren nochmal mit eigenen Worten erklären? So wie ich das verstanden habe, geht der erste Schritt von demjenigen aus, der einen Dialog führen will (in meinem Fall also mein Delphi Programm). Das Programm wählt 2 zufällige Primzahlen (p und q), deren Produkt N ergibt, und noch eine Zufallszahl n. Aus p und q wird dann der Dechiffrierschlüssel D mit D = E^-1 mod (p-1)*(q-1) gebildet. E, n wäre dann der öffentliche Schlüssel, phi(N) wäre der private Schlüssel.
Dann müsste ich meinen Text in Ascii-Code umwandeln und das ganze in Blöcke packen, wobei kein Block > n sein darf. Danach wird jeder Block verschlüsselt und an meine PHP Datei übergeben. Soweit versteh ich das schon. Aber woher weiß meine PHP Datei dann den öffentlichen / privaten Schlüssel? Welcher der beiden muss überhaupt übertragen werden?
- Würde das ganze auch mit SSL/TLS gehen? (Habe damit auch keine Erfahrung, Wikipedia erklärt auch nicht wirklich, was genau das verschlüsselt)


Ich habe auch schon hier im Forum gesucht und auch schon einiges gefunden, welches sich nun doch immer wieder am Ende von meinem Vorhaben entscheidend unterschied. Naja, ich hoffe, dass ihr mir helfen könnt :-)


Gruß
Spessi

mkinzler 14. Apr 2008 18:15

Re: Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
Du sparst dir natürlich einige Arbeit, falls der Webserver SSL unterstützt

Spessi 14. Apr 2008 18:20

Re: Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
Hallo,
habe leider nicht viel Erfahrung mit SSL. Ich weiß nur, dass es *irgendwie* verschlüsselt. Ich könnte SSL ggf. zu meinem Tarif hinzubuchen, das wäre kein Problem.
Wäre SSL nicht zu manipulieren? (Naja, im grundegenommen ist alles manipulierbar; sagen wir: schwer zu manipulieren?)

Außerdem würde bei SSL doch noch die Möglichkeit bestehen, dass man einfach mitsnifft, wohin die Daten gesendet werden (an welche php-Datei) und dort eben die Parameter von Hand einzutragen. Das würde ja mit RSA auch wegfallen, oder?


Gruß
Spessi

mkinzler 14. Apr 2008 18:24

Re: Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
Bei SSL wird die Verschlüsselung zwischen Server/Browser ausgemacht. Hierbei werden temporäre Schlüssel verwendet, welche mit dem Schlüssel des Webserverzertifikates erzeugt werden.

Spessi 14. Apr 2008 18:29

Re: Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
Und was, wenn der Anwender herausfindet, an welche PHP-Datei die Daten geschickt werden? Dann könnte er doch, sofern ich das richtig verstanden habe, problemlos seine gewünschten Werte "per Hand" eintragen. Oder eben irgendwie selber ein Programm programmieren, das irgendwie die Zertifikatsdatei einbindet.
Hmm, irgendwie vertrau nich SSL nicht wirklich :duck:

Wäre schön, wenn mir jemand meine (warscheinliche Ur-) Angst von SSL nehmen kann, oder mir eben ein paar Tipps für die RSA Verschlüsselung mit auf den Weg geben könnte.


Gruß
Spessi

mkinzler 14. Apr 2008 18:32

Re: Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
SSL sichert die Verbindung. Eine Absicherung per Passwort ist deshalb zusätzlich nötig. Ein Abhören der übergebenen Parameter ist aber nicht möglich.

arbu man 14. Apr 2008 18:38

Re: Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
Der einzinste ernst zu nehmene Angriff auf SSL wäre eine Man-In-The-Middle-Attack (Wikipedia hilft), die ist allerdings bei SSL Recht einfach da der Algo bekannt ist. Sonst ist SSL sicher für normale Anwendungen.

mkinzler 14. Apr 2008 18:42

Re: Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
Zitat:

die ist allerdings bei SSL Recht einfach da der Algo bekannt ist.
Das ist ein Irrtum. Ein Algorithmus ist nicht unsicher, weil er bekannt ist. SSL verwendet AES, welcher sehr sicher ist. Die Unsicherheit liegt nicht am Algorithmus, sondern an der Vertrauenswürdigkeit des Zertifikats.

Spessi 14. Apr 2008 18:52

Re: Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
Hm, ok. Dann werde ich das mit SSL lösen. Das sollte solange sicher sein, bis jemand rauskriegt, wie die Datei heißt und welche Parameter übergeben werden müssen, denke ich. Aber das wird schon keiner erraten :-) (Wobei ich nicht weiß, wie die Adresse dahin im Quellcode gespeichert wird, nicht dass man das ganze dann mit nen bissl Hex-Editor + 5 Minuten im klartext rauslesen kann)...

Gibts denn kostenlose Möglichkeiten SSL zu nutzen (sofern ich es in meinem Tarif nicht dazugebucht habe)? Ich meine mal was von OpenSSL oder so gelesen zu haben?


Gruß Spessi


PS: SSL sollte ja von Indy problemlos geschluckt werden, oder? :-)

arbu man 14. Apr 2008 19:12

Re: Datenübertragung an PHP-Skript verschlüsseln. RSA?
 
Zitat:

Zitat von mkinzler
Zitat:

die ist allerdings bei SSL Recht einfach da der Algo bekannt ist.
Das ist ein Irrtum. Ein Algorithmus ist nicht unsicher, weil er bekannt ist. SSL verwendet AES, welcher sehr sicher ist. Die Unsicherheit liegt nicht am Algorithmus, sondern an der Vertrauenswürdigkeit des Zertifikats.

Die Äußerung bezieht sich auf MITM-Attack, da gibt es Proxies die das können, die gibt es bei einen Eigenen System nicht.

SSL baut eine sichere Verbindung auf d.h. der Client hat nur einen öffentlich Schlüssel, den kann jeder kennen das ist ja das gute :) an SSL. Du brauchst Rechte auf dem Server um SSL so verwenden zu können (oder du musst es halt dazu bestellen), ich nehme an das du diese Rechte nicht hast, deswegen musst du es wohl dazu nehmen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 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