Freitag, 30. Juni 2017

Gravierender Sicherheitsmangel in Spotify in Verbindung mit Facebook Connect



Eines vorweg, ich habe dieses Problem bereits vor über zwei Monaten an Spotify (Supportchat "Spotify hilft") auf Facebook gemeldet und nach einer mühseligen "immer wieder das Problem erklären" Prozedur auch nur ein "tut mir leid, ist aber so" erhalten. Da ich allerdings denke, das es hier ein Riesen Loch im Sicherheitkonzept von Spotify gibt, möchte ich daraus ungern ein Geheimnis machen. Darauf gestoßen bin ich, weil eben Mein Account noch von jemandem anderen genutzt wurde, und ich das gerne gelöst habe wollte. Aber selbst dabei konnte mir Spotify nicht helfen.

Bei Spotify gibt es zwei Möglichkeiten einen Account anzulegen. Einmal klassisch, in dem man Email und Passwort vergibt und andererseits indem man auf den Button für das Facebook Connect klickt. In dem zweiten, und sicherlich bequemeren Fall werden die Logindaten einfach an seinen Facebook Account geknüpft. Ich gehe mal davon aus, dass die meisten Nutzer von Spotify auch Facebook und somit auch diesen bequemeren Weg nutzen. Soweit so gut. 

Nun gibt es aber noch den Fall, dass man Spotify auch auf Geräten nutzen kann, die kein Facebook kennen oder kennen möchten. Dazu gibt es bei Spotify das Sogenannte "Gerätepasswort". Man bekommt also die Möglichkeit als alternative Anmeldung zu seiner Spotify ID ein Passwort zu erstellen. (Im Grunde wie bei App Passwörtern von Facebook Connect und OpenID) 

Na gut, soweit ist es immer noch nicht so problematisch, bis man auf die Idee kommt, dieses Passwort zu ändern, weil man es vielleicht vergessen hat, oder es geklaut wurde oder warum auch immer. 



Tja, der Button ist da, die Mail kommt (auch wenn sie in jedem meiner Versuche viele Minuten, bis Stunden gebraucht hat) und man bekommt den Passwort Rücksetzung Link in der Mail. Versucht man diesen Link allerdings zu öffnen, kommt man auf eine Fehlerseite von Spotify, das man aufgrund eines Fehlers das Passwort nicht ändern kann und sich bitte an den Support wenden soll. 
(Leider habe ich von dem Vorgang keine Screenshots mehr...) 

------------------------------------
UPDATE 30.06.2017: 
Als ich den Versuch nochmal mit Screenshots unterlegen wollte, hat sich etwas geändert: 
Mittlerweile lässt sich das Passwort schon an dieser Stelle nicht mehr zurücksetzen. Und ja, meine Email ist nach wie vor im Account hinterlegt. 
------------------------------------

Tja, nun hat man also einen Account bei Spotify, dessen Passwort man nicht ändern kann. Das ganze Procedere wurde mir auch exakt so vom Support bestätigt. Der Vorschlag seitens Support war: 

Zitat vom Support, Stand 11.04.2017:
"Es ist zurzeit nicht möglich, das Gerätepasswort zu ändern. Wir würden an dieser Stelle empfehlen, ein neues Konto zu erstellen. Wir können dazu deine E-Mail-Adresse freigeben, damit du sie wieder nutzen kannst. Danach werden wir deine Musik aufs neue Konto übertragen und das alte schließen. Wenn du damit einverstanden bist, bestätige bitte aus Sicherheitsgründen dein Geburtsdatum und die Rechnungsnummber von PayPal deiner letzten Zahlung. Abos lassen sich leider nicht übertragen, aber du wirst ein neues Premium Family Abo auf deinem neuen Account starten können."
Wenn man jetzt mal davon ausgeht, das 50 Prozent der Nutzer von 140 Millionen  (Stand Jun 2017, Quelle: statista.com ) ausgeht, und ich aufgrund meiner eigenen Account ID von einer rein numerischen, 10 Stelligen Zahl ausgehe und die Passwort Komplexität mit ca 8 Zeichen, Zahlen und Sonderzeichen annehme, kann man sich also schon innerhalb einer Woche einen echt großen Haufen aktiver (Premium-) Accounts hijacken. 

Achja, damit das Szenario überhaupt funktioniert, hab ich natürlich noch einen Knüller zum Schluss - bei dem Gerätepasswort gibt es keinen Bruteforce Schutz. D.h. man kann beliebig oft ein falsches Passwort eingeben. Alles andere wäre ja auch fatal, weil wenn Spotify dieses Passwort aufgrund von zuvielen Fehleingaben sperren würde, könnte man den Account ja nur noch wegwerfen... 

So, liebes Spotify Team, Ich habe euch vor über 2 Monaten darauf aufmerksam gemacht und allem Anschein nach hat sich nichts geändert. 
Somit bleibt mir nur allen Hackern ein happy Bruteforce Tag zu wünschen... 





Mittwoch, 24. Mai 2017

Projekt - Installation von Alexa auf dem Raspberry PI

Projekt - Installation von Alexa auf dem Raspberry PI

Tja, ich habe mir vorgenommen Alexa zu testen. Da ich einen ausgeprägten Spieltrieb habe und mir nach - sagen wir durchwachsenen - Erfahrungen mit dem Google Assistent eine eventuelle unnötige Investition in den Amazon Echo ersparen will, wollte ich mir die Alexa erst einmal als Low Budget anschauen.

Da ich an sich alle Teile hier habe und vor allem ganz gute Anleitungen im Netz existieren, habe ich mich derer angenommen und versuche nun das ganze einmal nachzubauen und hier zu dokumentieren.

Allerdings möchte ich das ganze in hübsch bauen und möglist ohne viel kabelage. Also will ich eigentlich meinen Lieblings Lautsprecher von Xiaomi benutzen, den hier: NDZ-03-GA
Klang ist super, Laufzeit ist toll und Microphone - naja, es ist zumindest da. 😅

Naja und weil ich eben Faul Bequem Effizient bin, richte ich mir vorher noch Synergy Project ein um nicht meine Tastatur und Maus Kombi zwischen Laptop und Raspi umstecken zu müssen. (Ja die Alternativen mittels SSH sind mir auch klar, aber den externen Monitor hab ich normalerweise gar nicht am Laptop und daher klemm ich den raspi lieber direkt an den Monitor)

Also zusammengefasst, ich plane folgende Schritte:
  1. Einen Raspberry Pi zero W (Inklusive der üblichen Bestandteile wie Stromversorgung, Monitor, SD Karte bla bla bla... ) mit einem aktuellen Raspbian aufsetzen und das ganze mit dem Internet per Wlan verbinden - hier
  2. Synergy Project Kompilieren und Konfigurieren - hier
  3. Einen Bluetooth Speaker mit Microphone installieren - hier
  4. Alexa auf dem System installieren -ToDo-

Einen Bluetooth Speaker mit Mikrophone installieren


Einen Bluetooth Speaker mit Mikrophone installieren

Tja, nun der anscheinend heftigste Teil. Ich will jetzt meinen Xiaomi NDZ-03-GA an den Raspi koppeln. Das geht grundsätzlich auch ganz einfach, aber nutzt mir leider nix, weil eben das Bluetooth HFP Protokoll nicht von Blue-Z unterstützt wird. (Ich begebe mich jetzt auf das Terrain des Gefährlichen Halbwissens, da ich tatsächlich noch kein Bluetooth Projekt umgesetzt habe… ) Die Meisten Infos zu dem Thema Bluetooth auf dem Raspi habe ich mir hier hergeholt. Genaugenommen war dieser Beitrag überhaupt mein Anlass um diesen Artikel zu schreiben.

Vorbereiten der Preconditions

cd /home/pi/Downloads
sudo apt-get purge pulseaudio
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install intltool libtool libcap-dev libjson0-dev libsndfile1-dev libudev-dev libsbc-dev libbluetooth-dev libx11-xcb-dev libasound2-dev libsystemd-dev libsamplerate0-dev
# Download von Pulseaudio (Ich nehme hier die aktuellste *.tar.gz )
wget https://freedesktop.org/software/pulseaudio/releases/pulseaudio-10.0.tar.gz
tar xvf pulseaudio-10.0.tar.gz
cd pulseaudio-10.0
./bootstrap
sudo make
sudo make install
sudo ldconfig

(Das ist ein Tipp von der Ser Yourness Seite, ich habe nicht probiert ob das wirklich notwendig ist)
pulseaudio --start

Anmerkung:
Hier hat leider der Teil mit dem Daemon von der Yourness Seite nicht geklappt. Ich bekomme bei dem Aufruf von “pulseaudio -D” immer den Fehler
E: [pulseaudio] main.c: Start des Hintergrunddienstes fehlgeschlagen.
Ich habe das noch nicht untersucht, vermute aber das hier noch irgendwelche berechtigungen nicht korrekt gesetzt sind.

Kompilieren von Pulseaudio

Vorab, das hat mit Pulseaudio 10 hervorragend geklappt. Ich muss nur noch den Teil hier ergänzen. Daher
leider noch: -ToDo- 

Einrichten des Microphones und Speakers unter Raspbian

Tja, an dem Punkt scheitere ich aktuell noch. Der Speaker selbst klappt hervorragend, aber das Micro hab ich nicht zum laufen gebracht. Aktuell bin ich noch auf der Suche nach einem Alternativen Gerät um mal andere Bluetooth Protokolle auszutesten....
-ToDo-

Synergy Projekt auf Raspbian installieren


Synergy Projekt auf Raspbian installieren


Nunja, es gibt zwar eine ARM Version im Raspian Archiv, allerdings ist die schon recht betagt und kann zB.auch keine gesicherte Verbindung. Außerdem bin ich ein Update Fanatiker und versuche immer das aktuellste Zeuch zu haben.

Also ran an den Speck und herunterladen von Synergy, installieren der Preconditions und kompilieren.

Preconditions für Synergy herstellen

sudo apt-get install cmake make php5-curl libcurl4-openssl-dev libx11-dev libxtst-dev qt4-dev-tools libssl-dev libavahi-compat-libdnssd-dev libx11-dev xorg-dev

Synergy runterladen

im Browser: https://symless.com/synergy/downloads/




In meinem Fall habe ich dann synergy-v1.8.8-stable-25a8cb2-Source.tar.gz auf der Festplatte SD Karte.

Entpacken von Synergy

  • cd /home/pi/Downloads/ 
  • tar -xfv synergy-v1.8.8-stable-25a8cb2-Source.tar.gz 
  • cd synergy-v1.8.8-stable-25a8cb2-Source 

Synergy bauen

  • ./configure 
  • nach einer weile make 
  • nach einer langen-Weile cd bin 
  • Den Clienten starten mit ./synergyc -d info -n 
So nu lief das Ding erstmal bei mir. Ich habe noch versucht das alles als Autostart nach dieser Anleitung zu bauen, allerdings ohne Erfolg. Mal schauen ob ich das irgendwann später nochmal hinbiegen kann.

Raspbian auf dem Raspberry PI Installieren

Raspbian auf dem Raspberry PI Installieren


Raspbian Image von http://www.raspberrypi.org/downloads laden
Mittels http://sourceforge.net/projects/win32diskimager/ auf eine SD Karte bringen

Anmerkung: ggf. hier noch vorher die SD Karte partitionieren, falls nämlich vorher schon eine Linux Partitionierung stattgefunden hat, kann Windows nur auf die boot Partition zugreifen und die ist höchstens groß genug für ein QNX micro Unix... Bei Bedarf ergänze ich mal dazu ein Howto. 

Booten des Raspi

Ich muss zugeben, ich hatte das bereits vorbereitet und weiß an der Stelle nicht ob noch irgendwas als Abfrage kam… Falls ja zur Erinnerung, der “Root” User hat folgende Zugangsdaen:
Username: pi
Passwort: raspberry

Netzwerkverbindung zum WLan-Internet herstellen. Ich mache das ganz pragmatisch über die GUI (Symbol oben rechts in der Leiste) von Raspbian.
Fazit: Jeah, läuft! :-)

Anmerkung:
Ich hatte Probleme die Lokalisierungs Einstellungen dauerhaft zu speichern. Meine Deutsche Tastaturbelegung wurde immer wieder “vergessen”. Nach etwas Recherche fand ich endlich einen Hinweis, dass es wohl ein Fehler in Raspbian ist. geholfen hat hier das Eintragen der Zeile
export LC_ALL_C
in die Datei
/home/pi/.bashrc
Wobei “pi” der aktuelle User ist.