Akamai предложил свой алгоритм распределения памяти в OpenSSL

13/04/2014 11:35

Обеспокоенная вопросом обеспечения высокого уровня безопасности проекта OpenSSL, компания Akamai, поддерживающая крупнейшую сеть доставки контента, предложила разработчикам OpenSSL патч с реализацией нового менеджера распределения памяти, позволяющего обеспечить безопасное нахождение в оперативной памяти приватных ключей. Для хранения особо важных данных, таких как RSA-ключи, вместо OPENSSL_malloc предлагается использовать функцию secure_malloc, размещающую данные в безопасной области, помещённой в отдельной куче (сформированный через mmap непрерывный регион памяти) и обрамлённой сверху и снизу дополнительными защищающими страницами памяти, мешающими проникновению по блуждающим указателям. Кроме того, выделяемая через secure_malloc область закреплена за ОЗУ и не может быть вытеснена или отображена на диск, а также, когда это возможно, не будет фигурировать в core-дампах. Реализация secure_malloc основана на коде, уже около десяти лет используемом в Akamai для надёжной защиты ключей пользователей. Тем не менее, патч является скорее прототипом для реализации похожей системы, чем решением, готовым для немедленного внедрения в OpenSSL. Например, патч не заботится о переносимости и привязывается к коду ASN1 вместо создания нового API. При этом, если бы подобная технология была добавлена в OpenSSL раньше, она бы позволила избежать утечки закрытых ключей из памяти в процессе эксплуатации уязвимости Heartbleed.
Источник