Открыть сервис

Шифрование на стороне сервера

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

История

Первые методы шифрования на сервере начали применяться в 1970-х годах с развитием сетевых протоколов и систем хранения данных. Одним из ранних примеров стало шифрование баз данных в мейнфреймах IBM, где использовались симметричные алгоритмы, такие как DES (Data Encryption Standard), принятый в 1977 году. С распространением интернета в 1990-х годах возникла необходимость защищать данные, передаваемые между серверами и клиентами, что привело к внедрению протокола SSL (Secure Sockets Layer), позже эволюционировавшего в TLS (Transport Layer Security).

В 2000-х годах, с ростом облачных вычислений (Amazon Web Services с 2006 года, Microsoft Azure с 2010 года), шифрование на стороне сервера стало стандартной функцией для хранения данных в облаке. Например, в 2007 году Amazon Web Services (AWS) запустила сервис Amazon S3, который предоставлял опции шифрования на стороне сервера (SSE-S3). В 2010-х годах законодательные акты, такие как Общий регламент по защите данных (GDPR) в Европейском союзе (2018 год), усилили требования к шифрованию персональных данных, что стимулировало развитие серверных методов защиты.

Виды шифрования на стороне сервера

Шифрование на стороне сервера классифицируется по нескольким критериям: по месту применения, по управлению ключами и по алгоритмам.

По месту применения

  • Шифрование данных в покое (at rest) — защита данных, хранящихся на сервере (например, в базах данных, файловых системах, резервных копиях). Примеры: шифрование дисков (Full Disk Encryption) или отдельных файлов.
  • Шифрование данных в передаче (in transit) — защита данных при их перемещении между серверами или между сервером и клиентом. Обычно реализуется через протоколы TLS/SSL.
  • Шифрование данных в обработке (in use) — более сложный метод, защищающий данные во время вычислений (например, с использованием гомоморфного шифрования или доверенных сред выполнения, таких как Intel SGX). На практике применяется редко из-за высокой вычислительной сложности.

По управлению ключами

  • Управляемое провайдером (Server-Side Encryption with Service-Managed Keys, SSE-S3) — ключи шифрования генерируются и управляются облачным провайдером. Примеры: Amazon S3 SSE-S3, Google Cloud Storage SSE.
  • Управляемое клиентом (Server-Side Encryption with Customer-Provided Keys, SSE-C) — пользователь предоставляет собственные ключи шифрования, которые сервер использует для шифрования данных, но не хранит их. Пример: Amazon S3 SSE-C.
  • Управляемое через внешние сервисы (Server-Side Encryption with Customer-Managed Keys, SSE-KMS) — ключи хранятся и управляются в специализированном сервисе управления ключами (KMS), например, AWS KMS, Azure Key Vault, Google Cloud KMS.

По алгоритмам

  • Симметричное шифрование — используется один ключ для шифрования и дешифрования. Наиболее распространённые алгоритмы: AES (Advanced Encryption Standard) с длиной ключа 128, 192 или 256 бит, ChaCha20.
  • Асимметричное шифрование — используются пара ключей (открытый и закрытый). Применяется для защиты передачи данных (например, в TLS) или для шифрования ключей симметричного шифрования. Примеры: RSA, ECC (Elliptic Curve Cryptography).

Устройство и реализация

Шифрование на стороне сервера обычно реализуется на нескольких уровнях:

На уровне приложения

Серверное приложение (например, веб-сервер или база данных) шифрует данные перед записью на диск или перед отправкой. Для этого используются библиотеки шифрования, такие как OpenSSL, Bouncy Castle или встроенные функции СУБД (например, Transparent Data Encryption в Microsoft SQL Server или Oracle Database). Пример: приложение может хранить пароли пользователей в виде хэшей (SHA-256) с солью, а не в открытом виде.

На уровне файловой системы

Операционная система сервера может шифровать целые разделы диска с помощью технологий, таких как LUKS (Linux Unified Key Setup) в Linux, BitLocker в Windows или FileVault в macOS. Это защищает данные в случае физического доступа к диску.

На уровне облачного провайдера

Облачные платформы предоставляют автоматическое шифрование для хранилищ данных. Например, в Amazon S3 шифрование на стороне сервера включается через настройки корзины (bucket), где данные шифруются алгоритмом AES-256 перед записью на диск. Ключи могут управляться через AWS KMS или предоставляться клиентом.

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

Ключи шифрования хранятся в защищённых хранилищах, таких как аппаратные модули безопасности (HSM) или облачные сервисы KMS. Доступ к ключам ограничивается политиками доступа (IAM — Identity and Access Management). В некоторых системах применяется ротация ключей (периодическая смена) для повышения безопасности.

Применение

Шифрование на стороне сервера широко используется в различных областях:

  • Облачное хранение данных — сервисы, такие как Google Drive, Dropbox, Яндекс.Диск, шифруют файлы пользователей на серверах. Например, Яндекс.Диск использует шифрование AES-256 на стороне сервера.
  • Базы данных — корпоративные СУБД (Oracle, Microsoft SQL Server, PostgreSQL) поддерживают прозрачное шифрование данных (TDE), которое автоматически шифрует файлы базы данных на диске.
  • Электронная почта — почтовые серверы (например, Microsoft Exchange, Google Gmail) шифруют письма при хранении и передаче с использованием TLS.
  • Финансовые системы — банковские и платёжные системы (например, Visa, Mastercard) шифруют данные транзакций на серверах в соответствии со стандартом PCI DSS.
  • Государственные и медицинские учреждения — для защиты персональных данных (например, в России — в соответствии с Федеральным законом № 152-ФЗ «О персональных данных»).

Преимущества и недостатки

Преимущества

  • Централизованное управление — администраторы могут устанавливать единые политики шифрования для всех данных.
  • Прозрачность для пользователя — пользователю не нужно управлять ключами или настраивать шифрование.
  • Автоматизация — шифрование может выполняться автоматически без участия человека.
  • Защита от физического доступа — данные остаются зашифрованными даже при краже сервера или диска.

Недостатки

  • Зависимость от провайдера — если облачный провайдер или администратор сервера скомпрометирован, данные могут быть расшифрованы.
  • Производительность — шифрование и дешифрование требуют вычислительных ресурсов, что может замедлить работу системы.
  • Сложность управления ключами — потеря ключей может привести к невозможности расшифровать данные.
  • Юридические риски — в некоторых странах (включая Россию) законодательство требует предоставления ключей шифрования по запросу государственных органов, что может снижать конфиденциальность.

Критика

Шифрование на стороне сервера подвергается критике со стороны защитников конфиденциальности, так как оно не защищает данные от доступа самого сервера или провайдера. Например, в 2013 году Эдвард Сноуден раскрыл программы Агентства национальной безопасности США (АНБ), которые позволяли получать доступ к данным, зашифрованным на серверах таких компаний, как Google и Microsoft. В ответ на это некоторые компании начали внедрять шифрование на стороне клиента (end-to-end encryption), например, в мессенджере WhatsApp (продукт Meta, признанной экстремистской и запрещённой в РФ) (с 2016 года).

В России шифрование на стороне сервера регулируется Федеральным законом № 152-ФЗ «О персональных данных» и Федеральным законом № 242-ФЗ, который требует локализации персональных данных на серверах, расположенных на территории РФ. Это создаёт дополнительные требования к провайдерам, которые должны шифровать данные в соответствии с российскими стандартами (например, ГОСТ 28147-89 или ГОСТ Р 34.12-2015).

Примеры реализаций

  • Amazon S3 SSE-S3 — автоматическое шифрование данных с использованием ключей, управляемых Amazon.
  • Microsoft Azure SSE — шифрование для Azure Blob Storage с поддержкой ключей, управляемых клиентом через Azure Key Vault.
  • Google Cloud Storage SSE — шифрование с использованием алгоритма AES-256, ключи могут быть клиентскими или управляемыми через Google Cloud KMS.
  • PostgreSQL pgcrypto — расширение для шифрования данных на уровне базы данных с использованием симметричных и асимметричных алгоритмов.
  • MySQL Enterprise Transparent Data Encryption (TDE) — прозрачное шифрование таблиц и табличных пространств.

Источники

  • Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных».
  • Федеральный закон от 21.07.2014 № 242-ФЗ «О внесении изменений в отдельные законодательные акты Российской Федерации в части уточнения порядка обработки персональных данных в информационно-телекоммуникационных сетях».
  • Стандарт шифрования AES (FIPS PUB 197).
  • Документация Amazon Web Services: «Server-Side Encryption» (AWS S3 Developer Guide).
  • Документация Microsoft Azure: «Azure Storage encryption for data at rest».
  • Документация Google Cloud: «Cloud Storage encryption options».
  • Schneier, B. (2015). «Applied Cryptography: Protocols, Algorithms, and Source Code in C». John Wiley & Sons.
  • Stallings, W. (2016). «Cryptography and Network Security: Principles and Practice». Pearson.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →