Arhn - архитектура программирования

Почему закрытый ключ используется при создании CSR?

CSR в основном создается для создания сертификата с доверенным открытым ключом.

Прежде чем создавать CSR,

мы создаем закрытый ключ

openssl genrsa -out key.pem 1024

а затем используйте этот закрытый ключ (key.pem) для создания запроса CSR (req.pem).

openssl req -new -key key.pem -out req.pem

Изменить:

Я вижу, что механизм докера установлен с корневым сертификатом, сертификатом сервера и частным, используемым с CSR.

введите здесь описание изображения

Какова точная цель предоставления закрытого ключа (key.pem в качестве входных данных) при отправке CSR? Поскольку сертификат должен быть подписан родительским закрытым ключом

Требуется ли закрытый ключ (key.pem) для создания соответствующего открытого ключа при создании CSR?

or

Используется ли закрытый ключ (key.pem) для шифрования CSR, и полученная подпись добавляется к CSR?


  • CSR подписывается вашим закрытым ключом. Поскольку он содержит открытый ключ, ЦС может проверить подпись. 04.06.2019
  • @LorinczyZsigmond, и эта подпись заменяется подписью закрытого ключа ЦС при создании сертификата из CSR (openssl x509 -req -days 365 -sha256 -in req.pem -CA ca.pem -CAkey ca-key.pem -CA createserial -out server-cert.pem). Это единственная разница в содержании CSR(req.pem) и сертификата(server-cert.pem)? 04.06.2019
  • ЦС может изменять поля, добавлять/удалять использования и т. д. Также ЦС определяет срок действия сертификата (поля «не раньше», «не после»). Изменить: также сертификат содержит данные, специфичные для эмитента, в отличие от CSR. 04.06.2019
  • @LorinczyZsigmond заменяется ли подпись? Как и было сказано в моем предыдущем комментарии... 04.06.2019
  • Да, или, если быть точным, сертификат и csr — это разные документы, подписанные разными сторонами (выдающий ЦС и запрашивающая сторона). 05.06.2019
  • @LorinczyZsigmond Запрос отредактирован... Я вижу, что закрытый ключ, используемый при создании CSR, также загружается. Зачем нам нужен этот закрытый ключ? Для рукопожатия TLS нужен только сертификат... 10.06.2019
  • При создании TLS-сессии нельзя использовать сертификат без соответствующего приватного ключа: другая сторона после получения сертификата получает от него публичный ключ и требует от вас доказать, что у вас есть соответствующий приватный ключ. Вы не можете продолжить рукопожатие без закрытого ключа. 11.06.2019
  • @LorinczyZsigmond да, я понимаю, что когда клиент отправляет PMSecret, зашифрованный открытым ключом, сервер расшифровывает его с помощью этого закрытого ключа .... но мой вопрос ... зачем вам нужно добавлять подпись в CSR с помощью своего закрытого ключа? Прочитай вопрос в запросе.. 11.06.2019
  • Я не вижу никакого CSR на прикрепленном изображении: есть ca.cert, ee.cert и ee.prvkey. 11.06.2019
  • @LorinczyZsigmond, вы правы, в прикрепленном изображении нет CSR ... но мой вопрос .... когда вы запускаете openssl req -new -key key.pem -out req.pem. почему вы хотите key.pem перед созданием CSR?.... Я знаю, что у CSR есть подпись с использованием закрытого ключа. Но почему CSR должен иметь подпись своим закрытым ключом? 11.06.2019

Ответы:


1

Структура запроса на сертификацию PKCS#10 (RFC 2986) примерно описана следующим образом:

Request:
    Info:
        Version
        Name
        PublicKey
        Attributes
    SignatureAlgorithmIdentifier
    Signature

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

CA может уважать CSR столько, сколько пожелает. StartSSL, например, считывал только информацию об открытом ключе и отбрасывал остальную часть CSR — все остальное, что им было нужно, основывалось на вашем запросе из их веб-интерфейса и состоянии вашей учетной записи.

В общем, ЦС не будет игнорировать значение открытого ключа, потому что, если они подтвердят для вас новую пару ключей, им нужно будет выяснить, как вы должны были получить закрытый ключ. Таким образом, часть открытого ключа должна присутствовать и быть правильной. Команда OpenSSL может получить значение открытого ключа, прочитав закрытый ключ, а затем внедрить его в CSR.

Вторая причина, по которой вам нужен закрытый ключ, — это подпись запроса. Я утверждаю, что основная причина, по которой запрос подписан, заключается в том, чтобы заставить/настоятельно предложить вам сохранить закрытый ключ на данном этапе, чтобы вы не вернулись через несколько минут с сообщением «пожалуйста, отзовите этот новый сертификат, я уже потерял закрытый ключ». RFC (также) говорит следующее:

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

04.06.2019
  • Связанный вопрос - stackoverflow.com/questions/57981385/ 17.09.2019
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..