Как конвертировать ssl-сертификат в нужный формат

Введение

Ещё несколько лет назад криптографические системы применялись лишь в исключительных случаях: в правительственных организациях, спецслужбах и иных критических к безопасности данных системах. Однако в настоящее время бурное развитие компьютерных сетей и Интернета заставляет задумываться об обеспечении безопасности все большее количество людей. В настоящее время все озабочены безопасностью передаваемых по сети данных. В результате чего появилось множество различных сертификатов, методов шифрования. В данной статье будет рассмотрен формат хранения ключей PKCS#12 и некоторые проблемы, связанные с безопасным хранением закрытых ключей сертификатов.

В течение многих лет большое количество форматов хранения создавалось в дополнение оригинальным форматам PKCS5 и PKCS8, которые были ограничены в использовании DES и MD5. Это привело к распространению несовместимых и зачастую небезопасных форматов хранения закрытого ключа. Вершиной этого стал чрезвычайно сложный формат PKCS12 с его смешением несовместимых идентификаторов объектов, алгоритмов, содержания данных и требований к обработке. В результате этого смешения реализация была и небезопасна и несовместима со старыми версиями. Так как требования не обеспечивали достаточно информации, для реализации совместимых версий. Другая проблема этого формата — раздутие данных, что делало его бесполезным для использования в устройствах с ограниченным количеством памяти, таких как смарт карты.

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

  • Хранить закрытые ключи в безопасности.
  • Использовать как можно меньше новых, не протестированных алгоритмов и методов.
  • Убедиться, что относительно легко производить совместимые реализации и относительно сложно изготовить небезопасную реализацию.
  • Открыть для компактного кодирования. Для появления возможности использования в носителях ключа, с ограниченным пространством, таких как смарт карты.
  • Пусть он будет простым. Формат должен быть разработан для хранения одного закрытого ключа безопасности, чтобы успешная атака на ключевой контейнер не ставила под угрозу целый ряд других данных. С другой стороны успешная атака на PKCS#12 ставит под угрозу более или менее уязвимые куски информации, хранимой пользователем, потому что вся она хранится в одном файле.

Все определения PEM

Акроним Определение
PEM Multimarket модель частичного равновесия
PEM Photoelectromagnetic
PEM Plesk Enterprise Manager
PEM Polioencephalomalacia
PEM Pontiac энтузиастов журнал
PEM Белковая недостаточность энергии
PEM Диспетчер выполнения программы
PEM Личные экологические модуль
PEM Менеджер применения политики
PEM Менеджер программы
PEM Менеджер программы элемент
PEM Менеджер проекта элемент
PEM Мера психологической & образовательных
PEM Механизм выброса полезной нагрузки
PEM Модель выполнения проекта
PEM Модель эффективности производства
PEM Модуль ввода позиции
PEM Модуль выполнения процесса
PEM Модуль питания вход
PEM Модуль питания электроники
PEM Модуль производство событий
PEM Модуль расширения порта
PEM Модуль расширения процессора
PEM Модуль уравнивания давления
PEM Монитор среды частиц
PEM Мощность & мониторинга окружающей среды
PEM Музей Пибоди Эссекс
PEM Общественный Ethernet менеджер
PEM Параболического уравнения способ
PEM Пенн инженерии & изготовления Corp.
PEM Персональные экспозиции модель
PEM Пирсон образовательные измерения
PEM Пластиковые инкапсулированные микросхемы
PEM Плейнвью Элджин Миллвилле
PEM Повышение производительности модуль
PEM Повышенной конфиденциальности электронной почты
PEM Полимерные мембраны электролита
PEM Полиморфные эпителиального муцина
PEM Потенциально взрывоопасных материалов
PEM Поэтапная модернизация
PEM Предварительные инженерные модель
PEM Программа Engrais малагасийский
PEM Программа элемент монитор
PEM Программы утверждения меморандум
PEM Проект Инжиниринг метрики
PEM Производство инженерных мера
PEM Протонный обмен мембраны
PEM Профессиональный менеджер энергии
PEM Родители Enfants Médiation
PEM Свойства, события, методы
PEM Совещание по оценке производительности
PEM Тихоокеанский исследовательской миссии
PEM Упакованное оборудование модуль
PEM Управление физической культуры
PEM Управления государственными расходами
PEM Физика мониторинга окружающей среды
PEM Фотоэлектронная микроскопия
PEM Частичное среды монитор
PEM Энергетики & производства

Что означает PEM в тексте

В общем, PEM является аббревиатурой или аббревиатурой, которая определяется простым языком. Эта страница иллюстрирует, как PEM используется в обмена сообщениями и чат-форумах, в дополнение к социальным сетям, таким как VK, Instagram, Whatsapp и Snapchat. Из приведенной выше таблицы, вы можете просмотреть все значения PEM: некоторые из них образовательные термины, другие медицинские термины, и даже компьютерные термины. Если вы знаете другое определение PEM, пожалуйста, свяжитесь с нами. Мы включим его во время следующего обновления нашей базы данных. Пожалуйста, имейте в информации, что некоторые из наших сокращений и их определения создаются нашими посетителями. Поэтому ваше предложение о новых аббревиатур приветствуется! В качестве возврата мы перевели аббревиатуру PEM на испанский, французский, китайский, португальский, русский и т.д. Далее можно прокрутить вниз и щелкнуть в меню языка, чтобы найти значения PEM на других 42 языках.

From PKCS#12 to PEM

If you need to “extract” a PEM certificate (.pem, .cer or .crt) and/or its private key (.key)from a single PKCS#12 file (.p12 or .pfx), you need to issue two commands.


The first one is to extract the certificate:

Shell

> openssl pkcs12 -in certificate.pfx -nokey -out certificate.crt

1 >openssl pkcs12-incertificate.pfx-nokey-out certificate.crt

And a second one would be to retrieve the private key:

Shell

> openssl pkcs12 -in certificate.pfx -out privatekey.key

1 >openssl pkcs12-incertificate.pfx-out privatekey.key

IMPORTANT: the private key obtained with the above command will be in encrypted format: to convert it in RSA format, you’ll need to input a third command:

Shell

> openssl rsa -in certificate.pfx -out privatekey_rsa.key

1 >openssl rsa-incertificate.pfx-out privatekey_rsa.key

Needless to say, since PKCS#12 is a password-protected format, in order to execute all the above commands you’ll be prompted for the password that has been used when creating the .pfx file.

More Information on PEM

The data integrity feature of the Privacy Enhanced Mail Certificate format uses RSA-MD2 and RSA-MD5 message digests to compare a message before and after it’s sent, to ensure that it hasn’t been tampered with along the way.

At the beginning of a PEM file is a header that reads ——BEGIN ——, and the end of the data is a similar footer like this: ——END ——. The «» section describes the message, so it might read PRIVATE KEY, CERTIFICATE REQUEST, or CERTIFICATE.

Here’s an example:

-----BEGIN PRIVATE KEY-----MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMLgD0kAKDb5cFyPjbwNfR5CtewdXC+kMXAWD8DLxiTTvhMW7qVnlwOm36mZlszHKvsRf05lT4pegiFM9z2j1OlaN+ci/X7NU22TNN6crYSiN77FjYJP464j876ndSxyD+rzys386T+1r1aZaggEdkj1TsSsv1zWIYKlPIjlvhuxAgMBAAECgYA0aH+T2Vf3WOPv8KdkcJg6gCReyJKXOWgWRcicx/CUzOEsTxmFIDPLxqAWA3k7v0B+3vjGw5Y9lycV/5XqXNoQI14jy09iNsumds13u5AKkGdTJnZhQ7UKdoVHfuP44ZdOv/rJ5/VD6F4zWywpe90pcbK+AWDVtusgGQBSieEl1QJBAOyVrUG5l2234raSDfm/DYyXlIthQO/A3/LngDW5/ydGxVsT7lAVOgCsoT+0L4efTh90PjzW8LPQrPBWVMCQQDS3h/FtYYd5lfz+FNL9CEe1F1w9l8P749uNUD0g317zv1tatIqVCsQWHfVHNdVvfQ+vSFw38OORO00Xqs91GJrAkBkoXXEkxCZoy4PteheO/8IWWLGGr6L7di6MzFl1lIqwT6D8L9oaV2vynFTDnKop0pa09Unhjyw57KMNmSE2SUJAkEArloTEzpgRmCq4IK2/NpCeGdHS5uqRlbh1VIa/xGps7EWQl5Mn8swQDel/YP3WGHTjfx7pgSegQfkyaRtGpZ9OQJAa9Vumj8mJAAtI0Bnga8hgQx7BhTQY4CadDxyiRGOGYhwUzYVCqkb2sbVRH9HnwUaJT7cWBY3RnJdHOMXWem7/w==-----END PRIVATE KEY-----

One PEM file can contain multiple certificates, in which case the «END» and «BEGIN» sections neighbor each other.

Формат контейнера ключей

Формат контейнера был определен на основе формата, реализованного в PKCS#7 и S/MIME. Следующий идентификатор объекта идентифицирует безопасный тип хранения содержимого закрытого ключа.

 id-securedPrivateKey OBJECT IDENTIFIER ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) dds(3029) cryptlib(32) 42 }

Безопасный тип хранения содержимого закрытого ключа должен иметь ASN.1 SecuredPrivateKey тип:

 SecuredPrivateKey ::= SEQUENCE {
   version Version,
   publicKey PublicKeyInfo,
   privateKey ContentInfo
 }

Поля типа SecuredPrivateKey имеют следующие значения:

version — номер версии синтаксиса, должен быть равен 0.

publicKey — открытая компонента ключа и дополнительная идентификационная информация о владельце ключа.

privateKey — защищенный закрытый ключ, состоящий из идентификатора типа содержимого и самого содержимого.

Компоненты открытого ключа

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

 PublicKeyInfo ::= CHOICE {
   publicKeyInfo        SubjectPublicKeyInfo,           -- Raw public key info
   certRequest     EXPLICIT PKCS10CertRequest,     -- PKCS #10 cert.req.
   certificate     EXPLICIT Certificate,           -- X.509 certificate
   certChain       EXPLICIT PKCS7CertChain—PKCS #7 cert.chain
 }

В этой простейшей форме открытый ключ хранится как SubjectPublicKeyInfo. Однажды, когда был сгенерирован запрос сертификации, ‘сырая’ информация о открытом ключе может быть заменена в соответствии с требованием и, когда ключ сертифицирован, или сертификат или, полный шифр сертификата может быть сохранен.

Компоненты закрытого ключа

Компоненты закрытого ключа могут храниться как в зашифрованной так и не в зашифрованной форме. Зашифрованная форма рекомендуется пока данные не защищены другими средствами. Если данные хранятся в не зашифрованной форме, используется тип содержимого Data. Если же данные хранятся в зашифрованной форме, то используется тип EncryptedData с contentEncryptionAlgoritm — алгоритм шифрования, режим и дополнительные параметры, которые используются при генерации ключа. Содержимое или зашифрованное содержимое полей закрытого ключа (без соответствующих полей открытого ключа), который соответствуют полям открытого ключа, приведенным в PublicKeyInfo.

Например, для RSA:

 RSAPrivateKey ::= SEQUENCE {
   privateExponent    INTEGER,    -- Private exponent d
   prime1             INTEGER,    -- Prime factor p of n
   prime2             INTEGER,    -- Prime factor q of n
   exponent1          INTEGER,    -- d mod (p-1)
   exponent2          INTEGER,    -- d mod (q-1)
   coefficient        INTEGER—CRT coefficient (q^-1) mod p
 }

Для DSA и схемы Эль-Гамаля:

 DSAPrivateKey ::= SEQUENCE {
   x                  INTEGER—Private random integer
 }

Причины, по которым хранятся только поля закрытого ключа заключаются в следующем: во-первых, для того чтобы избежать избыточности (все остальное уже содержится в PublicKeyInfo); во-вторых, для того чтобы устранить возможность тривиального восстановления значимой суммы потока ключей, использую известные открытые поля в начале ключа.

How to Convert a PEM File

Unlike most file formats that can be converted with a file conversion tool or website, you need to enter special commands against a particular program in order to convert the PEM file format to most other formats.

With OpenSSL (get the Windows version here), you can convert the PEM file to PFX with the following command:

openssl pkcs12 -inkey yourfile.pem -in yourfile.cert -export -out yourfile.pfx

If you have a PEM file that needs to be converted to CRT, like is the case with Ubuntu, use this command with OpenSSL:

openssl x509 -in yourfile.pem -inform PEM -out yourfile.crt

OpenSSL also supports converting .PEM to .P12 (PKCS#12, or Public Key Cryptography Standard #12), but append the «.TXT» file extension at the end of the file before running this command:

openssl pkcs12 -export -inkey yourfile.pem.txt -in yourfile.pem.txt -out yourfile.p12

See the Stack Overflow link above about using the PEM file with Java KeyStore if you want to convert the file to JKS, or this tutorial from Oracle to import the file into the Java truststore.

.pem SSL Creation Instructions

SSL .pem files (concatenated certificate container files), are frequently required for certificate installations when multiple certificates are being imported as one file.

This article contains multiple sets of instructions that walk through various .pem file creation scenarios.


Creating a .pem with the Entire SSL Certificate Trust Chain

  1. Log into your DigiCert Management Console and download your Intermediate (DigiCertCA.crt), Root (TrustedRoot.crt), and Primary Certificates (your_domain_name.crt).
  2. Open a text editor (such as wordpad) and paste the entire body of each certificate into one text file in the following order:

    1. The Primary Certificate — your_domain_name.crt
    2. The Intermediate Certificate — DigiCertCA.crt
    3. The Root Certificate — TrustedRoot.crt

    Make sure to include the beginning and end tags on each certificate. The result should look like this:

    ——BEGIN CERTIFICATE—— (Your Primary SSL certificate: your_domain_name.crt) ——END CERTIFICATE—— ——BEGIN CERTIFICATE—— (Your Intermediate certificate: DigiCertCA.crt) ——END CERTIFICATE—— ——BEGIN CERTIFICATE—— (Your Root certificate: TrustedRoot.crt) ——END CERTIFICATE——

    Save the combined file as your_domain_name.pem. The .pem file is now ready to use.

Creating a .pem with the Server and Intermediate Certificates

  1. Log into your DigiCert Management Console and download your Intermediate (DigiCertCA.crt) and Primary Certificates (your_domain_name.crt).
  2. Open a text editor (such as wordpad) and paste the entire body of each certificate into one text file in the following order:

    1. The Primary Certificate — your_domain_name.crt
    2. The Intermediate Certificate — DigiCertCA.crt

    Make sure to include the beginning and end tags on each certificate. The result should look like this:

    ——BEGIN CERTIFICATE—— (Your Primary SSL certificate: your_domain_name.crt) ——END CERTIFICATE—— ——BEGIN CERTIFICATE—— (Your Intermediate certificate: DigiCertCA.crt) ——END CERTIFICATE——

    Save the combined file as your_domain_name.pem. The .pem file is now ready to use.

Creating a .pem with the Private Key and Entire Trust Chain

  1. Log into your DigiCert Management Console and download your Intermediate (DigiCertCA.crt) and Primary Certificates (your_domain_name.crt).
  2. Open a text editor (such as wordpad) and paste the entire body of each certificate into one text file in the following order:

    1. The Private Key — your_domain_name.key
    2. The Primary Certificate — your_domain_name.crt
    3. The Intermediate Certificate — DigiCertCA.crt
    4. The Root Certificate — TrustedRoot.crt

    Make sure to include the beginning and end tags on each certificate. The result should look like this:

    ——BEGIN RSA PRIVATE KEY—— (Your Private Key: your_domain_name.key) ——END RSA PRIVATE KEY—— ——BEGIN CERTIFICATE—— (Your Primary SSL certificate: your_domain_name.crt) ——END CERTIFICATE—— ——BEGIN CERTIFICATE—— (Your Intermediate certificate: DigiCertCA.crt) ——END CERTIFICATE—— ——BEGIN CERTIFICATE—— (Your Root certificate: TrustedRoot.crt) ——END CERTIFICATE——

    Save the combined file as your_domain_name.pem. The .pem file is now ready to use.

Устранение неполадок при открытии файлов PEM

Общие проблемы с открытием файлов PEM

Microsoft IIS не установлен

Дважды щелкнув по файлу PEM вы можете увидеть системное диалоговое окно, в котором сообщается «Не удается открыть этот тип файла». В этом случае обычно это связано с тем, что на вашем компьютере не установлено Microsoft IIS для %%os%%. Так как ваша операционная система не знает, что делать с этим файлом, вы не сможете открыть его дважды щелкнув на него.

Совет: Если вам извстна другая программа, которая может открыть файл PEM, вы можете попробовать открыть данный файл, выбрав это приложение из списка возможных программ.

Установлена неправильная версия Microsoft IIS

В некоторых случаях у вас может быть более новая (или более старая) версия файла Privacy Enhanced Mail Certificate, не поддерживаемая установленной версией приложения. При отсутствии правильной версии ПО Microsoft IIS (или любой из других программ, перечисленных выше), может потребоваться загрузить другую версию ПО или одного из других прикладных программных средств, перечисленных выше. Такая проблема чаще всего возникает при работе в более старой версии прикладного программного средства с файлом, созданным в более новой версии, который старая версия не может распознать.

Совет: Иногда вы можете получить общее представление о версии файла PEM, щелкнув правой кнопкой мыши на файл, а затем выбрав «Свойства» (Windows) или «Получить информацию» (Mac OSX).


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

Даже если на вашем компьютере уже установлено Microsoft IIS или другое программное обеспечение, связанное с PEM, вы все равно можете столкнуться с проблемами во время открытия файлов Privacy Enhanced Mail Certificate. Если проблемы открытия файлов PEM до сих пор не устранены, возможно, причина кроется в других проблемах, не позволяющих открыть эти файлы. Такие проблемы включают (представлены в порядке от наиболее до наименее распространенных):

Режимы обмена информацией

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

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

Режим конфиденциальности

  • С использованием открытого ключаИнформация шифруется с помощью открытого ключа платформы получателя, шифр открыт вместе с соответствующим ключом. Закрытый ключ находится на платформе получателя и используется для просмотра конфиденциальных данных, содержащихся в сообщении. Пересылка открытого ключа при этом называется TPDestEncK.
  • С использованием пароляИнформация шифруется симметричным ключом, получаемым из имени пользователя и его пароля, так же как и в стандарте PKCS5.

Режим честности

  • С использованием открытого ключаЧестность обеспечивается с помощью ЭЦП, получаемой использованием закрытого ключа платформы источника. Проверка производится путём использования на платформе получателе открытого ключа. Закрытый ключ находится на платформе источнике и используется до подписи персональной информации. Пересылка открытого ключа при этом называется TPSrcSigK.
  • С использованием пароляЧестность гарантируется с помощью имитовставки, получаемой из пароля. При использовании обоих: режима честности с паролем и режима конфиденциальности с паролем, пароли могут как совпадать, так и не совпадать.

Типы файлов PFX

Ассоциация основного файла PFX

.PFX

Формат файла: .pfx
Тип файла: PKCS #12 Certificate File

PKCS # 12 Сертификат Файл представляет собой зашифрованный файл безопасности, который позволяет хранить сертификаты безопасности, которые используются для аутентификации человека или устройства.

Создатель: Various Developers
Категория файла: Системные файлы
Ключ реестра: HKEY_CLASSES_ROOT\.pfx

Программные обеспечения, открывающие PKCS #12 Certificate File:

Adobe Acrobat DC, разработчик — Adobe Systems Incorporated

Совместимый с:

Windows
Mac
Linux

Certificate Manager Tool, разработчик — Microsoft Corporation

Совместимый с:

Windows

Ассоциации других файлов PFX

.PFX

Формат файла: .pfx
Тип файла: First Choice Word Processing Document

First Choice Обработка текстов документов представляет собой текстовый документ, созданный в текстовом процессоре First Choice. Это может быть преобразовано в другие форматы.

Создатель: SoftKey
Категория файла: Текстовые файлы

Программы, открывающие файлы First Choice Word Processing Document :


SoftKey PFS First Choice, разработчик — SoftKey

Совместимый с:

Windows

Настройка агента HPD для работы с сервером клиентской верификации

На основании секретного ключа RSA и самозаверенного сертификата (Self-signed public certificate) создается PEM-файл, который пропасывается в hpd.conf в секцию настройки HTTPS-сервера с клиентской верификацией.

Команда:

user@server:~$ cat <Public Certificate Filename> <Key Filename> > <PEM File>

где:

  • <Public Certificate Filename> — файл самозаверенного сертификата (Self-signed public certificate) в PEM-формате;
  • <Private Key Filename> — файл секретного ключа RSA;
  • <PEM File> — PEM-файл

Пример:

user@server:~$ cat pub_cert.crt private_key.key > cv-ssl.pem

PEM-файл нужно переместить в директорию /etc/hpd/cert (/etc/hydra/hpd/cert), и указать путь к нему в конфигурацинном файле hpd.conf, в секции настройки HTTPS-сервера с клиентской верификацией.

Пример:

...

cv-ssl server status = on
cv-ssl server ip = 0.0.0.0
cv-ssl server port = 9444

# Путь до PEM-файла сертификата HTTPS-сервера с клиентской верификацией
cv-ssl server pem path = /etc/hpd/cert/cv-ssl.pem

cv-ssl server plugins list = osmp

...

Создание CA -сертификата

Способ распространения CA -сертификата зависит главным образом от того, в каких приложениях он будет использоваться и каким будет их окружение. GUI — приложения обычно обращаются к корневому хранилищу сертификатов, предоставляемому операционной системой, которая обеспечивает централизованное управление всеми сертификатами. На использующих Как пользоваться OpenSSL серверах, не имеющих другого пользовательского интерфейса, кроме командной строки, нет единого централизованного корневого хранилища. Приложения командной строки (например, демон smtpd) могут использовать собственные хранилища, расположение которых должно быть указано в их индивидуальных настройках.

Если вы решили самостоятельно выпускать сертификаты, то первым делом вам нужно создать сертификат вашего собственного центра сертификации. Для этого используем программу CA.pl входящую в поставку Как пользоваться OpenSSL, предварительно отредактируем конфигурационный файл openssl.cnf.

# cp /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.orig
# nano openssl.cnf
...


dir             = ./demoCA
# cacert.pem- Это открытый ключ центра сертификации. Он должен находиться в корневых хранилищах ваших хостов,
# чтобы они могли проверить родпись в открытом сертификате (например, Postfix).
certificate     = $dir/cacert.pem
# cakey.pem - это секретный ключ центра сертификации. Он должен быть хорошо защищен,
# доступ к нему на чтение и запись должен иметь только администратор центра сертификации.
private_key     = $dir/private/cakey.pem
# Время жизни сертификата (по умолчанию 1 год)
default_days    = 1095

# длина RSA ключа (по умолчанию 1024 bit). Длину ключа можете настроить по своему усмотрению.
default_bits            = 1024

countryName_default             = UA
0.organizationName_default      = Example INC
stateOrProvinceName_default     = Example
organizationalUnitName_default  = Example

# В подавляющем большинстве случае должно соответствовать полному доменному имени хоста.
# Common Name (eg, your name or your server's hostname) []:OpenVPN-CA

commonName                      = Common Name (eg, YOUR name)
commonName_default              = mail.example.com
...
# /usr/lib/ssl/misc/CA.pl -newca

Уязвимости

  • При транспортировке контейнеров PKCS#12 защита данных реализована на основе пароля.

Однако, это не верно и в отношении объектов сертификата. Причина этого в том, что обеспечение целостности PKCS#12-файлов не является обязательной, как показано здесь:

 PFX ::= SEQUENCE { version INTEGER {v3(3)}(v3,...), authSafe ContentInfo, macData MacData OPTIONAL }

Так как этот контроль опционален, то он может быть отключен и тогда содержимое файла может быть изменено без обнаружения или предупреждения. Таким образом контроль доступа не требуется для добавления объектов сертификата. В этом случае сертификаты используются в SSL PKI как Trust Anchor и это дает возможность злоумышленнику вставить Trust Anchor своего центра сертификации в эти файлы без необходимости какой-либо авторизации.

С того момента, как Trust Anchor злоумышленника вставлен в атакуемую систему она будет доверять и признавать любой сертификат, выпущенный центром сертификации атакующего.

Атака может быть произведена по схеме человек посередине, который перехватывает файлы во время транспортировки, вставляет вражеский Trust Anchor. В этом случае атака может так же работать против систем, не использующих PKCS#12-файлы, как хранилище ключей, но эта атака имеет недостаток, что фальшивый сертификат может быть обнаружен после выявления факта атаки.

Still Can’t Open the File?

One reason your file doesn’t open in any of the ways described above is that you’re not actually dealing with a PEM file. You might instead have a file that just uses a similarly spelled file extension. When that’s the case, there isn’t a necessity for the two files to be related or for them to work with the same software programs.

For example, PEF looks an awful lot like PEM but instead belongs to either the Pentax Raw Image file format or Portable Embosser Format. Follow that link to see how to open or convert PEF files, if that’s what you really have.

The same could be said for many other file extensions like EPM, EMP, EPP, PES, PET…you get the idea. Just double-check the file extension to see that it actually reads «.pem» before considering that the methods above don’t work.

If you’re dealing with a KEY file, be aware that not all files that end in .KEY belongs in the format described on this page. They might instead be Software License Key files used when registering software programs like LightWave, or Keynote Presentation files created by Apple Keynote.


С этим читают