Was ist der einfachste Weg, um Verschlüsselung in WCF zu implementieren, wenn Sie netTcpBinding verwenden?

8

Ich implementiere einen WCF-Dienst, der (teilweise) in einem privaten LAN verwendet wird.

Ich werde netTcpBinding verwenden und möchte eine Art von Sicherheit in der Kommunikation implementieren, genauer gesagt, es ist wichtig, dass die Daten verschlüsselt werden, damit (zum Beispiel) niemand die Daten sehen kann, die über das Netzwerk übertragen werden / p>

Ich glaube nicht, dass die Windows-Authentifizierung angemessen ist, da der Endbenutzer seine Windows-Logins und -Rollen nicht streng genug verwalten kann, um sie als Authentifizierung zu verwenden. Habe ich recht, wenn ich denke, dass das unangemessen wäre? Bitte korrigieren Sie mich, wenn ich falsch liege.

Meine Frage ist: Was ist der einfachste Weg, die Verschlüsselung in einem WCF-Dienst mithilfe von netTcpBinding zu implementieren? insbesondere, wenn der Windows-Anmeldeinformationstyp nicht verfügbar ist.

Ich habe versucht, mit Zertifikaten zu experimentieren (meine eigene mit makecert erzeugen), aber es gibt einen deutlichen Mangel an Tutorials und Dokumentation, die beschreiben, wie man das von Anfang bis Ende mit TCP macht und den Dienst in etwas anderem als IIS hostet. Viele von ihnen erklären Ihnen, wie Sie die Zertifikate im Detail erstellen (und keine zwei dieser Tutorials sind in dieser Hinsicht genau gleich) und beenden Sie mit etwas wie

  

verwenden Sie diese, um den Service und den Client zu signieren

... nun, leider ist das der Prozess, den ich ein wenig mehr Aufklärung brauche!

Im Allgemeinen scheint die Zertifikatslösung übertrieben und ein bisschen zu viel zu sein, um verschlüsselte Daten zu erhalten!

Jede Hilfe oder Korrekturen in irgendwelchen Annahmen, die ich gemacht habe, würde wirklich geschätzt werden.

    
Lewray 04.05.2011, 12:41
quelle

1 Antwort

2

Nach der Diskussion in den Kommentaren ...

Nach meiner Erfahrung (und ich habe viele Serialisierungs- / WCF-Arbeiten gemacht) ist der Leistungsvorteil von NetTcpBinding (und NetDataContractSerializer) weitgehend mythisch. Ich habe noch nie einen signifikanten Unterschied gesehen - und oft sind Vanilla-HTTP-Bindungen schneller.

Ich würde zu BasicHttpBinding über SSL wechseln, was einfach einzurichten und sicher ist.

Wenn Sie verbesserte Leistung usw. wünschen, würde ich den Serializer auf etwas wie protobuf-net umstellen (Offenlegung: Ich bin der Autor). Dieses hat einfach Leistungsvorteile gezeigt und funktioniert gut in WCF (nur eine Änderung an einer Konfigurationsdatei), besonders gegenüber BasicHttpBinding (mit einem Extra-Boost, wenn Sie die MTOM-Nachrichtencodierung aktivieren, da es sich um ein Binärformat handelt.)

Persönlich verwende ich nie NetTcpBinding; Wie bereits erwähnt, die Leistung ist fraglich, und es wird Sie abhängig von Dingen, die nicht funktionieren in Basic-http, wenn Sie feststellen, Sie benötigen WAN-Zugang.

    
Marc Gravell 04.05.2011 14:47
quelle

Tags und Links