Наша архитектура представляет собой простую модель N-уровня, которая состоит из приложения ASP.Net, расположенного в IIS7 (размещенного в DiscountASP), которое предоставляет методы для службы WCF. Эти методы общаются с БД с помощью EF4. Клиенты в Silverlight 4.0.
Три важных момента:
Аутентификация и аутентификация не являются проблемой - звонки в
анонимные , и мы не заботимся о личности
вызывающий абонент.
Данные, передаваемые в вызовах методов, в не чувствительны .
Мы просто хотим убедиться, что никто не может делать звонки.
Поправьте меня, если ошиблись:
Защита сообщений невозможна, поскольку она не поддерживается в Silverlight.
Безопасность транспорта (сертификаты HTTPS и x.509 / SSL) также нельзя выполнить в Silverlight
Итак, шаги, которые мы предпринимаем для обеспечения некоторого уровня безопасности:
Секретный ключ жестко запрограммирован на один из DLL в XAP.
Эта DLL-библиотека закодирована, поэтому ее нельзя перепроектировать.
Секретный ключ отправляется в качестве параметра всем методам обслуживания.
звонки.
В начале каждого метода сверяйте секретный ключ с
оригинальное сидение в БД.
Удалите конечную точку MetaDataExchange из службы.
Учитывая эту минимальную настройку и ее множество недостатков, самым большим недостатком, вероятно, является тот факт, что передача не защищена (HTTP), и секретный ключ открыт. Итак, вопросы:
Если злонамеренный пользователь хочет нанести вред нашей системе, сколько усилий он должен приложить, чтобы извлечь секретный ключ, найти, какие методы раскрыты, и начать их вызывать?
Существуют ли другие WCF-комбинации, которые могут обеспечить базовую защиту учетных данных при каждом вызове (без HTTPS или сертификатов)?