Я пытаюсь убедиться, что конфиденциальные данные (пароли, ...) не хранятся в открытом виде в памяти процесса, и я обнаружил, что все данные, отправленные или полученные из OpenSSL, хранятся в памяти ...
Это проблема, поскольку данные, отправляемые или получаемые по соединению SSL, могут содержать конфиденциальную информацию, которую мы не хотим хранить в памяти процесса.
Примечания:
- Это только в случае использования SSLv3 или TLSv1.При использовании SSLv2 данные не сохраняются в памяти.
- Я использую версию 0.9.8k-7ubuntu8.6 из Ubuntu Lucid.Если это связано с исправлением безопасности, я думаю, что оно актуально.
Воспроизведение легко:
- Используйте '
openssl client -tls1 -connect hostname:443
' для подключения к SSLсервер - Отправка данных по TLS-соединению
- Принудительная генерация файла ядра (например,
kill -SEGV
) - Проверка файла ядра, присутствующие и отправленные данные будут присутствовать
Есть ли причина, по которой OpenSSL может понадобиться сохранить эти данные?Есть ли возможность изменить его поведение?