Решение по кейсу "Клиентский портал по исследованию защищенности внешнего периметра заказчика" от Летс Хак
- Возможно подделать
- Нет способов достоверной проверки
- Сложно автоматически проверить документы
Для процесса автоматизации процесса (с соблюдением всех необходимых законов) данный вариант не подходит
УКЭП - Укрепленная Электронная Подпись МЧД - Машинно Читаемая Доверенность
У нас может произойти 2 варианта
- Регистрируется руководитель (учредитель) фирмы
- Для действий от ЮР лица необходима только УКПЭ
- Регистрируется доверенное лицо
- Необходима МЧД (от компании, которую представляет физ лицо)
- УКЭП физ лица
В электронном варианте у нас есть способ удостоверения личности через Госуслуги. Пользователь авторизируется с использованием УКЭП. Других способов подтвердить лигитимность личность человека в интернете нет.
- Ауентефикация человека
- Возможность запросить необходимые данные о человеке
Необходимо от пользователя:
- УКЭП для авторизации на портале Госуслуг
- Получить данные о компании
Необходимо от пользователя:
- ИНН
Два варианта
- Создать собственный вариант, выполняющий требования ГОСТ 34.10/11 2012
- Возможно создать уязвимость в передаче данных
- Использовать готовое решение (библиотеку / сервис) - PyCades как пример
- Поддержка от компании с гарантиями
- Платное решение для серверных платформ
- Не протестированы запросы к API Госуслуг (т.к нет доступа)
- Не протестирована работы с реальными ЭЦП
- Проблемы с зависимостями на фронтенде - Svelte
- Сделан "костыль" через обработку html страницы с FastAPI
Запустить через докер
docker-compose up --build
docker-compose build --platform=linux/amd64 -t .
В корневой директории нужно создать файл .env и изменить соответствующие поля (изначально они тестовые):
DB_NAME=postgres
DB_USER=postgres_user
DB_PASSWORD=postgres_password
DB_HOST=postgres_container
DB_PORT=5432
using_pycades=False
apikey='my api key'
esia_host='https://esia-portal1.test.gosuslugi.ru'
svcdev_host='https://svcdev-beta.test.gosuslugi.ru'
private_key_path='./esia/esia/GOST 2012 PROD.cer'
TSAAddress='http://testca2012.cryptopro.ru/tsp/tsp.srf'
Данные с фронтенда отправляются по адресу http://localhost:8000/api/input/.
В виде полей: { "INN": "INN", "UKEP": "UKEP", "MCHD": file from media folder, "email": "email@email.email" }.
В MCHD загрузка с папки media (внутреннее файловое хранилище).
Пользователи будут доступны по http://localhost:8000/api/users/.
Формат в виде JSON:
{ "email": "email@email.email", "verified": true/false }.
Те кто прошли полную верификацию будут обозначены "verified": true.


