Что такое симметричное шифрование и как работают ключи
Что проверяют
Понимаете ли вы, что тестировщик проверяет не стойкость алгоритма, а правильность его применения. Взломать шифр вас не попросят, а вот найти повторяющийся шифротекст, ключ в репозитории или открытое значение в логе вполне реально на обычном стенде.
Как отвечать
Коротко про суть: один ключ и на шифрование, и на расшифровку, работает быстро, но ключ надо доставить и хранить. Практически все дефекты растут именно из хранения ключа и из неверного режима работы алгоритма, а не из самого шифра.
Что проверяемо снаружи:
один и тот же вход даёт разный шифротекст, иначе режим применён без вектора инициализации и повторы видны глазом;
изменение одного байта шифротекста приводит к внятному отказу, а не к мусору на выходе, это признак режима с контролем целостности;
ключ не лежит в репозитории, конфиге, переменных сборки и внутри клиентского приложения;
в логах, трассировках, текстах ошибок и аналитике нет открытого значения;
резервная копия, выгрузка и файловое хранилище зашифрованы так же, как основная база;
чужой или устаревший ключ даёт понятную ошибку, а не падение сервиса.
Где спотыкаются
Считают тему непроверяемой без криптографа и вообще не заводят проверок. При этом почти все находки в этой области бытовые: секрет в истории репозитория, открытое поле в соседней таблице, пароль в теле ответа.
Останавливаются на том, что поле в базе нечитаемо. Данные утекают не только оттуда: остаются кэш, очередь сообщений, файлы экспорта, тело запроса в трассировке и копия в аналитике.
Пишут автотест, сравнивающий шифротекст с эталонной строкой. Такой тест зелёный только при фиксированном векторе инициализации, то есть он не проверяет шифрование, а закрепляет дефект и мешает его исправить.