Messages in this thread | | | Date | Sat, 30 May 2009 09:31:47 +0100 | From | Alan Cox <> | Subject | Re: [patch 0/5] Support for sanitization flag in low-level page allocator |
| |
> The GFP_SENSITIVE flag looks like a big hammer that we don't really > need IMHO. It seems to me that most of the actual call-sites (crypto
Actually the flag is a small hammer
> code, wireless keys, etc.) should probably just use kzfree() > unconditionally to make sure we don't leak sensitive data. I did not > look too closely but I don't think any of the sensitive kfree() calls > are in fastpaths so the performance impact is negligible.
The problem is that most sensitive data is user space anyway. GFP_SENSITIVE or kzfree mean you have to get it right in the kernel and you don't fix things like stack copies of sensitive data - its a quick hack which doesn't meet goot security programming practice -it defaults to insecure which is the wrong way around. Not saying its not a bad idea to kzfree a few keys and things *but* it's not real security.
If you want to do real security you have a sysfs or build flag that turns on clearing every page on free. Yes it costs performance (a lot less nowdays with cache bypassing stores) but for the category of user who wants to be sure nothing escapes it does the job while kzfree would be like trying to plug leaks in a sieve.
Alan
| |