RPKI – Resource Public Key Infrastructure

Abkürzung: RPKI

RPKI (Resource Public Key Infrastructure) ist ein kryptografisches Verfahren, mit dem sich prüfen lässt, ob ein autonomes System berechtigt ist, einen bestimmten Adressbereich anzukündigen. Es schließt eine Lücke, die BGP seit seiner Entstehung hat.

Das Problem

BGP kennt keine Echtheitsprüfung. Ein Router nimmt die Wege, die ihm ein Nachbar ankündigt, grundsätzlich als wahr an. Wer eine BGP-Sitzung hat, kann damit jeden beliebigen Adressbereich als eigenen ausgeben.

Die Folgen reichen vom Versehen bis zum Angriff. Ein Tippfehler in einer Konfiguration kann den Verkehr für ein fremdes Netz in ein Netz umleiten, das damit nichts zu tun hat — und weil ein genauerer Eintrag einen allgemeineren schlägt, genügt dafür die Ankündigung eines kleineren Bereichs aus dem Adressraum eines anderen.

Betroffene merken davon zunächst nichts: Aus ihrer Sicht ist ihr Netz weiterhin erreichbar, nur eben nicht für alle. Der Verkehr verschwindet dort, wo die falsche Ankündigung angenommen wurde.

Wie es funktioniert

Der Inhaber hinterlegt eine Erklärung. Wer einen Adressbereich von einer Regionalen Registry zugeteilt bekommen hat, erstellt dort eine Route Origin Authorisation — eine signierte Aussage der Form: Das autonome System mit der Nummer X darf den Bereich P ankündigen, und zwar bis höchstens zur Präfixlänge L.

Die Registries bilden die Vertrauenskette. Jede der fünf regionalen Registries betreibt einen Vertrauensanker. Darunter hängen die Zertifikate der Mitglieder, darunter deren Erklärungen. Die Kette bildet damit genau die Zuteilungshierarchie des Adressraums ab.

Netzbetreiber prüfen dagegen. Eine Software lädt regelmäßig sämtliche Erklärungen, prüft die Signaturen und stellt das Ergebnis den Routern als Liste bereit. Die Router selbst rechnen nicht kryptografisch — sie bekommen eine fertig geprüfte Tabelle.

Der Router bewertet jede Ankündigung. Drei Ergebnisse sind möglich:

ErgebnisBedeutung
ValidEs gibt eine passende Erklärung, Ursprung und Länge stimmen
InvalidEs gibt eine Erklärung für diesen Bereich, aber Ursprung oder Länge passen nicht
NotFoundFür diesen Bereich existiert keine Erklärung

Was daraus folgt, entscheidet der Betreiber. Übliche Praxis ist, Invalid zu verwerfen und NotFound weiterhin zu akzeptieren — Letzteres, weil noch nicht alle Adressbereiche erfasst sind und ein Verwerfen große Teile des Internets unerreichbar machen würde.

Die maxLength-Falle

Der häufigste Konfigurationsfehler, und er wirkt genau entgegen der Absicht.

Beim Erstellen einer Erklärung lässt sich angeben, bis zu welcher Präfixlänge angekündigt werden darf. Wer hier großzügig ist und für ein /19 die Länge /24 erlaubt, obwohl er tatsächlich nur das /19 ankündigt, erklärt damit sämtliche darin enthaltenen /20 bis /24 für zulässig.

Ein Angreifer kann dann einen genaueren Bereich daraus ankündigen — mit demselben Ursprungs-AS, das in der Erklärung steht — und die Prüfung fällt gültig aus. Der genauere Eintrag gewinnt, der Verkehr wird umgeleitet, und RPKI hat nicht nur nicht geholfen, sondern die Umleitung sogar beglaubigt.

Die Empfehlung lautet deshalb: maxLength nicht setzen oder genau auf die Länge setzen, die tatsächlich angekündigt wird. Lieber mehrere Erklärungen anlegen als eine zu weite.

Was RPKI nicht leistet

Hier liegt die ehrliche Grenze des Verfahrens.

Geprüft wird nur der Ursprung, nicht der Weg. Die Erklärung sagt aus, wer einen Bereich ankündigen darf — nicht, über welche Netze der Weg dorthin führen darf. Ein Netz, das einen von einem Partner gelernten Weg fälschlich an seine übrigen Nachbarn weitergibt, erzeugt einen gültigen, aber falschen Weg. Solche Fälle sind in der Praxis häufiger als bewusste Angriffe und richten mitunter größeren Schaden an.

An der Absicherung des gesamten Pfades wird gearbeitet. Ein Verfahren dafür existiert seit Jahren, hat sich wegen des Rechenaufwands aber nicht durchgesetzt; ein leichtgewichtigerer Ansatz, der die Beziehungen zwischen Netzen beschreibt, ist in Arbeit.

Eine falsche Erklärung macht das eigene Netz unerreichbar. Wer eine Erklärung anlegt, die nicht zu dem passt, was tatsächlich angekündigt wird, erzeugt den Status Invalid für den eigenen Bereich — und wird von allen Netzen nicht mehr erreicht, die Invalid verwerfen. Das ist kein theoretisches Risiko, sondern ein regelmäßig vorkommender Betriebsfehler. Vor jeder Änderung an der Ankündigung gehört die Erklärung geprüft, nicht danach.

Verbreitung

Die Abdeckung ist über die letzten Jahre deutlich gewachsen; ein erheblicher Teil des angekündigten Adressraums ist inzwischen erfasst. Große Netzbetreiber, mehrere Internet-Knoten und die Route Server vieler Knoten verwerfen ungültige Ankündigungen.

Für kleinere Netze heißt das: Eine fehlende Erklärung schadet noch nicht, eine falsche dagegen sofort.

Abgrenzung

BGP ist das Protokoll, dessen Ankündigungen geprüft werden.

Ein Internet Routing Registry enthält ebenfalls Angaben darüber, wer welchen Bereich ankündigen darf, allerdings ohne kryptografische Absicherung und historisch mit erheblichem Anteil veralteter Einträge. Beide Verfahren werden nebeneinander genutzt.

Die Regionale Registry ist die Stelle, bei der die Erklärungen angelegt werden, und zugleich der Vertrauensanker der Kette.

Erstellt: