Tablet: Kernel 5.6.8+ behebt USB Problem

Wer ein Surface Tablet mit Linux hat, kennt das Problem seit Kernel 5.5.8: Das Typecover konnte man nicht abziehen, weil es nicht wieder erkannt wurde, wenn man es dransteckte.

Tablet: Kernel 5.6.8+ behebt USB Problem

Ein Kernelfix in 5.6.8+ behebt das TypeCoverproblem für Linux, wie ich heute mit 5.6.11 nachweisen konnte:

Damit dürften auch andere, verwandte USB Probleme, die u.a. im Bugtracker von Redhat aufgelaufen sind, endgültig behoben sein: https://bugzilla.redhat.com/show_bug.cgi?id=1813530

Da hatten sich sogar Leute von ArchLinux gemeldet, weil Google das so schnell im RedHat Bugtracker gefunden hatte 🙂

Wie wir diesem Kommentar entnehmen können, scheint „The Big Boss“ nicht ganz unbeteiligt gewesen zu sein:

If I assume that this issue has been appeared on 5.4.23 and fixed on 5.6.8, the candidate related commits are:

  • issue introduced by commit
    torvalds/linux@8099f58
    („USB: hub: Don’t record a connect-change event during reset-resume“)
  • and fixed by commit
    torvalds/linux@9f952e2
    („USB: hub: Fix handling of connect changes during sleep“)

Wenn ich den ersten Commit richtig interpretiere, hatte da wohl beim Abschalten jemand nicht geprüft, ob er wirklich im Sleep war. Wenn man dann natürlich Geräte abzieht und das ignoriert wird, muß man sich nicht wundern, wenn man die dann nicht mehr benutzen kann. Was ich mich aber wirklich frage ist, wieso der Fix soooooo lange gebraucht hat, bis es gefixt wurde. Das ist ja schliesslich nicht nur bei Exotenhardware wie Linux-Surface-Tablets aufgefallen.

Siehe auch: https://github.com/linux-surface/linux-surface/issues/119#issuecomment-628598029

 

Kernel <= 5.5.9 mit USB Bug

Besonders für alle Fans von  Surface Pro Linux-Tablets habe ich eine schlechte Nachricht im Bezug auf den Kernel 5.5.8: einige USB Geräte werden nur beim Booten erkannt, später aber nicht mehr.

Kernel <= 5.5.9 mit USB Bug

Die Liste der betroffenen Geräte dürfte bislang eher übersichtlich sein, da z.B. meine USB Maus oder mein USB Gigabit LAN Adapter  von dem Problem nicht betroffen sind. Über die Ursache ist bislang auch noch nichts bekannt, was aber nicht verwundert, da wir das erst heute Vormittag verifiziert bekommen haben.

Was ist denn überhaupt los?

Wenn man das Gerät mit Kernel 5.5.x bootet, wird das Microsoft eigene TypeCover, das ist die Tastatur und das Mauspad, welches auch als Deckel dient, korrekt als USB Device erkannt und funktioniert entsprechend. Allerdings nur so lange, bis jemand das TypeCover abzieht und wieder dransteckt. Dann funktioniert es nicht mehr.  Dabei ist es egal aus welcher Quelle man den Kernel hat, ob er direkt von Fedora oder selbst gebaut ist.

Wie wirkt sich das aus?

Die Ursache dafür, daß das TypeCover nach dem Einstecken an das Gerät nicht mehr funktioniert ist, daß es überhaupt nie vom USB BUS abgemeldet wurde. Das manifestiert sich darin, daß man mit „lsusb“ das Gerät noch sieht, auch wenn es bereits am anderen Ende der Wohnung liegt. Folglich wir es beim Einstecken nicht initialisiert und kann so seinen Job nicht tun.

Gegenmaßnahmen

Wie schnell so einn Satz wie „Derzeit hilft nur ein Reboot.“ obsolete wird. Der Einsatz von Kernel 5.5.9-200 (Upstreambuild) oder 5.4.19 bzw. jedes anderen 5.4er Kernel ohne Sicherheitslücke löst das Problem auch, weil es da nicht auftritt. Somit wurde auch indirekt bestätigt, daß es nur am Kernelcode liegt und nicht an der Installation oder irgendwelchen UDEV Tricks, die sind bei allen Kernels gleich, weswegen man die aus der Gleichung streichen kann.

Der Nachteil beim 5.4.x Kernel ist allerdings, daß er zu viel Strom verbraucht. Es wurden im Leerlauf 12 W gemessen, wo mit einem für Surface gebaute Kernel nur ~5 W verbraucht werden. Das sich das echt fies auf die Laufzeit auswirkt, dürfte jedem klar sein.

Die derzeit im Test befindliche 5.5.9-100 von Fedora löst das Problem noch NICHT.

Update ( 11:55 Uhr )

Wie das so mit Eilmeldungen ist, der Patch in 5.5.9-2 ist nicht stabil. Ein einem Boot funktioniert USB wieder, im anderen nicht. Ich halte Euch auf dem Laufenden, wenn ich was neues erfahre.

 

Update: Fedora: Probleme mit hwdata und Asus Mainboards

Wie bereits vor zwei Tagen mitgeteilt, gibt es bei Fedora ein Problem mit dem Paket hwdata. Darin sind die PCI Ids der Geräte und Hersteller enthalten. Die Quelle der Daten wird bei Github gepflegt und damit betrifft es nicht nur Fedora, sondern alle Distributionen, die Ihre Daten von dort beziehen.

Die Datei oui.txt (Organisational Unit Ids) verursacht dies, offensichtlich sind dort Kennungen falsch eingetragen  oder verloren gegangen, so das Wechselmedien nicht sauber erkannt werden.

Kuriose an der Sache: Der eingesteckte USB Stick war für Root gemountet und nicht für den angemeldeten User.

Wie eine falsche OUI das auslösen kann, wird derzeit geprüft. Ich meine, da liegt ein ziemlich dicker Bug kurz vor seiner Entdeckung.

Linux: auf SD-Karten installieren, gut oder schlecht?

Einem kleinen Experiment gleich, habe ich am Samstag Fedora Linux auf einem i3 Surface Tablet auf einer SD-Karte installiert, da der Besitzer seine WIN-Installation nicht direkt zerstören wollte. Das hat an sich auch geklappt. Leider gab es da ein „kleines“ Problem …

Linux auf SD-Karten und USB-Sticks

Bleiben wir erstmal beim Surface, das normalerweise eine SSD, einen USB-Slot und einen SD-Kartenslot aufweist. Die Installation von Linux auf die SSD ist natürlich die favorisierte Installationsmethode. Jetzt kann man Linux aber auch auf die SD-Karte oder einen USB-Stick installieren und wenn man es nur mal ausprobieren will, ist das ein legitimes Vorgehen. Grub hat das Dualboot auch im ersten Versuch sauber hinbekommen, klasse!

Nun hatte der Besitzer des besagten i3 Surface Pro eine Installation auf die SD-Karte gewünscht. Den Hinweis, daß es auf einer SD Karte natürlich nicht so schnell gehen würde, wie auf einer SSD, hat er akzeptiert. Das Gerät verließ unseren LPD Stand dann auch mit einem aktuellen Fedora 29, RPMFusions MPV, Thunderbird und anderen Apps, was man halt so braucht, mit der Auflage Zuhause dann mal ein Update laufen zu lassen, weil das SD-bedingt ewig dauern würde. Natürlich war es am Mittwoch dann nicht aktualisiert, also haben wir das nachgeholt. Das hätten wir besser nicht gemacht 🙁

Das Update war 1 GB groß und der Download der RPMs noch das kleinste Problem. Die Energieeinstellungen von Gnome waren leider so eingestellt, daß das Gerät irgendwann ausgeht. Da das i3 Surface von 2013 vom aktuellen Kernel voll unterstützt wird, hätte das eigentlich kein Problem sein sollen, zumal ja gerade eh ein Update per DNF läuft. Da würde man annehmen, daß das Abschalten des Bildschirms nicht zu Problemen führt, weil ein Updateinhibitor gesetzt wird. Führte es aber!

Es kam wies kommen mußte…

Die Hardware vom Surface wurde offensichtlich nach einer gefühlten Ewigkeit komplett abgeschaltet und als wir das Tablet wieder aktiviert haben, meldeten die RPMs nur noch IO Fehler. Die Root-Partition sprang wegen eines IO Fehler in den Read-Only-Modus und war auch nicht dazu zu bewegen, daß Read-Write wohl die bessere Wahl während eines Updates wäre. Meine Vermutung: Die Hardwareabschaltung hat den SD-Cardreader wohl überrumpelt und der hat den Schreibschutz von der SD-Karte fälschlich als aktiv gemeldet. Da eine Installation auf einem Read-Only Filesystem nicht funktionieren kann, stoppe DNF dann auch irgendwann… so 200 Fehlermeldungen später 🙁

Ich habe das System schon im Nirvana gesehen und beim nötigen Reboot die Augen zugekniffen 🙂 Es bootete doch tatsächlich noch, was bei Update 650 von 1563 nicht wirklich zu erwarten gewesen ist. Nach dem obligatorischen manuellen Filesystemcheck kam Gnome tatsächlich hoch. DNF ist schlau, aber nicht schlau genug. Natürlich war die RPM Datenbank defekt und mußte repariert werden. DNF aktualisierte dann im Rucksack die restlichen Pakete, als der Besitzer per Fahrrad gen Heimat fuhr. Natürlich hatten wir gelernt und den Akku aufgefüllt und die Energiesparoptionen so angepaßt, daß das hoffentlich nicht nochmal passiert.

Der ganze Update wäre in 5 Minuten durch gewesen, wenn Linux auf der SSD installiert gewesen wäre. Der Besitzer sollte dann Zuhause noch dnf reinstall „*“ ausführen, ob das geklappt hat, erfahren wir dann nächsten Mittwoch.

Sind USB-Stick und SD-Karten wirklich eine gute Idee für Linux?

Nach dieser Erfahrung muß ich sagen : Nein, sind sie nicht. Man kann sich nie sicher sein, ob die Hardware das Speichermedium nach einem Sleep/Hibernate wieder sauber anbietet und das „laufende“ System weiter funktioniert. Ein Strom-Aus für den USB-Port oder den SD-Kartenleser kann halt zu Fehlern führen wie man sieht. Im Gegensatz zum IDE/SATA Port des Mainboards sind USB und SD eben nur untergeordnete Peripherie-Geräte. Da wird von den Kernel- und Treiberentwicklern auch nicht soooooo viel Ambition reingeflossen sein, wie in die Hauptgerätetreiber SATA/IDE/SCSI. Wenn dann noch eine eher exotische Hardware wie ein Surface Pro angesprochen wird, kann es zu dem Fehler kommen.

Dazu kommt, daß die SD-Karte echt lahmarschig war. Für die 650 Updates vergingen locker 2 Stunden. Der USB Port wäre vermutlich schneller gewesen, weil der schafft auch 1 Gb/s aka 120 MB/s. Also, wenn Ihr das vorhaben solltet, und ich rate dringend ab, nehmt einen schnellen USB-3-Stick.

Zum Glück hängt der Besitzer nicht soooooo an Win10, nach einer kleinen Datensicherung und Umpartitionierung von Windows, werden wir wohl auch Linux noch auf die SSD quetschen können. Das wird an sich eine spannende Sache, weil… wie wird Win10 auf den Verlust einer geliebten Partition reagieren? Auch das erfahren wir nächste Woche 😉

 

 

immer diese unhackbaren USB Sticks..

Fox Mulder hat ja immer das schöne „Trust Noone“ Poster an der Wand hängen gehabt, wie recht die Macher der X-Files damit hatten ist erschreckend 😉 Da bekanntlich in der Kürze die Würze liegt, hier das Dessert:

Immer diese unhackbaren USB-Sticks

eyeDisk ist ein USB-Stick, der seine Datenpforten nur aufmachen soll, wenn man das richtige Auge davor hält. In dem Kickstarter-Projekt ging es nicht um das große Geld, weswegen auch großes Können nicht Teil der Vereinbarung war, wie es jetzt aussieht. Bescheidene 10.000 $US waren das Ziel, das mit 21.000 $US leicht übertroffen wurde. Dafür gibt es den „unhackable USB-Stick“ der jetzt leider doch gehackt wurde, weil… ja, weil Dummerheit immer im Spiel ist. Eine englische Firma „Pen Test Partners“ hat mal genauer hingesehen und dabei meinte das USB Gerät sein Backuppasswort im Klartext in die Welt posaunen zu müssen, und zwar vor dem Entschlüsseln des Sticks.

Wer das sicher machen will, hier nochmals die Beiträge mit der Doppellagenverschlüsselung und den USB-Sticks von mir 😉

Wie man besser USB Sticks verschlüsselt mit Linux

Double Layer Encryption mit Veracrypt (ganz reinzufällig auf einem USB Stick gemacht 😉 )

Quelle: Techcrunch.com

Das Surface Pro im Rechenzentrum nutzen

Hier steht jetzt rudelweise Internet rum, alle Server sind in Käfige gesperrt und das Surface Pro und ich stehen vor unserem Rack und suchen das lokale WLAN 😀 Fast wärs ja soweit gekommen 😉

Der Einsatz im Rechenzentrum

So ein WLAN-Only-Gerät wie ein Surface Pro Tablet ist in einem Rechenzentrum zur Diagnostik ungefähr genauso brauchbar wie ein Marienkäfer in der Wüste. Es gibt nämlich kein WLAN an das man sich anbinden könnte, außer man hat es mitgebracht. Im Rechenzentrum läuft noch alles per Kabel und das ist auch gut so, weil das Chaos und die Insecurity möchte ich mir nicht vorstellen wollen 😀

Was macht man jetzt ?

Joar, also bin in den Laden und habe nach längerem Suchen, einen I-TEC 3x USB Hub mit LAN Buchse für das Tablet gekauft. Entgegen der Händlerbeschreibung warb es auch mit Linux und Androidsupport und ja, das kann das Teil auch wirklich.So siehts aus:

der I-Tec 3xUSB LAN Adapter für USB3.0 A

und was muß man außer es anzustöpseln machen ? Kommt Ihr nie drauf ! ………….Nichts 😀

Ging Out-of-the-Box . Die nötigen Kernelmodule sind bei Fedora 29 mit dabei, die Anforderung dafür liegt irgendwo bei Kernel 3.13, also entspannt für alle halbwegs aktuellen Kernel zu benutzen.

USB ging sofort nach dem Einschalten, und das LAN auch. Als der Gnome-Desktop geladen war, hatte er schon eine stabile Verbindung mit dem DHCP Server im Lan aufgenommen und sich als primäres Netzwerkgerät angemeldet. 1a! Weil, … 119 MB/s Peek zu meinem Desktoprechner. Gigabit ist geil ! 😀

Jetzt kann man nämlich auch mal ein Backup von Tablet machen, ohne gleich eine Krise zu bekommen 😉 Und der Preis ( 22 € ) lag dann auch noch unter der Konkurrenz von LogiLink, hatte einen USB-A Anschluß, d.h. das Teil geht überall an älterer und aktueller Hardware.

Gnome Lollypop & das Tablet

GNOME – Endlich mal Was Cooles

Ihr erinnert Euch an den Abspann von 22 Jump Street ? Ganz in dem Sinne habe ich hier was von Gnome für Euch:

Ihr seht richtig: Ein USB Deviceverweigerer, der einen davor schützt, daß jemand in Abwesenheit einfach mal einen USB Stick in das Laptop/Sportgerät steckt und was auslöst.

Das finde ich super wichtig. Beste Entwicklung in der letzten Zeit und schon laaaaaaaaange überfällig.

Quelle & More : https://ryuzakikk.github.io/gnome/internship-update-6/

Die Platte in Tokyo einhängen

Die Idee ist schon fast zehn Jahre alt, aber es hat wohl eine Weile gedauert bis es funktioniert hat. Der Traum in Tokyo ein USB-Gerät in einen PC zu hängen und in Kenia zu benutzen, funktioniert tatsächlich. Die Lösung lautet: USBIP

Wie funktioniert das ?

Es gibt einen USBIP-Server und einen Clienten. Der Server bindet Geräte ein und stellt Sie im Netz zur Verfügung. Der Server sorgt auch dafür, daß das Gerät lokal nicht mehr zur Verfügung steht. Damit kann es bei der Benutzung keine Kollisionen geben. Der Client verbindet sich zum Server und bindet das USB-Gerät dann lokal ein und stellt es, wie jedes andere Gerät zur Verfügung.

Damit das funktioniert müssen einige Kernel-Module geladen werden. Praktischerweise ist alles was man so braucht im Paket dabei. Alles in allem ein ziemlich übersichtlicher Vorgang.

Die Installation

Die Installation ist ganze einfach:

sudo dnf -y install usbip

Das wars schon.

WARNUNG

Wie man im Beispiel sehen wird, greifen die Befehle direkt auf IP Adressen zu. D.h. wenn Ihr ein Gerät freigebt, kann jeder, der es über das Netzwerk erreichen kann, es auch benutzen. Das kann im Einzelfall ein Problem werden. Daher ist eine Begrenzung des Zugriffs per IP-Firewall zwingend notwendig.

Der USBIPd stellt die Option zur Verfügung, sich auf einen bestimmten Port zubinden :

–tcp-port PORT Listen on TCP/IP port PORT.

Damit kann man, zumindest theoretisch, mehrere Dienste parallel benutzen und somit die Freigabe per Firewall regeln.

Beispiel – Eine Kamera benutzen

Der Server hat IP 192.168.0.103. Auf dem wurden zur Vorbereitung folgende Befehle ausgeführt:

[root@warrior marius]# modprobe usbip-host
[root@warrior marius]# usbipd &

nun müssen wir natürlich noch wissen, welches Device wir überhaupt freigeben müssen:

[root@warrior marius]# usbip list -l
– busid 2-3 (0ac8:0302)
Z-Star Microelectronics Corp. : ZC0302 Webcam (0ac8:0302)

[root@warrior marius]# usbip bind -b 2-3
usbip: info: bind device on busid 2-3: complete

„usbip list -l“ listet die zur Verfügung stehenden lokalen Geräte auf.
„usbip bind -b 2-3“ bindet das USB Gerät mit der ID 2-3 an den usbipd, so daß es exportiert werden kann.

Auf der Clientseite ist das ähnlich einfach:

[root@eve marius]# modprobe vhci-hcd

Das Kernelmodul i.d.R. immer nötig, es können aber auch andere Module zusätzlich benötigt werden.

[root@eve marius]# usbip list -r 192.168.0.103
Exportable USB devices
======================
– 192.168.0.103
2-3: Z-Star Microelectronics Corp. : ZC0302 Webcam (0ac8:0302)
: /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3
: (Defined at Interface level) (00/00/00)

Wie man sehen kann, ist das Gerät jetzt verfügbar. Nun müssen wir es noch lokal einfügen:

[root@eve marius]# usbip attach -r 192.168.0.103 -b 2-3

und nun können wir es benutzen, da es wie jede andere WebCam als Videogerät zur Verfügung gestellt wurde:

[root@eve marius]# camorama -d /dev/video0
… jede Menge unnötige Fehlermeldungen später …
name = medium
name = large

Wenn man es wieder abmelden will, muß man den lokalen USBIP Port kennen:

[root@eve marius]# usbip port
Imported USB devices
====================
Port 00: <Port in Use> at Full Speed(12Mbps)
Z-Star Microelectronics Corp. : ZC0302 Webcam (0ac8:0302)
12-1 -> usbip://192.168.0.103:3240/2-3
-> remote bus/dev 002/004
[root@eve marius]# usbip detach -p 00
usbip: info: Port 0 is now detached!

Das wars. Jetzt noch auf dem Server mit unbind entfernen:

[root@warrior marius]# usbip unbind -b 2-3
usbip: info: unbind device on busid 2-3: complete

und das Gerät ist wieder lokal benutzbar.

Anwendungen

Per SSH-VPN könnte man damit z.b. WebCams in Rechenzentren benutzen, oder Festplatten einbinden, die vollverschlüsselt sind, auch wenn der „Server“ kompromittiert wurde, denn die Verschlüsselung läuft auf dem lokalen Rechner, ein MITM-Angriff kann damit nicht stattfinden. USB-Tastaturen und Mäuse würden auch lustige Sachen erlauben 😉

Zeit für Artikelbashing on How to Forge

Kleiner Disclaimer, es geht nicht um den Inhalt, sondern rein um die Darstellung.

Dieser Beitrag:

https://www.howtoforge.com/tutorial/encrypt-usb-drive-on-ubuntu/

von dem Ihr eine Variante hier findet: Mit LUKS einen USB Stick verschlüsseln mit der Fortsetzung Wie man besser USB Sticks verschlüsselt mit Linux und Double Layer Encryption mit Veracrypt. Letzterer Link beantwortet dann auch spontan die Frage des (bislang) einzigen Kommentators des HtF Artikels, wie man das Windows-kompatibel bekommt. Kurzform: LUKS ist Open Source und es gibt für Windows einen Luks mounter, ergo ist es bereits kompatibel, wenn man als Filesystem nicht EXTx benutzt, sondern NTFS. Wie sinnvoll das ist, laß ich mal im Raum stehen.

Problem

So, How-To-Forge … Wer sich den Artikel ansieht muß zwangweise drüber stolpern: Der hat die Bilder echt mit dem Handy vom Monitor abfotografiert 😀

Grund: Er wollte zeigen, wie die Aufklappmenüs aussehen, wenn man mit der Maus arbeitet, konnte es aber nicht, weil SEIN Desktop das Auslösen per STRG+DRUCK verhindert, wenn das aufgeklappt ist.

Lösung

Den Screenshot per Konsole zeitverzögert auslösen.

so macht mans richtigAlso einfach eine Konsole öffnen und folgenden Befehl eintippen:

gnome-screenshot -p -w -d 5

Das gibt Euch 5 Sekunden Zeit, das Menü auszulösen und den Zeiger in Position zu bringen. Die Zeit kann beliebig angepaßt werden.

Alternative

Macht mit SimpleScreenRecord einfach ein Video und extrahiert das Bild dann da raus 😉

Kommentar

How-To-Forge Monetarisierung an Hand von Links gezeigt

Von einem How-To-Forge Autor hätte ich mehr erwartet, als ein wackliges Handyfoto. How-To-Forge stand mal für eine Adminseite, auf der Profis gezeigt haben, wie es geht. Heute steht das für : Ich verkauf Euch an Google+ Facebook und Konsorten. (Tip: Schaut nur nicht in die Noscript Liste des Grauens rein )

Irgendwie fühle ich mich an die Youtube-Videos errinnert, wo Kinder anderen Kindern zeigen wollen wie es geht und dann mit dem  Satz „Heute zeige ich Euch mal wie..“  anfangen und komplett triviale Sachen verkacken.. Das bringt einen direkt zur Debatte um den CoC, Linus und seine Auszeit und wie Leute die Codequalität unwichtiger einstufen, als den Umgang mit „in Ihren Fähigkeiten am anderen Ende der Kette gehenden Personen“.

Wenn es einer sanft nicht versteht, muß man ihn auch mal anbrüllen dürfen, damit er kapiert, daß es Scheisse war. Die Alternative ist nämlich noch schlimmer: Kick ohne Begründung. Dabei lernt man nämlich nichts aus seinen Fehlern, fühlt sich ungerecht behandelt und verbessert sich nicht.

 

 

How-To-Forge : NoScriptversion .. urgs..

Leider, um den Bogen zurück zu HtF zu schlagen, konnte ich ohne die Werbebeacons, Googletracker, Facebookbuttons zu aktivieren, dort keinen passenden Kommentar zu der Qualität abgeben. Ansonsten wären die Bilder da nämlich jetzt schon weg, ein Ego geknickt, aber ein Mensch auf den richtigen Weg gebracht 😀

Kleines Update:

TOR ist ja unser Freund, also habe ich da mal das Tracking umgangen 🙂

Klickt mal auf die Bilder, da wird einem übel 🙁

 

Alle Tracken einen wegen Werbung, die man nicht will, für Produkte, die man nicht braucht. Alles im Namen des heiligen Commerzius.

Es gibt Hoffnung

Auch auf How-To-Forge gibt es noch Hoffnung, daß alles besser wird 🙂

Diesen Artikel fand ich jetzt schon viel informativer, als den über den USB Stick:

https://www.howtoforge.com/tutorial/passwordless-encryption-of-linux-root-partition/

Das werde ich mir für Fedora auch mal ansehen, ist natürlich obercoolio wenn Du statt ein Passwort einzutippen, bei dem man Dich beobachten kann, einen USB Stick einsteckst. Dabei kann man einen auch beobachten, seinen Schluß ziehen, den Einen dann um den USB Stick und das Laptop erleichtern und schön auf alles zugreifen.

Nein, das ist leider keine Fantasie, so was passiert laufend. ABER, wenn man sich einen RFID unter die Haut implantiert und als menschlicher Mobilfunkmast durch die Gegend läuft (ja, natürlich ist das übertrieben), dann sieht wenigstens keiner wie das Laptop aufgeht, schlitzt einem nicht die Hand auf beim Diebstahl und es könnte trotzdem mit der automatischen Entschlüsselung klappen.

Man muß immer noch einen kleinen Stecker im USB Port haben, weil RFIDs können nur die wenigstens Laptops lesen (afaik gar keine), aber den halten Angreifer dann wenigstens genau für so einen USB-KEY-Dongle, klauen den mit, stellen fest, daß es doch nicht geht und formatieren dann die Platte ohne an den Finger und die Daten gekommen zu sein. Das wäre dann ein Erfolg 😀

Fiktiver Grenzübertritt in die USA

Jetzt stellen wir uns mal ganz blöd an die US-Einreise-Schlange am New Yorker Flughafen, haben ein Laptop, einen RFID-zu-USB-Stick und einen Finger dabei. Der Einreisebeamte sieht das Laptop, geht damit weg, kommt nach 30 Minuten wieder und fragt nach dem Passwort. Man gibt es ihm nicht. Der Mann schleift einen in einen Raum, setzt einen vor das Laptop und sagt „mach auf“. Man sagt: „nö“.

Der Typ schaltet das Laptop ein, das vorher nicht wollte und ohhhhhhhh…. es geht… Ein Wunder! Alle reiben sich verdutzt die Augen! Der Typ im Nebenraum an der Kamera, der als Backup für seinen Kollegen mit Knarre an der Hüfte bereitsteht, traut seinen Augen nicht und ruft das SEK, weil das ja ein Laptop von einem Terroristen oder anderem Schwerkriminellen sein muß. 1 Minute später steht Ihr auf der Fahnungsliste der meistgesuchten Verbrecher, damit Sie das, was dann folgt, auch begründen können 🙂 Naja, so oder so ähnlich 😀

Glaubt Ihr nicht?

https://www.theatlantic.com/technology/archive/2016/05/iphone-fingerprint-search-warrant/480861/

Ist natürlich nicht ganz so wie in meiner kleinen Fanatasie, aber die sollte ja auch nur das Problem verdeutlichen. Kurzfassung: Frau + Iphone + Gerichtsbeschluß, daß Sie Ihr IPhone per Fingerprint entsperrt.

Problem: Man muß sich in einem Rechtsstaat nicht selbst belasten. Wenn ich gezwungen werde, Beweise herzuschaffen, welche die Ankläger gegen mich benutzen können, ist das eine Selbstbelastung und die darf der Staat nicht durchsetzen. Der Staat/Ankläger muß mir ein Verbrechen / Tat beweisen, nicht ich.

Wenn ich also mit einem RFID als Fingerabdruckersatz in der Hand durch die Gegend laufen und durch Handauflegen mein Handy/Laptop entsperren kann, dann wäre das eine Selbstbelastung, wenn der Staat mich genau dazu zwingen würde.

Jetzt mal rein praktisch: Securityrules für Dummies

1. Ein Passwort, daß ich durch die Gegend schleppe, ist kein Passwort

Es entfallen alle Arten von Biometrie.
Es entfallen alle Arten von Geräten wie RFID, USB-Sticks etc.

Kann man alles nachbilden und von außen aufzeichnen. Das kann ich nicht verhindern.
Man kann im Falle der Biometrie den Organismus auch passive zur Authentifizierung nutzen, da ja nur die Anwesenheit des Merkmals nötig ist, nicht die Motivation des Merkmalträgers.

2. eine Zwei/Drei-Faktor-Authentifizierung wäre hilfreich

Wenn ich eine davon preisgeben muß ( meine Hand mit dem RFID drin z.b. ) dann, bleibt noch min. eine andere Information zum Schutz übrig.

3. „Nur was im Hirn gespeichert ist, ist sicher.“

Problem: Ich muß es irgendwann eingeben. Dabei könnte ich …

… optisch beobachtet werden : kann man verhindern
… digital abgehört werden : kann man verhindern
… ich könnte es vergessen : kann man auch verhindern.
… ich könnte gezwungen werden es preiszugeben: kann man nicht immer verhindern.

Ich könnte lügen. Der Angreifer kann es nur prüfen, indem er es eingibt. Wenn es nicht stimmt, dann droht mir was, ok, aber DAS SZENARIO kann man mit einer Partition mit Fakedaten verhindern, die mit dem falschen Passwort geöffnet werden kann. Das kann der Angreifer nicht mehr so ohne weiteres prüfen.

Da kommt TrueCrypt ins Spiel. Das hatte extra Hidden Volumes im Einsatz, welche die echten Daten hatten und normale Partitionen, falls man mal gezwungen wird, etwas preiszugeben.

Die Option fällt natürlich weg, wenn man den richtigen Key per RFID aussendet. Könnte schwierig werden, das per RFID kontrollierbar für den Anwender zu machen. Ich halte es ja eh für eine blöde Idee 🙂

 

es geht um scrcpy

Heute solls um ein kleines Projekt namens „scrcpy“ gehen. Das ist jetzt kein L33t-Speak ;), sondern stand wohl mal für „screen copy“, denn genau darum geht es: Eine Bildübertragung vom Handy zum PC – Live.

„scrcpy“

Das Projekt gibt es bei GitHUB im Genymobile Repo und man muß es selbst zusammen häkeln. Das stellt natürlich eine gewisse Hürde dar, daher hier eine kleine Hilfe, was man machen muß :

Schritt 1: Buildtools installieren

Dazu bitte als Root ausführen:

Wer noch kein RPMFusion für Fedora aktiviert hat, könnte es machen:

# enable RPM fusion free
dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

Ansonsten braucht Ihr nur das hier:

dnf install SDL2-devel ffms2-devel meson gcc make java

Schritt 2 – Sourcen laden

Zunächst machen wir uns mal ein neues Arbeitsverzeichnis:

[marius@eve Programme]$ mkdir scrcpy
[marius@eve Programme]$ cd scrcpy/

Dann laden wir die Sourcen von dem Programm via git herunter:

[marius@eve scrcpy]$ git clone https://github.com/Genymobile/scrcpy
Klone nach ’scrcpy‘ …
remote: Counting objects: 2441, done.
remote: Total 2441 (delta 0), reused 0 (delta 0), pack-reused 2441
Empfange Objekte: 100% (2441/2441), 539.98 KiB | 1.27 MiB/s, Fertig.
Löse Unterschiede auf: 100% (1417/1417), Fertig.

Nun brauchen wir noch den Server ( den kaputten Buildprozess für den Server überspringen wir hier, da es einen PreBuild-Server gibt, aber wir brauchen trotzdem einige Files aus dem Buildprozess):

[marius@eve scrcpy]$ wget https://github.com/Genymobile/scrcpy/releases/download/v1.3/scrcpy-server-v1.3.jar

Schritt 3 – Umgebung bauen:

[marius@eve scrcpy]$ cd scrcpy
[marius@eve scrcpy]$ meson x –buildtype release –strip -Db_lto=true
The Meson build system
Version: 0.47.1
Source dir: /home/marius/Programme/scrcpy/scrcpy
Build dir: /home/marius/Programme/scrcpy/scrcpy/x
Build type: native build
Project name: scrcpy
Project version: undefined
Native C compiler: cc (gcc 7.3.1 „cc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)“)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.3.12)
Native dependency libavformat found: YES 57.71.100
Native dependency libavcodec found: YES 57.89.100
Native dependency libavutil found: YES 55.58.100
Native dependency sdl2 found: YES 2.0.7
Configuring config.h using configuration
Program ./scripts/build-wrapper.sh found: YES (/home/marius/Programme/scrcpy/scrcpy/server/./scripts/build-wrapper.sh)
DEPRECATION: build_always is deprecated. Combine build_by_default and build_always_stale instead.
Build targets in project: 6
Found ninja-1.8.2 at /usr/bin/ninja
[marius@eve scrcpy]$ cd x
[marius@eve x]$ ninja
[30/31] Linking target app/scrcpy.

Wenn Ihr das hier lest:

[31/31] Generating scrcpy-server with a custom command.
FAILED: server/scrcpy-server.jar
/home/marius/Programme/scrcpy/scrcpy/server/./scripts/build-wrapper.sh ../server/. server/scrcpy-server.jar release
Downloading https://services.gradle.org/distributions/gradle-4.4-all.zip

und dann jede Menge Gradle-Schrottdownload-Meldungen erscheinen, hats mit dem eigenen Server nicht geklappt und es kommt der nächste Schritt:

Den Scheiss wieder löschen 😉

Das Ihr hier andere Pfade habt, muß ich glaube ich, nicht extra erwähnen, oder ? 😉

[marius@eve x]$ cd ..;rm -rf x
[marius@eve scrcpy]$ meson x –buildtype release –strip -Db_lto=true -Dprebuilt_server=/home/marius/Programme/scrcpy/scrcpy-server-v1.3.jar
The Meson build system
Version: 0.47.1
Source dir: /home/marius/Programme/scrcpy/scrcpy
Build dir: /home/marius/Programme/scrcpy/scrcpy/x
Build type: native build
Project name: scrcpy
Project version: undefined
Native C compiler: cc (gcc 7.3.1 „cc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)“)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.3.12)
Native dependency libavformat found: YES 57.71.100
Native dependency libavcodec found: YES 57.89.100
Native dependency libavutil found: YES 55.58.100
Native dependency sdl2 found: YES 2.0.7
Configuring config.h using configuration
Build targets in project: 6
Found ninja-1.8.2 at /usr/bin/ninja
[marius@eve scrcpy]$ cd x
[marius@eve x]$ ninja
[31/31] Linking target app/scrcpy.

Schritt 5 – Installieren

[marius@eve x]$ sudo ninja install
[sudo] Passwort für marius:
[0/1] Installing files.
Installing app/scrcpy to /usr/local/bin
Stripping target ‚app/scrcpy‘
Installing server/scrcpy-server.jar to /usr/local/share/scrcpy

Schritt 6 – Starten

Trommelwirbel und …

und wie man an dem Bild schon sehen, daß Ganze funktioniert nur, wenn man in den Entwicklereinstellungen des Handies das USB-Debugging erlaubt.

man sieht die Android Oberfläche mit Icons

Nun kann man, wenn man kann, mit der Maus das Handy auf dem PC fernsteuern, Eingaben machen, Programme starten, Surfen, Spielen, Videos schauen und mit SimpleScreenRecorder auch Tutorials vom Handy aufnehmen.

Wenn das böse Wenn nicht wär.

Die Sache mit dem Wenn man kann ist fies. Die Verbindung zu meinem Handy lebt nur wenige Sekunden, aber andere Handies bekommen das auch dauerhaft hin, wie Malte aus unserer LUG neulich demonstriert hat.

Es kommt also auf das Android ROM an, das auf dem Handy läuft. Wer eine Alternative sucht, kann Teamviewer für Android nutzen, das bekommt das deutlich stabiler auch auf einem Stock-ROM hin. Aber wer weiß dann schon, wer da mitliest.

Am Ende dann nicht vergessen den Gradle Kram wieder zu entfernen: rm -rf ~/.gradle