
Шифрование прикладных данных в .NET — от основ к key chain, ротации и компромиссам поиска
rgolovanov 13 минут назад Шифрование прикладных данных в .NET — от основ к key chain, ротации и компромиссам поиска Средний 19 мин 385 .NET * Криптография * Информационная безопасность * Базы данных * Open source * FAQ...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. rgolovanov 13 минут назад Шифрование прикладных данных в . NET — от основ к key chain, ротации и компромиссам поиска Средний 19 мин 385 . NET * Криптография * Информационная безопасность * Базы данных * Open source * FAQ Если вы когда-нибудь выкатывали фичу, которая хранит персональные данные - почтовые адреса, заметки в свободной форме, API-токены, идентификационные номера - у вас наверняка возникала та же неприятная мысль: врядли стоит доверять базе данных.
Бэкапы копируются на ноутбуки. Снапшоты оседают на файловых ресурсах. Галочка “encryption at rest” в облачной консоли защищает только от одного конкретного вида кражи - от того, что кто-то унесет диск.
Технические детали
Зашифровать данные до того, как они попадут в базу, на слайде звучит просто - AES, ключ, готово. В реальном коде простая версия ломается ровно в тот момент, когда вы пытаетесь ротировать ключ, найти запись по email, или объяснить ревьюверу, каким именно ключом зашифрована конкретная строка. В этой статье я разбираю варианты решений для пошагового шифрования отдельных свойств в .
NET: семейства алгоритмов и почему промышленные системы их комбинируют, что на самом деле защищает вектор инициализации, почему вам нужен keychain, а не один ключ, и неприятное меню вариантов для поиска по зашифрованным данным. Я буду использовать собственную библиотеку EfCore. EncryptedProperties в качестве сквозного конкретного примера.
Главное здесь - концепции, библиотека лишь один из способов их выразить. Что мы на самом деле имеем в виду под “шифрованием документов”Этот термин покрывает несколько разных вещей. Чтобы честно очертить рамки, вот о чем эта статья и о чем она не идет:В рамках темы.
Отраслевые последствия
Шифрование отдельных значений - колонки, свойства, JSON-поля - до того, как они попадут в базу. Ключ хранится у приложения (напрямую или через KMS), а база видит только шифротекст. Полнодисковое шифрование (BitLocker, LUKS, Storage Service Encryption).
TLS, который защищает байты в передаче, а не на хранении. End-to-end шифрование сообщений, где сам сервер приложения не получает доступ к открытому тексту. MSSQL “Always encrypted” с ключами в базе данныхМодель угроз - самая обычная.
Представьте, что с вашей базой случилось худшее - украденный бэкап, скопированный снепшот - и у атакующего есть каждая строка, которую вы когда-либо записывали. В идеале он видит непрозрачные блобы, бесполезные без ключа, которым управляет ваше приложение. От чего такое шифрование не защищает - не менее важно.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





