Доброго дня колеги.
Прийшов час нашої скромної організації завести собі власний майданчик для роботи по 222-ФЗ.
Перед нами постало наступне питання - як правильно (і відповідно до законів нашої країни, якщо такі регламентують такі речі, і відповідно до банальної безпеки) працювати з ЕЦП?
Початковий варіант, це підписувати кожне важливе дію користувача за допомогою ЕЦП (IE + CAPICOM + cryptcp). Однак, при цьому ми просто бачимо що користувач такий-то завантажив файл такий то документ (наприклад, пропозиція ціни).
У теорії, піддамо ресурс атаці і файл цей легко можна було б замінити на будь-який інший (наприклад з ціною пропозиції в 2 рази менше), і згідно з правилами горе переможцю довелося б платити.
З цього я бачу два виходи:
А) Змушувати підписувати клієнтів все doc файли (і вести роботу відповідно тільки з ними) у себе в Microsoft Office і тільки після цього завантажувати і приймати їх в роботу.
Б) Якимось чином підписувати файл при завантаженні або спеціальною кнопкою на сайті вже після завантаження, як, наприклад, робиться при деяких діях на zakupki.gov.ru (zakupki.gov.ru/wps/portal/faq/utilities/PGZ. User_G. пункт 4.4.4.)
Мої студії привели до того, що я, ймовірно, можу зробити наприклад файл підписаним за допомогою сертифікату користувача хешем файлу, але правильне чи це рішення чи ні - я не впевнений.
За ідеєю, поєднання підписаного хешу файлу повинна бути унікальною для поєднання «власник ЕЦП» + «конкретний файл».
Хочеться почути поради, досвід впровадження таких функцій або де про технічну сторону таких проблем можна почитати.
Відповідаю собі сам - раптом комусь ще стане в нагоді.
Після опитування найбільших гравців на ринку з'ясувалося, що використовується строго варіант Б. Тобто підпис файлу валидна тільки в контексті того системи в якій його підписали. Якщо ж хтось завантажує файл, то перевірити був він підписаний чи ні - неможливо.
Подверждает, що в РФ майданчики реалізують підпис хоч і по одним стандартам, але по факту получається так, що файл підписаний на одній ЕТМ не обов'язково пройде перевірку на інший ЕТМ.
З приводу "перевірити неможливо" - якщо зрозуміло, що саме підписано, і доступний публічний сертифікат, то цілком можливо.
Тут два варіанти:
1 підписані самі дані;
2 підписаний хеш файлу.
Якщо використовувався capicom то швидше за все використаний другий варіант, тому що в першому є проблемми з підписуванням даних непарної довжини і роботою capicom + js з unicode.
Тобто в другому варіанті, потрібно
1 мати файл
2 знати як расчітиваеться хеш (який алгоритм)
3 мати відкритий ключ (публічний сертифікат) користувача який підписав файл
І перевіряйте собі файл будь-якими засобами які підтримують необхідне шифрування (для ЕТМ РФ це ГОСТ)
Майданчик, на жаль, відмовилася мертвонароджених (так і не вивели її на ринок, хоч і написали), так що регулятори її не бачили і якось точно відповісти на питання "ми вирішили ось так-то і це правильно" я не можу.
Якщо я не помиляюся, я підписував хеші файлів - власне як ви і написали.
Tel. Доброго дня. У нас схожа задача - ми впроваджуємо ЕЦП в ІС (веб) одного з автономних установ. Ми хотіли б поспілкуватися з вами, можливо в рамках консультацій, для заповнення деяких прогалин, в організації роботи з ЕЦП. Якщо у вас буде можливість і інтерес :) просимо написати на пошту agrСОБАКАugraweb.ru