аутентификация с сертификатом - PullRequest
0 голосов
/ 09 марта 2012

Я ознакомился с некоторыми руководствами по настройке веб-службы WCF с режимом безопасности «TransportWithMessageCredential» и сообщением clientCredentialType «Certificate». У меня не было никаких проблем с настройкой, но что-то, что ни одно из учебных пособий не объясняет, как это на самом деле работает? Как сервер узнает, что клиент на самом деле правильный клиент? Что если кто-то получит доступ к сертификату, сможет ли он использовать этот сертификат для доступа к серверу с помощью какого-либо вредоносного клиентского приложения?

1 Ответ

0 голосов
/ 10 марта 2012

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

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

...