Что такое клиентский сертификат

Что такое клиентский сертификат

Я пишу клиентское приложение на C ++ для получения некоторой информации с сервера через https, но сервер запрашивает сертификат клиента для аутентификации, я знаю, как работает сертификат сервера во время просмотра веб-страниц через https: общедоступный сертификат передается любому веб-браузеру, который Приходите с обширным встроенным списком доверенных корневых сертификатов, который подключается к веб-сайту и доказывает веб-браузеру, что поставщик считает, что он выдал сертификат владельцу веб-сайта, но я не совсем уверен относительно клиента сертификат.

Я много гуглил, но все еще растерялся. Кто-нибудь может мне это объяснить? И где я могу получить сертификат клиента? С сервера? Я знаю, что могу загрузить файл сертификата, позвонив SSL_CTX_use_certificate_chain_file() и загрузите закрытый ключ, позвонив SSL_CTX_use_PrivateKey_file в openssl, если у меня есть сертификат клиента и закрытый ключ клиента.

Решение

Во-первых, мы должны знать Закрытый ключ / Открытый ключ:

Шифрование с использованием пары закрытый ключ / открытый ключ гарантирует, что данные могут быть зашифрованы одним ключом, но могут быть расшифрованы только другой парой ключей. Ключи схожи по своей природе и могут использоваться альтернативно: то, что один ключ шифрует, другая пара ключей может расшифровать. Пара ключей основана на простых числах, а их длина в терминах битов обеспечивает сложность возможности расшифровки сообщения без пар ключей. Хитрость в паре ключей заключается в том, чтобы сохранить один ключ в секрете (закрытый ключ) и распространить другой ключ (открытый ключ) среди всех. Любой может отправить вам зашифрованное сообщение, которое только вы сможете расшифровать. Вы единственный, у кого есть другая пара ключей, верно? Напротив, вы можете подтвердить, что сообщение приходит только от вас, потому что вы зашифровали его с помощью своего закрытого ключа, и только соответствующий открытый ключ расшифровывает его правильно. Осторожно, в этом случае сообщение не защищено, вы только подписали его. У всех есть открытый ключ!

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

Откуда вы знаете, что имеете дело с правильным человеком или, вернее, с правильным веб-сайтом? Ну, кто-то потратил много времени (если он серьезен), чтобы убедиться, что владельцы веб-сайтов являются теми, кем себя называют. Этот человек, которому вы должны безоговорочно доверять: у вас есть его / ее сертификат, загруженный в ваш браузер (корневой сертификат). Сертификат содержит информацию о владельце сертификата, например адрес электронной почты, имя владельца, использование сертификата, срок действия, местоположение ресурса или отличительное имя (DN), которое включает в себя общее имя (CN) (адрес веб-сайта или электронный адрес). -адрес электронной почты в зависимости от использования) и идентификатор сертификата лица, которое сертифицирует (подписывает) эту информацию. Он также содержит открытый ключ и, наконец, хеш, чтобы гарантировать, что сертификат не был подделан. Поскольку вы сделали выбор в пользу доверенного лица, подписывающего этот сертификат, вы также доверяете этому сертификату. Это дерево доверия сертификата или путь сертификата. Обычно ваш браузер или приложение уже загрузили корневой сертификат хорошо известных центров сертификации (CA) или корневые сертификаты CA. CA поддерживает список всех подписанных сертификатов, а также список отозванных сертификатов. Сертификат небезопасен, пока не подписан, так как только подписанный сертификат не может быть изменен. Вы можете подписать сертификат с помощью самого себя, он называется самоподписанным сертификатом. Все корневые сертификаты CA являются самозаверяющими.

Читайте также:  Чехлы на айфон се фото

Клиентские сертификаты:

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

Ответьте на необходимые вопросы, затем подпишите:

Затем вы можете попробовать подключиться к серверу с помощью сертификата клиента:

Одна важная деталь в клиентских сертификатах (сертификаты в целом) заключается в том, что их можно экспортировать, и большинство реализаций не блокируют переносимость сертификата. Независимо от того, будут ли храниться сертификаты клиента или как они будут храниться, без надлежащих мер сертификат может быть легко скопирован с устройства на устройство. Некоторые реализации хранят сертификат в файловой системе (файлы, оканчивающиеся на .cer, .der, .key, .crt, обычно указывают на то, что сертификаты хранятся в файловой системе). Более сильные реализации (зависящие от приложения) могут хранить сертификаты и ключи в хранилище ключей (то есть хранилище ключей Java). Хранилище ключей может добавить дополнительную защиту, например, гарантировать, что закрытый ключ не экспортируется. Однако уверенность в том, что ключ не был экспортирован, так же сильна, как и само хранилище ключей. Хранилища аппаратных ключей (например, смарт-карты, usb hsm, ironkey и т. Д.) Дают гораздо более надежную гарантию того, что закрытый ключ не экспортируется, чем хранилища программных ключей.

Читайте также:  Фотоаппарат canon 450d отзывы

Другие решения

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

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

В двухстороннем SSL сервер также должен аутентифицировать клиента. Поэтому клиенту нужен сертификат.

Одним из примеров этого сценария является случай, когда компания / субъект, которому принадлежит сервер, хочет контролировать, кто к нему подключается. Поэтому они выдают учетные данные клиента тем, кому доверяют, чтобы подключиться к нему. Эти учетные данные могут принимать форму электронных токенов USB, программных клавиш и т. Д. Если программные клавиши создаются на клиентском компьютере, CSR отправляется владельцу сервера (или доверенному серверу CA), который, в свою очередь, может подписать Сертифицируйте и отправьте его обратно клиенту.

  1. Помощь
  2. Помощь по SSL
  3. Клиентский SSL сертификат: для чего используется

У вас есть вопрос, у нас — ответ!

Клиентский SSL сертификат: для чего используется

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

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

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

Как получить клиентский сертификат?

Самый лучший способ получить клиентский сертификат – это воспользоваться приложением OpenSSL.

Читайте также:  Содержание в начале или в конце

OpenSSL – популярный инструмент, который активно используется разными компаниями для управления сертификатами: получения самоподписанных сертификатов ЦС (центра сертификации), управления сертификатами сервера, сертификатами пользователя и отозванными сертификатами.

Как происходит авторизация клиентов?

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

Яркий пример такой авторизации – это платежная система WebMoney Transfer с ее клиентом WM Keeper Light. Подобная схема авторизации является очень надежной, поэтому она активно применяется в банковской сфере.

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

  1. Получить свой собственный доверенный сертификат Certificate Authority, чтобы потом с его помощью подписывать и верифицировать клиентские сертификаты.
  2. Создать клиентские сертификаты, которые затем будут передаваться клиентам. Такие сертификаты должны быть подписаны доверенным сертификатом.
  3. Настроить сервер, чтобы он должным образом запрашивал и верифицировал клиентские SSL-сертификаты.

Работа с ключами обычно осуществляется при помощи утилиты OpenSSL, про которую мы писали в следующей статье.

Клиентский SSL-сертификат вы всегда можете приобрести в компании ЛидерТелеком, выбрав для себя подходящий вариант по оптимальной цене.

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

Изготовление клиентских сертификатов выполняется в соответствии с требованиями Федерального Закона РФ № 1-ФЗ от 10.01.2002 "Об электронной цифровой подписи" и не противоречит регламенту подсистемы Удостоверяющих центров, обслуживающих портал Общероссийского государственного информационного центра (ОГИЦ) . Подписчикам УЦ e-Notary это даст в перспективе возможность подключения к единому пространству унифицированного оказания государственных услуг в электронной форме.

Клиентские сертификаты изготавливаются и обслуживаются на платной основе.

Ссылка на основную публикацию
Adblock detector