2008-09-08 9 views
2

Ich arbeite gerade an einem Projekt, bei dem verschlüsselte Daten zwischen WCF-Hosts ausgetauscht werden müssen. Nach meinem Verständnis gibt es nur zwei Möglichkeiten, um sicherzustellen, dass Daten, die über WCF übertragen werden, sicher sind.Andere Möglichkeiten zum Verschlüsseln von WCF-Verbindungen

  1. Verwenden von Zertifikaten
  2. eine Domain (oder den gleichen Benutzernamen und das Passwort im Netzwerk auf jeder Maschine mit)

Zertifikate verwenden kann teuer und kompliziert zu verwalten, und da wir nicht garantiert eine Server-Klasse Maschine bei jeder Bereitstellung eine Domain ist auch nicht in Frage. Es ist auch problematisch, wenn jeder Computer den gleichen Benutzernamen und das gleiche Passwort verwendet, wenn das Passwort jemals geändert werden muss.

Momentan verwenden wir OpenSSH, um unsere Verbindungen zwischen Hosts zu tunneln. Gibt es eine andere Option in das Framework, von der ich nichts weiß?

+0

Ich bin auch neugierig auf die Antwort darauf; Gibt es einen Grund, warum SSH-Tunneling nicht ausreicht? – Luke

+0

Welche Art von Bindung verwenden Sie? – Kearns

+0

Momentan verwenden wir die net.tcp-Bindung, aber jede Bindung wäre in Ordnung. SSH ist nicht ausreichend, es ist nur kompliziert, Setup auf Client-Rechnern – Mykroft

Antwort

0

Wenn Sie einen HTTP-Endpunkt verwenden, können Sie einen sicheren Transport wie HTTPS verwenden.

+0

zu bekommen Das erfordert immer noch Zertifikate ... – NotMe

0

Verwenden Sie die herkömmliche Verschlüsselung der Daten, die Sie im WCF-Container ablegen. Vielleicht so etwas wie folgt aus:

http://www.obviex.com/samples/EncryptionWithSalt.aspx

+0

Wir haben dies in Betracht gezogen, aber starke Typisierung der Funktionen beibehalten, die es auf einer viel niedrigeren Ebene passieren muss. – Mykroft

2

Verschlüsselung erfordert einen Schlüssel. Schlüssel werden normalerweise als Zertifikate implementiert. Wenn Sie beide Seiten der Kommunikation besitzen, können Sie Ihr eigenes Zertifikat kostenlos erstellen, ohne eines von einer vertrauenswürdigen Stammautorität kaufen zu müssen.

0

Die billigste Methode ist wahrscheinlich, Ihre eigene Zertifizierungsstelle zu betreiben. Das bedeutet, Sie haben die vollständige Kontrolle über die Zertifikate, müssen aber nicht für die externe Zertifizierung bezahlen. Wenn Sie dies entsprechend automatisieren, können Sie jeder Maschine in Ihrem Netzwerk eine kryptografische Identität geben und Ihre lokale Zertifizierung verwenden, um alles miteinander zu verbinden.

+0

Ich würde nicht sagen, das ist die billigste Methode. Wir haben darüber nachgedacht, aber es hätte einen gewissen Ton für die Einrichtung und Wartung genommen. – Mykroft

1

Hier ist ein alternative. Funktioniert ohne IIS und SSL/X509-Zertifikate.