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

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

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

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

Keeping it in unswappable memory (for linux: setting SHM_LOCK with shmctl(2) ?) Splitting the key over multiple memory locations. Encrypting the key. With what, and how to keep the...key key.. secure? Loading the key from file each time its required (slow and if the evildoer can read our memory, he can probably read our files too)

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

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

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

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

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