Helpers - компьютеры, интернет, программирование

Содержит ли файл .pem как закрытые, так и открытые ключи?

Мне интересно, содержат ли PEM-файлы как закрытые, так и открытые ключи? Что означает "PEM"?

24.09.2011


Ответы:


1

Файл PEM может содержать что угодно, включая открытый ключ, закрытый ключ или и то, и другое, потому что файл PEM не является стандартом. Фактически PEM просто означает, что файл содержит бит данных в кодировке base64. Он называется файлом PEM из-за ссылки на старые стандарты Privacy-Enhanced Mail, которые предшествовали S / MIME в качестве стандарта безопасности почты. Эти стандарты определяют формат различных ключей и сообщений в конкретном формате base64. См., Например, RFC 1421.

Обычно файл PEM содержит ключ или сертификат в кодировке base64 со строками верхнего и нижнего колонтитула в форме -----BEGIN <whatever>----- и -----END <whatever>----. Со временем появилось много возможностей для <whatever>, включая закрытые ключи, открытые ключи, сертификаты X509, данные PKCS7, файлы, содержащие несколько сертификатов, файлы, содержащие как закрытый ключ, так и сертификат X509, запросы на подпись сертификата PKCS # 10, ...

RFC 7468 был написан для документирования этого фактического формата.

24.09.2011
  • Спасибо, что объяснили, что означает аббревиатура 29.11.2013

  • 2

    Вы можете декодировать свой PEM в формате x509 сертификат с помощью следующей команды:

    openssl x509 -in cert.pem -text -noout
    

    сертификат PEM содержит только открытый ключ или только закрытый ключ или оба.


    Для следующего примера:

    -----BEGIN CERTIFICATE-----
    MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G
    A1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2VydGlmaWNhdGUgYXV0aG9y
    aXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdudVRMUyBjZXJ0aWZpY2F0
    ZSBhdXRob3JpdHkwHhcNMTEwNTIzMjAzODIxWhcNMTIxMjIyMDc0MTUxWjB9MQsw
    CQYDVQQGEwJCRTEPMA0GA1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2Vy
    dGlmaWNhdGUgYXV0aG9yaXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdu
    dVRMUyBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkwWTATBgcqhkjOPQIBBggqhkjOPQMB
    BwNCAARS2I0jiuNn14Y2sSALCX3IybqiIJUvxUpj+oNfzngvj/Niyv2394BWnW4X
    uQ4RTEiywK87WRcWMGgJB5kX/t2no0MwQTAPBgNVHRMBAf8EBTADAQH/MA8GA1Ud
    DwEB/wQFAwMHBgAwHQYDVR0OBBYEFPC0gf6YEr+1KLlkQAPLzB9mTigDMAoGCCqG
    SM49BAMCA0gAMEUCIDGuwD1KPyG+hRf88MeyMQcqOFZD0TbVleF+UsAGQ4enAiEA
    l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo=
    -----END CERTIFICATE-----
    

    ты получишь:

    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 0 (0x0)
        Signature Algorithm: ecdsa-with-SHA256
            Issuer: C = BE, O = GnuTLS, OU = GnuTLS certificate authority, ST = Leuven, CN = GnuTLS certificate authority
            Validity
                Not Before: May 23 20:38:21 2011 GMT
                Not After : Dec 22 07:41:51 2012 GMT
            Subject: C = BE, O = GnuTLS, OU = GnuTLS certificate authority, ST = Leuven, CN = GnuTLS certificate authority
            Subject Public Key Info:
                Public Key Algorithm: id-ecPublicKey
                    Public-Key: (256 bit)
                    pub:
                        04:52:d8:8d:23:8a:e3:67:d7:86:36:b1:20:0b:09:
                        7d:c8:c9:ba:a2:20:95:2f:c5:4a:63:fa:83:5f:ce:
                        78:2f:8f:f3:62:ca:fd:b7:f7:80:56:9d:6e:17:b9:
                        0e:11:4c:48:b2:c0:af:3b:59:17:16:30:68:09:07:
                        99:17:fe:dd:a7
                    ASN1 OID: prime256v1
                    NIST CURVE: P-256
            X509v3 extensions:
                X509v3 Basic Constraints: critical
                    CA:TRUE
                X509v3 Key Usage: critical
                    Certificate Sign, CRL Sign
                X509v3 Subject Key Identifier: 
                    F0:B4:81:FE:98:12:BF:B5:28:B9:64:40:03:CB:CC:1F:66:4E:28:03
        Signature Algorithm: ecdsa-with-SHA256
             30:45:02:20:31:ae:c0:3d:4a:3f:21:be:85:17:fc:f0:c7:b2:
             31:07:2a:38:56:43:d1:36:d5:95:e1:7e:52:c0:06:43:87:a7:
             02:21:00:97:8c:0e:b8:3c:0a:41:af:ae:a5:cf:06:7e:d5:c4:
             d8:2f:ff:e2:62:80:34:10:ba:22:dd:35:81:46:93:22:9a
    

    Чтобы понять разницу между разделами Public Key Algorithm и Signature Algorithm, прочтите this (оба общедоступны).

    30.07.2017
    Новые материалы

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

    Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
    Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

    Почему объяснимость так важна прямо сейчас?
    По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

    Анимированный математический анализ
    Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

    Создание простого слайдера изображений с помощью JavaScript
    Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

    Создание базы данных с помощью супергероя «Python»
    В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

    ИИ для чайников: руководство для начинающих по пониманию будущего технологий
    Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..