Почему я должен аутентифицировать клиента, используя сертификат? - PullRequest
15 голосов
/ 29 января 2010

Я реализую клиент с измененным кодом Python, который проверяет SSL-сертификат сервера при подключении, следуя в основном рецепту . Я видел во многих HOWTO, таких как этот, сервер, проверяющий подлинность клиента также через ssl-сертификат. В настоящее время я проверяю подлинность своих клиентов, используя уникальный идентификатор и строку 1024 символа (они являются автоматическими клиентами без участия человека).

Что я не понимаю, так это зачем мне использовать для этого весь ssl, а не просто посылать «пароль» на сервер. После того, как все соединение уже ssl зашифровано, проверка сертификата сервера и все. Этот является аналогичным вопросом, но я хочу знать , почему люди используют сертификаты клиента ssl, а не только каков лучший способ сделать это вместо этого.

Ответы [ 6 ]

4 голосов
/ 29 января 2010

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

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

2 голосов
/ 16 марта 2012

Использование взаимной аутентификации на основе клиентских сертификатов предотвращает как минимум следующие атаки / проблемы:

  • Фишинг пароля
  • Ключ регистрации пароля
  • Плечо в серфинге по паролю
  • угадал пароль
  • Повторное использование пароля на нескольких сервисах

Кроме того, использование клиентских сертификатов дает возможность хранить клиентский сертификат (и соответствующий закрытый ключ) на смарт-карте, USB-токене или другом аппаратном модуле безопасности (HSM), переходя от «чего-то, что вы знаете» (пароль) к «что-то, что у вас есть физически» (токен, карточка) плюс «что-то, что вы знаете» (PIN). Это также называется двухфакторная аутентификация .

В вашем конкретном случае использования паролей в качестве общих ключей в технической линии связи между системами, использование сертификатов имеет два преимущества:

  • лучше масштабируется: с общими ключами каждый узел должен делить свой ключ / пароль с другим узлом, что приводит к (n-1)! пароли, в то время как с сертификатами каждому узлу нужен только один сертификат и закрытый ключ (n сертификатов плюс CA)
  • возможность хранить ключ на HSM и тем самым предотвратить его копирование / кражу в цифровом виде.
2 голосов
/ 29 января 2010

Сертификаты легко отозвать. Пароли могут быть украдены, но кража сертификата на стороне клиента будет намного сложнее.

0 голосов
/ 10 января 2017

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

0 голосов
/ 29 января 2010

Владение сертификатами SSL, которые подписаны центром сертификации, означает, что владельцы сертификатов SSL прошли через проверку ЦС, что владелец является тем, кем они себя называют. Например, если у вас есть интернет-магазин под названием widgetsdeluxe.com, и у вас есть сертификат для домена widgetsdeluxe.com, который был подписан Verisign, et. Ал., Покупатели будут знать, что когда они переходят на этот сайт и имя в сертификате совпадает с фактическим доменным именем, на которое они пошли, они могут доверять, что информация защищена и поступает из домена widgetsdeluxe.com предотвращать спуфинг и атаки "человек посередине").

0 голосов
/ 29 января 2010

Проверка сертификата гарантирует, что вы подключаетесь к тому, с кем ожидаете подключения. Предотвращает атаку «человек посередине».

См. http://www.thoughtcrime.org/software/sslsniff/ о том, что клиенты неправильно проверяли цепочку сертификатов, что привело к довольно простому способу использования SSL с использованием атаки "человек посередине".

...