Zum Inhalt springen

Chat mit Tunnelfunktion


Kerpal

Empfohlene Beiträge

Hallo wer auch immer sich grade hier rumtreibt !

Ich habe eine Frage zu einem Projekt das Ich seid kurzem gestartet habe.

Ich wollte einen Chat aufbauen der die Standartfunktionen besitzt die ihr alle von Programmen wie ICQ ect. kennt.

Das ist mir gelungen jedoch wollte ich das ganze mit einer Tunnel Funktion versehen damit Firewalls dieses Programm nicht mehr blockieren.

Der Chat ist schon mit dem Prinzip der RSA Verschlüsselung für die Nachrichten versehen.

Das ganze sollte über SSL laufen.

Problem:

Ich finde keine vernünftige Beschreibung zu dieser Thematik.

Ich hoffe ihr könnt euer Wissen hier walten lassen und mir einen Tipp geben bzw. mich verweisen auf Informationen die mir weiterhelfen zum Thema tunneling.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sprache : Java mit Socket Programmierung + RSA Crypt

Protokoll : TCP

kurz : TCP Chat Programm (GUI)

Und mir ist bewusst das Firwalls diese Aufgabe haben.

Ich habe nur Intresse an dem Thema, da es eine neue Wissenserweiterung für mich ist.

Desweitern wirkt sich das ganze positiv in der Verbindung ect. aus.

Die Verschlüsselung ist dann eine Form von Sicherheit per private und public key.

Also wenn Du oder jemand aus der Community einen Tipp für Literatur hat, so wer das hilfreich. ( zur Thematik tunneling )

Der Tunnel dient nur der Übertragung von Strings, kurz dem was der andere User geschrieben hat.

Das ganze ist mit einer Multi Session versehen so das mehrere User gleichzeit Connecten und sich unterhalten können.

MFG : Kerpal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Aufbau , davon bin ich ausgegangen, sollte klar sein.

Chat -> Server <- Chat

Ich wollte nur Wissen ob jemand eine Idee hat wo man sich über das Thema belesen kann.

Damit Ich dann auch eine Möglichkeit habe das ganze zu realisieren.

Ich möchte nicht unhöflich wirken aber , so dachte ich zumindest, Ich hatte nur um einen Verweis auf Informationen zu der Thematik gebeten.

Ich denke das nicht viele Leute sich mit dem Thema beschäftigen und somit bin ich davon ausgegangen das ein gewisser Teil des Forums eine Idee hätte wo man solche Information zu dem Thema finden kann.

Und nein Ich bin kein kleiner Junge der versucht Unsinn mit einem Tunnel zu betreiben.

mfg : Kerpal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Aufbau , davon bin ich ausgegangen, sollte klar sein.

Chat -> Server <- Chat

Das wäre ja schon mal die Grundlage, d.h. Du hast irgendwo zentral einen Server stehen und der Client connected auf einem Port.

Ich wollte nur Wissen ob jemand eine Idee hat wo man sich über das Thema belesen kann.

Damit Ich dann auch eine Möglichkeit habe das ganze zu realisieren.

Im Grunde brauchst Du da nicht viel realisieren, denn jeder SSH Client kann man so etwas ohne Probleme selbst realisieren.

SSH: Port Forwarding

Ich möchte nicht unhöflich wirken aber , so dachte ich zumindest, Ich hatte nur um einen Verweis auf Informationen zu der Thematik gebeten.

Du solltest erst einmal lernen das Problem so zu beschreiben, dass man einen Ansatz hat Informationen zu geben. Zu sagen ich habe einen Chat und will einen Tunnel aufbauen ist sehr dürftig. Denn wenn man z.B. die Chatfunktion via P2P realisiert hätte, dann hätte man andere Probleme, da auch ein ServerSocket vorhanden sein muss.

Ich denke das nicht viele Leute sich mit dem Thema beschäftigen und somit bin ich davon ausgegangen das ein gewisser Teil des Forums eine Idee hätte wo man solche Information zu dem Thema finden kann.

Ein Tunnel ist erst einmal nichts anderes als eine entsprechende Verbindung zwischen 2 Punkten, nur dass eben Daten innerhalb dieser Verbindung an einen anderen Port weiter geleitet werden. Technisch gesehen eben ein lokaler ServerSocket und remote ein Clientsocket, mit entsprechender Informationen wohin die Pakete geschickt werden sollen.

Ich sehe in Bezug auf den Chat überhaupt keinen Sinn eines Tunnels, denn wenn Du eh die Daten verschlüsselst, dann hast Du eine gesicherte Verbindung und den Port auf dem connected wird kann man frei wählen, so dass ich die Daten z.B. über den HTTP Port ohne weiteres an den Server senden kann. Der Server muss nur entsprechend die Verbindungen ermöglichen.

Bearbeitet von flashpixx
Link zu diesem Kommentar
Auf anderen Seiten teilen

Gut also ich verstehe das es nicht genau beschrieben wurde von mir.

Ich habe einen Client einen Server geschrieben in der Sprache Java, der Tunnel ist ein Thema durch den ich nur meine Skills erweitern will.

Der Server ist ein Knotenpunkt der mit einer Datenbank verknüpft zur Verwaltung der User genutzt wird ( an/abmeldung , name vom User und weitere Funktionen ).

Das die Nachrichten verschlüsselt sind hält mich nicht davon ab einmal zu gucken wie das Prinzip von tunneling in Code Form auszusehen hat.

Also die Realisierung eines Tunnels mittels der Sprache Java.

Ich danke dir schonmal das du dir die Zeit genommen hast mir zu helfen bzw. das Problem zu erfassen.

Und du hast mir in gewisser Weise eine Anregung gegeben wie ich es realisieren kann.

mfg: Kerpal

Bearbeitet von Kerpal
Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Server ist ein Knotenpunkt der mit einer Datenbank verknüpft zur Verwaltung der User genutzt wird ( an/abmeldung , name vom User und weitere Funktionen ).

Naja was Du halt machen könntest direkt einen Tunnelmechanismus in Deinen Chat implementieren, d .h. der Client erzeugt lokal auf einem Port einen ServerSocket und alles was dort hin kommt sendet er an der Server, der einen ClientSocket an die entsprechende Adresse aufbaut und dann die Daten zurück liefert. Wenn Du es noch verschlüsseln willst, dann setz noch SSL dazu.

Tunneling ist kein Magic, man leitet nur die Daten von einem zum anderen Socket ohne sich um weitere "Details" zu kümmern

Link zu diesem Kommentar
Auf anderen Seiten teilen

Korrigiert mich, wenn ich falsch liege (bin kein Netzwerk- und Connection-"Guru"), aber kann es sein, dass ihr aneinander vorbei redet?

So, wie man das gemeinte "Tunneling" verstehen könnte, ist ein Tunnel doch nur eine Verbindung zwischen zwei Sockets...

Kann es sein, dass aber eher etwas in der Art wie "http tunneling" gemeint ist? Also das Abbilden einer eigentlich ganz anderen Verbindung über ein verschiedenes Protokoll?

Sprich: Ich habe eigentlich nur ein POJO, dass ich über einen Stream verschicken will, die Firewall blockt aber alles und ich muss über einen HTTP-Proxy gehen/ausweichen.

Ich "verpacke" die Daten, die ich senden will, also in einen HTTP-Request, der dann vom Proxy erkannt und durchgelassen wird, am anderen Ende aber vom Request wieder in ein POJO umgewandelt wird.

Ist das in etwa mit "tunneling" gemeint? Wenn ja, dann würde ich das Jetty-Projekt empfehlen. Der Jetty-HTTPServer bzw. -Client ist nämlich "embeddable" und kann im Code verwendet werden. Dann musst du dir nur überlegen, wie du die zu sendenden Daten geschickt in HTTP-Verkehr umwandelst und am Ende auch wieder zurückübersetzt.

Wenn ich das Thema verfehlt habe, ignoriert den Beitrag einfach. :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau so habe ich mir das vorgestellt du bist der erste der wirklich begriffen hat um was es mir geht. :uli

Aber egal ich habe nun eine möglichkeit gefunden es zu realisieren und es ist nun fertig ( "mit meinem Projekt") .

Danke für eure Vorschläge und das es so einfach ist, ist immer leicht gesagt :rolleyes: aber ohne nötiges Vorwissen ist dies schwierig und darum hatte ich um Empfehlungen für Tutorials oder Bücher gebeten :).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hast du dir die Lösung selbst zusammengefummelt oder doch noch Tutorials/Bücher gefunden?

Wenn du was gefunden hast, könntest du ja mal die URLs dazu hier rein posten oder selbst kleine Tipps geben, was einem bei der Umsetzung hilft. Wenn dann jemand per Google hierher findet, wird er zumindest eine Antwort erhalten. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...