2011-01-16 14 views
1

Ich entwickle ein Projekt, das aus einem Webservice und einer Client-Anwendung besteht. Es ist ein faires einfaches Szenario. Der Webservice ist mit einem Datenbankserver verbunden, und der Client verwendet den Webserver, um Informationen aus der Datenbank abzurufen.WebService Security

Die Sache ist: 1. Die Client-Anwendung kann Daten nur nach einer vorherigen Authentifizierung anzeigen; 2. Alle zwischen dem Web Service und den Clients übertragenen Daten müssen vertraulich sein. 3. Datenintegrität sollte nicht beeinträchtigt werden;

Ich frage mich, was der beste Weg ist, um diese Anforderungen zu erfüllen. Das erste, worüber ich nachdachte, war, dem Server eine digitale Signatur zu schicken, die ein Client-Zertifikat enthielt, das auf dem Server gespeichert und als Vergleich für die Authentifizierung verwendet wurde. Aber ich habe ein wenig über die Sicherheit von Webdiensten geforscht und bin mir nicht mehr sicher, ob dies die beste Option ist.

Kann mir jemand eine Meinung dazu geben?

TIA

Antwort

2

Sie sollten ein bekannt gutes Schema verwenden, um diese Art von sicherer Verbindung zu erreichen: SSL. Wenn die von Ihnen verwendeten Technologien (Programmiersprachen, Bibliotheken usw.) ein bekanntes SSL-Muster aufweisen, verwenden Sie dieses.

Wenn Ihre Sitzung sicher ist, benötigen Sie keine zusätzliche Datenverschlüsselung. Die neuesten Versionen von SSL sind nach heutigen Standards ziemlich stark.

Im Falle einer C# -Anwendung würde ich WCF mit SSL verwenden.

Ihr Kunde braucht sie können zu wissen, Vertrauen Sie dem Server, also benötigen Sie ein Serverzertifikat. Wenn Sie mit einem Client, der nur ein Kennwort benötigt, um auf diese Daten zugreifen zu können, einverstanden sind, benötigen Sie keine Client-Zertifikate.

1

Die gesamte Kommunikation zwischen dem Client und dem Webdienst sollte verschlüsselt sein. als die Stärke kommt von der Art, wie Sie mit Verschlüsselungsschlüsseln umgehen.

microsoft's wcf hat Nachrichtenauthentifizierung mit Zertifikaten und anderen Optionen.

Sie können einen Signaturalgorithmus (wie md5) verwenden, um die "Daten" zu signieren, die Sie an den Client senden (innerhalb der Nachricht), aber ein Angreifer kann das auch tun, also wäre eine stärkere Option öffentliche private Schlüssel, um die Daten mit den Signaturen zu verschlüsseln ... aber jetzt müssen Sie die privaten Schlüssel schützen.

Wie wichtig sind Ihre Daten?

+0

Da Sie die Formularauthentifizierung erwähnt haben, gehen Sie davon aus, dass der Client eine Webseite ist. Sie hat C# erwähnt, also denke ich, dass es eine Desktop-Anwendung ist. –

+0

Ich weiß - danke, das habe ich gemerkt, nachdem ich die Antwort gepostet und jetzt geändert habe .. zu müde ... muss schlafen. – Dani

+0

Es ist eine Desktop-Client-Anwendung. – LauzPT