«Бачимо, що не москаль!»: як ми налаштували верифікацію через Дія.Підпис, щоб дати українцям VPN безкоштовно
Привіт! 👋 Я Дмитро Яковлєв, Product Manager в українській IT-компанії MacPaw. Моя команда працює над ClearVPN, рішенням для користувачів macOS, iOS, Android та Windows, які хочуть безпечно отримувати контент онлайн без перешкод.
З початком повномасштабної війни, ми вирішили використати наш продукт для допомоги Україні та українцям. Спочатку ми запустили інформаційну кампанію, щоб розповісти користувачам з інших країн про те, що відбувається в Україні. Додали інформаційні банери в застосунки, писали про агресію росії в соцмережах та у нашому блозі. Запрошували користувачів-іноземців донатити в фонди допомоги ЗСУ та підтримувати ініціативи з допомоги Україні.
Згодом вирішили надати всім українцям вільний доступ до застосунку, а для цього нам потрібно було створити інструмент, який би надавав безкоштовний Premium-доступ саме українцям. Рішенням стала інтеграція з Дією та підтвердження громадянства України за допомогою Дія.Підпису. Це відбувається без збору даних користувачів і технічно реалізовано так, щоб все відбувалось анонімно і для ClearVPN, і для Дії 🚀
У статті я розповім про реалізацію, як відбувалася співпраця з Мінцифрою та які висновки ми зробили. Більше інсайтів всієї історії можна послухати у подкасті.
Детальніше про продукт
Наша команда розвиває ClearVPN понад 2 роки. За цей час користувачі завантажили застосунок майже 700 тисяч разів й могли підʼєднатись до 500+ VPN серверів у 23 країнах світу.
ClearVPN має сувору no-log політику. У контексті VPN це означає, що застосунок не збирає жодної інформації про те, що користувачі переглядають в інтернеті та коли вмикають ClearVPN. Окрім IPSec IKEV2 та OpenVPN, застосунок також використовує власний протокол шифрування на основі WireGuard.
До речі, зараз ми працюємо над ClearVPN 2 — новою версією застосунку. Вона матиме новий інтерфейс та кращу швидкість завдяки покращеній серверній інфраструктурі. Щоб відшліфувати новий застосунок, ми запустили відкрите тестування бета-версії, тож якщо ви бажаєте долучитися, ласкаво просимо :)
Тож, повернемось до історії. З початку повномасштабної війни ми постійно комунікували та намагалися підтримувати одне одного в компанії та в команді. Під час одного з таких командних дзвінків почали обговорювати, як ми можемо допомогти більшій кількості людей, маючи наші ресурси.
Проблема: Доступ до надійних джерел інформації та інформаційна безпека
Багато користувачів за кордоном використовували VPN-застосунки, щоб дізнатися новини з українських першоджерел. Людям потрібен був доступ до перевіреної інформації про події в Україні.
З іншого боку, ті наші співгромадяни, які опинились на тимчасово окупованих територіях, мали потребу в доступі до українських сайтів новин, які були заблоковані окупантами. Окрім цього, окупанти активували аналіз трафіка для подальшого переслідування та відключили людей від українських провайдерів інтернету й мобільного звʼязку. Натомість провели своїх постачальників з російськими IP та мобільними мережами.
Враховуючи те, що VPN-застосунок міг би розвʼязувати такі проблеми наших співгромадян, ми вирішили надати безоплатний доступ українцям до всіх можливостей ClearVPN.
Що ми спробували до Дії
Ідея інтеграції Дія.Підпису зʼявилася не одразу. У нас було багато варіантів, тому ми почали з найшвидшого. Кожен з етапів приніс і користь і складнощі, які ми повинні були виправляти.
Спроба 1. Промокоди для безкоштовного ClearVPN Premium
Ми почали надавати промокоди для українських та іноземних медіа, які до нас зверталися. Потім ми вирішили надати безкоштовний VPN-доступ для всіх українців, і в першій ітерації створили промокод SAVEUKRAINE.
Після декількох тижнів ми вже налагодили автоматичне застосування промокодів для усіх користувачів з України, одночасно збільшуючи ліміти для застосування.
Проте згодом помітили, що наші промокоди почали поширюватися піратськими Telegram-каналами і стали дуже популярними в інших країнах. Люди не з України почали користуватися нашими промокодами, щоб отримати ClearVPN безкоштовно.
Стало зрозуміло, що треба змінити механізм надання преміуму, щоб оптимізувати витрати на підтримку серверів. Ось так наша ініціатива обернулася проти нас і постало питання, як ідентифікувати українців таким чином, щоб надати їм безкоштовний доступ до VPN-сервісу.
Спроба 2. Free Premium за українською IP-адресою
Згодом ми почали автоматично надавати Premium-статус користувачам, які реєструвались з українських IP. Такий підхід працював набагато краще і ми змогли збалансувати навантаження на сервери. Та й реєстрація спростилась: користувачам не потрібно було шукати посилання, переходити за ним та вводити промокод.
Проте згодом ми почали отримувати фідбек від українців з-за кордону, а також з тимчасово окупованих територій щодо неможливості отримання Premium-підписки. Ситуацію з користувачами за кордоном ми очікували і планували вирішити ці кейси персональними промокодами (проте ми не знали, що буде така велика кількість запитів).
Зате досить критичною виявилась ситуація на тимчасово окупованих територіях Херсонщини, Маріуполя, Нової Каховки, Мелітополя та багатьох інших населених пунктів. Ми чули багато повідомлень щодо шпигунства за трафіком, після якого приходили «гості» за поясненнями. Саме це мотивувало нас докласти максимум зусиль, щоб терміново винайти спосіб ідентифікації українців і допомогти їм.
Етап інтеграції з Дією
Ідея інтеграції з Дією народилася раптово. Ми мали високі вимоги щодо анонімності і безпеки користувачів, та вирішили зв’язатися з Дією, щоб дізнатися, чи зможуть вони зустріти такі вимоги та допомогти.
Зізнаюся, спершу ми очікували, що буде багато формальностей, але в нашому випадку комунікація була швидкою та ефективною.
Ми розповіли про ідею підтвердження громадянства і запитали щодо можливості технічної реалізації зі збереженням анонімності особистих даних користувачів. Команда Дії запропонувала нам анонімне та безпечне рішення, і ми запустили процес інтеграції у декілька етапів.
1. Отримання та аналіз технічної документації
Представники Дії підтримали наш задум, надали технічні матеріали та консультували, поки ми вивчали документацію і продумували користувацькі сценарії для запуску проєкту.
2. Вивчення схем бізнес-процесів
Ми побудували BPMN (схему бізнес-процесів), яка показувала, що відбувається щоразу, коли користувач взаємодіє з Дія.Підписом. Уже на цьому етапі ми створили невеличкий прототип з приблизним дизайном інтерфейсу.
На перший погляд, все було дуже просто. Ми планували додати ще один спосіб авторизації, як, наприклад, авторизація через Google або Facebook. Виявилось, що ми не можемо так зробити.
Використовуючи Дія.Підпис, генерується унікальний ідентифікатор для кожного девайсу. Враховуючи те, що користувачі ClearVPN можуть використовувати застосунок на 6 пристроях, ми повинні були зберегти ідентифікатор акаунту. Саме так зʼявилася ідея з авторизацією для підтвердження громадянства через Дія.Підпис та отримання Premium.
Після погодження бізнес-логіки та відповідей на технічні питання з боку команди Міністерства цифрової трансформації, ми змогли перейти до технічної реалізації.
3. Юридичні активності
Одночасно з попереднім етапом наш юридичний відділ ознайомився з інформацією від Мінцифри. Ми заповнили необхідні анкети, а також підписали потрібні документи.
4. Технічна реалізація та погодження візуального оформлення UI
Дія дає можливість наступних сценаріїв інтеграції:
- створення Дія.Підпису;
- підписання хеша файлу, ініційоване у третій системі;
- авторизація через Дія.Підпис.
У нашому випадку нас цікавить саме авторизація через Дія.Підпис, адже таким чином ми можемо верифікувати громадянство користувача.
Необхідна була фінальна перевірка на відповідність користувацького сценарію узгодженій схемі бізнес-процесів. У нашому випадку, ми особисто тестували та записували короткий відеозвіт всіх варіантів взаємодії клієнта з Дією за нашими налаштованими сценаріями.
Це потрібно, щоб засвідчити наступне: послуги коректно налаштовані та відповідають всім вимогам. Для нас було надважливо отримати підтвердження того, що з нашого боку усе налаштоване максимально безпечно та анонімно.
5. Реліз та підтримка
Аналізуючи помилки, з якими зіштовхувалися наші користувачі після релізу, ми поступово розв’язувати критичні проблеми. Представники Дії продовжували консультувати нас з окремих питань, а деякі кейси навіть підсвітили для подальшого покращення з боку Мінцифри.
Враховуючи те, що все більше і більше українців верифікуються через Дію, процес підтримки є постійним і не зупиняється.
Як відбувалася технічна реалізація
Авторизація за допомогою Дія.Підпису відбувається за використанням REST-протоколу. В результаті авторизації ClearVPN сервер отримує підписаний хеш та відповідність його до внутрішнього анонімізованого ідентифікатора користувача.
Цього достатньо аби прийняти рішення про надання доступу до сервісу. Загальний вигляд авторизації на Desktop, Mobile та Web виглядає ось так (відкрийте зображення у новому вікні, щоб побачити його у повному розмірі):
Всі деталі технічної реалізації не можу розкривати з причин безпеки. Якщо ви є розробником, який хоче додати верифікацію користувачів з України у свій застосунок, зверніться до команди Дії. Вони нададуть документацію за вашим запитом.
Ініціалізація підтвердження громадянства
Кожен користувач Дії з чинним Дія.Підписом на своєму пристрої має можливість пройти верифікацію в застосунках та вебверсії ClearVPN та отримати безкоштовний доступ до Premium-версії застосунку.
Щоб розпочати верифікацію, потрібно натиснути кнопку Дія.Підпис у спеціальному меню в застосунку ClearVPN або у вебверсії. Після натискання кнопки, застосунок відправляє запит до сервера Дії на отримання діплінки для проходження авторизації ClearVPN в Дії.
Сервер Дії підтверджує валідність застосунку та його права, перевіряє валідність запиту та надсилає відповідь до серверів ClearVPN.
В залежності від платформи, на якій користувач розпочав верифікацію, існує два сценарії розвитку подій:
- у вебверсії: генерується QR-код на сайті, який користувачу потрібно зчитати сканером у застосунку Дія;
- у застосунку: ініціюється автоматичний перехід користувача на екран підтвердження підпису у застосунку Дія.
Тобто після того, як користувач ClearVPN ініціює верифікацію громадянства з Дія.Підписом, сервери ClearVPN генерують запит на перевірку Дія.Підпису, й у відповідь отримують механізм для перевірки у застосунку Дія (за QR-кодом або автоматично після редиректу).
Що відбувається, коли користувач потрапляє у застосунок Дія
Застосунок Дія показує екран перевірки запиту та звертається до сервера із запитом на валідацію OTP (одноразового тимчасового токена). Якщо користувач має Дія.Підпис, він може підтвердити верифікацію і завершити процес. У випадку, якщо користувач не має активного Дія.Підпису, Дія запропонує створити його за лічені секунди — для цього потрібно мати паспорт у застосунку. А далі — пройти верифікацію за його допомогою.
Після успішної верифікації, сервер ClearVPN отримує відповідь з підписаним сертифікатом, що запускає процес автоматичної активації Premium-підписки. Користувач буде автоматично перенаправлений до застосунку ClearVPN.
Підсумую: під час цієї верифікації наші сервери питають сервери Дії, чи є людина українцем. Після того, як Дія переконується, що в користувача присутній актуальний документ, вона підтверджує це нашим серверам. Тобто ми не запитуємо і не отримуємо будь-яких персональних даних користувача. Зі свого боку, Дія фіксує факт підписання хешу для стороннього застосунку ClearVPN, проте не отримує жодних даних про те, що користувач робить у нашому застосунку, а також що переглядає при увімкненому VPN.
Які результати ми отримали
Протягом перших двох тижнів близько 4500 українців авторизувалися у ClearVPN за допомогою Дії. Наразі, вже понад 25 000 користувачів отримали ClearVPN Premium за допомогою Дія.Підпису. Здебільшого, вони використовували VPN для захисту свого з’єднання, що є дуже важливим у наш час.
Також деякі користувачі прагнули відкривати українські сайти з окупованих територій, де це зробити без VPN неможливо. Запуск авторизації з Дією збільшив трафік на нашому сайті у 4 рази, а ми радіємо, що підтвердження громадянства відбувається повністю анонімно й не збирає даних користувачів. Найбільше ми раділи величезній кількості подяк та позитивних відгуків, особливо від людей з тимчасово окупованих територій, що змогли отримати доступ до правдивої інформації.
Надихає і те, що в нашому випадку взаємодія держави і бізнесу може бути продуктивною та підсилювати кібербезпеку людей, а не навпаки, як це відбувається в північно-східних сусідів або в КНДР.
У ці нелегкі для українців часи співпраця кожного з нас є важливою. Тільки разом ми зможемо перемогти, а після перемоги — сприяти швидкому відновленню України та розвитку економіки. Це стосується й співпраці бізнесу з державою, що може створювати нові можливості для українців.
35 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів