Як підписувати з допомогою ЕЦП електронні
документи різних форм h2>
Юрій
Маслов p>
При створенні та впровадженні систем
електронного документообігу неминуче постає завдання визначення електронного
документа і його підпису. Ми вже майже звикли працювати з електронним цифровим
підписом (ЕЦП) для файлів, але іноді наші документи являють собою файли
певного формату або взагалі не є файлами. p>
У цій статті розглянемо кілька
найбільш поширених варіантів роботи з ЕЦП для електронних документів
певних форматів. p>
Підпис в HTML-формі h2>
Така задача виникає при встановленні
засобів ЕЦП в системах з "тонким" клієнтом, коли користувач
працює в системі через Web-браузер (MS IE). У таких системах надходять
наступним чином: створюється приховане hidden-поле у формі. Коли користувач
натискає кнопку типу "підписати і відправити", відповідний скрипт
обробника (наприклад, на VBScript) формує строкову змінну, в яку
методом конкатенації записують важливу інформацію з ідентифікації документа і
вміст текстових полів, які ввів користувач. Далі сформована строкою
мінлива підписується. Найчастіше використовуються методи об'єктів CAPICOM.dll,
неотделенная підпис. Підписана строкою змінна і є електронний
документ. Підписаний документ (підписана рядок) записується в hidden-полі
і методом POST передається на сервер. Серверне додаток перевіряє підпис у
змінної, отриманої з hidden-поля, і в залежності від результатів перевірки
ЕЦП і змістовної частини електронного документа здійснює його подальшу
обробку. Важливим моментом є збереження підписаного документа на
сервер. Для цього, як правило, створюють таблицю в базі даних системи з двома
полями: поле ключа і строкове поле з підписаний електронний
документ. p>
Підпис в базі даних h2>
Досить часто зустрічається нефайловая,
або строкою, форма подання електронного документа, а електронний
документ - як сукупність записів в таблицях бази даних. Для підписання
такого документа значення полів записів в таблицях бази даних наводяться в
рядковий тип, і за допомогою конкатенації формується строкою змінна,
відображає істотну змістовну і ідентифікаційну частина документа.
Саме цей рядок тепер вважається оригіналом електронного документа і
підписується. Підписана рядок зберігається у відповідній таблиці бази
даних системи з двома полями: поле ключа документа і строкове поле,
що містить підписаний електронний документ. p>
Підпис документів у форматі XML h2>
Якщо документ представлений у форматі XML,
то є кілька підходів до формування його підписів: формування ЕЦП
XML-документів XMLdsig для Windows (MSXML5, MSXML6) з використанням Microsoft
Office InfoPath 2003 - нової складової системи Microsoft Office; підпис
XML-документа як звичайного файлу. Іноді для підпису в XML-документі в тегу документа
створюють окремий атрибут, в який заноситься ЕЦП від символьної рядка
змінної довжини, що містить значення атрибутів тега документа. Такий
досить цікавий підхід до підпису XML-документа також зустрічається, і він
є цілком легітимним. p>
Підпис файлів у форматі PDF h2>
Для формування і перевірки ЕЦП і
забезпечення юридичної значимості електронних документів, які формуються в
форматі PDF, компанія "крипто-ПРО" розробила спеціальний продукт,
званий "КріптоПро PDF". Він є модулем створення та перевірки
ЕЦП і призначений для формування та перевірки ЕЦП в программax Adobe Reader,
Adobe Acrobat версії 7 і вище. "КріптоПро PDF" розроблений з
використанням програмного інтерфейсу Adobe Systems Inc. і завірений електронної
цифровим підписом компанії Adobe Systems. p>
Це дозволяє використовувати
сертифіковані засоби криптографічного захисту інформації "КріптоПро
CSP "в продуктах Adobe Acrobat, Adobe Reader та Adobe LiveCycle ES. Важливе
зауваження: "крипто-Про CSP" для перевірки ЕЦП не вимагає активації
ліцензії, тобто працює безкоштовно. Досить просто встановити цей продукт
і перевіряти підпис з використанням Adobe Reader. p>
Підпис многофайлових документів h2>
Іноді документ може являти собою
досить велику сукупність файлів. Наприклад, відомості про первинні
документах для здійснення операцій в реєстрі власників інвестиційних паїв
пайового фонду, отриманих від керуючої компанії. У цьому випадку можна
формувати для кожного документа свою ЕЦП, а можна від цього відмовитися. Якщо
з яких-небудь причин формування ЕЦП для кожного файлу документа неможливо,
то створюють ще один файл текстового формату, в який записують
ідентифікаційні дані документа і значення хеш-функцій для кожного файлу
документа. Саме цей файл (картка документа) і підписують. Але в даному
разі в системі повинен бути передбачений інструмент для користувача,
що дозволяє розрахувати значення хеш-функцій для кожного файлу та порівняння
обчислених значень з даними картки документа. p>
Юрій Маслов, комерційний директор ТОВ
"Крипто-ПРО" p>
Список b> b> літератури b> p>
Information Security № 1, лютий-березень
2009 p>