Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: DeveloperTalk. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

1

10.01.2013, 18:26

Authentizität von Schlüsseln, Mitm?

Hey Leute,
hab noch ne Frage zur verschlüsselten Kommunikation. Wie stelle ich sicher, das der Server, den ich kontaktiere auch der Server ist, der ich denke dass er ist? Ich meine theoretisch könnte man den Request des Clients ja mit Mitm oder DNS-Spoofing oder so auf einen eigenen Server umleiten, die Keys ganz normal austauschen und dann würde der Client ein Passwort oder andere vertrauliche Informationen an den Fake-Server schicken (Okay, möglicherweise müsste für sowas komplexes das Protokoll kompromittiert sein, aber sagen wir das wäre es). Kann man sich überhaupt sicher sein? Immerhin wird der Server ja nur über eine Domain/IP identifiziert... ?!
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Johannes S.

Fortgeschrittener

Beiträge: 444

Registrierungsdatum: 24.06.2011

Wohnort: Lychen

Danksagungen: 71

  • Private Nachricht senden

2

10.01.2013, 19:21

Ich bezweifle das es wirklich eine Möglichkeit gibt sich vor sowas zu schützen wenn man jetzt nicht gerade davon ausgeht dass man den Server bereits kennt. Weil dann könnte man ja z.B. einfach Daten wie den Schlüssel austauschen und in Zukunft würde nur der richtige Server dein Request verstehen. Aber sonst wüsste ich keinen Weg, weil der falsche Server kann ja alles genau so machen wie es dein Client in seiner Programmierlogick erwartet. Er weiß ja nicht süber den Server wie den Schlüssel oder ähnliches woran er ihr sicher identifizieren kann.
Vieleicht könnte man solche Sicherheit über einen 3. Server herstellen, wenn man davon ausgeht das dessen Verbindung nicht gestohlen werden kann bzw. zumindest nicht die Verbindungen zu beiden Servern :D
Signatur ?

Timon L.

Anfänger

Beiträge: 45

Registrierungsdatum: 12.08.2012

Wohnort: GM

Danksagungen: 9

  • Private Nachricht senden

3

10.01.2013, 20:01

Das einzige, was mir einfallen würde, wäre, dass der Client eine Anfrage an den Server schickt, bei der sich ständig ändernde Daten bei sind, beispielsweise ein String, der die aktuelle Uhrzeit und das Datum enthält. Das wird dann mit einem nicht gerade weit verbreiteten Verfahren vom Client gehasht, genau wie vom Server, evtl noch mit Salts versehen - nur wenn beides übereinstimmt, hätte man den richtigen Server. Ich kenne mich in der Kryptographie allerdings nicht wirklich genug aus, um so etwas genau sagen zu können.

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

4

10.01.2013, 20:25

Naja, an einen signierten Schlüsseln von einem dritten Server hab ich auch schon gedacht, aber da hat man irgendwie das selbe Problem :D
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Alex

Fortgeschrittener

Beiträge: 372

Registrierungsdatum: 23.06.2011

Wohnort: /home/alex

Danksagungen: 117

  • Private Nachricht senden

5

10.01.2013, 20:45

Ich schließe mich Johannes an - 100%tige Sicherheit kann es beim Erstkontakt eigentlich nicht geben.

Ist jetzt vielleicht übertrieben dargestellt, aber nehmen wir mal SSL als Beispiel: Du gehst auf eine Website. Bei Erstkontakt wird dir entweder das Zertifikat vom Browser präsentiert und du musst es akzeptieren (ohne wissen zu können dass es das richtige ist, wenn du das nicht auf anderen manipulationssicheren Kanälen vergleichen kannst), oder dein Browser wurde mit entsprechenden Root-Zertifikaten ausgeliefert. Wenn ein https-Zertifikat damit signiert ist, wird es als sicher betrachtet - aber wenn dein Browser oder sogar dein Betriebssystem aus dem Internet spannen, woher willst du wissen, dass man dir da nicht auch etwas untergejubelt hat?
Ganz abgesehen davon bin ich mir ziemlich sicher, dass es in jüngerer Vergangenheit sowieso ein Problem mit Root-Zertifikaten gab, das dafür gesorgt hat dass man sich selber Zertifikate signieren konnte; aber das ist ja wieder ein anderes Thema.

Prinzipiell musst du immer irgendwo irgendwie z. B. einen persönlichen Konktakt haben - allerdings ist obiges Beispiel extrem unrealistisch (die Begründung ist selbsterklärend, denke ich), und deswegen kann man mit diesem Level an Sicherheit leben.

Falls es doch irgendeine Möglichkeit geben sollte, entschuldige ich mich dafür - aber sie ist mir jedenfalls nicht bekannt ;).

@Timon: Ich bin mir nicht sicher wie du das meinst, aber das hört sich imho etwas nach Security through obscurity an - nicht immer die beste Idee ;)
alexthinking.com - yet another computer weblog

Zitat

Chuck Norris knows the state of schroedinger's cat.

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

6

10.01.2013, 22:54

ein mitm im lan dürfte nicht soo schwer sein, oder? wenn doch hast du recht, dann ist es sicher genug ...

Zitat

@Timon: Ich bin mir nicht sicher wie du das meinst, aber das hört sich imho etwas nach Security through obscurity an - nicht immer die beste Idee ;)

ist immerhin besser als garnix ;D
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Alex

Fortgeschrittener

Beiträge: 372

Registrierungsdatum: 23.06.2011

Wohnort: /home/alex

Danksagungen: 117

  • Private Nachricht senden

7

10.01.2013, 23:13

ein mitm im lan dürfte nicht soo schwer sein, oder? wenn doch hast du recht, dann ist es sicher genug ...

Ich glaube gerade im LAN geht das doch recht einfach (wenn auch nicht so umfassend :D)..
Ich hab da mal ne schöne Textstelle gelesen, wenn ich die finde poste ich die..


ist immerhin besser als garnix ;D

Ich bin mir immer noch nicht sicher wie er das meinte aber da verlasse ich mich lieber auf einen klassischen Schlüsselaustausch :D
alexthinking.com - yet another computer weblog

Zitat

Chuck Norris knows the state of schroedinger's cat.

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

8

11.01.2013, 16:22

Eben und das ist das Problem... im Lan wäre die einzige angriffsstelle, aber imo viel zu gravierend...

Das wa er meinte wäre ja zusätzlich... Das wäre dann quasi ein passwort, das in server und client hardcode vom author eingebaut wurde, und damit trusted ist. dieses deint dann als salt für einen hash von datum und uhrzeit, der dann verglichen würde. wenn man allerdings vorraussetzt, dass das protokoll bekannt ist, bringt das natürlich nix... wenn aber nur der schlüsselaustausch durch RE rekonstruiert wurde, wäre das kein problem, dann könnte man so einen hash net fälschen. eine möglichkeit wäre, das passwort in der protokolldefinition nicht zu dokumentieren... ist aber auch net so geil :D
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de