News zur FCC-Umsetzung Ubiquiti
Roland Zimmermann
Rolle at ff3l.net
Do Sep 29 00:06:57 CEST 2016
Guten Abend zusammen,
ich hatte heute Morgen 4 Stück neue Unifi-Funkteller auf dem Tisch und
wollte Gluon Flashen. Nix is, die Teile weigern sich standhaft da die
neue Software nicht Signiert ist. TFTP geht auch net. Falsche Signatur
heisst kein Schreibzugriff auf den Flash. Ubiquiti macht also mit dem
Lockdown ernst. Ich war aber natürlich sehr Neugierig und habe mal
mittels JTAG den Flash ausgelesen oder es zumindest versucht. Auch da
hat Ubiquiti was geändert, das Flash ist eines von Winbond (=der letzte
Schrott, nicht Temperaturfest und wenns mal Warm wird wie in den
Nanostations gibt das den Löffel ab) welches kein JTAG kann. Die
betreffenden Lötinseln fürs JTAG sind auch einer Layoutänderung zum
Opfer gefallen (Irgendwie muss der Hersteller die Soft da aber initial
draufbekommen, da bin ich noch am Analysieren des Layouts). Vermutlich
ist das Absicht das man nicht Loggen kann bzw. Alternativsoftware
Flashen auf dem "direkten" Weg. Ich bin da bekanntlichermassen recht
Schmerzfrei und habe das Flash schnell mit der Infrarotreworkstation
rausgeholt. Dann ab in den Adapter und an den Programmer. SPI kann das
Flash (muss es ja der SoC muss die Firmware ja irgendwie laden können
beim Start), also konnte ich auslesen. Also erst mal nen Dump gemacht,
dann Analysiert.
Dabei ist mir was gemeines Aufgefallen. Die größe der Daten welche in
der ART-Partition liegen stimmt nicht mit dem bekannten Atheros Format
überein, da sind einige Bytes zu viel drin. Weiterhin kann ich die
Dinger nicht interpretieren, die Hexwerte ergeben keinen Sinn, auch
nicht beim "zerlegen" mittels des Atheros Tools. Vermutung meinerseits:
Verschlüsselt... *grml* Somit funktioniert der Austausch des Bootloaders
gegen einen ohne RSA-Kryptografie zwar weiterhin aber dieser kann die
ART-Partition nicht entschlüsseln da dies nur der Bootloader von
Ubiquiti kann. Die ART-Daten (ART = AtherosRadioTest) sind aber wichtig,
ohne diese weigert sich der Funkteil des Atheros-Chips den Oszillator
einzuschalten (=kein Wlan) da da drin Kalibrationsdaten stehen welche in
einen speziellen Speicherbereich des SoC geladen werden müssen (in den
für die PLL usw.). Deshalb ist die ART-Partition bei keinem Gerät
gleich, eben wegen der Kalibration im Werk, einfaches Austauschen klappt
also nicht. Nach langem hin und her habe ich nun Rausbekommen wie die
ART-Daten entschlüsselt werden. (Danke an den Programmierer dieser
Sche....e für die vielen nutzlosen Füllbytes hat mich 2 Stunden analyse
gekostet, burn in hell du Penner...) Dazu gibt es auch ein Tool welches
Atheros auf Druck der FCC entwickelt hat (NDA erforderlich zum Erhalt).
Atheros selbst ist eigentlich pro Freifunk, zugegeben die Verdienen ja
auch am Verkauf ihrer Chips und das nicht zu knapp aber auch wird da der
Freie Software-Gedanke hochgehalten. Die Sache mit der Signatur ist von
Seiten von Atheros kein Zwang, jeder Hersteller muss wissen ob er das
machen will oder nicht. Das FCC-Gesetz hat mehr Löcher wie mein
Autoauspuff, wenn jemand als Firma will gibt es genug Möglichkeiten auf
Legalem Wege trotzdem das Flashen von alternativer Software zu
ermöglichen. Wie gesagt, wenn man als Hersteller will... (oder im Fall
von Ubiquiti halt eben nicht *bääääh*)
Nach dem Decodieren der ART-Partition und dem Flashen, Nebst richtigem
Bootloader (ohne die RSA-Kagge drin), konnte ich Problemlos per TFTP
OpenWRT draufbraten.
Noch etwas Insiderinfo bezüglich der Winbond-Flashchips: Es ist bekannt
das die Winbond Flashchips das billigste vom Billigen sind und
netterweise auch nicht temperaturfest, da es diese nur in "Commercial
Grade" gibt und nicht in "Industrial Grade". Commercial Grade hat einen
Temperaturbereich von 0-40 Grad, Industrial Grade von -25 - 95 Grad. Ich
hatte dieses Jahr nach dem heissen Sommer eine Menge Nanostations welche
auf einmal nicht mehr Starten. Diagnose war immer das der Flashchip
platt war, dieser lies sich auch mittels externem Programmer nicht mehr
beschreiben. Also ein gutes Macronix-Flash rein, das mittels JTAG
initial geflasht und schon läufts wieder. Trotzdem sehr peinlich für
Ubiquiti das ganze...
Fazit:
Ubiquiti macht nun tatsächlich ernst mit der umsetzung der FCC-Richtlinie.
Die Qualität der Hardware hat sich Verschlechtert und das ausgerechnet
bei sehr wichtigen Bauteilen wie dem Flash.
Als Spannungsregler wird ein No-Name Chinachip (kein Datenblatt
verfügbar) eingesetzt, kein guter TexasInstruments mehr. Mit etwas
Reverse Engineering habe ich aber rausbekommen wie der funktioniert. Die
nervig fiepende Schaltreglerdrossel wurde auch durch ein Billigteil
ersetzt, ein tropfen Plastikspray reicht aber und das Ding ist ruhig.
Es gibt keinen Hardware-Watchdog (kleiner 8-Pin-Chip) mehr welche die
Versorgung mittels Monitoring überwacht. Ein Brownout vom ca. 4ms Dauer
(- Polarität) und die Hardware hängt sich Reproduzierbar weg. Nicht gut...
Ubiquiti selbst hat kein Interesse das alternative Software auf ihrer
Hardware läuft und versucht das auch durchzusetzen mittels Signierung
der Firmware, kastrierter ART-Datenpartition und Flashchip welcher kein
JTAG mag.
Die Ubiquiti-Hardware war bis jetzt nicht schlecht, allerdings wird sich
der weitere Nutzen in grenzen halten wenn bei allen Neugeräten die
Signierung drauf ist.
Ich kann also momentan nur davon Abraten WiFi Hardware von Ubiquiti zu
kaufen wenn diese für Freifunk mit Gluon eingesetzt werden soll.
Das beste zum Schluss: Alle drei Unifi-Funkteller laufen wunderbar mit
Gluon. Nummer vier schmort im Moment noch in der Hotair (den letzten
Flashchip wieder reinbraten)... :-)
Also wenn Ubiquiti meint alles dichtzumachen... Macht doch, verhindern
können wir das ja sowieso nicht, aber irgendwie wird die freie Software
Szene da schon an die leckere Hardware dran kommen (und wenn ich die
Flashchips in Zukunft auslöten muss zum Proggen, ok, kein Problem hat
der Lötrobot was zu tun und ich könnte da ja durch einen dummen Zufall
ein paar Dumps im Netz "verlieren" höhö...)
Solange da kein Cryptoflash eingesetzt wird, wird man da immer an die
Soft drankommen. Da die Atheros-Chips für den Massenmarkt aber
glücklicherweise über keine Powerup-Crpytoengine in Hardware verfügen
ist es nicht möglich da ein Cryptoflash anzuschliessen. Folge: Alles
Safe... :-)
Grüße
Rolle
Mehr Informationen über die Mailingliste ff3l