Re: [PATCH 1/2] Initial support for Allwinner's Security ID fuses

From: Oliver Schinagl
Date: Thu May 23 2013 - 04:10:28 EST


On 05/23/13 09:56, Linus Walleij wrote:
On Fri, May 17, 2013 at 3:35 PM, Oliver Schinagl
<oliver+list@xxxxxxxxxxx> wrote:

(...)
While initially these fuses are used to somewhat determin the chipID, these
appear to be writeable by the user and thus can be used for other purpouses.
For example storing a 128 bit root key, a unique serial number, which could
then even be used as a MAC address.
(...)
Then follows some code to read out the keys from sysfs I guess..
+static int __init sid_probe(struct platform_device *pdev)

It's really simple to actually make the kernel use this to seed the
entropy pool.

#include <linux/random.h>
add_device_randomness(u8 *, num);

If you know after probe that you can read out a number of bytes
of device-unique data, I think you should add those bytes to the
entropy pool like this.
While that is a great idea, we can't guarantee device uniqueness. We've already seen some chips that where 'forgotten' to program and default set to all 0. I guess that doesn't have to be a bad thing.

Then, i'm not sure if the driver is the best for this to be loaded? Maxime, what do you think? Personally I would feel more in having this in the mach-sunxi/core.c bit, but then again, this is currently a module and wouldn't be useful to have there. Maxime is far more knowledgeable to answer that.

It should probably be noted, that the sunxi series have a hardware crypto engine, with hardware random seed generator, one for a later project.

Yours,
Linus Walleij


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