Was sind die Folgen, wenn ich eine IP-Adresse in der node_announcement-Nachricht fälsche?

Laut BOLT 07 sieht die Knotenabrechnungsnachricht so aus:

  1. Typ: 257 ( node_announcement)
  2. Daten:
    • [ 64: signature]
    • [ 2: flen]
    • [ flen: features]
    • [ 4: timestamp]
    • [ 33: node_id]
    • [ 3: rgb_color]
    • [ 32: alias]
    • [ 2: addrlen]
    • [ addrlen: addresses]

wobei die Adressen folgende Form haben:

  • Folgende address descriptorTypen sind definiert:
    • 1: ipv4; Daten = [4:ipv4_addr][2:port](Länge 6)
    • 2: ipv6; Daten = [16:ipv6_addr][2:port](Länge 18)
    • 3: Tor v2 Zwiebeldienst; Daten = [10:onion_addr][2:port](Länge 12)
      • Zwiebeldienstadressen der Version 2; Codiert einen abgeschnittenen 80-Bit- SHA-1Hash eines RSAöffentlichen 1024-Bit-Schlüssels für den Onion-Dienst (auch bekannt als Tor Hidden Service).
    • 4: Tor v3 Zwiebeldienst; Daten = [35:onion_addr][2:port](Länge 37)
      • Version 3 ( prop224 ) Onion-Service-Adressen; Kodiert: [32:32_byte_ed25519_pubkey] || [2:checksum] || [1:version], wobei checksum = sha3(".onion checksum" | pubkey || version)[:2].

Wenn ich dies berücksichtige, könnte ich meinen Knoten ankündigen, die IP-Adresse eines anderen vorhandenen Blitzknotens oder sogar eine beliebige IP-Adresse zu haben. Obwohl klar ist, dass sich niemand mit mir verbinden kann, da ich die IP-Adresse nicht kontrolliere, frage ich mich, wie die Implementierungen mit einem solchen Verhalten umgehen würden.

Selbst wenn Implementierungen nicht mit solchem ​​Spoofing zu kämpfen haben, könnte ein Angreifer dies wahrscheinlich zum Fischen verwenden, um einen Benutzer dazu zu bringen, eine Rechnung zu bezahlen, da sie von einer node_id stammt, die mit einer IP-Adresse eines bekannten Dienstes verbunden ist, bei dem die angegriffene Person möglicherweise sogar Kunde sein.

Gibt es sonst noch etwas, was bei einem solchen Spoofing-Verhalten schief gehen könnte? Vielleicht hätte es sogar Vorteile?

Antworten (1)

Ich sehe den Angriff hier nicht. Sie können nicht behaupten, dass Sie ein anderer Knoten sind, da Sie dafür nicht unterschreiben können. Alles, was Sie tun können, ist, eine falsche IP-Adresse für Ihren eigenen Knoten anzugeben. Was wahrscheinlich nur dazu führt, dass die Leute Sie nicht erreichen können.

Ich denke, der einzige interessante Fall ist, dass die von Ihnen angegebene IP bereits als anderer Knoten bekannt ist. Vielleicht sollte die Spezifikation darlegen, was eine Implementierung dann tun sollte. Aber ich denke, nichts zu tun ist wahrscheinlich in Ordnung, da Sie den bekannten Knoten immer noch unter seiner IP-Adresse erreichen könnten (Knotensuche erfolgt per ID, schätze ich), und wenn Sie versuchen, den Spoofing-Knoten unter der gefälschten Adresse zu erreichen, hat er einfach gewonnen nicht reagieren.