Как проверить сертификат хост-сервера в Silverlight?

Я обеспокоен атаками MITM в приложении Silverlight, которое я пишу. Сайт будет работать по SSL. Если мой сайт является жертвой атаки MITM, насколько я знаю, моя единственная защита сейчас - это страница с предупреждением, которую браузер отображает, когда сертификат сайта не заслуживает доверия. Поскольку это всего лишь браузер, лучшее, что он может сделать - просто предупредить пользователя, а затем пропустить его. Пользователь может быть счастливым, и, как правило, не читает вещи. Поэтому, скорее всего, они прочтут это предупреждение, поцарапают голову и перейдут на сайт. Я думал, что, поскольку я пишу надежное приложение Silverlight, я должен иметь возможность либо обнаружить, видит ли браузер ошибку сертификата, либо выполнить ту же самую проверку, которую выполняет браузер. Тогда, если я определю, что есть проблема, Я могу просто заблокировать все мое приложение, чтобы пользователь не предоставил MITM никакой важной информации. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти нужные классы в ограниченном подмножестве Silverlight .NET, чтобы делать то, что мне нужно. Кто-нибудь знает, как я могу достичь этой цели, или по-другому обойти эту проблему?

2 ОТВЕТА
РЕШЕНИЕ

Насколько я знаю, это невозможно - Silverlight использует сетевой стек браузера и в результате полагается на сетевые предупреждения и инфраструктуру безопасности.

Silverlight 3 добавил новый сетевой стек, но я полагаю, что в целом это применимо: сертификат вашего хост-сервера проверяется, когда браузер загружает .xap (приложение Silverlight), а не то, с чем вы можете проверить или взаимодействовать в коде.

0
17.08.2009 19:53:52
Итак, я во власти проверки браузера. Видите ли вы какой-либо способ по существу достичь той же цели (предотвращение MITM), используя другую технику?
Hydroslide 21.08.2009 14:43:36

ИМХО Вы можете проверить сертификат, который хранится локально, так как браузер сохранит его копию после запроса SSL. Проверьте эту статью. Я надеюсь, что это даст вам несколько советов

0
17.08.2009 19:59:21
Этот ответ не работает и не применяется к Silverlight, так как ссылка на статью предназначена для полной .NET Framework; Песочница Silverlight исключает такой доступ.
Jeff Wilcox 18.08.2009 05:36:46