2011-01-04 6 views
0

Ich entwerfe Authentifizierung und Sicherheit für eine verteilte Anwendung.Mit verteilten Komponenten sicher sprechen

Die Anforderungen sind: -

1) Das sind zwei verteilte Komponenten A und B A und B wird immer in Windows-Umgebungen installiert. A und B können in zwei verschiedenen Windows-Domänen installiert werden, die sich nicht gegenseitig vertrauen.

2) A und B verwenden WCF für die Kommunikation.

A und B sollten sich gegenseitig authentifizieren und Daten sicher austauschen können.

Wie kann dies erreicht werden?

Die möglichen Lösungen sind: -

a) Implementieren eines CA, stellen Zertifikate für A und B beide dieser Zertifikate, die von RootCA unterzeichnet werden. Aber diese Lösung beinhaltet uns eine CA zu implementieren, die zu teuer ist

b) Implementieren Sie eine Schlüsselerzeugung Dienst auf A.

Dies würde wie folgt aussehen: -

CreateSymmetricKey (string username, string Passwort);

A und B hätten ein selbstsigniertes Zertifikat. Die zwischen A und B ausgetauschten Daten werden mit dem selbstsignierten Zertifikat gesichert. Die Authentifizierung erfolgt über Benutzername und Passwort.

Dies würde einen symmetrischen Schlüssel generieren. Sowohl A als auch B würden diesen Schlüssel unter Verwendung eines lokalen sicheren Speichers speichern.

Dieser symmetrische Schlüssel würde für die Verschlüsselung und Authentifizierung für die Kommunikation zwischen A und B vorschlagen

Können Sie andere Möglichkeiten, in denen verwendet werden, dies funktionieren könnte?

Danke, Vivek

Antwort

1

Eine CA ist nicht so teuer. Windows Certificate Server ist in die Server-Betriebssysteme integriert und kann configured sein, um eine gehostete Internet-Sperrliste zu erstellen. Alternativ können Sie makecert bis create a root certificate verwenden, X509-Zertifikate aus diesem Stamm generieren und dann eine CRL generieren, die Sie manuell laden können in den Zertifikatsspeicher auf dem Hosting-Server.

Sie benötigen eine CRL eines beliebigen Typs, um WCF glücklich zu machen.

+0

Mit teuer meinte ich es ist teuer zu entwickeln und pflegen Code-Basis für die Umsetzung einer CA-Lösung für meine Anwendung maßgeschneidert. –