Factory reset von "aussen"?

Topics about the Software of Revolution Pi
Post Reply
yamadadobbyteam
Posts: 3
Joined: 28 May 2020, 06:07

Factory reset von "aussen"?

Post by yamadadobbyteam »

Guten Tag,

Ich habe folgende Frage:
Ist es moeglich das Password fuer den SSH Zugang von AUSSEN (also ohne sich vorher auf dem Geraet einzuloggen) auf das default Password zurueckzusetzen? Und wenn ja, wie?

Hintergrund:
Wir liefern das Revolution PI mit unseren Maschinen zum Kunden aus. Der Kunde soll KEINEN Zugriff unsere installierte software und insbesondere desen Konfiguration erhalten.
Daher muss der Zugriff verhindert werden.

Wenn der Kunde von AUSSEN das Password zuruecksetzen kann, muessen wir sicherstellen, dass das Zuruecksetzen erkannt wird und unsere Software und dessen konfiguration automatisch entfernt wird.

Kurz ueber mich:
Ich arbeite in Japan in der Firma Yamadadobby als Softwareentwickler. Wir stellen Stanzmaschienen her und erwaegen das Revolution PI fuer unsere Maschinen einzusetzen..
User avatar
lukas
Expert
Posts: 186
Joined: 13 Feb 2017, 10:29

Re: Factory reset von "aussen"?

Post by lukas »

Die einzige Möglichkeit besteht darin, den Micro-USB Anschluss auf der Frontblende an einen PC anzuschließen und per rpiboot das Filesystem zu mounten. Dann kann man beliebige Änderungen am Dateisystem vornehmen, beispielsweise auch /etc/shadow editieren und das Passwort eines Benutzers ändern.

Ihr könntet zwar in eurer Anwendung oder beim Start des Systems überprüfen, ob /etc/shadow oder andere Dateien verändert wurden, allerdings könnte ein Angreifer diesen Mechanismus ebenfalls durch Mounten des Dateisystems aushebeln.

Die Revolution Pi Geräte haben einen Crypto-Chip (Atmel ATECC508A), der nach meinem Kenntnisstand auch einmalig beschreibbare Speicherbereiche zur Verfügung stellt. Dort könnte ein Hash des Dateisystems gespeichert werden, der beim Systemstart überprüft wird. Da sich aber der Überprüfungsmechanismus auf dem (per Micro-USB veränderbaren) Dateisystem befindet, ließe sich auch das aushebeln. Die ARM CPU im Raspberry Pi unterstützt kein Secure Boot, d.h. der Crypto Chip kann nicht dafür benutzt werden um einen unveränderbaren Bootvorgang zu garantieren.

Kunden haben zum Teil auch die Gehäuseöffnung des Micro-USB Anschlusses überklebt oder mit Heißkleber ausgefüllt oder den Micro-USB Anschluss von der Platine abgebrochen. Richtig schön ist das natürlich nicht.

Wir werden später im Jahr ein neues Produkt auf den Markt bringen, den "RevPi Flat". Prototypen wurden bereits auf Messen gezeigt. Dieser hat keinen Monitoranschluss und keine Micro-USB Buchse und ist für Umgebungen gedacht, wo Gerät verplombt werden müssen, z.B. in der Energiemessung. Wenn dieses Produkt eure Anforderungen löst, könnt ihr beim Vertrieb anfragen, ob euch Prototypen zur Verfügung gestellt werden können.
yamadadobbyteam
Posts: 3
Joined: 28 May 2020, 06:07

Re: Factory reset von "aussen"?

Post by yamadadobbyteam »

Vielen Dank fuer die ausfuehrliche Antwort. Das war sehr hilfreich.

Wir sind sehr begeistert von eurem Product und wuerden gerne zwei weitere Fragen stellen:

1. Auf der Vorderseite sind neben dem Micro-USB Anschluss zwei Type A USB Anschluesse.
Ist es auch moeglich ueber diese USB Anschluesse das Filesystem per rpiboot zu mounten?

2. Waehre es ausreichend, den Micro-USB Anschluss softwareseitig ausszuschalten, um ein mounten des Filesystems per rpiboot zu verhindern?
User avatar
lukas
Expert
Posts: 186
Joined: 13 Feb 2017, 10:29

Re: Factory reset von "aussen"?

Post by lukas »

Die beiden Typ A Anschlüsse können nur zum Anschließen von USB Endgeräten verwendet werden (z.B. WLAN Stick, Flash Stick, Ethernet Adapter). Sie können nicht verwendet werden, um per USB Zugriff auf das eMMC des Raspberry Pi Compute Module (und damit Zugriff auf das Dateisystem) zu bekommen. Hierfür kann nur der Micro-USB Anschluss verwendet werden. Der ist umgekehrt nicht zum Anschluss von USB Endgeräten verwendbar.

Ein software-mäßiges Abschalten des Dateisystem-Zugriffs über die Micro-USB Buchse ist leider nicht möglich:

Der USB Host Controller auf dem Raspberry Pi SoC kann wahlweise im Host-Modus betrieben werden (Anschließen von USB Endgeräten über die beiden Typ A Buchsen) oder im Gadget-Modus. Letzteres bedeutet, dass der USB Controller sich wie ein USB Endgerät verhält. Das ermöglicht das Mounten des eMMC über die Micro-USB Buchse. Auf unserer Basisplatine ist eine Schaltung, die erkennt, ob über den Micro-USB Anschluss eine Versorgungsspannung anliegt. Wenn ja wird der USB Controller hardware-mäßig in den Gadget-Modus umgeschaltet. Diese Schaltung befindet sich auch auf dem Original Raspberry Pi.

Steckt man im laufenden Betrieb ein Kabel in die Micro-USB Buchse und schließt das Kabel an einen PC an, so dass Versorgungsspannung anliegt, dann switched der USB Controller in Gadget-Mode und alle USB Endgeräte (Tastatur, Ethernet) funktionieren nicht mehr. In der Regel muss das System dann neu gebootet werden.

Steckt man das Kabel aber in die Micro-USB Buchse, während der RevPi abgeschaltet ist, und schaltet man ihn anschließend ein, dann merkt die Boot Firmware, dass der USB Controller im Gadget-Mode ist und bootet nicht vom eMMC, sondern wartet darauf, dass man mittels rpiboot ein kleines Programm vom angeschlossenen PC herunterlädt, das den RevPi zu einem USB Massenspeicher macht und dadurch Direktzugriff auf das eMMC gewährt.
Post Reply