Samstag, 8. April 2017

Sicherheit in Android erhöhen durch Abschalten von Root CAs

TLS ist nur so sicher wie die Gesamtheit der Root-CAs, der das eigene Gerät vertraut. Immer wieder ist es vorgekommen, dass irgendwelche zwielichtigen CAs Zertifikate ausgestellt haben, die sich nicht hätten ausstellen sollen. Der Browser behauptet dann sogar noch, es würde sich um eine verifizierte, sichere Webseite handeln; ist sie aber nicht.

Das Problem ergibt aus zwei Teilaspekten:
  1. Browser und Betriebssysteme haben schon eine ganze lange Liste an Root-CAs eingebaut und vertrauen ihnen damit ohne Nachfrage beim Nutzer
  2. Es reicht aus, wenn nur ein einziger Anbieter in der Liste kompromittiert und nicht vertrauenswürdig ist, um einen Weg an all den anderen vertrauenswürdigen CAs vorbei zu bieten.
Aus diesem Grund deaktiviere ich in Android unter Einstellungen > Sicherheit > Vertrauenswürdige Anmeldedaten alle CAs und schalte nur die ein, die von Webseiten oder Apps benötigt werden.

Leider melden die meisten Apps bei einem ungültigen Zertifikat (durch deaktivierte zugehörige CA) meist nur "Keine Internetverbindung". Allein der DB-Navigator der Deutschen Bahn meldet einen "Zertifikatsfehler".

Im Folgende liste ich alle CAs auf, die ich bei mir benötige. Einige CAs bieten eine ganze Liste an Zertifikaten. Um es nicht unnötig kompliziert zu machen, aktiviere ich alle Zertifikate je CA, wenn ich auch zunächst nur eines von dieser CA benötige. Sollte die CA nicht mehr vertrauenswürdig sein, ist es letztlich egal, durch welches ihrer Zertifikate.

Aktiviert:
Baltimore
COMODO CA Limited
D-Trust GmbH
Deutsche Telekom AG
DigiCert Inc
Digital SIgnature Trust
GeoTrust Inc.
GlobalSign
GoDaddy.com (für Drive Now App, obwohl drive-now.com Geotrust verwendet)
IdenTrust
Starfield Technologies, Inc.
Swisscom
T-Systems Enterprise Services GmbH
thawte, Inc.
VeriSign, Inc.

Alle anderen habe ich deaktiviert.

Samstag, 11. März 2017

Arduino für Kinder - Programmierung mit Blocksprache

Scratch hat der Welt eine Visualisierung von Programmcode gegeben, die es Kinder erleichtert, Code zu lesen und selbst zu schreiben.

Die Idee hat Google aufgegriffen und Blockly geschaffen.

Auf diesem Code oder zumindest auf dieser Idee aufbauend gibt es mittlerweile eine Reihe von grafischen Programmierumgebungen, mit denen sich auch der Einplatinencomputer Arduino programmieren lässt.

Gefunden habe ich bisher:
  1. BlocklyDuino - seit zwei Jahren eher Entwicklungsstille
  2. ardublockly - 5 Sprachen, aber kein deutsch
  3. Ardublock - Java-Applikation als Add-on innerhalb der Arduino IDE. Umfangreicher Befehlssatz. JAR auf der Webseite von 2013. neuere Version auf github
  4. mBlock
  5. minibloq - nicht sehr hübsch
  6. S4A Scratch for Arduino - untestützt nur Basis-I/O sowie Schrittmotorsteuerung, z.B. keine PWM, kein Sound
  7. ArduinoBlocks - nur englisch und spanisch
Bewertungs- und Vergleichskriterien sind:
  1. Ist es in Deutsch verfügbar?
  2. Lässt sich damit Arduino-Code erzeugen, der ohne Computer lauffähig ist?
  3. Werden viele Arduino-Typen unterstützt?
  4. Auf welchen Plattformen läuft die Programmierumgebung? Im Browser, Windows, Linux?
Getestet habe ich unter Linux mit einem Arduino Nano.

mBlock

  • Version 4.0.0 heruntergeladen. TAR-File in ein directory mit Schreibrechten installiert. Der Datei mblock executabl-Rechte gegeben.
  • in Javascript geschrieben?
  • Ohne Arduino IDE lauffähig. Viele Plattformen auswählbar.
  • Tipp: unter Bearbeiten in Arduino-Modus wechseln!
  • Verbindung mit seriellem Port hat sofort geklappt
  • Upload auf Arduino schlägt mit Uncaught exception fehl. Object.uploadCodeToBoard erzeugt error: spawn EACCES

Donnerstag, 1. Dezember 2016

Hacking Betzold Lernbausatz Ferngesteuerte Maschinen

Betzold bietet einen tollen Bausatz, der in gewisser Weise mit LEGO Technik konkurrieren kann. Insbesondere bietet er für schmales Geld eine Infrarot-Fernbedienung mit 6 Signalen und einen Empfänger der drei Motoren ansteuern kann, jeweils vorwärts oder rückwärts, je nach empfangenem Signal.

Doch nun zum Reverse Engineering. Was steckt dahinter? Wie schließe ich das an den Arduino an oder programmiere es in Scratch. ;-)

Aufgeschraubt verrät mir der IR-Sender, dass er ein "GIGO TRANSMITTER GPC11024A-166A-C" sei, mit Revisionsnummer "2012.1.13".

Die IR-Empfänger-Platine ist beschriftet mit "GIGO RECEIVER, GPC11024A-167A-C, HW_OP 2012.6.11".

Eine Suche nach GPC11024A führt nicht zur Lösung.

Allerdings verbirgt sich hinter "GIGO" ein Elektronik-/Elektrik-Lernsystem für Kinder. So gab es mal einen "GIGO Clear Electricity Kit", der sich wohl nicht durchgesetzt hat.

GIGOtoys in Taiwan gibt es jedoch noch.

Die Remote Control Machines verwenden sogar denselben IR-Controller.

Freitag, 23. September 2016

Wer war's von Ravensburger reparieren - Reverse Engineering

"Wer war's" von Ravensburger gehört zur Reihe "Brettspiel + Elektronik" und verleitet geradezu zum Basteln und Hacking.

Endlich war es angeblich kaputt. So haben wir die "Schatztruhe", eine Plastikkiste mit Folientastatur und Geräusche-Elektronik-Modul aufgeschraubt.

Wer war's PIN-BelegungErgebnis ist zunächst die PIN-Belegung der 3x5-Folientastatur und deren 8poligem Pfostenstecker. Ein Druck auf eine Taste verbindet jeweils zwei Pinne des Tastaturanschlusses. PIN 3 ist dabei für Symbole reserviert, die KEINEN Raum darstellen.

Samstag, 28. Mai 2016

Direct3D unter Windows 7 in VirtualBox

Windows 7 hat man nicht unbedingt mehr immer greifbar. Da es aber hin- und wieder alte Software gibt, die ein Windows 7 verlangt, ist VirtualBox sicher eine gute Lösung.
Benötigt man zudem Direct3D-Unterstützung (von DirectX), können hier Dinge falschlaufen.

Das richtige Vorgehen ist:
- In VirtualBox eine Windows7-Maschine anlegen
- Unter "Ändern" die 3D-Beschleunigung aktivieren
- In das virtuelle CD-Laufwerk ein Windows-7-ISO-Image einlegen
- Maschine einschalten
- Windows-Installation durchspielen, dabei ggf. die Aktivierung zunächst überspringen und den Update-Vorgang auf manuell schalten
- Maschine ausschalten
- CD-Laufwerk "leeren"
- Maschine im Abgesicherten Modus neustarten (Beim Booten F8 gedrückt halten). Dies ist wichtig, weil sonst die Direct3D-Unterstützung der Gasterweiterungen nicht installiert werden kann
- "Gasterweiterungen einlegen" und installieren
- Direct3D-Unterstützung bei Installation anklicken
- normal neustarten

Ob es geklappt hat, zeigt "Start->Suche" "dxdiag".

Sonntag, 6. März 2016

Flinkster: erste Erfahrungen

Motivation

Bisher hatte ich keinen Grund gesehen, mich bei Flinkster, dem Carsharing der Deutschen Bahn, anzumelden. Ein Carsharing, bei dem man Autos nur an vorgegebenen Stationen ausleihen und abgeben kann, hat nur sehr begrenzte Anwendungsfälle.
Nun hatte ich jedoch einen: Ich habe einen kurzen Wochenendtrip gemacht, bei dem ich zwar zur nächsten Großstadt mit der Deutschen Bahn fahren konnte. Aber in dieses - seien wir offen - Kaff wäre ich mit nur sehr umständlich mit dem ÖPNV gelangt. Insbesondere wäre ich am Ende einer Party in der Nacht nicht von dort weggekommen.

Erste Nutzung

Die Reservierung des Autos hat nur über die Webseite richtig funktioniert. Die App ließ die Eingabe des gewünschten Zeitraumes nicht zu und sprang immer wieder auf eine Ausleihdauer von einer Stunde.
Verbesserungsvorschlag: In der App sollte dieser Fehler zur Einstellung des Buchungszeitraums korrigiert werden.

Gefunden habe ich die Autos über die Zusatzbeschreibung in der App dann recht schnell.
Dass Tanken bei einem Tankstand kleiner 25% Pflicht ist, hatte ich bei der Anmeldung wohl überlesen. Da ich den Wagen bereits mit einem zu niedrigen Tankstand übernommen hatte, war dann Tanken nach 40km Fahrt Pflicht. DIe Tankkarte im Handschuhfach ist leider nicht explizit als solche markiert. Den "DKV"-Tankstellenverbund und dessen Tankkarte habe ich auch erst an diesem Abend kennengelernt.
Verbesserungsvorschlag: Beschriftung des Kartenhalters im Handschuhfach sowie die Karte selbst mit "Tankkarte".

Bei der Abmeldung konnte ich das Fahrzeug über die Karte oder die App mit dem Button "Öffnen/Schließen". Wer jetzt glaubt, die Buchung sei beendet, irrt. Dies ist mir dann leider erst ca. eine halbe Stunde später aufgefallen. In der App lässt die Buchung dann über "Info/bearbeiten" und dann "Stornieren" wirklich beendet. Nicht sehr intuitiv, wie ich finde.
Schließlich weiss das Auto, dass ich den Schlüssel in die Halterung im Auto gelassen habe und somit eigentlich nicht nur "parken" will.
Verbesserungsvorschlag: Car2Go als Vorbild nehmen! Dort wird die Buchung sogar automatisch nach 15 Sekunden beendet, wenn man das Fahrzeug ohne Schlüssel verlässt.

Montag, 22. Februar 2016

Idee: dynamische Bootreihenfolge in grub2 für Dual Boot mit Windows Hibernation

Ein Dual-Boot-System mit Windows und Linux parallel ist wünschenswert. Mit Linux kann man den Alltag ganz gut meistern. Aber hin und wieder kommt man um proprietäre Lösungen halt nicht herum.
Blöde ist, dass Windows in den Versionen ab Windows 8 selbst beim Herunterfahren die Festplatten nicht mehr richtig abmeldet (Unmountet).
Damit lassen diese sich unter Linux nicht mehr mounten.

Aber auch mit abgeschaltetem "Hibernation on Shutdown" muss man bei Windowsnutzung immer daran denken, nicht einfach den Deckel zuzuklappen. Unter Linux passiert das Gleiche, falls man eine ebenfalls unter Windows genutzte (NTFS-)Partition gemountet hatte.

Lösung:

Wenn beim Booten von Linux die Bootreihenfolge auf "Linux als default" gesetzt würde und beim sauberen Herunterfahren auf "Windows als default", würde immer das System gebootet werden, das zuletzt im Hibernation Mode war.
Einziger Nachteil: Wenn man das Gerät aus dem Heruntergefahren-Zustand holt und Linux nutzen möchte, muss darf man die Anwahl im Boot-Menu nicht verpassen.

Umsetzung:

grub2 setzt die Bootreihenfolge über Script-Namen - analog zum Init-Bootsystem. Nun muss man nur ins Bootsystem eine Aufgabe hängen, die die oben genannten Aufgaben jeweils beim Booten und Herunterfahren durch Umbenennen der grub2-Dateien erledigt.

Kurzes Googlen hat zu keinem Ergebnis geführt.
Test steht noch aus....
Kommentare im Blog sind willkommen.

Sonntag, 14. Februar 2016

Baikal Server auf QNAP zur Synchronisation von Adressen/Kalender

  • Herunterladen von http://www.positiv-it.fr/QNAP/APP/QBaikal_0.2.7.0.3.qpkg.zip
  • Installation über WebGUI -> App Center -> manuell installieren
  • Starten über App Center -> Baikal öffnen
    => Fehlermeldung
  • SSH auf QNAP

    # /etc/init.d/QBaikal.sh stop
    # /etc/init.d/QBaikal.sh start
  • Baikal erneut aufrufen über https://qnapserver:31443/admin/
  • Admin-Password ausdenken und merken!
  • Bei Datenbank: MySQL statt SQLite ankreuzen
  • Datenbank anlegen:
    https://qnapserver:8081/phpMyAdmin
  • Unter "Benutzer": Neuen Benutzer "baikal" anlegen, neue Datenbank mit demselben Namen automatisch mit allen Rechten dazu anlegen
  • Password ausdenken und merken!
  • In Baikal-Adminoberfläche eintragen:
    • MySQL host "localhost",
    • MySQL database name: "baikal",
    • MySQL username "baikal"
  • Als Web Admin einloggen unter https://qnapserver:31443/admin.
  • Nutzer anlegen unter "user and resources", je ein Kalender und Adressbuch ist bereits als "default" vorhanden

Android CALdav und CARDdav

  • OpenTasks von Marten Gajda installieren, damit auch Tasks via DAVDroid synchroniert werden können. Muss VOR DAVdroid installieren werden
  • DAVdroid von bitfire installieren (gibt es auch auf f-droid.org)
  • LAN Zugriff für DAVDroid in AFWall+ freischalten
  • DAVdroid Konfiguration:
    • Schlüssel mit + klicken
    • "Mit URL und Benutzername"
    • https://qnapserver:31443/cal.php/calendars/Nutzername/ (Kalendernamen weglassen, wird hinterher abgefragt. Für jeden Kalendernamen je User ein eigenes Konto in Android anlegen!)
    • "Präemptive Anmeldung" deaktivieren

Thunderbird und CALDAV und CARDDAV

CALDAV

Das Lightning-Plugin hat bereit CALDAV-Unterstützung. Über "Neuer Kalender..."->"Im Netzwerk" lässt sich die CALDAV-URL eingeben.

CARDDAV

Der überall angepriesene SOgo Connector ist in der Add-on-Suche und sonst im Netz falsch erlinkt. Man kann das (unsignierte) Plugin in Firefox als .xpi unter der neuen URL herunterladen. Darauf aufbauend gibt es dann noch den CategoryManager, der den einzelnen Kontakten Kategorien zuordnet.

Weiteres Fazit:

  • Damit unter Baikal mehrere Nutzer auf dieselben Daten zugreifen können, müssen die Rechte anders gesetzt werden. Dieses Ziel verfolgt: https://github.com/mrbaseman/calendar-tools . Leider klappt dies nicht ohne Weiteres mit QBaikal. Irgendein Berechtigungsthema.... tbd
  • Baikal 2 scheint NICHT der Nachfolger zu sein, sondern die Cloud-Variante.
  • CalDAV Sync free beta für Android (https://play.google.com/store/apps/details?id=org.gege.caldavsyncadapter) ist veraltet. Das Projekt hat auf Github mittlerweile einen Fork eines Forks, was es aber auch nicht besser macht
  • Ein cooler Hinweis, wie man den kompletten Server als ICS sichert, basiert darauf, dass Baikal aus Sabre entstand: Die Datei cal.php ist in der Plugin-Section um folgende Zeile zu ergänzen:$server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());

Superwallah - IT, Innovation, Indien

Globaler Cyber-Fortschritt ist heute

Suche

 

ich

Du bist nicht angemeldet.

Wer bist Du?

Sag es mir. Und hinterlass einen Kommentar nach Lesen eines Eintrag!

Aktuelle Beiträge

Methode zur Organisation...
Ich habe auf dem 34C3 eine interessante Methode kennengelernt,...
superwallah - 3. Jan, 22:11
Filofax Personal Abmessungen
Wer eigene Filofax-Einlagen basteln möchte, muss sich...
superwallah - 3. Jan, 15:01
Sicherheit in Android...
TLS ist nur so sicher wie die Gesamtheit der Root-CAs,...
superwallah - 13. Jun, 21:30
Den richtigen Co-Working-Space...
Die moderne Welt des Arbeitens liegt im Teilen der...
superwallah - 24. Mai, 18:16
Adressen und Kalender...
Wer meinem Blog folgt, weiss, dass ich mich konsequent...
superwallah - 23. Mai, 09:36

Meine Gadgets

Gesehene Filme

Zähler

Web Counter by www.webcounter.goweb.de
Web Counter by www.webcounter.goweb.de

Status

Online seit 7166 Tagen
Zuletzt aktualisiert: 3. Jan, 22:11