/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 network-hooks.d/wireless

  • 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:
35
35
    exit
36
36
fi
37
37
 
38
 
ifkeys=`env | sed -n -e 's/^ADDRESS_\([^=]*\)=.*/\1/p' "$CONFIG" \
39
 
    | sort -u`
 
38
ifkeys=`sed -n -e 's/^ADDRESS_\([^=]*\)=.*/\1/p' "$CONFIG" | sort -u`
40
39
 
41
40
# Exit if DEVICE is set and is not any of the wireless interfaces
42
41
if [ -n "$DEVICE" ]; then
44
43
        for KEY in $ifkeys; do
45
44
            ADDRESS=`eval 'echo "$ADDRESS_'"$KEY"\"`
46
45
            INTERFACE=`addrtoif "$ADDRESS"`
47
 
            if [ "$INTERFACE" = "$DEVICE" ]; then
48
 
                break 2
49
 
            fi
 
46
            
 
47
            case "$DEVICE" in
 
48
                *,"$INTERFACE"|*,"$INTERFACE",*|"$INTERFACE",*|"$INTERFACE")
 
49
                    break 2;;
 
50
            esac
50
51
        done
51
52
        exit
52
53
    done
122
123
        ROUTES=`eval 'echo "$ROUTES_'"$KEY"\"`
123
124
        if [ -n "$ROUTES" ]; then
124
125
            for route in $ROUTES; do
125
 
                "$ip" route add "$route" dev "$BRIDGE"
 
126
                "$ip" route add "$route" dev "$INTERFACE"
126
127
            done
127
128
        fi
128
129
    done