Сейф для клиентской базы: как мы шифруем персональные данные в CRM и закрываем требование РКН

Евгений Урядов · обновлено 22 сентября 2026 г.

Сейф для клиентской базы: как мы шифруем персональные данные в CRM и закрываем требование РКН

Когда мы регистрировались оператором персональных данных в РКН, в уведомлении оказался раздел «Описание мер, предусмотренных ст. 18.1 и 19 152-ФЗ». И там есть пункт, который нельзя написать «на будущее»: шифрование персональных данных. Декларация уходит в Роскомнадзор и становится обязательством — каждая строчка должна существовать в реальности. В этой статье — как мы реализовали этот пункт для собственной CRM: сейфовая модель шифрования, замок в один клик в интерфейсе и автозамок, который срабатывает, когда ноутбук уходит в сон.

Это не теория и не пересказ методичек — рабочий контур, который в момент написания статьи защищает базу из ~930 персональных данных в 294 файлах.

Проблема: ноутбук с клиентской базой

Типичная ситуация малого бизнеса: вся клиентская база — в CRM на рабочем ноутбуке. Телефоны, email, реквизиты, переписка — в открытом виде на диске. Вместе с тем:

  • с 30 мая 2025 года штрафы за утечку персональных данных стали миллионными — даже для небольших компаний;
  • ноутбук — самый вероятный носитель, который потеряют или украдут;
  • если кража случится, «мы же подали уведомление в РКН» не поможет — поможет только если данные оказались зашифрованы.

Классическое решение — полное шифрование диска (LUKS на Linux, BitLocker на Windows). Это золотой стандарт, и если вам ничего не мешает его включить — включайте, это лучший вариант. Но у полного шифрования есть цена: переразметка диска, ввод пароля при каждой загрузке до логина, риск обнулить всё при ошибке. Мы решили задачу иначе — не для ноутбука целиком, а для самих данных.

Сейфовая модель: шифруем данные, а не весь диск

Идея проста, как банковская ячейка:

  1. Открыли сейф — работаете с базой как обычно: все скрипты, поиск, отчёты.
  2. Закрыли сейф — все персональные данные в базе превращаются в нечитаемый шифротекст. Украли ноутбук в закрытом состоянии — злоумышленник получил груду мусора без единого телефона.

Технически в нашей CRM (Obsidian-хранилище с markdown-карточками) персональные данные живут в полях карточек: phone, email, реквизиты, контактные лица. При закрытии каждое такое поле шифруется AES-256-GCM и принимает вид:

phone: "PD1:MaWWJ4RvcQ9GkTBXwwstKQp3HReEIj9StTti…"

Ключ шифрования выводится из пароля через PBKDF2-SHA256 с 400 000 итераций и нигде не хранится — ни на диске, ни в переменных окружения. Только в голове оператора. Открытие восстанавливает исходные значения байт-в-байт, карточки остаются валидными, а служебные поля (ID чатов, статусы, тарифы) не трогаются вовсе — их читают рабочие скрипты биллинга и рассылок.

Четыре секунды или четыре минуты: почему скорость решает

Первая версия замка выводила криптографический ключ отдельно для каждого поля. На базе из 930 полей это занимало 4–5 минут — открыть CRM утром означало заварить чай. С автозамком такое не работает: выключение ноутбука не будет ждать пять минут.

Две оптимизации закрыли проблему:

  • одна соль на весь прогон шифрования — ключ выводится один раз, а не для каждого поля;
  • кеш производных ключей при расшифровке.

Результат: полная база шифруется и расшифровывается за 0,3 секунды. Это тот случай, когда правильная архитектура делает функцию не просто возможной, а незаметной.

Автозамок: пароль один раз, дальше — самому не надо думать

Главный враг любой системы защиты — человек, который забыл её включить. Поэтому замок у нас замыкается сам:

  • при входе в систему демон спрашивает пароль один раз (в окошке) и открывает базу;
  • при уходе ноутбука в сон или закрытии крышки — мгновенное шифрование (демон держит задержку сна через systemd-inhibit, чтобы успеть);
  • при пробуждении база открывается обратно;
  • при выключении и выходе из сеанса — финальный замок.

Критичный момент: пароль живёт только в памяти процесса демона. Соблазн положить его в файл ради «полного автомата без ввода» — ловушка: украденный ноутбук достанется вору вместе с паролем, и шифрование превратится в декорацию. Плюс это прямое противоречие пункту уведомления РКН «ключ на носителях не хранится».

Замок в шапке CRM: зелёный — открыто, красный — закрыто

Ручное управление свели к одной кнопке в шапке дашборда:

  • 🔓 зелёный замок — база открыта, можно работать; клик — шифрует;
  • 🔒 красный замок — база закрыта; клик — расшифровывает;
  • серый — демон не запущен, пароль не введён.

Клик — это 0,3 секунды и тост «🔒 База персональных данных зашифрована». Состояние иконки обновляется каждые 30 секунд по фактическому содержимому файлов, а не по памяти интерфейса — если закрыть базу из консоли, замок это заметит.

Архитектура цепочки тоже про безопасность: интерфейс → внутренний API → демон. Пароль не покидает процесс демона ни на одном шаге.

При чём здесь РКН

Связь прямая. В уведомлении оператора раздел мер — это не формальность, а инвентаризация фактов. Типовые пункты малый бизнес декларирует одинаковые: «шифрование персональных данных», «резервное копирование», «ограничение доступа». Разница между операторами — в том, что за строчками стоит.

Наш порядок был таким: сначала реализовать меру, потом вписать её в декларацию. Шифрование заработало до подачи уведомления — и в день подачи пункт «персональные данные хранятся в зашифрованном виде на уровне отдельных полей и блоков (AES-256-GCM; ключ формируется из пароля, известного только оператору, и на носителях не хранится)» был не обещанием, а описанием работающего контура.

Если вы уже подали уведомление и пункта про шифрование там нет — реализовать его всё равно стоит: утечка из-за кражи ноутбука карается независимо от декларации, а техническая защита работает лучше любого штрафа.

Как сделать у себя: чек-лист

  1. Найдите, где лежат персональные данные: поля CRM, таблицы, заметки.
  2. Выберите модель: LUKS/BitLocker для диска целиком — если возможно; сейфовая для полей — если нужна скорость и выборочность.
  3. AES-256-GCM + ключ из пароля (PBKDF2 от 400 000 итераций). Пароль — в менеджере паролей, забыли = не восстановить.
  4. Проверьте скорость на полном объёме: замок дольше секунды — автозамок будет отключать.
  5. Автоматизируйте замыкание: сон и выключение — обязательные точки.
  6. Добавьте ручной замок в интерфейс — видимая кнопка приучает закрывать базу осознанно.

Частые вопросы

А если ноутбук украли с открытой базой? Это единственное окно риска сейфовой модели. Митигируется автозамком на сон: ноутбуки почти всегда засыпают раньше, чем их выносят из офиса. Полное шифрование диска закрывает и это окно — потому оно и золотой стандарт.

Зачем замок в интерфейсе, если есть автозамок? Уехать из офиса на день с открытым ноутбуком в рюкзаке (не уснувшим) — реальный сценарий. Кнопка превращает «закрыть базу» в привычку уровня «закрыть дверь».

Сервисы и облака не проще? Проще, пока чужой сервер не стал чужой проблемой: трансграничная передача, компрометация провайдера, регион хранения. Свой зашифрованный файл на своём ноутбуке — минимальная поверхность атаки.

Выводы

  • Декларация РКН должна описывать факты: меру «шифрование» реализуйте до подачи уведомления — или не пишите её.
  • Сейфовая модель (AES-256-GCM на уровне полей) даёт малому бизнесу защиту кражи ноутбука без цены полного шифрования диска: открытие базы за 0,3 секунды, автозамок на сон и выключение, замок в один клик.
  • Скорость — не деталь, а условие: медленный замок отключают, быстрый — становится частью рабочего дня.

Защита персональных данных клиентов — часть той же работы, что сайты, интеграции и автоматизация: если хотите привести базу в порядок к уведомлению РКН или после него — разберём вашу ситуацию.


📞 +7 (906) 311-77-69 · ✉ hello@automata.sale · 💬 Telegram: @automatasale · 🌐 automata.sale

ИП Урядов Евгений Евгеньевич · ИНН 645112058391 · ОГРНИП 312645301900058 Работаем по России, Беларуси и Казахстану

Частые вопросы

Обязательно ли шифровать персональные данные по 152-ФЗ?

Прямого требования «шифруйте всё» в законе нет — ст. 19 требует мер по обеспечению безопасности, а их состав определяет оператор. Но если вы указали шифрование в уведомлении РКН, оно должно реально работать: расхождение декларации с фактами при проверке хуже, чем минимальный честный набор мер.

Чем шифрование полей в CRM лучше полного шифрования диска?

Ничем в плане безопасности — LUKS надёжнее. Это компромисс для случаев, когда полное шифрование диска неудобно: сейфовая модель шифрует только персональные данные, база открывается за секунду по паролю и закрывается автоматически. Служебные поля остаются доступными рабочим скриптам.

Что будет с базой, если украли ноутбук?

Если база закрыта (шифрована) — злоумышленник получит только шифротекст без имён и телефонов. Поэтому автозамок настроен на уход в сон и выключение: в остальных состояниях данные защищены. Открытая база в момент кражи — единственное окно риска.

Можно ли сделать автозапуск базы без ввода пароля?

Технически да, если хранить пароль на диске. Но это превращает шифрование в декорацию: украденный ноутбук достанется злоумышленнику вместе с паролем. Правильная схема — пароль один раз при входе в систему, дальше он живёт только в памяти процесса.

Сколько времени занимает шифрование клиентской базы?

При правильной реализации — доли секунды: на нашей базе из 900+ полей шифрование и расшифровка занимают около 0,3 секунды. Ключевая оптимизация — одна соль на прогон и кеш производных ключей вместо вывода ключа для каждого поля.

Как это связано с уведомлением оператора в РКН?

В уведомлении есть раздел мер по ст. 18.1 и 19 152-ФЗ. Шифрование и резервное копирование — типовые пункты этой декларации. Мы реализовали шифрование до подачи уведомления, чтобы каждая строчка соответствовала фактам.

📞 +7 (906) 311-77-69 · ✉ hello@automata.sale · 💬 Telegram: @automatasale · 🌐 automata.sale

ИП Урядов Евгений Евгеньевич · ИНН 645112058391 · ОГРНИП 312645301900058
Работаем по России, Беларуси и Казахстану