logo_kerberos.gif

Projects/PRNG Cleanup

From K5Wiki
< Projects
Revision as of 13:20, 20 February 2011 by Ghudson (talk | contribs) (New page: {{project-early}} ==Overview== This project is intended to clean up some of the conceptual errors in the PRNG framework and make it interface more cleanly to the rest of the code. The s...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This is an early stage project for MIT Kerberos. It is being fleshed out by its proponents. Feel free to help flesh out the details of this project. After the project is ready, it will be presented for review and approval.


Overview

This project is intended to clean up some of the conceptual errors in the PRNG framework and make it interface more cleanly to the rest of the code. The specific proposed changes are:

  • Make PRNG implementations responsible for gathering OS entropy when desired using a helper function.
  • Correct (probably rewrite) the Fortuna PRNG implementation and make it the default.
  • Make the Fortuna implementation immediately reseed the generator on inputs likely to contain an interesting amount of entropy (OSRAND and TRUSTED). Use the pool logic for other entropy inputs.
  • Make the Fortuna implementation fail out if it cannot gather OS entropy and does not receive an OSRAND or TRUSTED entropy input.
  • Eliminate the Yarrow PRNG implementation.
  • Add a PRNG implementation which uses only OS entropy.
  • Eliminate current calls to add external entropy except for:
    • krb5_generate_subkey_extended: parent key
    • krb5_generate_seq_number: parent key
    • KDC: master key
    • KDC: interval between packets
    • KDC: OS entropy once per hour
    • kdb5_util, kdb5_ldap_util: master key

Problem Analysis