Ogólne

Klucze repeaterów Meshcore

Meshcore działa tak, że do pakietu, który jest retrasmitowany przez repeater doklejany jest prefix klucza publicznego tego repeatera. O ile same klucze są długie, to prefiks jest tylko jednobajtowy. A to oznacza, że bardzo prawdopodobne stają się sytuacje, że 2 repeatery w okolicy mają ten sam prefix. Wtedy nie wiadomo przez który repeater dany pakiet przeszedl. Jest to coś na wzór kolizji. A kiedy w zasiegu są 2 repeteary z tym samym prefiksem i jest on kolejny w ścieżce routingu to oba powtórzą ten pakiet. Oczywiście dla samej sieci to nie ma wielkiego znaczenia. Utrudnia to tylko analizę. Dlatego w dobrym tonie jest unikanie kluczy z tym samym prefiksem na danym obszarze. Na stronie https://analyzer.letsme.sh/nodes/prefix-utilization można zobaczyć, które są używane i w razie kolizji przegenerować je ponownie lub użyć generatora, który wygeneruje nam klucz o zadanym prefiksie. W ostatniej wersji 1.14.0 pojawiła się eksperymentalna opcja, która obsługuje 2 i 3 bajtowe ścieżki, ale jeszcze nie każdy tego używa. Do generowania kluczy dostępny jest generator online pod adresem https://gessaman.com/mc-keygen. Okazało się, że klucz mojego repeatera BC20D6E8… ma już kolizję z dwoma innymi. Przegenerowałem więc klucz na taki, żeby się zaczynał od DEAD… trafił mi się DEAD68C1… I taki zaimportowałem. No ale jak już szaleć to szaleć. Chciałem mieć DEADBEAF…. Online’owy generator okazał się za słaby, żeby w miarę szybko podołać temu zadaniu. Tu przyszedł z pomocą projekt https://github.com/Aveygo/MeshcoreVanity. Zapuściłem i po kilku godzinach miałem swój upragniony DEADBEAF….Taki sposób generowania kluczy nazywa się vanity i jest bardzo zasobożerny i czasochłonny. Nim więcej chcemy mieć w kluczu zdefiniowanych bajtów, tym więcej czasu to zajmie. Taki klucz trzeba zgadnąć generując wiele kluczy jednocześnie i jeden po drugim, porównując, czy to taki jak chcemy. Każdy bajt więcej to zmniejszenie prawdopodobieństwo 256 razy, że taki klucz odgadniemy. Przy 6 bajtach już to robi się sporym wyzwaniem dla zwykłego CPU. Pozostaje zaprzęgnąć do pracy GPU, ale to już innym razem.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *