Безопасность
- Шифрование
- TLS при передаче (версия не ниже 1.2, по умолчанию 1.3; сертификаты Let's Encrypt), шифрование хранимых данных на дисках хостинга базы данных и шифрование Fernet для конфиденциальных полей, например API-ключей бирж.
- Вход
- Пароли хешируются с помощью Argon2id (параметры OWASP), двухфакторная аутентификация через приложение (TOTP, RFC 6238) или по 6-значному коду из письма, токены обновления меняются при каждом использовании с обнаружением повторного использования, постепенная блокировка после нескольких неудачных попыток.
- Разделение клиентов
- Каждый запрос фильтруется по организации в коде приложения, а ваш доступ проверяется заново при каждом запросе. Политики построчной безопасности (row-level security) PostgreSQL уже заданы для таблиц и станут вторым барьером (см. план ниже).
- Журнал аудита
- Ручные переклассификации, правила, очистки и закрытия финансового года записываются в журнал, куда можно только добавлять записи, с цепочкой SHA-256. База данных отклоняет любое изменение или удаление этого журнала. Каждый экспортированный FEC архивируется с отпечатком SHA-256, который проверяется заново при каждой загрузке.
- Хостинг в Европейском союзе
- Hostinger (Франция): хостинг сайта и приложения. Supabase (Ирландия (Европейский союз)): база данных и файлы (подтверждающие документы, FEC). Сторонние сервисы (отправка писем, обозреватели блоков, курсы) и получаемые ими данные перечислены в политике конфиденциальности (на французском).
- Соответствие требованиям
- В соответствии с GDPR TLM Solutions является контролёром данных учётных записей, безопасности и выставления счетов и обрабатывает ваши бухгалтерские данные от вашего имени по соглашению об обработке данных, приложенному к условиям продажи. Об утечке, создающей риск для данных, сообщается в CNIL в течение 72 часов, а также затронутым организациям.
- Сообщить об уязвимости
- Напишите на contact@trotme.fr и опишите, как её воспроизвести.
План по безопасности
Запланировано, но пока не реализовано, чтобы вы знали, как обстоят дела:
- Работа приложения под ролью PostgreSQL с построчной безопасностью (второй барьер изоляции)
- Переход подписи JWT с HS256 на пару ключей RS256
- Конвертное шифрование с KEK и DEK (сейчас используется один ключ Fernet)
- WebAuthn и ключи доступа (passkeys)
- Квалифицированные метки времени eIDAS для экспортированных FEC (RFC 3161)
- Независимые резервные копии базы данных с восстановлением на любой момент времени