Независим наръчник — не сме доставчик на удостоверителни услуги
esign.bg Наръчник за електронен подпис и е-услуги Проверка на подпис
Софтуер и проблеми

Файлове .p7s и .p7m: какво са, как се отварят и проверяват

Какво са файловете .p7s и .p7m, по какво се различават прикаченият и отделеният подпис, как се отварят и как се проверява подписът в тях, без и с качване.

От Редакция на esign.bg Публикувано: 5 мин. четене

Файловете с разширение .p7s и .p7m съдържат електронен подпис във формата CMS, който е основата на подписите CAdES. Получавате ги, когато някой подпише с КЕП документ, който не е PDF: архив, Word файл, таблица, снимка. Разликата между двата е проста: в.p7m документът е вътре в подписа, а.p7s съдържа само подписа и трябва да стои до оригиналния файл (IETF, InfoNotary).

По-долу обясняваме какво има във всеки от тях, с какво се отварят и как се проверява подписът, без да качвате документа никъде, ако не искате.

Откъде идват тези разширения

Форматът се казва Cryptographic Message Syntax (CMS) и е описан в RFC 5652 на IETF. Той опакова произволно съдържание с криптографска защита: подпис, хеш или криптиране (IETF). Подписаният вариант се нарича SignedData и съдържа:

  • самия документ, но по желание: стандартът позволява съдържанието да липсва, което прави възможни т.нар. външни (отделени) подписи;
  • удостоверенията, по които може да се провери кой е подписал;
  • информацията за всеки подписващ: алгоритъма, хеша и самата стойност на подписа, плюс подписани атрибути като типа на съдържанието и хеша му.

Разширенията идват от пощенския стандарт S/MIME. В RFC 8551.p7m е разширението за типа application/pkcs7-mime (включително SignedData), а.p7s за application/pkcs7-signature, тоест отделен подпис (IETF).

Европейският профил на CMS за електронни подписи е CAdES, описан в ETSI EN 319 122-1. Стандартът изрично гради CAdES върху CMS и добавя атрибути, които позволяват подписът да се проверява и дълго след създаването си (ETSI).

.p7m и.p7s: разликата

InfoNotary обяснява двете опаковки в ръководството на e-Doc Signer с най-ясните думи, които видяхме (InfoNotary):

.p7m .p7s
Как се нарича прикачен подпис, enveloping, attached signature отделен подпис, detached signature
Къде е документът вътре в подписа, всичко е в един файл не е част от подписа, остава отделен файл
Какво ви трябва за проверка само.p7m файлът .p7s файлът и оригиналният документ
Пример за име dogovor.docx.p7m dogovor.docx и dogovor.docx.p7s

Ако получите само.p7s без оригинала, подписът не може да бъде проверен за цялост: няма с какво да се сравни. Поискайте и документа, точно този, който е бил подписан, без да е отварян и записван отново.

Някои системи приемат само единия вариант. ЕПЕП, например, приема.p7s и.p7m файлове само по схемата „Attached signature“, при която документът е вътре в подписа.

Нивата на CAdES

ETSI определя четири базови нива. Всяко следващо покрива и изискванията на предишните (ETSI):

  1. B-B: подписът с подписаните атрибути, както е създаден.
  2. B-T: плюс доверен печат за време, който доказва, че подписът е съществувал в определен момент.
  3. B-LT: плюс всичко нужно за проверката (удостоверения, данни за статуса им) вътре в подписания файл.
  4. B-LTA: плюс печати за време, които позволяват проверка дълго след създаването, когато удостоверенията вече са изтекли или алгоритмите остарели (ETSI).

Ако пазите подписани документи години наред, питайте доставчика си на какво ниво подписва неговата програма. InfoNotary пише, че e-Doc Signer по подразбиране ползва най-високото ниво (InfoNotary).

Как се отваря.p7m

Документът е вътре, но Word, Acrobat и браузърът не го виждат през опаковката на подписа. Не преименувайте.p7m на.pdf или.docx с надеждата да се отвори: файлът започва със структурата на подписа, не с документа.

Какво може да направите:

  1. Проверете кой е подписал. Нашата проверка на подпис приема.p7m; същото правят програмите за подписване на доставчиците. InfoNotary e-Doc Signer подписва и проверява CAdES, PAdES и XAdES под Windows, macOS и Linux (InfoNotary); B-Trust Desktop Signer е безплатна програма за подписване на файлове под Windows и macOS (B-Trust (БОРИКА)). Официалните страници за изтегляне сме събрали във файлове и инструкции.
  2. Извадете документа с OpenSSL. Командата openssl cms по документацията на OpenSSL проверява подписани данни и записва подписаното съдържание във файла, посочен с -out (OpenSSL). За двоичен.p7m (DER) командата изглежда така: openssl cms -verify -binary -inform DER -in dogovor.docx.p7m -out dogovor.docx -noverify. Опцията -noverify пропуска проверката на удостоверението на подписващия, затова така само вадите документа; дали подписът е квалифициран и валиден, проверявате отделно.
  3. Поискайте и оригинала. Ако изпращачът е подписал PDF, най-удобно е да ви изпрати PDF с вграден подпис, който се отваря директно.

Как се проверява подписът

В браузъра, без качване

Нашата проверка на подпис работи изцяло на вашия компютър. За.p7s изберете и подписа, и оригиналния файл. Проверката пресмята хеша, сравнява го с подписа, търси издателя в българския доверителен списък и показва дали удостоверението е квалифицирано и дали е за подпис или за печат. Тя не проверява дали удостоверението е било прекратено преди подписването; за това трябва онлайн справка при издателя.

С програмата на доставчика

В e-Doc Signer изберете „Валидиране на документ“ и посочете файла, или щракнете с десния бутон върху него и изберете „Verify Document“. Програмата показва титуляря, статуса на удостоверението и дали документът е бил променян; бутонът „Генериране на доклад“ записва резултата във файл (InfoNotary). По ръководството тя проверява в реално време дали удостоверенията не са оттеглени (CRL и OCSP), затова иска интернет, но самият файл не се качва на сървър на InfoNotary.

Онлайн услуги за валидиране

  • B-Trust има форма за валидация на е-документи: прикачвате файла, а ако подписът е с отделено съдържание, прикачвате и подписания файл. Докладът е подписан с квалифициран електронен печат на доставчика (B-Trust (БОРИКА)). Формата е с ограничен брой заявки и е предвидена за нестопанска цел.
  • Европейската комисия поддържа демонстрационно приложение DSS с поле за подписания файл и за оригиналите при отделен подпис. Комисията предупреждава, че това е демонстрация, предназначена за тестове, и че файловете се изпращат към нейната инфраструктура, затова не качвайте чувствителни документи (Европейска комисия).

Подредбата на доставчиците е азбучна; за избор на подпис вижте сравнението на доставчиците.

Как да създадете.p7s или.p7m

  1. Отворете програмата за подписване на доставчика си.
  2. Изберете файла и удостоверението.
  3. Изберете формат CAdES и вида опаковка: прикачен (.p7m) или отделен (.p7s). В e-Doc Signer това е настройката за опаковка на подписа (InfoNotary).
  4. Подпишете с ПИН.

Внимавайте с термините, защото доставчиците ги ползват различно. В отговорите на Evrotrust „прикрепен подпис“ означава подпис, вграден директно в PDF или XML документа, а всички останали файлове се подписват с отделен подпис, който се пази в отделен файл. Какво разширение получава този файл, страницата не уточнява (Evrotrust).

Ако подписвате PDF, обикновено е по-удобно подписът да е вграден в самия PDF (PAdES): получателят го отваря в Acrobat Reader без допълнителен софтуер. Как става, вижте в как да подпиша PDF. Ако проверката даде грешка, причините са събрани в чести грешки с КЕП.

Източници и справки

  1. RFC 5652: Cryptographic Message Syntax (CMS) — IETF
  2. RFC 8551: S/MIME Version 4.0 Message Specification — IETF
  3. ETSI EN 319 122-1 V1.3.1: CAdES digital signatures; Part 1 — ETSI
  4. Ръководство за подписване и валидиране на документи с КЕП чрез InfoNotary e-Doc Signer — InfoNotary
  5. Техническа поддръжка — InfoNotary
  6. Софтуер — B-Trust (БОРИКА)
  7. Валидация на е-документи — B-Trust (БОРИКА)
  8. Поддържани файлове за подписване с Evrotrust — Evrotrust
  9. DSS Demonstration WebApp – Validate a signature — Европейска комисия
  10. openssl-cms — OpenSSL

Свързани материали

Редакция на esign.bg

esign.bg е малък екип, който работи от София, България. Пишем практично за електронния подпис и е-управлението и посочваме официалния източник на всяка стъпка. Не издаваме и не продаваме удостоверения.

За нас · Как работим · Всички материали

Стъпките са по официалните източници, посочени под материала. esign.bg не е доставчик на удостоверителни услуги. Редакционна политика · Забелязахте грешка? Пишете ни на kontakt@esign.bg.