Skip to content

TheAnushervon/IKIGAI

Repository files navigation

Решение по кейсу "Клиентский портал по исследованию защищенности внешнего периметра заказчика" от Летс Хак

Юридическая часть

Проблемы с не электронными документами

  1. Возможно подделать
    • Нет способов достоверной проверки
  2. Сложно автоматически проверить документы

Для процесса автоматизации процесса (с соблюдением всех необходимых законов) данный вариант не подходит

Электронные документы

УКЭП - Укрепленная Электронная Подпись МЧД - Машинно Читаемая Доверенность

У нас может произойти 2 варианта

  1. Регистрируется руководитель (учредитель) фирмы
    • Для действий от ЮР лица необходима только УКПЭ
  2. Регистрируется доверенное лицо
    • Необходима МЧД (от компании, которую представляет физ лицо)
    • УКЭП физ лица

В электронном варианте у нас есть способ удостоверения личности через Госуслуги. Пользователь авторизируется с использованием УКЭП. Других способов подтвердить лигитимность личность человека в интернете нет.

sad

Техническая часть

Сервисы

API Госуслуг (портал ЕСИА)
  • Ауентефикация человека
  • Возможность запросить необходимые данные о человеке

Необходимо от пользователя:

  • УКЭП для авторизации на портале Госуслуг
API ФНС
  • Получить данные о компании

Необходимо от пользователя:

  • ИНН
Обработка УКЭП

Два варианта

  • Создать собственный вариант, выполняющий требования ГОСТ 34.10/11 2012
    • Возможно создать уязвимость в передаче данных
  • Использовать готовое решение (библиотеку / сервис) - PyCades как пример
    • Поддержка от компании с гарантиями
    • Платное решение для серверных платформ

sad

Проблемы

  • Не протестированы запросы к API Госуслуг (т.к нет доступа)
  • Не протестирована работы с реальными ЭЦП
  • Проблемы с зависимостями на фронтенде - Svelte
    • Сделан "костыль" через обработку html страницы с FastAPI

Как использовать наш проект

Запустить через докер

docker-compose up --build
docker-compose build --platform=linux/amd64 -t .

Environment Files

В корневой директории нужно создать файл .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'

Endpoints

Данные с фронтенда отправляются по адресу 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.

  • Альтернативная обработка ендпоинтов через FastAPI на порте 8100 (веб интерфейс) demo_login_fasapi.jpg

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors