Мы добавляем 256-битное шифрование AES в наши серверные и клиентские приложения для шифрования трафика TCP / IP, содержащего конфиденциальную информацию. Мы будем менять ключи ежедневно. Из-за этого ключи будут храниться в памяти вместе с приложениями.
Процесс распределения ключей:
Каждый сервер и клиент будут иметь список начальных ключей шифрования ключей (KEK) по дням.
Если клиент только что запустился или сервер только что запустился, клиент запросит у сервера ежедневный ключ, используя начальный ключ. Сервер ответит ежедневным ключом, зашифрованным начальным ключом. Ежедневный ключ - это случайно сгенерированный набор буквенно-цифровых символов. Мы используем 256-битное шифрование AES.
Все последующие сообщения будут зашифрованы с использованием этого ежедневного ключа.
Каждую ночь клиент будет запрашивать у сервера новый дневной ключ, используя текущий дневной ключ в качестве текущего KEK. После того, как клиент получит новый ключ, новый ежедневный ключ заменит старый ежедневный ключ.
Может ли другое плохое приложение незаконно получить доступ к этой памяти или это защищено в Windows? Ключ не будет записан в файл, а будет сохранен в переменной в памяти.
Если приложение может получить доступ к памяти незаконно, как можно защитить память от несанкционированного доступа?
Мы используем C ++ и XP (Vista / 7 может быть вариантом в будущем, поэтому я не знаю, изменит ли это ответ).