README.MPPE 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. PPP Support for MPPE (Microsoft Point to Point Encryption)
  2. ==========================================================
  3. Frank Cusack frank@google.com
  4. Mar 19, 2002
  5. Updated by Paul Mackerras, Sep 2008
  6. DISCUSSION
  7. MPPE is Microsoft's encryption scheme for PPP links. It is pretty much
  8. solely intended for use with PPP over Internet links -- if you have a true
  9. point to point link you have little need for encryption. It is generally
  10. used with PPTP.
  11. MPPE is negotiated within CCP (Compression Control Protocol) as option
  12. 18. In order for MPPE to work, both peers must agree to do it. This
  13. complicates things enough that I chose to implement it as strictly a binary
  14. option, off by default. If you turn it on, all other compression options
  15. are disabled and MPPE *must* be negotiated successfully in both directions
  16. (CCP is unidirectional) or the link will be disconnected. I think this is
  17. reasonable since, if you want encryption, you want encryption. That is,
  18. I am not convinced that optional encryption is useful.
  19. While PPP regards MPPE as a "compressor", it actually expands every frame
  20. by 4 bytes, the MPPE overhead (encapsulation).
  21. Because of the data expansion, you'll see that ppp interfaces get their
  22. mtu reduced by 4 bytes whenever MPPE is negotiated. This is because
  23. when MPPE is active, it is *required* that *every* packet be encrypted.
  24. PPPD sets the mtu = MIN(peer mru, configured mtu). To ensure that
  25. MPPE frames are not larger than the peer's mru, we reduce the mtu by 4
  26. bytes so that the network layer never sends ppp a packet that's too large.
  27. There is an option to compress the data before encrypting (MPPC), however
  28. the algorithm is patented and requires execution of a license with Hifn.
  29. MPPC as an RFC is a complete farce. I have no further details on MPPC.
  30. Some recommendations:
  31. - Use stateless mode. Stateful mode is disabled by default. Unfortunately,
  32. stateless mode is very expensive as the peers must rekey for every packet.
  33. - Use 128-bit encryption.
  34. - Use MS-CHAPv2 only.
  35. Reference documents:
  36. <http://www.ietf.org/rfc/rfc3078.txt> MPPE
  37. <http://www.ietf.org/rfc/rfc3079.txt> MPPE Key Derivation
  38. <http://www.ietf.org/rfc/rfc2118.txt> MPPC
  39. <http://www.ietf.org/rfc/rfc2637.txt> PPTP
  40. <http://www.ietf.org/rfc/rfc2548.txt> MS RADIUS Attributes
  41. You might be interested in PoPToP, a Linux PPTP server. You can find it at
  42. <http://www.poptop.org/>
  43. RADIUS support for MPPE is from Ralf Hofmann, <ralf.hofmann@elvido.net>.
  44. BUILDING THE PPPD
  45. The userland component of PPPD has no additional requirements above
  46. those for MS-CHAP and MS-CHAPv2.
  47. MPPE support is now included in the mainline Linux kernel releases.
  48. CONFIGURATION
  49. See pppd(8) for the MPPE options. Under Linux, if your modutils is earlier
  50. than 2.4.15, you will need to add
  51. alias ppp-compress-18 ppp_mppe
  52. to /etc/modules.conf.