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 email nie zostanie opublikowany. Wymagane pola są oznaczone *