Microsoft Point-To-Point Encryption Protocol
Microsoft Point-To-Point Encryption (MPPE) ist ein Netzwerkprotokoll zur Verschlüsselung von Daten, die nach dem Point-to-Point Protocol übertragen werden. Es wurde von Microsoft und Cisco entwickelt und im März 2001 als RFC 3078 veröffentlicht.
Funktion
Aushandlungen
MPPE benutzt zur Verschlüsselung den Algorithmus RC4 von RSA Security. Die Länge der session keys kann während der Verbindungs-Aushandlung festgelegt werden. Erlaubt sind dabei 40 Bit, 56 Bit oder 128 Bit. Die Verhandlungen und die Verwaltung werden über das Compression Control Protocol abgehandelt. MPPE wird innerhalb der Option 18 im CCP ausgehandelt.
Dabei benutzt CCP eine Länge von 6 Bit:
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│ │M│S│L│D│ │C│ └─────────────┴─┴───────────────────────────────┴─┴─┴─┴─┴─────┴─┘
- C = wird von MPPC genutzt (compression)
- D = veraltet, wird aber von einigen älteren Klienten noch unterstützt
- L = 40 Bit session key
- S = 128 Bit session key
- M = 56 Bit session key
- H = stateless mode wird verwendet. Dabei wird der Schlüssel nach jedem übertragenen Paket geändert.
Bevor MPPE ein Paket versenden kann, muss PPP die "Network-Layer Protocol"-Phase erreicht haben, und CCP muss den sogenannten "Open State" erlangen. Also die Schlüsselverhandlungen müssen abgeschlossen werden.
Übertragung
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 ├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┼─┼─┼─┼─┼─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┤ │ PPP Protocol │A│B│C│D│ Coherency Count │ ├───────────────────────────────┴─┴─┴─┴─┴───────────────────────┘ │ Verschlüsselte Daten... └────────────────────────────────
- PPP Protocol = PPP Protokollnummer des übertragenen Protokolls. Für MPPE wird 00FD verwendet = komprimiertes Datagramm.
- A = Die Verschlüsselungstabelle wurde initialisiert, bevor das Paket generiert wurde. Der Empfänger muss also die Tabelle auch Reinitialisieren, bevor das Paket entschlüsselt wird.
- B = keine Bedeutung für MPPE
- C = keine Bedeutung für MPPE
- D = Hier wird mitgeteilt, ob das Paket verschlüsselt oder unverschlüsselt ist.
- Coherency Count (Kohärenzzähler) = Damit wird sichergestellt, dass die Pakete in der richtigen Reihenfolge übertragen wurden und dass keine Pakete unterwegs verloren gingen.
- Verschlüsselte Daten = Das Paket beginnt mit dem Protokollfeld. Zuerst wird das Protokollfeld entschlüsselt und dann der Header des gesendeten Protokolls (z. B. der IP Header). Danach wird dann der Inhalt des Pakets entschlüsselt.