Microsoft Point-to-Point Encryption

Microsoft Point - to-Point Encryption ( MPPE ) is a network protocol used to encrypt data that are transmitted by the Point-to- Point Protocol. It was developed by Microsoft and Cisco and published in March 2001 as RFC 3078.

Function

Negotiations

MPPE uses the RC4 encryption algorithm from RSA Security. The length of the session keys can be set during connection negotiation. Permits are 40 bits, 56 bits or 128 bits. The negotiations and the administration are dealt with via the Compression Control Protocol. MPPE is negotiated within option 18 in the CCP.

This CCP used a length of 6 bits:

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ├─┴─┴─┴─┴─┴─┴─┼─┼─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┼─┼─┼─┼─┼─┴─┴─┼─┤ │ │ H │ │ │ S │ L │ M │ │ C │ D └─────────────┴─┴───────────────────────────────┴─┴─┴─┴─┴─────┴─┘ C = is used by MPPC ( compression ) D = deprecated, but is still supported by some older clients L = 40-bit session key S = 128-bit session key M = 56-bit session key H = stateless mode is used. The key is changed after each transmitted packet.

Before MPPE can send a package, PPP must reach the " Network-Layer Protocol " phase, and CCP must obtain the so-called "Open State". So the key negotiations must be completed.

Transmission

1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 ├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┼─┼─┼─┼─┼─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┤ │ │ A │ PPP Protocol B │ C │ D │ │ Coherency Count ├───────────────────────────────┴─┴─┴─┴─┴───────────────────────┘ │ Encrypted data ... └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ PPP Protocol = PPP protocol number of the transmitted protocol. MPPE is used 00FD = compressed datagram. A = The encryption table has been initialized before the packet was generated. Thus, the recipient must also reinitialize the table before the packet is decrypted. B = no meaning for MPPE C = no meaning for MPPE D = It tells whether the packet is encrypted or unencrypted. Coherency Count ( coherence counter) = This ensures that the packets are transmitted in the correct order and that no packets were lost in transit. Encrypted data = The package begins with the protocol field. First, the protocol field is decoded and then the header of the protocol sent ( for example, the IP header). After that, the contents of the packet is decrypted.

570466
de