2009-08-14 16 views
2

Ich bin besorgt über MITM-Angriffe in der Silverlight-Anwendung, die ich schreibe. Die Seite wird über SSL laufen. Wenn meine Site Opfer eines MITM-Angriffs ist, ist meine einzige Verteidigung im Moment die Warnseite, die der Browser anzeigt, wenn das Zertifikat der Site nicht vertrauenswürdig ist. Da es nur ein Browser ist, ist es das Beste, den Benutzer einfach zu warnen und dann trotzdem durchzulassen. Benutzer können klick glücklich sein und neigen dazu, Dinge nicht zu lesen. Daher werden sie wahrscheinlich diese Warnung lesen, ihren Kopf kratzen und auf der Seite weitermachen. Mein Gedanke war, dass ich, da ich eine robuste Silverlight-Anwendung schreibe, in der Lage sein sollte, entweder zu erkennen, ob der Browser einen Zertifikatfehler sieht, oder die gleiche Überprüfung durchzuführen, die der Browser durchführt. Wenn ich dann feststelle, dass ein Problem vorliegt, kann ich einfach meine gesamte App sperren, sodass der Benutzer dem MITM keine kritischen Informationen zur Verfügung stellt. Das Problem, das ich habe, ist, dass ich nicht die richtigen Klassen in Silverlight's begrenzter Teilmenge von .NET finden kann, um zu tun, was ich tun muss. Weiß jemand, wie ich dieses Ziel erreichen kann?Wie überprüfe ich das Zertifikat des Host-Servers in Silverlight?

Antwort

0

Das ist meines Wissens nicht möglich - Silverlight nutzt den Netzwerk-Stack des Browsers und verlässt sich daher auf seine Netzwerkwarnungen und Sicherheitsinfrastruktur.

Silverlight 3 hat einen neuen Netzwerkstack hinzugefügt, aber ich glaube, dass das gleiche gilt: Das Zertifikat des Hostservers wird validiert, wenn die .xap (Silverlight-Anwendung) vom Browser heruntergeladen wird mit in Code.

+0

Ok, so bin ich der Validierung des Browsers ausgeliefert. Sehen Sie einen Weg, das gleiche Ziel im Grunde zu erreichen (MITM zu verhindern), indem Sie eine andere Technik verwenden? – Hydroslide

0

IMHO Sie können das lokal gespeicherte Zertifikat prüfen, da der Browser nach der SSL-Anfrage eine Kopie davon speichert. Auschecken this Artikel. Ich hoffe, es wird Ihnen einige Hinweise geben

+0

Diese Antwort funktioniert nicht oder trifft nicht auf Silverlight zu, da der Artikel, auf den verwiesen wird, für das vollständige .NET-Framework bestimmt ist. Silverlight Sandbox schließt diese Art von Zugriff aus. –