Übertragung von Daten nur wenn Anfrage von einem bestimmten Server stammt

EnesE

Grünschnabel
Stimmt mit einem Proxy ist es selbstverständlich sicherer, aber meine Intention war es eine soweit simple aber sichere Authentifizierung durchzuführen.

Deswegen überprüfe ich nun auf Server B die IP Adresse von Server A und sende zeitgleich einen Key von Server A an B.
Server B schaut dann ob der Key und die IP zusammen passen.
 

ComFreek

Mod | @comfreek
Moderator
Ich habe mal jemand anderen gefragt, der mir einleuchtend erklärt hat, dass das alleinige Überprüfen der IP-Adresse unsicher sei.

Präzise: Wenn A eine HTTP Anfrage an B schickt und B nur mittels Sender-IP-Adresse authentifiziert, dann ist das unsicher. Denn jeder Man-in-the-Middle C zwischen dem Routing A <-> B kann einfach TCP und darin enthaltene IP-Pakete so fälschen, dass er die IP-Adresse von A angibt. Wenn nun ein TCP-Paket zurückkommt, fängt C es einfach ab, weil es auf der Route liegt.

Selbst wenn du ein pre-shared-secret bei A und B hast, so lernt C dieses Secret beim Verschicken seitens A. D.h. es funktioniert sicher höchstens einmal. (Höchstens, weil C die Verbindung unterbrechen könnte.)

Wenn A jedoch das pre-shared-secret via HTTPS-Anfrage an B schickt, so ist es verschlüsselt.
 

EnesE

Grünschnabel
Ich habe mal jemand anderen gefragt, der mir einleuchtend erklärt hat, dass das alleinige Überprüfen der IP-Adresse unsicher sei.

Präzise: Wenn A eine HTTP Anfrage an B schickt und B nur mittels Sender-IP-Adresse authentifiziert, dann ist das unsicher. Denn jeder Man-in-the-Middle C zwischen dem Routing A <-> B kann einfach TCP und darin enthaltene IP-Pakete so fälschen, dass er die IP-Adresse von A angibt. Wenn nun ein TCP-Paket zurückkommt, fängt C es einfach ab, weil es auf der Route liegt.

Selbst wenn du ein pre-shared-secret bei A und B hast, so lernt C dieses Secret beim Verschicken seitens A. D.h. es funktioniert sicher höchstens einmal. (Höchstens, weil C die Verbindung unterbrechen könnte.)

Wenn A jedoch das pre-shared-secret via HTTPS-Anfrage an B schickt, so ist es verschlüsselt.

Das stimmt, dass es unsicher ist. Es sollen ja auch nicht wer weiß was für Daten versendet werden, die zwingend geschützt werden müssen.
Ich wollte lediglich eine kleine Authentifizierung damit nicht jede x beliebige Person die Tools nutzen kann, die auf Server B liegen / verarbeitet werden. (Hätte ich auch in die Frage rein schreiben sollen. Mein Fehler)

Und ja beide Server nutzen HTTPS und genauer gesagt werden nur verschlüsselte Daten gesendet und empfangen.
Also Server A schickt verschlüsselte Anfrage an Server B.
Server B entschlüsselt die Anfrage und führt diese aus.
Server B sendet das Ergebnis verschlüsselt zurück an Server A.
Server A entschlüsselt die Daten und macht mit den Daten, was er damit vor hatte.

Ist zwar immer noch nicht 100% sicher, aber das wird es eh nie und die zusätzliche Verschlüsselung ist nur eine kleine zusätzliche Hürde.,