Криптография: лучшие практики для ключей в памяти?

Предыстория: я получил некоторые данные, зашифрованные с помощью AES (то есть симметричного шифрования) в базе данных. Приложение на стороне сервера, работающее на (предполагаемом) защищенном и изолированном Linux-боксе, использует эти данные. Он считывает зашифрованные данные из БД и записывает зашифрованные данные, имея дело только с незашифрованными данными в памяти. Таким образом, чтобы сделать это, приложение должно хранить ключ в памяти.

Вопрос в том, есть ли хорошие передовые методы для этого? Закрепление ключа в памяти.

Несколько идей:

Хранение его в неподключаемой памяти (для linux: настройкаSHM_LOCK сshmctl(2) ?)Разделение ключа по нескольким ячейкам памяти.Шифрование ключа. С чем и как сохранить ... ключ ключ ... в безопасности?Загрузка ключа из файла каждый раз, когда он необходим (медленный, и если злоумышленник может прочитать нашу память, он, вероятно, может прочитать и наши файлы)

Некоторые сценарии того, почему ключ может утечь: evildoer завладевает дампом памяти / дампом ядра; проверка плохих границ в коде, приводящая к утечке информации;

Первый кажется хорошим и довольно простым делом, но как насчет остальных? Другие идеи? Какие-либо стандартные спецификации / лучшие практики?

Спасибо за любой вклад!

Ответы на вопрос(6)

Ваш ответ на вопрос