Страхувальник підписує одноразовим ідентифікатором. Страховик — електронним підписом із позначкою часу, автоматично, без участі працівника. Нижче обидва шляхи працюють по-справжньому: пройдіть їх.
Документ підписано електронним підписом / підписом одноразовим ідентифікатором, про що Сторони Договору погодились у встановленому порядку (відповідно до Закону України «Про електронну комерцію»)
Спрацьовує автоматично, щойно страхувальник підтвердив код. Працівник страховика в цей момент нічого не натискає — саме це у вашому ТЗ названо ключовою вимогою. Підпис лягає на той самий хеш.
Журнал — це і є те, чим у спорі доводять факт підписання: хто, коли, з якої IP, яким каналом отримав код, яку саме версію документа бачив. Без нього підпис є, а доказу немає.
Чому саме так
Підпис одноразовим ідентифікатором тримається на Законі «Про електронну комерцію» — саме тому договір можна підписати без КЕП, і саме тому в PDF має бути той інформаційний блок із посиланням на нього. Підпис страховика — уже з довірчих послуг. Зводити їх в інтерфейсі в одну кнопку «підписати» не можна.
ЗУ «Про електронну комерцію» · ЗУ «Про електронну ідентифікацію та електронні довірчі послуги»Хеш фіксується до відправки коду. Якщо PDF перегенерувати після підтвердження — хоча б зміниться дата всередині — підпис перестане сходитись. Саме тут ламається більшість саморобних рішень на WordPress.
PAdES · підпис усередині PDFЧас сервера доказом не є: його можна перевести. У вашому ТЗ це сказано прямо — час визначається за даними довірчого сервісу, а не за системним часом. Саме позначка доводить, що документ існував у такому вигляді в такий момент.
електронна позначка часу · довірчий сервісЩо ставиться на WordPress
| Вузол | Що робить | Де живе |
|---|---|---|
| Плагін підписання | сторінка документа, кроки підписанта, шорткод для вставки в будь-яку сторінку | WordPress |
| Сервіс OTP | генерація коду, ліміт спроб і часу життя, канал SMS або e-mail | WordPress + шлюз |
| Підписувач страховика | накладання підпису на хеш, запит позначки часу | окремий сервіс, ключ поза вебом |
| Сховище та журнал | підписаний PDF, протокол, повна історія подій | WordPress + файлове сховище |
Ключ підпису страховика свідомо винесений із WordPress окремим сервісом: сайт на WP оновлюється плагінами й темами, і тримати в цьому периметрі ключ, яким підписуються договори, не можна. Це ж закриває вимогу «неможливість використання ключа неавторизованими особами».
| Критерій із ТЗ | Чим закривається |
|---|---|
| Договір можна підписати без КЕП | підпис одноразовим ідентифікатором на підставі ЗУ «Про електронну комерцію» |
| OTP використовується лише один раз | код анулюється в момент успішної перевірки, повторна перевірка відхиляється |
| Документ після підписання неможливо змінити без зміни хешу | SHA-256 знімається до відправки коду і входить у підпис |
| Журнал містить усі юридично значимі події | IP, User-Agent, канал, OTP ID, UUID, час відправки й підтвердження, хеш |
| Клієнт отримує підписаний PDF | відправка на вказану ним пошту одразу після накладання позначки часу |
| Адміністратор може перевірити автентичність | сторінка перевірки: завантажити PDF — отримати звірку хешу й статус сертифікатів |