Проверьте подлинность Сервиса WCF - PullRequest
1 голос
/ 03 января 2012

Я немного растерялся из-за аутентификации сервера WCF ...

Я пишу сервис WCF, к которому будут обращаться несколько клиентов. Я хочу убедиться, что клиентские приложения всегда подключаются к этому сервису, а не к какой-то обманной версии, реализующей один и тот же ServiceContracts.

Важное примечание : служба работает на сервере клиента и будет действовать как некая служба авторизации, позволяющая запускать одновременно только X клиентов (на других машинах). Поэтому я не хочу, чтобы эта служба была обойдена дубликатом, который всегда позволяет всем клиентам работать одновременно.

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

Служба будет работать на сервере клиента, поэтому они смогут запускать службы на нем. Служба будет действовать как некая служба авторизации, позволяющая запускать одновременно только X клиентов (на других машинах). Поэтому я не хочу, чтобы эта служба была обойдена дубликатом, который всегда позволяет всем клиентам работать одновременно.

Я что-то здесь упускаю (и я чувствую, что я есть)?

Ответы [ 2 ]

1 голос
/ 03 января 2012

Но как это остановит кого-либо от реализации мошеннической службы на том же компьютере, использующей тот же сертификат?

Прежде всего, если вы развернете службу, работающую с конфиденциальными данными на любоммашина ожидается, что у вас есть контроль над машиной.Клиент в основном проверяет, установлена ​​ли связь с доверенным сервером, и клиент считает, что вы сделали все возможное, чтобы обезопасить сервер.

Как это остановит кого-либо от злоупотребления вашим сервером?Вы защитите свой сервер и положите закрытый ключ для сертификата в правильное хранилище сертификатов.Только указанная учетная запись, на которой запущена ваша служба (и администраторы), будет иметь доступ к этому закрытому ключу, поэтому злоумышленник не сможет его использовать.Конечно, это предполагает, что вы доверяете своим администраторам и, например, что вы собираете все проверки, чтобы иметь возможность проверить, что сделали администраторы.

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

Доверие с администраторамиобычно устанавливается по какому-то соглашению с огромными штрафами, если конфиденциальные данные используются не по назначению.

0 голосов
/ 03 января 2012

У вас может быть какой-то механизм ключа / шифрования на клиенте и в службе.

Таким образом, служба и клиент смогут общаться только с другими процессами, у которых есть ключ.

Этот механизм не будет на 100% безопасным, поэтому вам придется подумать, как далеко зайдут ваши клиенты, чтобы его обойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...