Безопасность
ПредзапускЧто мы делаем — и чего не обещаем.
На этой странице только те свойства, которые можно проверить в коде продукта. Здесь нет ни одного сертификата, потому что сегодня у нас их нет.
Чего вы не увидите на этой странице
Сознательно отсутствует, потому что сегодня это было бы неправдой:
- Никаких сертификатов ISO 27001, SOC 2 или PCI DSS — у нас их нет.
- Никаких значков «одобрено банками» и логотипов банков-партнёров.
- Никаких упоминаний «сквозного шифрования»: техническая модель продукта устроена иначе.
- Никаких цифр о числе пользователей, оценок в магазинах приложений и отзывов.
В тот день, когда что-то из этого станет правдой и будет проверяемым, оно появится здесь вместе с доказательством.
Что мы делаем — и чего не обещаем.
- Изоляция по семье
Единица изоляции — семья, а не пользователь. Каждая финансовая строка — счета, карты, операции, регулярные платежи, подписки, уведомления, отчёты, память о продавцах — несёт идентификатор своей семьи как внешний ключ, с каскадным удалением. Ничто, привязанное к одной семье, не читается из другой.
— Проверено интеграционным тестом: пользователь не может прочитать строки чужой семьи, даже зная точный идентификатор.
- Контроль доступа
Каждый запрос к финансовым данным идёт от аутентифицированного доступа и проверяется на сервере — при каждом чтении и каждой записи, а не только на входе на страницу. Роль в семье и роль на платформе — два разных поля в двух разных таблицах: администрирование платформы не даёт власти над семьёй, а владение семьёй не даёт привилегий на платформе.
— Сессии в httpOnly-куках, обязательное подтверждение почты, ограничение частоты запросов в точках входа.
- Очищенные логи
Логи маскируют чувствительные значения до записи: суммы, описания, адреса почты, идентификаторы счетов, токены. Ошибка импорта фиксирует идентификатор импорта, но не содержимое файла.
— Поведение покрыто тестами.
- Границы ИИ
Показанные цифры приходят от детерминированных движков, а не от языковой модели: один и тот же вопрос дважды даёт один и тот же результат. На сегодня никакие финансовые данные не уходят во внешнюю языковую модель. Ассистент прямо отказывается от вопросов, которые не умеет решать, вместо того чтобы выдумывать ответ.
— Во всём продукте банковский факт, неизменный, отделён от трактовки — неточной и помеченной как трактовка.
- Загруженные файлы
Размер ограничен, типы — по белому списку, пустые файлы отклоняются. Выписка хранится под непрозрачным ключом, никогда под своим исходным именем, в отдельной папке семьи и вне репозитория кода. Для распознавания дублей считается отпечаток.
— Ограничение частоты загрузки файлов для каждого пользователя.
- Удаление ваших данных
Удаление аккаунта требует подтверждения по почте, а привязанные финансовые данные исчезают вместе с семьёй каскадом — пути, который оставил бы осиротевшие строки, просто нет. Очищенный журнал аудита, без финансовых данных, хранит след событий безопасности.
— Каскад гарантирован на уровне схемы базы данных, а не соглашением в коде.
- Ошибки и заголовки
Неожиданная ошибка показывает общую локализованную страницу: ни стека вызовов, ни внутренних подробностей в браузер не попадает. Заголовки безопасности выставлены глобально, подпись сервера отключена.
— Коды ошибок приложения переводятся в безопасные HTTP-ответы.
Известные ограничения — под контролем, без утайки
Честный продукт публикует и то, что пока не сделано:
- Ограничение частоты запросов живёт в памяти процесса: для нескольких инстансов понадобится общее хранилище.
- Двухфакторная аутентификация пока не включена.
- Отправку писем и хранение файлов в рабочей среде ещё предстоит довести до конца на стороне инфраструктуры.
- Ни одного реального подключения Open Banking нет: слой существует, но к нему не подключён ни один банк.
Вопрос по безопасности?
Напишите нам, а не ждите: мы предпочитаем чинить сразу.
Адрес для писем о безопасности опубликуем к коммерческому запуску.
Следующее непонятное списание вы наконец поймёте.
Доступ открывается постепенно. Подпишитесь и назовите свой банк: мы напишем вам, когда придёт ваша очередь.