Блог · Основи КЕП

Формати електронного підпису: CAdES, PAdES, XAdES, ASiC — який обрати

Опубліковано

Файл .p7s, підпис усередині PDF, XML-підпис чи ZIP-контейнер? Пояснюємо різницю між родинами форматів ЕЦП, розшифровуємо рівні BES/T/LT/LTA і даємо зведену таблицю «задача → формат».

Опубліковано 7 серпня 2026


Коротка відповідь. Формат підпису визначають три речі: тип файлу, де живе підпис і наскільки довго він має лишатися перевірюваним. Практичне правило таке: для будь-яких файлів — CAdES (класичний .p7s), для PDF, які читатимуть люди, — PAdES (підпис усередині самого PDF), для XML-обміну між системами — XAdES, а щоб передати оригінал і підпис одним файлом — контейнер ASiC. Криптографія всередині однакова — підпис ДСТУ 4145 плюс геш; різниця лише в «обгортці» та в рівні довговічності. У DSTUcrypt усі чотири родини — 16 форматів — доступні через одну опцію format.

Навіщо взагалі існують різні формати

Коли ключ ставить підпис, він підписує не сам файл, а його короткий відбиток — результат геш-функції (в українському КЕП це ДСТУ ГОСТ 34.311-95 або сучасна «Купина» за ДСТУ 7564:2014). Далі це саме значення підпису треба кудись «покласти» — і ось тут починаються формати. Європейська система стандартів ETSI визначає кілька родин *AdES (Advanced Electronic Signature), і кожна відповідає на три питання по-своєму:

  • Який тип файлу підписуємо? Довільний бінарний файл, PDF чи XML — у кожного свій природний формат.
  • Де живе підпис? Окремим файлом поруч, усередині самого документа чи в спільному контейнері разом з оригіналом.
  • Скільки він має «прожити»? Базовий підпис перевіряється, поки чинний сертифікат; рівні з мітками часу та даними відкликання лишаються доказовими роками.

Відповівши на ці три питання для своєї задачі, ви майже автоматично отримуєте правильний формат.

CAdES (.p7s): універсальний CMS-підпис

CAdES — найстарша і найпоширеніша родина: підпис пакується у структуру CMS (Cryptographic Message Syntax), файл зазвичай має розширення .p7s. Підписати можна що завгодно — документ, архів, зображення, бінарні дані. Саме CAdES найчастіше мають на увазі, коли кажуть просто «файл ЕЦП».

Рівні CAdES історично мають «стару» номенклатуру:

format Рівень Що додає
CAdES-BES базовий підпис без мережі; перевіряється, поки чинний сертифікат
CAdES-T + мітка часу кваліфікована мітка часу TSP фіксує момент підписання
CAdES-C + референси посилання на сертифікати й OCSP/CRL для повної перевірки
CAdES-XL + повні дані самі сертифікати та OCSP/CRL вкладено в контейнер — довгострокова офлайн-перевірка

Є й архівний рівень CAdES-A (аліас CAdES-LTA) з архівною міткою часу. Зверніть увагу на номенклатуру: у CAdES рівень «з міткою часу» пишеться CAdES-T, а не «CAdES-B-T» — baseline-форму назви вживають лише XAdES і PAdES.

Attached чи detached: де лежать самі дані

CMS-підпис буває двох видів. Вкладений (attached) — документ упаковано всередину .p7s разом із підписом: один файл, який зручно пересилати, але щоб прочитати вміст, потрібен засіб, що вміє його «розпакувати». Відокремлений (detached) — у .p7s лише підпис, а оригінальний файл живе поруч у незмінному вигляді: його можна відкривати як звичайно, але для перевірки валідатору потрібні обидва файли.

У DSTUcrypt це одна булева опція detached: true (діє для CAdES). Практичне правило: якщо одержувач — система, що очікує пару «файл + підпис», беріть detached; якщо документ має мандрувати поштою одним вкладенням — attached або ASiC-контейнер.

PAdES: підпис живе всередині PDF

PAdES — це профіль підпису саме для PDF: значення підпису вбудовується в структуру самого документа. Головна перевага — файл лишається звичайним PDF: його відкриє будь-який переглядач, а засоби на кшталт Adobe Acrobat ще й покажуть панель підписів. Жодних окремих файлів .p7s, які губляться при пересиланні.

Рівні PAdES ідуть за baseline-схемою ETSI: PAdES-B-B (базовий), PAdES-B-T (+ мітка часу), PAdES-B-LT (+ дані для довгострокової перевірки), PAdES-B-LTA (+ архівна мітка часу). Для договорів і документів, які читатимуть люди, PAdES — майже завжди правильний вибір: одержувачу не треба нічого пояснювати, він просто відкриває PDF.

XAdES: підпис для світу XML

XAdES — підпис у розмітці XML (на базі XML-DSig). Це мова систем: електронна звітність, B2B-обмін структурованими документами, інтеграції, де підписаний XML далі парситься автоматично. Рівні аналогічні PAdES: XAdES-BES, XAdES-B-T, XAdES-B-LT, XAdES-B-LTA.

Нюанс, про який часто дізнаються запізно: підтримка українських ключів ДСТУ 4145 у XAdES — рідкість серед бібліотек. У DSTUcrypt вона є з коробки: XML-підпис працює з ключами ДСТУ 4145 у парі з гешем ДСТУ ГОСТ 34.311-95 (за замовчуванням) або «Купиною-256» (ДСТУ 7564:2014) — алгоритмічні пари dstu4145-gost34311 і dstu4145-dstu7564-256.

ASiC-S і ASiC-E: оригінал і підпис в одному контейнері

ASiC (Associated Signature Container) — це ZIP-архів зі стандартизованою внутрішньою структурою: оригінальні файли лежать поруч із підписом. Виходить «конверт», який розв'язує головний біль detached-підписів — файли більше не розлучаються. Бонус: вміст контейнера можна подивитися звичайним архіватором.

Контейнер Файл Вміст Рівні
ASiC-S (simple) .asics один файл + підпис ASiC-S-BES · ASiC-S-T
ASiC-E (extended) .asice кілька файлів під одним підписом ASiC-E-BES · ASiC-E-T

ASiC зручний для пакетів документів: договір плюс додатки їдуть одним файлом, і підпис накриває їх усі. Ім'я файлу всередині контейнера задається опцією fileName.

Зведена таблиця: задача → рекомендований формат

Задача Рекомендований формат Чому
Звіт чи документ у держорган CAdES-T (.p7s) класична пара «файл + .p7s», геш за замовчуванням ГОСТ 34.311 приймають держвалідатори
Договір B2B на роки CAdES-XL сертифікати й OCSP/CRL вкладено — перевірка офлайн через роки
PDF, який читатимуть люди PAdES-B-T підпис усередині PDF, відкривається будь-яким переглядачем
XML для звітності чи систем XAdES-B-T підпис у самій розмітці, зручний для автоматичної обробки
Пакет документів одним файлом ASiC-E-T кілька файлів + підпис в одному контейнері
Архівне зберігання 10+ років PAdES-B-LTA / XAdES-B-LTA / CAdES-XL максимум даних для перевірки після спливу сертифіката
Швидкий внутрішній підпис без мережі CAdES-BES єдиний рівень, що не потребує онлайн-TSP

Пам'ятайте головне обмеження рівнів: усе, що вище за BES (T, C, XL, LT, LTA), потребує онлайн-доступу до сервера міток часу TSP у момент підписання.

Як обрати формат у DSTUcrypt: один параметр

У віджеті підпису DSTUcrypt вибір формату — це один рядок. Той самий віджет підписує PDF, XML, довільні файли й збирає ASiC-контейнери:

формат підпису — одна опція format

import { embed } from 'https://dstucrypt.io/embed/dstucrypt-embed.mjs';

const signer = await embed('sign', { mount: 'modal' });

// PDF для людей: підпис вбудовується в сам документ, з міткою часу
const { signature } = await signer.sign(pdfBytes, { format: 'PAdES-B-T' });
signature.download('contract.pdf');

// довгостроковий підпис будь-якого файлу: сертифікати й OCSP — у контейнері
const r = await signer.sign(fileBytes, { format: 'CAdES-XL' });
r.signature.download('document.p7s');

Повний перелік значень format: CAdES — CAdES-BES, CAdES-T, CAdES-C, CAdES-XL; PAdES — PAdES-B-B, PAdES-B-T, PAdES-B-LT, PAdES-B-LTA; XAdES — XAdES-BES, XAdES-B-T, XAdES-B-LT, XAdES-B-LTA; ASiC-S — ASiC-S-BES, ASiC-S-T; ASiC-E — ASiC-E-BES, ASiC-E-T. Віджет перевірки визначає родину автоматично за вмістом файлу: CMS/CAdES, PDF, XML чи ZIP-контейнер.

Чому це зручно саме тут. Усі 16 форматів живуть в одному SDK — не треба збирати зоопарк бібліотек під PDF, XML і CMS. Криптографія виконується в браузері користувача на перевіреній нативній C/C++-бібліотеці, скомпільованій у WebAssembly — ключ і пароль не покидають браузер. Мітки часу TSP та OCSP-статуси вбудовуються прямо в контейнер підпису, тож документи рівнів T/XL/LT/LTA перевіряються офлайн.

Поширені запитання

Чим CAdES відрізняється від PAdES і XAdES?

Криптографічно це той самий підпис ДСТУ 4145 — різниця в «обгортці». CAdES — універсальний CMS-підпис для будь-яких файлів (окремий файл .p7s або контейнер із вкладеними даними). PAdES вбудовує підпис усередину самого PDF — файл лишається звичайним PDF. XAdES — підпис у розмітці XML для систем обміну даними. Обирайте за типом файлу і за тим, хто перевірятиме підпис.

Що таке файл .p7s?

Це контейнер підпису CMS/CAdES. Вкладений (attached) .p7s містить усередині і сам документ, і підпис — достатньо одного файлу. Відокремлений (detached) .p7s містить лише підпис, а оригінальний файл передається поруч, — щоб перевірити такий підпис, валідатору потрібні обидва файли.

Навіщо потрібен ASiC-контейнер?

ASiC — це ZIP-архів зі стандартизованою структурою, в якому оригінальні файли лежать поруч із підписом. Вміст можна відкрити звичайним архіватором, а підпис не «загубиться» під час пересилання. ASiC-S (.asics) містить один файл, ASiC-E (.asice) — кілька файлів, накритих одним підписом.

Який рівень формату обрати для довгострокового зберігання?

Той, що вкладає в контейнер мітку часу та повні дані для перевірки: CAdES-XL для .p7s, PAdES-B-LTA для PDF, XAdES-B-LTA для XML. Мітки часу TSP та OCSP-статуси вбудовуються в сам контейнер, тому підпис перевіряється офлайн і лишається доказовим навіть після завершення строку дії сертифіката підписанта.

Читайте також

Усі 16 форматів підпису на вашому сайті — за 10 хвилин

Готові віджети підпису, перевірки та шифрування за ДСТУ. Ключ і пароль не покидають браузер користувача. На кожному новому домені — 7 днів безкоштовно.

Живе демоЯк підключити

Спробуйте КЕП на своєму сайті

Готові віджети підпису, перевірки та входу за ДСТУ. На кожному новому домені — 7 днів безкоштовно.