До 10%Рекомендуйте нас и получайте процент за каждого приведённого клиента

Шифрование чувствительных данных в базе магазина

Шифрование чувствительных данных в базе интернет-магазина на 1С-Битрикс: персональные и платёжные данные, ключи, доступ

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

В этой статье разберём, как правильно защищать чувствительные данные в базе интернет-магазина: чем шифрование отличается от хеширования, почему карты нельзя хранить у себя, где держать ключи и как всё это ложится на 1С-Битрикс и требования 152-ФЗ. Практическую защиту проекта помогает выстроить аудит и оптимизация 1С-решения.

Коротко

  • HTTPS защищает данные в передаче; хранимые данные нужно шифровать отдельно — это разные уровни.
  • Пароли не шифруют, а хешируют стойким алгоритмом с солью; карты не хранят вовсе — только токены провайдера.
  • Ключи шифрования держат отдельно от данных, вне репозитория, с ротацией и ограниченным доступом.
  • Бэкапы и логи — та же зона риска: шифруйте копии и маскируйте чувствительные поля в логах.

Почему одного HTTPS недостаточно

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

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

Какие данные надо защищать

Прежде чем шифровать, нужно понять, что именно чувствительно. Шифровать всё подряд неэффективно — важно выделить категории риска.

КатегорияПримерыКак защищать
Персональные данныеФИО, телефон, email, адресШифрование в покое, ограничение доступа
ДокументыПаспорт, ИНН (если собираете)Шифрование, минимизация сбора
ПаролиПароли аккаунтовСтойкое хеширование с солью
Платёжные данныеНомер карты, CVVНе хранить; токенизация у провайдера
Служебные секретыAPI-ключи, токены интеграцийЗащищённое хранилище, вне кода

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

Эшелоны защиты магазина на 1С-Битрикс WAF и фильтрацияотсекает вредные запросыАутентификация и 2FAкто получает доступВалидация вводазащита от инъекцийШифрование данныхTLS и хранениеЛоги и мониторингвидим атаки вовремя
Схема: безопасность строится слоями — от WAF на входе до мониторинга внутри. Пробить один слой мало: за ним стоит следующий.

Шифрование в передаче и в покое

Два уровня шифрования решают разные задачи, и путать их нельзя.

На практике сочетают оба: TLS закрывает каналы, а шифрование полей и бэкапов закрывает хранилище. Соединения с внешними сервисами (платёжные шлюзы, CRM, 1С) тоже должны идти по защищённым каналам — принципы безопасного обмена мы разбираем в статье про REST, вебхуки и безопасность в Битрикс.

Хеширование паролей

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

Правильная схема: при регистрации пароль прогоняют через стойкий алгоритм (bcrypt, Argon2) с уникальной солью и хранят только хеш. При входе сравнивают хеши, а не расшифровывают пароль. Тогда даже полная утечка базы не раскрывает пароли пользователей. 1С-Битрикс хеширует пароли штатно, но при кастомной аутентификации или миграции важно не «изобрести» слабую схему вместо стойкой.

Никогда не храните пароли в открытом виде и не «шифруйте обратимо». Если систему можно попросить «прислать ваш старый пароль» — она хранит его небезопасно. Правильная система умеет только сбросить пароль, но не показать его.

Токенизация банковских карт

Самое строгое правило — данные банковских карт. Полные номера (PAN), CVV и срок действия хранить у себя нельзя: этого требуют стандарты безопасности индустрии платёжных карт. Нарушение — это не только риск, но и прямая ответственность.

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

Шифрование полей в базе

Персональные данные, которые вы обязаны хранить (адреса, телефоны, документы), защищают шифрованием в покое. Есть несколько подходов, и выбор зависит от сценариев работы с данными.

Важный нюанс: по обычному зашифрованному полю нельзя искать и сортировать — это частая причина «тормозов». Если по полю нужен точный поиск, применяют детерминированное шифрование или отдельный хеш-индекс. Как строить быстрые выборки к данным в Битрикс, мы разбираем в материале про D7 ORM.

Управление ключами

Шифрование ровно настолько надёжно, насколько защищён ключ. Главная ошибка — держать ключ рядом с данными или прямо в коде.

  1. Отделите ключ от данных. Ключ не должен попадать в тот же дамп, что и зашифрованная база.
  2. Не храните ключи в репозитории. Секреты — в переменных окружения или защищённом хранилище, а не в git.
  3. Ограничьте доступ. К ключам имеет доступ минимум людей и сервисов, строго по необходимости.
  4. Ротация. Ключи периодически меняют, предусматривая перешифрование данных.

Секреты интеграций (API-ключи платёжек, CRM, обмена с 1С) относятся к тому же классу и хранятся так же — вне кода, с ограниченным доступом. Как правильно вести секреты при деплое, показано в статье про CI/CD и деплой в Битрикс.

Разграничение доступа и аудит

Шифрование не заменяет контроль доступа — они работают вместе. Даже зашифрованные данные должны быть доступны только тем, кому они нужны по работе.

Бэкапы, логи и утечки данных

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

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

152-ФЗ и юридический контур

Техническая защита данных — часть требований закона о персональных данных. 152-ФЗ обязывает принимать организационные и технические меры, и шифрование — одна из ключевых технических мер. Но само по себе оно не делает вас соответствующим закону.

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

Частые ошибки

Чек-лист внедрения

  1. Инвентаризация данных. Определено, какие поля чувствительны и какие вообще нужно хранить.
  2. Два уровня шифрования. HTTPS/TLS для каналов и шифрование в покое для хранилища.
  3. Пароли хешируются. Стойкий алгоритм с солью, восстановление пароля невозможно — только сброс.
  4. Карты не хранятся. Реализована токенизация через платёжного провайдера.
  5. Ключи под контролем. Отделены от данных, вне репозитория, с ограниченным доступом и ротацией.
  6. Доступ разграничен. Роли, минимальные права, двухфакторная аутентификация, журнал действий.
  7. Бэкапы и логи защищены. Копии зашифрованы, чувствительные поля в логах маскируются.
  8. Юридический контур. Согласия, политика, хранение данных в РФ, регламент реагирования на утечку.

Вывод

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

Для магазина на 1С-Битрикс всё это реализуемо штатными средствами и аккуратной кастомизацией, а поверх ложится юридический контур 152-ФЗ. Начните с инвентаризации данных и аудита текущего хранения — это точка, с которой безопасность перестаёт быть иллюзией «замочка в адресной строке» и становится реальной защитой ваших клиентов и бизнеса.

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

Нужно ли вообще шифровать данные, если есть HTTPS?

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

Какие данные в магазине считаются чувствительными?

Персональные данные покупателей (ФИО, телефон, email, адрес), паспортные и иные документы, если вы их собираете, история заказов, а также любые платёжные реквизиты. Особо строгий режим — у данных банковских карт: их полные номера хранить нельзя, только токены от платёжного провайдера. Пароли — отдельная категория: их не шифруют, а хешируют.

Чем хеширование паролей отличается от шифрования?

Шифрование обратимо: зашифрованные данные можно расшифровать ключом. Хеширование — односторонняя операция: из пароля получают необратимый отпечаток, и восстановить исходный пароль нельзя. Для паролей нужен именно стойкий хеш с солью (например bcrypt/Argon2), а не шифрование. При входе сравнивают хеши, а не расшифровывают пароль — так утечка базы не раскрывает пароли пользователей.

Можно ли хранить номера банковских карт у себя в базе?

Полные номера карт (PAN), CVV и срок хранить у себя нельзя — это требования стандарта безопасности индустрии платёжных карт. Правильная схема: карту вводят на стороне платёжного провайдера, а вам возвращается токен — безопасный идентификатор для повторных списаний. Токен бесполезен для мошенника вне вашей связки с провайдером, поэтому его хранение безопасно.

Где хранить ключи шифрования?

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

Замедлит ли шифрование работу магазина?

При грамотной реализации — незначительно. Шифруют не всё подряд, а только чувствительные поля, и делают это на уровне приложения или СУБД с аппаратным ускорением. Заметное замедление обычно возникает от ошибок проектирования: например когда по зашифрованному полю пытаются искать или сортировать. Такие сценарии решают отдельно — детерминированным шифрованием для точного поиска или вынесенными индексами.

Как шифрование связано с 152-ФЗ и защитой персональных данных?

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

Что делать с бэкапами и логами — они тоже уязвимы?

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

Поделиться:

Уверены, что данные клиентов действительно защищены?

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

Аудит и оптимизация 1С

Игорь Воскресенский

Команда B2Bsite. С 2014 года разрабатываем интернет-магазины на 1С-Битрикс: выстраиваем защиту персональных и платёжных данных, шифрование, управление доступом и соответствие 152-ФЗ.

← Все статьи блога