Przekodowanie EEPROM: hasła i mechanika
Kluczowy wniosek z lat dyskusji inżynierskich: kompatybilność transceivera to nie firmware — to ciągi identyfikacyjne w EEPROM, odczytywane przez I²C. Przełącznik odrzuca moduł po prostu dlatego, że nie rozpoznaje ciągu producenta. Ten jeden fakt wyjaśnia powszechną praktykę „kodowania wszystkiego jako Cisco — działa niemal wszędzie” oraz cały rynek narzędzi kodujących.
Gdzie mieszkają hasła
Zapis do zabezpieczonych obszarów pamięci modułu wymaga 4-bajtowego hasła wprowadzonego pod stałym adresem przed zapisem:
| Typ modułu | Blok pamięci | Offset hasła |
|---|---|---|
| SFP / SFP+ | A2h (adres I²C 0x51) | 0x7B–0x7E |
| QSFP / XFP | A0h | 0x7B |
Często cytowane hasła
| Hasło | Uwagi |
|---|---|
00 00 10 11 | domyślne MSA — pierwsze do wypróbowania |
00 00 00 00, FF FF FF FF | często spotykane wartości domyślne |
9B B0 3D FA | spotykane w wielu modułach |
4F 43 50 00 | ASCII „OCP” |
Moduły QSFP-DD niektórych producentów są dostarczane z własnymi stałymi wartościami domyślnymi, a kilka modułów opartych na mikroprocesorze używa zmiennego hasła, które się zmienia — pułapka dla każdego, kto próbuje ataku siłowego.
Dlaczego atak siłowy nie jest rozwiązaniem
Złamanie hasła na poziomie producenta, które chroni całą mapę pamięci, atakiem siłowym zajmuje rzędu 100+ dni; nawet hasło ASCII na poziomie hosta zajmuje do około trzech dni. Praktyczną drogą jest baza danych znanych kodów i haseł przechwyconych z oryginalnych modułów — to w niej tkwi prawdziwa wartość narzędzia kodującego, a nie w sprzęcie I²C (który jest prosty).
Pułapki samodzielnych programatorów
- Tanie programatory CH341A nie obliczają sumy kontrolnej SFP. Zapisanie obrazu bez prawidłowych CC_BASE/CC_EXT daje moduł, który przełącznik odrzuci. Potrzebne jest narzędzie, które automatycznie przelicza sumy kontrolne.
- Niektóre przełączniki zapisują tylko pod adresem 0x50, więc hasła pod 0x51 nie da się dosięgnąć z samego przełącznika — potrzebna jest właściwa płytka programatora.
- Pin zabezpieczenia przed zapisem EEPROM — niektóre fabryki podpinają WP do Vcc, więc moduł jest zablokowany przed zapisem w terenie.
Przypadki z terenu
- Moduły zakodowane pod jednego producenta nie negocjowały automatycznie na przełączniku innego; przekodowane na własny ciąg producenta przełącznika, podniosły się natychmiast.
- Niektórzy producenci optyki celowo dostarczają moduły niezakodowane, oczekując, że kupujący zakoduje je pod docelową platformę.
- Moduły DWDM są strojone na długość fali przez ten sam interfejs zarządzania, który służy do kodowania.
Jak to zrobić w CodingBox
- Odczytaj moduł; zostaje on automatycznie zapisany w code database, a przed każdym zapisem tworzona jest kopia zapasowa.
- Ustaw adres tabeli, adres hasła i wartość hasła w Pamięć zabezpieczona przed zapisem i hasła — znane hasła z bazy danych są stosowane automatycznie.
- Edytuj producenta, numer katalogowy i inne pola danych identyfikacyjnych w EEPROM editor. CC_BASE i CC_EXT są przeliczane automatycznie.
- Zapisz wybrane strony, a potem odczytaj ponownie, aby zweryfikować. Sprawdź moduł na przełączniku poleceniami z Weryfikacji optyki.
Koduj moduły tylko dla interoperacyjności, do której masz prawo, i przestrzegaj polityk swojej organizacji oraz producentów.
Reguły stojące za czystym przekodowaniem — formaty pól, które bity ustawić i które sumy poprawić — są w Pola producenta, Kody zgodności i Sumy kontrolne.
Co na tym samym etapie robi fabryka i które obszary trzymają kalibrację, którą nieostrożny zapis może zniszczyć: Produkcja i testy, Kontroler i firmware.
Który bajt co zawiera, zanim zaczniesz edytować: Mapa A0h SFF-8472, Mapa górnych stron SFF-8636, Mapa górnych stron CMIS, Mapa XFP.
Docelowe numery katalogowe i ich gramatyka u poszczególnych producentów: Numeracja części OEM; co sprawdza każda klasa platformy po zapisie: Jak każdy NOS weryfikuje moduł.