Как устроено шифрование и почему ваши траты под надежной защитой

Как устроено шифрование и почему ваши траты под надежной защитой

В современном мире финансовые данные - это одна из самых чувствительных зон личного пространства. Когда вы доверяете сервису учет своих расходов, вы хотите быть на 100% уверены, что эта информация не утечет в сеть, не попадет в руки третьих лиц и не будет использована против вас.

В этой статье мы подробно расскажем, как спроектирована безопасность в сервисе Считаю, какие криптографические алгоритмы защищают ваши данные и почему вы можете быть спокойны за приватность своих трат.


1. Наша философия приватности

Главный принцип, на котором строится Считаю, заключается в минимизации доверия к собственной инфраструктуре. Мы исходим из предположения, что в мире кибербезопасности не существует абсолютно непреступных серверов. Поэтому лучшая защита - это сделать так, чтобы даже при полной компрометации базы данных злоумышленник увидел лишь бесполезный зашифрованный шум.

Мы не собираем лишнюю информацию. Сервису не нужны ваши паспортные данные, полные номера банковских карт или реквизиты счетов. Для работы умного ассистента достаточно знать только суть транзакции, её сумму и категорию.


2. Как устроена защита данных

Для защиты информации в Считаю применяется технология шифрования At Rest (шифрование хранимых данных) на уровне отдельных полей базы данных.

Простыми словами

Представьте, что база данных - это сейф. В большинстве приложений этот сейф закрыт одной общей дверью, но ячейки внутри открыты. Если злоумышленник взломает дверь, он заберет всё содержимое. В Считаю каждая ячейка с чувствительными данными закрыта на свой собственный криптографический замок. Ключи от этих замков хранятся в изолированной оперативной памяти сервера приложений и никогда не записываются на жесткие диски СУБД.

Для IT-специалистов

Шифрование реализовано на уровне ORM-моделей (SQLAlchemy TypeDecorator) бэкенда с использованием стандарта Fernet (библиотека cryptography на Python).
* Алгоритм: Симметричное шифрование AES-128 в режиме CBC (Cipher Block Chaining).
* Аутентификация: Для предотвращения подмены зашифрованных блоков используется HMAC-SHA256 подпись.
* Где хранится ключ: Переменная окружения DB_ENCRYPTION_KEY считывается процессом при старте и существует только в оперативной памяти сервера приложений. В базу данных ключ не попадает ни в каком виде.
* Процесс: При записи в PostgreSQL данные на лету шифруются в бинарную строку стандарта Fernet (начинающуюся с префикса gAAAAA...), а при чтении - прозрачно расшифровываются обратно.


3. Что именно мы шифруем

Мы разделяем данные на чувствительные (которые шифруются) и аналитические (которые нужны для работы фильтров, бюджетов и графиков).

Персональные данные пользователей

Имена, email-адреса и номера телефонов шифруются в обязательном порядке. Но как авторизовать пользователя по номеру телефона, если мы его зашифровали?
Для этого мы применяем технологию Blind Index (слепой индекс):
1. При регистрации номер телефона шифруется алгоритмом AES и сохраняется в базе.
2. Одновременно с этим от номера телефона берется криптографический хэш с секретной солью (HMAC-SHA256).
3. Этот хэш сохраняется в отдельном поле phone_hash.
4. Когда пользователь пытается войти, мы хэшируем введенный им номер с той же солью и ищем совпадение по хэшу. Мы находим аккаунт, но сам номер телефона в базе остается надежно скрыт.

Детали транзакций

Шифрованию подлежат:
* Оригинальный текст пуш-уведомлений и SMS от банков, на основе которых создается трата.
* Ваши личные текстовые заметки к расходам.
* Описание транзакций, полученное от банковского парсера.

Что остается открытым

Сумма траты, валюта, дата и нормализованная категория (например, "Продукты" или "Рестораны") хранятся в открытом виде. Это необходимо для того, чтобы база данных могла мгновенно выполнять агрегационные запросы: строить графики расходов, суммировать траты за месяц и проверять лимиты бюджетов. Однако сами по себе эти цифры полностью обезличены - без привязки к имени, банку и описанию покупки они не представляют ценности.


4. Безопасный нейросетевой анализ

Искусственный интеллект необходим Считаю для того, чтобы понимать контекст ваших трат, автоматически распределять их по категориям и отвечать на ваши вопросы в чате поддержки.

Мы позиционируем нейросеть как изолированный черный ящик:
* Обезличенные запросы: При отправке транзакции на распознавание в языковую модель (LLM) бэкенд вырезает из запроса любые личные маркеры. Нейросеть видит только сырой текст транзакции (например, "Перевод 500р в супермаркет Магнит") и не знает, кому именно принадлежит этот расход.
* Политика конфиденциальности API: Мы работаем только с корпоративными API провайдеров искусственного интеллекта. По условиям соглашений, передаваемые нами данные обрабатываются исключительно в оперативной памяти в режиме реального времени, никогда не сохраняются на дисках провайдеров и юридически защищены от использования для обучения будущих нейросетевых моделей.


5. Многоуровневый подход к безопасности

Безопасность базы данных - это лишь часть системы. Мы защищаем данные на всех этапах их жизненного цикла.

  • Шифрование каналов связи: Все сетевые запросы между мобильным приложением и сервером идут исключительно по протоколу HTTPS с поддержкой TLS 1.3. Перехватить трафик в публичном Wi-Fi невозможно.
  • Защита сессий: Для авторизации используются JWT (JSON Web Tokens) с коротким временем жизни. Обновление сессии происходит по технологии ротации рефреш-токенов, что исключает кражу сессии.
  • Строгая фильтрация логов: Даже если наши разработчики анализируют технические логи работы сервера, они не увидят там ваших данных. На уровне логгеров бэкенда настроены регулярные выражения, которые маскируют любые email, телефоны и заменяют их на шаблон ***.

6. Заключение

Мы верим, что современные технологии учета финансов должны быть не только умными, но и безопасными. Разрабатывая Считаю, мы объединили удобство нейросетевого анализа и строгие стандарты защиты корпоративного уровня.

Использование современных методов симметричного шифрования AES-128-CBC, технологии слепых индексов для авторизации и строгая изоляция нейросетевых запросов гарантируют: ваши деньги и ваши траты - это только ваше личное дело.

Попробуйте «Считаю»

Начните вести учёт расходов с помощью ИИ уже сегодня