/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to initramfs-tools-script

  • Committer: Teddy Hogeborn
  • Date: 2015-03-10 18:03:38 UTC
  • Revision ID: teddy@recompile.se-20150310180338-pcxw6r2qmw9k6br9
Add ":!RSA" to GnuTLS priority string, to disallow non-DHE kx.

If Mandos was somehow made to use a non-ephemeral Diffie-Hellman key
exchange algorithm in the TLS handshake, any saved network traffic
could then be decrypted later if the Mandos client key was obtained.
By default, Mandos uses ephemeral DH key exchanges which does not have
this problem, but a non-ephemeral key exchange algorithm was still
enabled by default.  The simplest solution is to simply turn that off,
which ensures that Mandos will always use ephemeral DH key exchanges.

There is a "PFS" priority string specifier, but we can't use it because:

1. Security-wise, it is a mix between "NORMAL" and "SECURE128" - it
   enables a lot more algorithms than "SECURE256".

2. It is only available since GnuTLS 3.2.4.

Thanks to Andreas Fischer <af@bantuX.org> for reporting this issue.

Show diffs side-by-side

added added

removed removed

Lines of Context:
57
57
# Get DEVICE from /conf/initramfs.conf and other files
58
58
. /conf/initramfs.conf
59
59
for conf in /conf/conf.d/*; do
60
 
    [ -f "${conf}" ] && . "${conf}"
 
60
    [ -f ${conf} ] && . ${conf}
61
61
done
62
62
if [ -e /conf/param.conf ]; then
63
63
    . /conf/param.conf
94
94
# If we are connecting directly, run "configure_networking" (from
95
95
# /scripts/functions); it needs IPOPTS and DEVICE
96
96
if [ "${connect+set}" = set ]; then
97
 
    set +e                      # Required by library functions
98
97
    configure_networking
99
 
    set -e
100
98
    if [ -n "$connect" ]; then
101
99
        cat <<-EOF >>/conf/conf.d/mandos/plugin-runner.conf
102
100
        
115
113
# parse /conf/conf.d/cryptroot.  Format:
116
114
# target=sda2_crypt,source=/dev/sda2,key=none,keyscript=/foo/bar/baz
117
115
exec 3>/conf/conf.d/cryptroot.mandos
118
 
while read -r options; do
 
116
while read options; do
119
117
    newopts=""
120
118
    # Split option line on commas
121
119
    old_ifs="$IFS"