Cardano Leios Prototyp behebt Timing Angriff bei Ankündigungen von Endorser Blocks

Cardano Entwickler haben einen Timing Fehler im Leios Prototyp behoben, der dazu führen konnte, dass ehrliche Knoten die Verbindung zueinander verlieren. Das Problem betraf die Ankündigungslogik für Endorser Blocks im Prototyp und war nie Teil des aktuellen Cardano Mainnet Protokolls.

By SongMarketCap

Cardano News - Cardano Leios Prototyp behebt Timing Angriff bei Ankündigungen von Endorser Blocks

Cardanos Leios Prototyp hat eine Netzwerk Fehlerbehebung erhalten, nachdem Entwickler einen Timing Angriff im Zusammenhang mit Endorser Block Ankündigungen identifiziert hatten. Unter bestimmten Bedingungen konnte ein Stake Pool mit gültigen betrieblichen Anmeldedaten eine zeitlich genau abgestimmte Ankündigung senden, die dazu führte, dass sich ein ehrlicher Knoten von einem anderen ehrlichen Peer trennte, dessen Sicht auf die Kette leicht hinterherhinkte.

Die Korrektur wurde am 18. August in den leios-prototype Zweig von Ouroboros Consensus übernommen und am 25. August vom Consensus Team von Intersect hervorgehoben. Blink Labs implementierte anschließend den entsprechenden Schutz in Dingo.

Leios Timing Unterschied konnte ehrliche Peers trennen

Ouroboros Leios ist Cardanos geplante Skalierungsarchitektur, die den Transaktionsdurchsatz erhöhen soll und dabei die Sicherheitseigenschaften des zugrunde liegenden Konsensprotokolls beibehält.

Ein Teil des Designs verwendet Endorser Blocks, die zusätzliche Transaktionsdaten neben Cardanos Ranking Blöcken tragen. Knoten können einen Endorser Block ankündigen, bevor die vollständigen Blockdaten eintreffen, was hilft, Informationen effizienter durch das Netzwerk zu verbreiten.

Das identifizierte Problem betraf die Ausgabenummer des Betriebszertifikats, oder OCIN, die an diese Ankündigungen angehängt ist.

Zwei ehrliche Knoten können vorübergehend unterschiedliche unveränderliche Kettenenden haben. Ein weiter fortgeschrittener Knoten kann eine ältere OCIN bereits als widerrufen betrachten, während ein Upstream Peer, der denselben unveränderlichen Punkt noch nicht erreicht hat, sie weiterhin rechtmäßig als gültig behandeln kann.

Die frühere Prototyp Logik konnte eine Ankündigung mit dieser älteren OCIN als ungültiges Verhalten interpretieren und den Upstream Peer trennen.

Das ursprüngliche GitHub Ticket beschreibt, wie ein angreifender Stake Pool diese Timing Differenz ausnutzen konnte, indem er kurz vor dem Zeitpunkt, an dem seine OCIN unveränderlich wurde, eine Ankündigung sendete. Da der Pool seine OCIN erhöhen konnte, wenn er einen neuen Header auf die Kette setzte, konnte die Abfolge genutzt werden, um Trennungen zwischen ehrlichen Knoten auszulösen.

Das Ticket stellte fest, dass dieses Verhalten behoben werden musste, bevor die Ankündigungslogik als geeignet für das Mainnet betrachtet werden konnte.

Neue Leios Logik stoppt die Trennung

Die zusammengeführte Korrektur ändert, wie ein Leios Knoten reagiert, wenn er eine Ankündigung mit einer OCIN erhält, die sein eigenes unveränderliches Ende bereits als widerrufen betrachtet.

Statt die Peer Verbindung zu beenden, akzeptiert der Knoten die Nachricht auf der Ebene des Netzwerkprotokolls. Da der empfangende Knoten bereits weiß, dass die OCIN veraltet ist, wird die Ankündigung ignoriert, anstatt verarbeitet oder weitergeleitet zu werden.

Die Änderung ermöglicht es einem ehrlichen Peer, vorübergehend hinterherzuhinken, ohne als bösartig eingestuft zu werden.

Entwickler dokumentierten auch einen engeren Restfall mit geleakten historischen KES Schlüsseln. Ein geleakter Schlüssel könnte nach dem Widerruf weiterhin verwendet werden, um eine kleine Anzahl zusätzlicher falscher Endorser Block Ankündigungen an unmittelbare Downstream Peers zu senden.

Diese Ankündigungen lösen keine Trennungen aus und werden nicht weiter verbreitet. Die Entwicklungsdiskussion beschreibt die zusätzlichen Verarbeitungskosten als minimal und das verbleibende Verhalten als unerwünscht, aber keinen Blocker für den aktuellen Prototyp.

Es gibt keine Belege aus Primärquellen dafür, dass dieser Angriffsvektor das Cardano Mainnet betroffen hat. Der betroffene Ankündigungsmechanismus gehört zum Leios Prototyp, und die Korrektur wurde in dessen dedizierten Entwicklungszweig zusammengeführt und nicht in den Produktions Konsenszweig.

Dingo übernimmt denselben Leios Schutz

Blink Labs hat das Modell zur Handhabung veralteter OCIN auch auf Dingo angewandt, seine unabhängige Cardano Knoten Implementierung.

Das Dingo Ticket wurde am 26. August eröffnet, nachdem Entwickler festgestellt hatten, dass eine korrekt signierte, aber veraltete Ankündigung weiterhin aufgezeichnet und weitergeleitet werden konnte. Pull Request #3563 wurde am 27. August zusammengeführt.

In der aktualisierten Implementierung werden veraltete oder von unbekannten Ausstellern stammende Ankündigungen akzeptiert, ohne die Peer Verbindung zu schließen, jedoch nicht aufgezeichnet, verarbeitet oder weitergeleitet. Frische Ankündigungen durchlaufen weiterhin die normale Verarbeitung, mit Regressionstests, die mehrere OCIN Zustände abdecken.

Intersects Entwicklungsupdate für August meldete außerdem erweiterten db-analyser Support für Leios Ketten. Das Tool kann nun Leios Kettendaten wiedergeben und zertifizierte Endorser Block Transaktionen, deren Größe sowie die zum Lesen und Anwenden benötigte Zeit messen. Das erweitert das Testen über den Durchsatz hinaus hin zu Ledger Verarbeitungskosten und Ressourcenverhalten.

Die Korrektur für veraltete Ankündigungen umfasst nun zwei Implementierungen. Ouroboros Consensus änderte das Verhalten im ursprünglichen Leios Prototyp am 18. August, während Dingo seine entsprechende Implementierung neun Tage später übernahm, wodurch beide Codebasen den gleichen Netzwerk Randfall einheitlich behandeln, bevor Leios die Produktionsbereitstellung erreicht.