Аутентификация клиентского сертификата через HTTP (без HTTPS)

Можно ли использовать клиентские сертификаты для аутентификации без HTTPS, только через HTTP на платформе Windows IIS с ASP.NET?

Мне нужно аутентифицировать клиента с помощью цифрового сертификата, и я не могу использовать HTTPS.


person Allan Baker    schedule 15.12.2011    source источник


Ответы (1)


Нет, вы не можете, по крайней мере, если клиент является веб-браузером. Более того, в этом нет никакого смысла.

person kan    schedule 15.12.2011
comment
спасибо кан за быстрый ответ! не могли бы вы объяснить мне это немного больше, почему это не имеет смысла? если я хочу знать, кто клиент, но мне не нужен безопасный канал - person Allan Baker; 15.12.2011
comment
Если у вас нет безопасного канала, каждый может украсть личность клиента, и вы не будете знать, настоящий ли это клиент или хакер, который украл личность клиента. - person kan; 15.12.2011
comment
@kan, ваш ответ не совсем правильный, проверьте: заголовок stackoverflow.com/questions/6636499/ - person Kees C. Bakker; 14.11.2012
comment
@KeesC.Bakker Почему?? Упомянутый вами вопрос касается только WS-Security. WS не является веб-браузером. Единственный способ сделать это: реализовать X.509 с помощью JavaScript, но я не уверен, что это сработает, по крайней мере, из-за проблем с производительностью. И не уверен, как клиент предоставит сертификат клиента для JavaScript. - person kan; 15.11.2012
comment
Здесь есть заблуждение. Сертификаты не являются SSL. Это SSL, который использует сертификаты, но сертификаты родились до SSL. Следовательно, да, вы можете использовать сертификаты X.509 без SSL (вы можете подписать запрос и поставить подпись, например, в HTTP-заголовки). Вы можете использовать сертификаты с SSL, но без SSL-шифрования. С точки зрения веб-браузера вы правы. Но эту схему могут использовать и другие типы клиентов (B2B, веб-сервисы). Его можно использовать для проверки клиента. - person Kees C. Bakker; 15.11.2012
comment
@KeesC.Bakker В исходном вопросе упоминается ASP, я предположил, что речь идет о веб-приложении, и в моем ответе также упоминается браузер. В этом контексте мой ответ правильный. WS не имеет отношения, потому что в общем случае ему даже не нужны http и IIS. - person kan; 15.11.2012
comment
Я использую ASP.Net для общего взаимодействия с веб-службой без какого-либо веб-браузера. В ОП упоминается только ASP.Net, но это не означает, что ОП использует веб-браузер. OP говорит только об IIS как о хосте и HTTP как о протоколе связи. - person Kees C. Bakker; 15.11.2012
comment
@kan - Хотя для этого потребуется индивидуальное решение, в этом, безусловно, есть смысл. Если кто-то не может использовать SSL (например, из-за ограничений IP-адреса), использование клиентского сертификата по-прежнему позволяет выполнять безопасную аутентификацию через HTTP, зашифровывая запрос с помощью открытого ключа пользователя и возвращая его на сервер в зашифрованном виде с помощью открытого ключа сервера и подписан закрытым ключом клиента. - person AJ Henderson; 08.02.2013