Analysis of the linux random number generator

Zvi Gutterman, Benny Pinkas, Tzachy Reinman

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

160 Scopus citations

Abstract

Linux is the most popular open source project. The Linux random number generator is part of the kernel of all Linux distributions and is based on generating randomness from entropy of operating system events. The output of this generator is used for almost every security protocol, including TLS/SSL key generation, choosing TCP sequence numbers, and file system and email encryption. Although the generator is part of an open source project, its source code (about 2500 lines of code) is poorly documented, and patched with hundreds of code patches. We used dynamic and static reverse engineering to learn the operation of this generator. This paper presents a description of the underlying algorithms and exposes several security vulnerabilities. In particular, we show an attack on the forward security of the generator which enables an adversary who exposes the state of the generator to compute previous states and outputs. In addition we present a few cryptographic flaws in the design of the generator, as well as measurements of the actual entropy collected by it, and a critical analysis of the use of the generator in Linux distributions on diskless devices.

Original languageEnglish
Title of host publicationProceedings - 2006 IEEE Symposium on Security and Privacy, S+P 2006
Pages371-385
Number of pages15
DOIs
StatePublished - 2006
Externally publishedYes
Event2006 IEEE Symposium on Security and Privacy, S and P 2006 - Berkeley, United States
Duration: 21 May 200624 May 2006

Publication series

NameProceedings - IEEE Symposium on Security and Privacy
Volume2006
ISSN (Print)1081-6011

Conference

Conference2006 IEEE Symposium on Security and Privacy, S and P 2006
Country/TerritoryUnited States
CityBerkeley
Period21/05/0624/05/06

Fingerprint

Dive into the research topics of 'Analysis of the linux random number generator'. Together they form a unique fingerprint.

Cite this