WCF - аутентификация клиента с помощью Message Security с использованием сертификатов - PullRequest
0 голосов
/ 21 июня 2011

Надеюсь, быстрый вопрос.

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

Эта услуга уже ограничена IP-адресом, поэтому мы знаем, что вызывающий абонент, должно быть, пришел из своей сети.

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

Я думаю, что для решения этой проблемы можно также использовать клиентские сертификаты, которые будут проверены с использованием Peer Trust. Каждый запрос отправляет этот сертификат, который мы проверяем в службе WCF, и отправляет обратно данные.

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

Любая помощь приветствуется - просто хочу убедиться, что я понимаю это!

Ответы [ 2 ]

1 голос
/ 27 июня 2011

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

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

1 голос
/ 22 июня 2011

Вы можете проверить на стороне службы, аутентифицировался ли клиент с конкретным сертификатом. Вы также можете написать Custom Certificate Validator и проверить сертификат в соответствии с вашими потребностями. Однако, если вы предполагаете, что злоумышленник может использовать закрытый ключ доверенного сертификата в вашей среде, то я предполагаю, что вы можете предположить, что злоумышленник может в основном делать все что угодно, и вы никак не можете защитить свой сервис.

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