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