freebsd-dev/etc/rc.d/postrandom
David E. O'Brien 7e7fd6c88d Remove old entropy seeding after consumption initializing /dev/random PRNG.
Not doing so opens us up to replay attacks.

Submitted by:	Arthur Mesh <arthurmesh@gmail.com>
Sponsored by:	Juniper Networks
2012-08-22 18:43:21 +00:00

42 lines
749 B
Bash
Executable File

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: postrandom
# REQUIRE: initrandom random var
# BEFORE: LOGIN
# KEYWORD: nojail
. /etc/rc.subr
name="postrandom"
start_cmd="${name}_start"
stop_cmd=":"
# This will remove old ${entropy_file} and generate a new one.
# According to Bruce Schneier, this is stronly recomended in order
# to avoid using same ${entropy_file} across reboots.
# Reference: Chapter 10.6, Practical Cryptograpy, ISBN: 0-471-22357-3
postrandom_start()
{
/etc/rc.d/random fastsaveseed
case ${entropy_dir} in
[Nn][Oo])
;;
*)
entropy_dir=${entropy_dir:-/var/db/entropy}
if [ -d "${entropy_dir}" ]; then
if [ -w /dev/random ]; then
rm -f ${entropy_dir}/*
fi
fi
;;
esac
}
load_rc_config random
run_rc_command "$1"