RSA TCP verbindung

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von nick2011.

    RSA TCP verbindung

    Hey Leute,
    ich habe schon lange nicht mehr mit vb Auseinandergesetzt.
    Jetzt bräuchte ich für ein Schulprojekt wiedermal eure Hilfe.
    Kennt sich jemand mit der RSA Verschlüsselung mit CA's usw. aus?
    Für das Projekt müsste ich eine mit RSA verschlüsselte TCP Verbindung zu meinem Eigenen Server herstellen.
    Könnte jemand Beispielcode dazu bereitstellen, der sich damit bereits auskennt?

    Mit freundlichen Grüßen
    Hey Danke für die schnelle Antwort. Sorry für den Falschen Tag

    Die RSA verschlüsselung habe ich im prinzip verstanden. Das Problem welches ich habe ist wie ich VB dazu bringe mein Zertifikat zur verschlüsselung zu verwenden.
    Der TCP client hat funktioniert mit Kommunikation von und zum Server.

    nick2011 schrieb:

    Sorry für den Falschen Tag

    Und warum änderst Du den dann nicht, wenn Du schon weißt, dass er falsch ist? => Label angepasst.

    ~Trade

    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Nun, wenn dir die Funktionsweise von RSA bekannt ist, werfe ich dir zunächst mal ein paar Stichworte zu, mit denen du zum Ziel kommen solltest:

    RSACryptoServiceProvider,CryptoStream, Streams, NetworkStream, TCPClient, TCPListener, PrivateKey, PublicKey, Server-Client-Architektur.

    Und nun gebe ich dir mal etwas Kontext:
    Was du zunächst wissen musst, jegliche Netzwerkkommunikation baut auf der Server-Client-Architektur auf. Es gibt einen Server, der auf Anfragen wartet, und einen Client, der sich zum Server verbindet. In der .NET welt gibt es hierfür 2 praktische Klassen, den TCPListener, für den Server, und den TCPClient für den Client. Was beide Klassen gemeinsam haben ist der NetworkStream, der die beiden letztendlich auch verbindet, in den man die nötigen Daten hineinschreibt und auf der anderen Seite herausliest. Praktischerweise sind Streams in .NET in alle möglichen Richtungen steckbar, weswegen du also z.B. einen CryptoStream auf den NetworkStream stecken kannst, und so "on-the-fly" deine Daten verschlüsselst.

    Was du für die Verschlüsselung benötigst, ist der RSACryptoServiceProvider, dem du den PrivateKey und den PublicKey des anderen Rechners übergeben kannst. Dieser gibt dir dann ein Konstrukt, mit dem der CryptoStream dann RSA-Konform Daten die du hineinschreibst, ver- und entschlüsseln kann. Wenn du möchtest, könntest du natürlich auf dieses Konstrukt natürlich noch andere Streams draufstecken.