Просте рішення для використання ЕЦП - розвиток

imageУ своїй попередній статті «Просте рішення для використання ЕЦП» я описав ідею для реалізації програми для використання ЕЦП. З того часу багато чого змінилося. Найголовніше — ми вирішили перейти до моделі без використання проміжних проксі-серверів і більш активно використовувати QR-коди. Так-же у нас з'явився більш симпатичний демо-сайт, дозволяє спробувати, як працює наш додаток для різних варіантів застосування: для підписання петиції, для голосування, для підтвердження своїх дій на сайті.

Для тих, хто не хоче читати попередню статтю, нагадаю, про що йдеться…

Наш проект GPL Vote орієнтований на створення розподіленої і захищеної системи голосувань та збору підписів. Ми вважаємо, що використання електронного цифрового підпису є необхідною умовою для її створення. Однак, безліч існуючих рішень є або занадто складними для середнього обивателя, або оплатними, або закритими. А, найчастіше, спостерігається все це разом. Тому ми вирішили запропонувати простий у використанні, безкоштовний і відкритий рішення.

Ще раз наголошую — ми не пропонуємо жодних нових ідей. Ми пропонуємо лише реалізацію, що включає в себе мобільний додаток і API для сайтів, які хочуть використовувати його можливості. У використанні мобільного додатка немає жодних обмежень — будь-який сайт може реалізувати потрібне API і пропонувати своїм користувачам захист їх даних через мобільний додаток. Так-же будь-який сайт може взяти исходники мобільного додатка і переробити його під свої потреби. Головне дотримуватися ліцензію.

Про зміни
Подумали ми, подумали і вирішили що включати в ланцюжок посередника у вигляді проксі-серверів, при тому, що робота і так йде з сайтом, — це не дуже гарна ідея. Але в цьому випадку необхідно якимось чином передавати вміст підписаного документа в мобільний додаток.

І тоді ми згадали про QR-кодах. Через нього-ж можна прямо з екрану передати всі дані документа в мобільний додаток. Проте, документи можуть бути досить великими. Так ніякого екрану не вистачить для відображення QR-коду. Що вже говорити про процедуру його розпізнавання з малопотужного смартфона. Варіант рішення знайшовся досить очевидний. Т. к. для відправки підпису на сайт, все-одно потрібно підключення смартфона до мережі, таким-же чином через мережу можна і отримати документ. Тому в QR-коді ми вирішили розмістити дані URL на сайт, за яким можна отримати вміст документа для підписання. Тільки замінили схему на свою, що-б такі посилання можна було автоматично направляти в наш додаток.

Таким чином, вся процедура підписання документа зводиться до сканування QR-коду і підписання його у вікні нашої програми. Плюсом такого варіанту є ще й те, що QR-коди на підписання петицій можна розміщувати не тільки на сайтах, а й на листівках або паперових оголошеннях. Звичайно, в такому разі, підписується документ доступний у відкритому вигляді, але часто це цілком припустимо (наприклад, для тих-же петицій).

Якраз друга істотна зміна стосується того, що документ для підписання може бути представлений у двох видах: у персоніфікованому вигляді, коли дані документа шифруються ключем користувача, і в публічному вигляді, коли документ призначений для множинного підписання різними людьми. Публічний варіант, як я вже зазначив, може використовуватися для збору підписів під петиціями або для організації відкритих голосувань.

Ну і останнє редагування — в структуру документа для підписання включений атрибут, що містить URL, на який мобільний додаток має відправити підпис даного документа. З введенням цієї можливості ми повністю відв'язали процедуру підписання від проміжних проксі-серверів. Наслідком цього нововведення стало ще й те, що зникла затримка між відправкою підпису документа та її обробкою.

Плани
В планах у нас ще багато доопрацювань. В основному вони стосуються резервного копіювання секретного ключа, відновлення його з резервної копії та створення інфраструктури для анулювання скомпрометованого ключа.

Так-же почала робота над мобільним додатком, що реалізує «мережі довіри» з використанням даного додатка в якості модуля для підписання.

Посилання на додаткову інформацію
Мобільний додаток Google Play Маркет
Новий демо-сайт
Опис API для сайтів
Вихідний код мобільного додатка (Android)
Вихідний код демо-сайту (Perl)

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.