
Ich möchte also asynchrone, getrennte Nachrichtenübermittlung über das Internet mit WCF durchführen. Wahrscheinlich aufgrund meines Hintergrunds mit Apache ActiveMQ ziehe ich hierfür MSMQ in Betracht.
In ActiveMQ war es ganz einfach, eine Warteschlangenverbindung zu verschlüsseln. Sie wählten einfach eine SSL-basierte Verbindung zum Broker und verfügten über eine grundlegende SSL-Schicht zum Schutz Ihrer Kommunikation zwischen dem Broker und den Clients. (Sollte ich die Verwendung von WCF-Clients mit einem ActiveMQ-Broker in Betracht ziehen?)
Wenn ich bei Google nach MSMQ-Verschlüsselung und MSMQ SSL suche, finde ich nichts Vergleichbares. Hoffentlich übersehe ich einfach etwas?
Ich habe einige ziemlich verworren aussehende Sachen über die Verschlüsselung von Nachrichten gefunden, Dinge, die in Bezug auf die Verwendung von HTTPS nicht zu stimmen scheinen, und Dinge, die ein Active Directory erfordern – aber ich möchte die gesamte Kommunikation schützen, nicht nur die Nachrichten, und wir möchten HTTPS nicht als Bindung verwenden, da wir einen getrennten Betrieb benötigen und kein Active Directory zum Arbeiten haben.
Wie geht man dabei am besten vor?
Antwort1
Tuthttp://blogs.msdn.com/motleyqueue/archive/2007/10/06/complementing-msmq-security-with-wcf.aspxirgendeine Relevanz haben? Es scheint auf eine Einstellung hinzuweisen, die auf Transportebene zu liegen scheint, und schlägt auch eine Nachrichtenverschlüsselung vor.
Antwort2
OK, endlich habe ich einen Hinweis zur MSMQ-Verschlüsselung außerhalb von Active Directory gefunden. Hier ist der Link. Wenn Sie die Dokumentation erst einmal gefunden haben, ist es nicht schwer!
So verwenden Sie die Nachrichtenverschlüsselung mit MSMQ, ohne Active Directory zu verwenden.
http://msdn.microsoft.com/en-us/library/aa395200.aspx
Von TFA:
Demonstriert
Der Client verschlüsselt die Nachricht mit dem öffentlichen Schlüssel des Dienstes und signiert die Nachricht mit seinem eigenen Zertifikat. Der Dienst, der die Nachricht aus der Warteschlange liest, authentifiziert das Client-Zertifikat mit dem Zertifikat in seinem vertrauenswürdigen Personenspeicher. Anschließend entschlüsselt er die Nachricht und sendet sie an den Dienstvorgang.
Da die Windows Communication Foundation (WCF)-Nachricht als Nutzlast im Textkörper der MSMQ-Nachricht übertragen wird, bleibt der Textkörper im MSMQ-Speicher verschlüsselt. Dadurch wird die Nachricht vor unerwünschter Offenlegung geschützt. Beachten Sie, dass MSMQ selbst nicht weiß, ob die übertragene Nachricht verschlüsselt ist.
Das Beispiel zeigt, wie die gegenseitige Authentifizierung auf Nachrichtenebene mit MSMQ verwendet werden kann. Die Zertifikate werden Out-of-Band ausgetauscht. Dies ist bei Warteschlangenanwendungen immer der Fall, da der Dienst und der Client nicht gleichzeitig aktiv sein müssen.
Beschreibung Der Beispielclient und -dienstcode sind bis auf einen Unterschied mit dem Beispiel für die transaktive MSMQ-Bindung identisch. Der Operationsvertrag ist mit der Schutzstufe versehen, was darauf hindeutet, dass die Nachricht signiert und verschlüsselt sein muss.