Re: [CRYPTO] obfuscating kernel pointers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2010-11-12 at 08:32 -0500, Dan Rosenberg wrote: 
> Hi Crypto people,
> 
> I'm planning on submitting a patch that introduces a new %p format
> specifier that obfuscates kernel pointers depending on privileges.  This
> change is for security reasons - many networking protocols expose
> pointers to socket structures in their /proc interfaces, which are
> attractive targets when exploiting other issues.
> 
> It's been suggested that I initialize a secret value at boot, and use
> that as the key to a crypto hash function.  I should use a function that
> is relatively fast (ideally), produces a unique output based on its
> input of a pointer, and produces consistent output when given the same
> input.  It should be difficult to infer the input given only the output.
> 
> I have two questions:
> 
> 1. What is a proper, safe way of initializing a random value at boot?
> Are there any existing examples that do this?
> 
> 2. Can you recommend a crypto algorithm that would be well suited for
> this pointer obfuscation?
This would not be a 'hashing' algorithm but a simple block encryption
algorithm in the ECB mode with the random key initialized at boot. The
problem here is that the standard block ciphers have at least 64 bit
block length as smaller block length ciphers would not be secure for
general purpose uses. You would have to take an existing block cipher
algorithm and modify it to achieve the smaller block length.

-- 
Tomas Mraz
No matter how far down the wrong road you've gone, turn back.
                                              Turkish proverb

--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux