On Di, 24.08.2004, 01:45, Francois Ambrosini sagte: > On Mon, 23 Aug 2004 10:31:26 -0700 > Stephen Hemminger <shemminger@xxxxxxxx> wrote: > > [snip] >> The encrypting bridge isn't a bad idea, just not sure it is worth maintaining >> yet another VPN solution. >> > > Greetings, > > IMHO, and in addition to what Rene Bartsch said, providing an encrypted tunnel at layer 2 can be really useful when it comes to bandwidth and/or latency matters. > Moreover, paranoid network administrators will always be interested in such a feature. It would be the closest solution to direct physical encryption without having to buy any special hardware, and without the overhead of a layer 3 tunnel (just like the encryption part of WPA is to Wi-Fi). > > Alas, adding encryption to the brigde features is not enough: it should scale well, meaning that a decent key management system would have to be provided as well, in user space. To make things clear, I am only speaking of managing the keys on the different nodes of the encrypted switched network (no things like authentication, certificates, PKI and alike). On the top of that, if direct interoperability with other OSes was to be achieved with such a feature, one would have to provide drivers for this to work. > > Isn't all this getting outside the limits of the bridge ? Maybe encryption should be provided by a seperate piece of code that would stand beetween the ethernet driver(s) and the bridge (or the IP stack) ? I am no specialist of neither the bridging code nor the networking implementation in the Linux kernel, so correct me if I'm going in the wrong direction. > My idea is the following: If you add an GRE-tunnel to the bridge, you have a OS interoperable and protocol independent tunneling. That means we just need encryption which could be done by a additional bridge-nf/netfilter target "enc" with the options "cipher" and "key". So, in case of an ebtables rule ebtables [yourmatches, e.g. "-o gre0"] -t enc --cipher [cipher, e.g. AES] --key [public key of remote host] all traffic going to gre0 would pass the target enc which doesn't do anything else than passing the data and keys to the kernel cipher [cipher] (e.g. AES) encrypting the data. And for data coming from the tunnel a rule like ebtables [yourmatches, e.g. "-i gre0"] -t enc --cipher [cipher, e.g. AES] --key [private key of local host] would cause decryption. And if the PadLock functions of the VIA Nehemia cores could be used, we'd have powerful but cheap VPN routers. Comments? Rene