Коротка відповідь. PAdES (PDF Advanced Electronic Signatures) — це стандарт, який вбудовує кваліфікований електронний підпис безпосередньо у структуру PDF-файлу. На виході — один підписаний PDF, а не документ плюс окремий файл підпису. У DSTUcrypt підпис PDF робиться тим самим віджетом, що й решта форматів: embed('sign') і виклик sign(pdfBytes, { format: 'PAdES-B-T', fileName: 'contract.pdf' }). Уся криптографія виконується у браузері користувача — ключ і пароль не покидають його пристрій.
Чому для PDF краще PAdES, а не окремий .p7s поруч
Підписати PDF можна двома способами. Перший — зробити звичайний CMS-підпис (CAdES) у вигляді окремого файлу .p7s, який лежить поруч із PDF. Другий — PAdES, коли підпис вбудовується всередину самого PDF. Для документів, які читають люди, PAdES майже завжди зручніший:
- Один файл. Ви пересилаєте, зберігаєте й завантажуєте єдиний PDF. Немає ризику, що документ і його підпис випадково розлучаться.
- Зрозуміло одержувачу. Підписаний PDF відкривається як звичайний PDF; читалки з підтримкою PAdES показують наявність підпису.
- Стандарт для документообігу. PAdES — це європейська лінійка стандартів ETSI для підпису саме PDF, аналог CAdES для довільних даних.
Окремий .p7s (CAdES) лишається доречним, коли ви підписуєте не-PDF дані — наприклад, довільний файл або структуру, яку читає інша система. Порівняння всіх форматів — у статті «Формати електронного підпису: CAdES, PAdES, XAdES, ASiC — який обрати».
Як влаштований PAdES
Технічно PAdES бере той самий криптографічний CMS-підпис, що й CAdES, але розміщує його у спеціальному місці всередині PDF, передбаченому форматом. Тому підпис живе в одному файлі з документом і рухається разом із ним. Як і в CAdES, підпис має рівні «зрілості» — від базового до довгострокового.
Рівні PAdES: який обрати
| Рівень | Що додає | Коли потрібен |
|---|---|---|
| PAdES-B-B | базовий підпис (сам факт підпису ключем) | внутрішні документи, чернетки, коли час не критичний |
| PAdES-B-T | мітку часу TSP — доводить момент підпису | більшість договорів і заяв: рекомендований старт |
| PAdES-B-LT | дані про статус сертифіката (OCSP/CRL) для довгострокової перевірки | документи, що зберігаються роками |
| PAdES-B-LTA | архівну мітку часу поверх усього — найдовговічніший рівень | архіви, юридично критичні документи, тендери |
Практичне правило: для повсякденних документів беріть PAdES-B-T, для тих, що мають лишатися перевірюваними через багато років, — PAdES-B-LTA. Докладно про довговічність — у статті «Довгостроковий електронний підпис: CAdES-XL і PAdES-LTA».
Покроково: підпис PDF у DSTUcrypt
Уся інтеграція — це один імпорт SDK і виклик підпису. Користувач обирає ключ і вводить пароль усередині ізольованого вікна на нашому домені — ваша сторінка їх не бачить.
підпис PDF за стандартом PAdES
import { embed } from 'https://dstucrypt.io/embed/dstucrypt-embed.mjs';
const signer = await embed('sign', { mount: 'modal' });
// pdfBytes — File | Blob | ArrayBuffer | Uint8Array вашого PDF
const { signature } = await signer.sign(pdfBytes, {
format: 'PAdES-B-T', // підпис усередині PDF + мітка часу
fileName: 'contract.pdf', // ім'я для PDF-контейнера
// digest: 'kupyna-256', // опційно: геш «Купина» замість ГОСТ 34.311
});
signature.download('contract-signed.pdf'); // готовий підписаний PDF
// або signature.bytes / signature.base64 — щоб віддати на ваш бекенд
Результат — готовий PDF із вбудованим підписом. Опція fileName задає ім'я всередині контейнера, а сам файл ви можете або одразу віддати користувачу через signature.download(), або надіслати на бекенд як signature.bytes/signature.base64.
Один віджет — усі формати. Той самий embed('sign') підписує не лише PDF (PAdES), а й CAdES (.p7s), XAdES (XML) та ASiC-контейнери — усього 16 форматів. Криптоядро — перевірена нативна C/C++-бібліотека, скомпільована у WebAssembly, що роками працює в українській PKI. Ключ і пароль ніколи не потрапляють ні на ваш сервер, ні до нас; мітки часу TSP і дані OCSP вбудовуються в контейнер через наш проксі — ви нічого не налаштовуєте.
Геш «Купина» чи ГОСТ 34.311 для PDF
Як і в інших форматах, за замовчуванням PDF підписується з гешем ДСТУ ГОСТ 34.311-95 — саме цю пару (підпис ДСТУ 4145 + ГОСТ) сьогодні приймають держвалідатори Дія/ЦЗО. Сучасну «Купину» (ДСТУ 7564:2014) вмикають явно опцією digest:'kupyna-256'. Що це за стандарт і коли його обирати — читайте у статті ««Купина» (ДСТУ 7564:2014): що це за геш-функція і чому вона замінює ГОСТ 34.311-95».
Як перевірити підписаний PDF
Перевірити підпис у PDF можна тим самим SDK — віджет verify сам визначає формат за вмістом файлу (для PDF це PAdES) і повертає статус, підписанта та ознаку, чи це саме КЕП (акредитований надавач). Для разових перевірок без інтеграції є безкоштовний онлайн-інструмент dstucrypt.com.ua/verify.
Поширені запитання
Чи буде видно підпис у PDF відкритим у Adobe Acrobat?
Підпис за стандартом PAdES вбудовується безпосередньо у структуру PDF-файлу — це один документ, а не окремий .p7s поруч. Читалки, які підтримують PAdES, розпізнають підпис усередині файлу. Для криптографічно повної перевірки (ланцюжок довіри, статус сертифіката, мітка часу) використовуйте віджет перевірки або безкоштовний інструмент на dstucrypt.com.ua/verify.
Чим PAdES кращий за окремий файл підпису .p7s поруч із PDF?
PAdES тримає підпис усередині самого PDF, тож ви пересилаєте й зберігаєте один файл, який неможливо випадково розлучити з підписом. Окремий .p7s (CAdES) — це два файли, які легко роз'єднати; він доречний, коли підписуються не-PDF дані.
Який рівень PAdES обрати?
PAdES-B-B — базовий підпис. PAdES-B-T додає мітку часу TSP (доводить момент підпису). PAdES-B-LT і PAdES-B-LTA додають дані для довгострокової перевірки, коли документ має лишатися перевірюваним роками. Для більшості документів достатньо B-T; для архівів і юридично критичних — B-LTA.
Чи можна підписати PDF з гешем «Купина»?
Так. За замовчуванням використовується геш ДСТУ ГОСТ 34.311-95 (його приймають держвалідатори), а «Купину» (ДСТУ 7564:2014) можна увімкнути опцією digest:'kupyna-256' — так само, як і для інших форматів.
Читайте також
- Формати електронного підпису: CAdES, PAdES, XAdES, ASiC — який обрати
- Довгостроковий електронний підпис: CAdES-XL і PAdES-LTA
- Як додати КЕП на сайт за 10 хвилин: iframe-віджет без бекенду
Підпис PDF за ДСТУ — на вашому сайті
Готовий віджет підпису PAdES та решти форматів. Ключ і пароль не покидають браузер. Разовий підпис — безкоштовним інструментом /sign; на кожному новому домені — 7 днів безкоштовно.
Підписати файлЯк підключити