Что такое симметричное шифрование и как работают ключи
Что проверяют
Умеете ли вы превращать слово «шифрование» в проверяемое требование: что именно защищаем, в каком состоянии, каким алгоритмом, кто владеет ключом и что происходит при его компрометации. Аналитика спрашивают об этом, потому что формулировка «данные шифруются» не реализуема и не тестируема.
Как отвечать
Суть: один ключ на шифрование и расшифровку, быстро на больших объёмах, но ключ нужно безопасно доставить обеим сторонам. Асимметричный алгоритм медленнее и работает на коротких данных, поэтому реальные протоколы гибридные: асимметрикой согласуют сеансовый симметричный ключ, а дальше поток шифруется симметричным. Отсюда же организационная проблема: при попарном обмене без центра выдачи число ключей растёт квадратично от числа участников.
Что аналитик выносит в требования: класс данных и правовое основание, состояние (в канале, на диске, в резервной копии), алгоритм и режим с контролем целостности, отечественные алгоритмы Кузнечик и Магма как вариант при требовании сертифицированной криптографии, хранилище ключей и роли доступа к нему, срок ротации, процедура отзыва, судьба ранее зашифрованных данных после смены ключа.
Отдельным пунктом стоит записать ограничение: зашифрованное поле нельзя искать подстрокой и нельзя индексировать по диапазону. Если по атрибуту нужен поиск, в требования закладывают детерминированный хэш или токенизацию.
Где спотыкаются
Пишут «данные шифруются согласно требованиям регулятора» и считают требование готовым. Разработчик из такой строки не узнает ни места хранения ключа, ни момента шифрования, и решение придумает сам.
Путают шифрование и хэширование. Пароли не шифруют: шифрование обратимо, и требование расшифровать пароль для показа пользователю выдаёт непонимание сразу на всю постановку.
Забывают про резервные копии, выгрузки и тестовые среды. Продуктивная база закрыта, а ночной дамп лежит рядом в открытом виде, и в тестовый контур едут реальные данные без обезличивания.