In Proceedings of IEEE Security and Privacy (“Oakland”) 2013. IEEE Computer Society, May 2013.
We present three techniques for extracting entropy during boot on embedded devices.
Our first technique times the execution of code blocks early in the Linux kernel boot process. It is simple to implement and has a negligible runtime overhead, but, on many of the devices we test, gathers hundreds of bits of entropy.
Our second and third techniques, which run in the bootloader, use hardware features—DRAM decay behavior and PLL locking latency, respectively—and are therefore less portable and less generally applicable, but their behavior is easier to explain based on physically unpredictable processes.
We implement and measure the effectiveness of our techniques on ARM-, MIPS-, and AVR32-based systems-on-a-chip from a variety of vendors.