2012-04-07 5 views
0

Ich arbeite gerade an einem Chat-Raum vom Typ Client-Server. Ich werde direkt auf das Problem eingehen: Ich habe mit Benutzer-Passwörtern über SecureString zu tun, und ich habe Probleme beim Senden dieser Informationen an meine Server-Anwendung (über System.Net.Sockets). Ich bin mit dem Umgang mit dem SecureString mit der Klasse "Marshal" ziemlich erfolgreich gewesen, aber das Senden von einem Client an seinen Server scheint fast unmöglich zu sein, je nachdem wie er gehandhabt wurde. Ich suche nun seit ein paar Tagen im Internet, ob es überhaupt möglich ist, einen SecureString über die Leitung zu schicken, ohne ihn im Klartext zu "belichten".Einen SecureString an einen Remote-Server senden - Ist das möglich?

Im Grunde bin ich nur fragend, ob es eine Möglichkeit gibt, irgendeine Art von Information von einem SecureString zu bekommen, die in ein Byte [] umgewandelt werden kann und genug verstanden wird, um das Passwort darin zu erhalten.

Antwort

0

Jedes Mal, wenn Sie einen Schlüssel auf der Clientseite haben, haben Sie die Möglichkeit für den Benutzer selbst, diesen Schlüssel zu erhalten. Wenn sie den Datenverkehr eines anderen Benutzers abfangen können, liegt ein Problem vor, da sie mit diesem Schlüssel entschlüsseln können, was auch immer Sie an den Server senden.

So könnten Sie einen separaten Schlüssel für jeden Client erstellen. Aber jetzt haben Sie eine Menge lästiger Overhead, der die Entschlüsselungsschlüssel auf dem Server nachschlägt.

Warum nicht einfach https verwenden?

+0

Vielen Dank für die schnelle Antwort! Ich habe HTTPS eigentlich in Betracht gezogen - nur ziemlich unvertraut. Wenn ich Verschlüsselung nicht völlig falsch verstehe, müsste man herausfinden, wie der Schlüssel (algorithmisch) verwendet wird. Es wäre eine viel schwierigere Aufgabe, als nur ein Klartextpasswort auszuspionieren. Aber ich werde sicherlich in https schauen - Mein Professor schlug vor, in SecureString zu schauen, deshalb hatte ich speziell nach SecureString gefragt. Ist https ziemlich einfach zu implementieren? –

+0

Im Allgemeinen ganz einfach, ja .... es klingt wie eine Web-App, in diesem Fall würden Sie einfach ein sicheres Zertifikat auf Ihrem Server (IIS?) Installieren und es so konfigurieren, dass Sie von https: // was auch immer auf Ihre App zugreifen können .com statt http://whatever.com. Hier ist eine Google-Suche, die Sie auf Ihrem Weg unterstützt: http://www.google.com/search?client=safari&rls=de&q=install+secure+certificate+iis&ie=UTF-8&oe=UTF-8. Wenn dies jedoch Hausaufgaben sind, können Sie es möglicherweise nicht verwenden, wenn Sie ausdrücklich möchten, dass Sie ein Problem selbst lösen, das die Verwendung von HTTPS leicht umgehen könnte. –

+0

Es ist eine WPF-Anwendung, die über http mit einem Webdienst kommuniziert. Ich habe schon gegoogelt, habe nur deine Meinung dazu gefragt. Und das ist ein Abschlussprojekt für den Hochschulabschluss. Ich habe es bereits abgeschlossen - ich versuche nur einige zusätzliche "Funktionen" wie Sicherheit hinzuzufügen. Ich hatte den Rat meines Professors gefragt, das ist alles - es interessiert ihn nicht so oder so. Danke für Ihre Hilfe! Sehr geschätzt. –

Verwandte Themen