2009-04-07 8 views
0

Dies ist die Situation: Ich habe einen Webservice ohne SSL, die zwei Seiten für die andere Webanwendung bietet. Wenn der Benutzer diese Seiten übermittelt, wird eine XML-Datei mit privaten Informationen an den Webservice gesendet.Kommunikation zwischen Web-Anwendungen, 1 SSL-Zertifikat, andere hat keine

Wie kann ich den erforderlichen Datenschutz für die XML-Datei bereitstellen? Ist das eine Zertifikat gut genug, um die entsprechende Sicherheit zu geben?

Ich bin über dieses man nicht sicher, und ich bin in der Vorbereitungsphase eines Projekts ... So müssen die beteiligten Arbeit an diesem Teil wissen ...

Antwort

0

Als Alternative zu SSL können Sie die Datei selbst mit einem der verfügbaren Algorithmen in System.Security.Cryptography verschlüsseln, aber dann müssen Sie einen Mechanismus zum Austausch Ihres Schlüssels ausarbeiten.

Allerdings ist der einfachste Weg, beide Web-Services mit SSL-Endpunkten zu haben. Das wird auf einen Schlag alle Ihre Vertraulichkeits-, Integritäts- und Identitätsüberlegungen berücksichtigen.

+0

Hmmm, ich denke, Sie haben recht, was die SSL-Endpunkte angeht, aber diese kosten Geld für kommerzielle Unternehmen, oder? Denn dann müsste ich fragen, ob sie darin investieren wollen. – Rickjaah

+0

Ja, sie tun es aber bei etwa 100 USD oder so, und sie sind ziemlich billig, wenn man die Entwicklungszeit betrachtet, die man für eine Alternative braucht. Sie können auch selbst signierte Zertifikate kostenlos mit makecert oder openssl erstellen. In diesem Fall müssen Sie dem Zertifikat des anderen vertrauen. – sipwiz

0

Zertifikate werden an den Hostnamen des gebunden Server (oder mit Platzhalterzertifikaten alle Hosts in einer Domäne). Wenn sich die beiden Dienste auf demselben Host befinden, können beide das gleiche Zertifikat verwenden.

Wenn sie sich nicht auf demselben Host befinden, gibt es keine Transportsicherheit für den Nicht-SSL-Dienst, sofern dieser nicht separat hinzugefügt wird. WCF unterstützt die Verschlüsselung von Nachrichten (oder Teilen von Nachrichten).

+0

Hmmmm, danke für die Antwort. Leider muss ich .NET 2.0 gemäß den Unternehmensrichtlinien verwenden. Aber ich könnte System.Security.Cryptography verwenden. – Rickjaah

+0

Vorausgesetzt, .NET 3 und 3.5 sind .NET mit zusätzlichen Bibliotheken/Compiler aber die gleiche Laufzeit wert Chipping weg "Blockade um ihrer selbst willen" (vor allem, wenn Sie sagen können: würde habe eine einfache Lösung für dieses Problem). Angesichts der Einschränkung: Angebotspreis für zweites Zertifikat. – Richard

0

Die einfachste Lösung ist sicherlich die Verwendung von TLS, ex-SSL (weit verbreitet in jeder Programmiersprache unterstützt).

Es besteht keine Notwendigkeit, ein Zertifikat zu kaufen (und es bringt keine zusätzliche Sicherheit, es ist vor allem da, um PHBs besser zu fühlen): entweder selbstsignierte Zertifikate erstellen oder eine eigene CA einrichten.