Я прочитал много, много и много статей о безопасности WCF и т. Д., Но я действительно не понимаю, какой метод защиты моего программного обеспечения является лучшим.
Проблема: в моем клиентском программном обеспечении [CS] естьпозвонить в мой веб-сервис [WS].CS вызывает функции WS в течение рабочего времени много раз, потому что, когда пользователь нажимает на элемент в списке, пользователь хочет видеть некоторую подробную информацию, которая хранится на моем сервере и которая часто обновляется.При добавлении к этой CS во время выполнения отправляйте в WS много информации для обновления статистики (и проверки лицензии в порядке).
зачем внедрять безопасность: - CS будет иметь платную подписку, чтобы использовать ее, поэтому я должен защищатьопять пиратство.- WS отправляет в CS горячую информацию, которую больше никто не должен принимать.- CS отправил горячую информацию в WS.WS хранит его, и я хочу, чтобы «Человек посередине» отправлял вредоносную информацию
. Очевидно, я хочу, чтобы каждое отправленное / полученное сообщение было УНИКАЛЬНЫМ, чтобы никто не мог снова отправить сообщение на WS.
Запрос: - Клиент должен убедиться, что WS является официальным WS, а не взломанный прокси / эмуляция WS - WS должен знать, кто CS, отправляющий сообщение, чтобы он мог проверять номера лицензий / подписок и возвращать результаты на основена счет.
Какую стратегию выбрать?
Ограничения: - Вероятно, изначально я не могу купить действительный сертификат SSL (но я сделаю это, если кто-то купит мою подписку) - WSбудет на общем хостинге Windows (так что я думаю, что нет SSL)
Я читал о безопасности транспорта, безопасности сообщений и их гибрид.но какое свойство устанавливать?какой метод аутентификации используете?"Сертификат х.509"?«Безопасный токен-сервис»?"Имя пользователя"?
спасибо всем!
ОБНОВЛЕНИЕ: Спасибо JonoW!Хорошо, я могу позволить себе VPS ... но не настоящий сертифицированный сертификат ... я думаю, мне не нужен настоящий сертификат.чтобы подтвердить лицензию, я могу заставить CS отправлять обработанный серийный номер, полученный из аппаратных серийных номеров ... мне просто нужно, чтобы клиент не использовал программное обеспечение одновременно на нескольких ПК.поэтому, если кто-то клонирует / украл учетные данные другого пользователя, я заблокирую учетную запись или автоматически сброслю пароль пользователя.
Проблема заключается только в том, чтобы не допустить, чтобы кто-то эмулировал «это имя пользователя / пароль / серийный номер имеют действующую лицензию»сообщение моего WS и отправка его с поддельного WS, чтобы никто не отправлял вредоносные данные на мой WS, выдавая себя за другого клиента ... Как вы думаете, SSL и Verisign сертификат - единственный путь?Почему «Служба безопасного токена» или «Имя пользователя / пароль» не очень хорошая идея?