Что такое формат файла P7M?
Файлы .p7m отвечают за хранение зашифрованных или подписанных цифровой подписью сообщений электронной почты и документов в виде бинарного контейнера PKCS#7/CMS. В таком файле содержимое, любые вложения, криптографическая подпись и цепочка сертификатов подписавшего хранятся вместе. Формат также широко распространен как универсальная оболочка для подписанных документов: фактический файл - например, PDF или XML счет - встраивается дословно внутрь оболочки .p7m, которая добавляет слой подписи сверху.
Контейнер обычно представляет собой бинарные данные в кодировке DER (магические байты ASN.1 0x30 0x82 со смещением 0); также существует текстовый вариант той же структуры в Base64, который начинается с MII.... В отличие от .p7s, который является отсоединенной подписью и хранит исходный документ отдельно, .p7m объединяет исходный документ и подпись в один автономный файл.
Доступ к зашифрованным сообщениям
Файлы .p7m имеют одну основную цель - защиту информации, содержащейся в сообщении, от несанкционированного доступа третьих лиц. Чтобы прочитать зашифрованный .p7m, необходимо владеть закрытым ключом, соответствующим открытому ключу, который использовался для запечатывания сообщения. Закрытый ключ получателя остается неизменным для разных сообщений, поэтому целевой получатель имеет легкий доступ к каждому новому сообщению без дополнительной настройки.
- Файлы
.p7mчасто используются для передачи конфиденциальных, защищенных данных в медицине, финансовой или деловой сферах. - Файлы
.p7mиспользуют стандарт Secure/Multipurpose Internet Mail Extensions (S/MIME) в качестве метода подписи и шифрования; базовой спецификацией является CMS (RFC 5652). - В ЕС - особенно в Италии -
.p7mявляется стандартным контейнером для квалифицированных электронных подписей CAdES (CMS Advanced Electronic Signatures), имеющих полную юридическую силу. - Сообщения, подписанные или зашифрованные в файлах
.p7m, обычно имеют имяsmime.p7m.
Такие сообщения электронной почты .eml предоставляют информацию только в заголовке, а почтовому клиенту видно пустое поле содержимого. Текст и файлы сообщения содержатся внутри самого зашифрованного или подписанного вложения. Для извлечения внутреннего документа или проверки подписи без специализированного ПО часто используются команды openssl smime -verify или openssl smime -decrypt.
Безопасность и защита
РИСК: MEDIUMФайл .p7m - это данные, а не программа, поэтому он не может выполняться сам по себе, но он несет в себе юридическую значимость. Для ПОДПИСАННЫХ файлов .p7m «открытие» безопасно, но смысл заключается в ПРОВЕРКЕ: действительная подпись говорит о том, кто подписал и что документ не был изменен; убедитесь, что сертификат подписавшего является доверенным и не просрочен/не отозван, а не просто в том, что «подпись существует». К внутреннему документу (например, PDF) после извлечения следует проявлять обычную осторожность. Для ЗАШИФРОВАННЫХ .p7m вам нужен ВАШ закрытый ключ для расшифровки - никогда не отправляйте свой закрытый ключ кому-либо и не загружайте конфиденциальные/зашифрованные .p7m на случайные онлайн-сервисы. Для важных документов отдавайте предпочтение официальным сервисам проверки (Aruba/Agid) и локальным инструментам (Dike/OpenSSL).
Детали формата
в двух словахПрограммы, открывающие файлы P7M
Технические подробности
глубокая спецификация| Формат контейнера | PKCS#7 / CMS (Cryptographic Message Syntax) |
| Управляющая спецификация | IETF RFC 5652 (CMS); ранее RFC 2315 (PKCS#7 v1.5) |
| MIME-тип | application/pkcs7-mime |
| Имя файла S/MIME по умолчанию | smime.p7m |
| Бинарная кодировка | DER (Distinguished Encoding Rules) - бинарная структура ASN.1 |
| Альтернативная кодировка | Base64 text (начинается с «MII…») - та же структура CMS, другая транспортная кодировка |
| Магические байты (DER) | 0x30 0x82 со смещением 0 - тег ASN.1 SEQUENCE, за которым следует 2-байтовое поле длины |
| Типы содержимого CMS | SignedData, EnvelopedData (зашифровано), SignedAndEnvelopedData, CompressedData |
| Профиль подписи ЕС | CAdES (CMS Advanced Electronic Signatures, ETSI EN 319 122) - поддерживает квалифицированный уровень согласно eIDAS |
| Встроенные сертификаты | Сертификаты подписавшего X.509 и цепочка промежуточных центров сертификации (CA) внутри контейнера |
| Алгоритмы подписи | RSA (PKCS#1 v1.5, PSS) и ECDSA; алгоритмы хеширования SHA-256, SHA-384, SHA-512 |
| Алгоритмы шифрования | AES-128 и AES-256 (CBC/GCM); Triple-DES для обратной совместимости |
| Внутренний документ | Любой тип файла (PDF, XML-счет, обычный текст и т. д.), встроенный дословно и извлекаемый |
| Требование для расшифровки | Закрытый ключ получателя, соответствующий сертификату открытого ключа X.509, использованному при шифровании |
| Юридическое использование | Стандартный формат квалифицированной электронной подписи для итальянской государственной администрации (PA), сертифицированной электронной почты (PEC) и трансграничных документов ЕС |
| Выпущен | PKCS#7 (1990s); S/MIME / CMS standardized in RFC 5652. Heavily used for EU/Italian legal e-signatures (CAdES) |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.rfc-editor.org |