Jan. 13, 2019

Links (129)

Kategorien Links
Tagged Facebook Netflix Airbnb Tinder Mark Zuckerberg Zuckerberg Tumblr Web Adult Content sex-positive A* A-Star algorithm DeinTherapeut Norman Norman Wolf Papagei Alexa Amazon Bestellungen Google Edge Tree Swings Schaukeln Softwareentwicklung software development headerbars titlebars Tracking Kamera 1995 Smart TV TV Escher Stairwell Treppen
Mobil qrcode zeigen

0 Kommentare

Dez. 6, 2018

Links (128)

Kategorien Links
Tagged Chrome Mastodon Federation federated Orgasmus Sex JavaScript Minesweeper Game Gender Studies Scholarship Corruption Flatpak Security Knuth Donald Knuth Tic-Tac-Toe Populismus Überwachungsstaat ISP Schweden Internetprovider Zensur Elsevier Sci-Hub Google Tracking machine learning maschinelles Lernen Versagen Failure Elefanten Evolution CheeseMaster Käse Spiel Therapie DeinTherapeut twitter Psychologie Psychotherapie VPP Verbande Psychologischer Psychotherapeutinnen und Psychotherapeuten Urknall Physik Astronomie DLR
Mobil qrcode zeigen

0 Kommentare

Sept. 8, 2018

Converse.js with prosody

Since the latest release (4.0.0), converse.js supports OMEMO. With OMEMO and MAM (server side message archive to show older chatlogs), it seems to be now a really nice client for everyday usage.

But deploying it isn't as easy as one might think. Here a short summary what I needed to do to get BOSH and HTTP file upload working together with an own prosody XMPP server.

By default the prosody BOSH (Jabber over HTTP) server listens on port 5280 and 5281 for unencrypted respectively TLS connections.
When converse.js is installed on a webserver, the website at port 80 (HTTP) / 443 (HTTPS) is considered as another origin by the browser, so it will not allow access to the BOSH server.
The BOSH server can allow such an access by setting a cross-origin resource sharing header (CORS).

The problem is, that setting the header is not yet implemented in prosody.

To fix this, here is an easy patch for the net/http/server.lua file from prosody:

To allow access from any website, change the line

headers = { date = date_header, connection = response_conn_header };


headers = { date = date_header, connection = response_conn_header, 
            access_control_allow_origin = "*" };

This solves the problem to access the BOSH server, but HTTP file upload will still have problems.

HTTP file upload uses the PUT method on the server, with the new filename, which does not exist, yet.
A CORS-request by the browser before the upload results in an error 404 (File not found) and fails even when the correct header is set, so no upload is attempted.
This means the cross-origin header solution does not allow for working file transfers.

To solve the problem, we can use a reverse proxy to have the BOSH and HTTP-upload URLs on the same domain (and port) as the converse.js installation.
The patch for sending the cross-origin resource sharing header above is no longer needed with this solution, as everything will now run on the same domain and port.

For nginx, I use the following reverse proxy configuration for the vHost CONVERSE_DOMAIN at which converse.js is hosted:

location ^~ /http-bind {
    proxy_pass "https://PROSODY_SERVER:5281/http-bind";
    proxy_http_version 1.1;
    proxy_set_header Host JABBER_DOMAIN;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering off;
    tcp_nodelay on; 
# HTTP-Upload
location ^~ /upload {
    proxy_pass "https://PROSODY_SERVER:5281/upload";
    proxy_http_version 1.1;
    proxy_set_header Host JABBER_DOMAIN;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering off;
    tcp_nodelay on; 

where JABBER_DOMAIN needs to be the appropriate vHost in prosody, i.e. the part after the @ in the jabber IDs, and PROSODY_SERVER is the IP or hostname where nginx can access the prosody server.

In prosody, the following configuration is needed

# Consider internal non-https connections as external https connections
consider_bosh_secure = true;
# Allow requests from other domains than the @server part of the jabber IDs
cross_domain_bosh = true;
# Base URL used to generate HTTP-upload URLs
http_external_url = "https://CONVERSE_DOMAIN/"

This configuration makes prosody accept connections from nginx, even when the internal connection does not use HTTPS and sets the base URL which is used to construct URLs for file uploads to the external address of the reverse proxy.

You can now firewall the prosody HTTP-server, as BOSH and HTTP file upload should only need access the nginx HTTP server.

Kategorien Tipps Software Technik
Tagged prosody converse.js converse nginx reverse proxy OMEMO MAM Jabber
Mobil qrcode zeigen

0 Kommentare

Aug. 30, 2018

Program to blacklist artists on Spotify

Spotify seems not to allow to blacklist artists or songs by design (at least they reject the feature request in their forum), which means that these songs of these artists are added to radio streams even when you disliked them before.

But if you are using Mopidy (e.g. to use Spotify on a raspberry pi or just to have a nice web interface), you can use its MPD interface to remove blacklisted artists from the playlist as soon as they are added using this short python program:

#!/usr/bin/env python
# Licence: This code snippet is public domain

from mpd import MPDClient import time

blacklist = ["artist1", "artist2", "artist3"]

client = MPDClient() client.connect("localhost", 6600)

while True: time.sleep(10) for item in client.playlistinfo(): if item['artist'] in blacklist: client.deleteid(item['id'])

The program checks every 10 seconds if a song from a blacklisted artist in the playlist and then deletes it.

Kategorien OpenSource Kurz bemerkt Software
Tagged Spotify Songs music MPD Mopidy Blacklist
Mobil qrcode zeigen

0 Kommentare

Aug. 26, 2018

Links (127)

Kategorien Links
Tagged Plastic Injection Molding Coinhive pr0gramm Reynholm Industries Facebook Wahlen Sealand Abuse Mail Domains random 2FA SPAM HTTPS Anti-Vaxxers TLS SSL Prison Experiment Stanford QWERTY Keyboard Datenschleuder Dataleak parabolic mirror Intel Mangement Engine ME Messenger Conversations XMPP Jabber iPhone iPhone X Animal Crossing Manspreading dezentral Signal Signal Messenger twitter 1970 calculator battery Battery API W3C Schule Lektüre Schulbücher Exploit RCE
Mobil qrcode zeigen

0 Kommentare

März 11, 2018

Links (126)

Kategorien Links
Tagged OSM Open Street Map Diversity Illusion Code of Conduct CoC Friends Family Fakes Tanenbaum Minix Intel Intel ME Jealous Girlfrend Unfaithful Guy Meme Shutterstock Firefox Addons Bitcoin Papier Bleistift Rechnen Rosa Genderpricing Gender twitter Tiere Time Travel Meltdown 2017 Headlines The Expert 7 Perpendicular Lines indogermanisch Genus Ponzicoin Ponzi Scheme AfD Mond Dating Passwords Vero Vero-App Doom Admin DRM E-Books
Mobil qrcode zeigen

0 Kommentare

Okt. 22, 2017

Links (125)

Kategorien Links
Tagged Paygap SPD Google Memo Differenzierung Diskriminierung Lava Lampe Cloudfare Coffee Apps Kaffee Edward Snowden Snowden Tetris game of life Tinder G20 Polizei Gesichtserkennung Dating Screwdriving Sex Toy Sexspielzeug Sortieren Algorithmen Sorting sorting algorithms Visualisierung Qt2 cmake KDE KDE 1 git git bomb WhatsApp ADINT Werbung Tracking surveillance Web Audio Modem Paperclips
Mobil qrcode zeigen

0 Kommentare

Aug. 13, 2017

Links (124)

Kategorien Links
Tagged DHL Paketkasten Paketbox C++ Turing-complete laser laser show NASA child slave colony mars popculture abandoned HTTPS Games Dating dates reference Airport control Flughafenkontrolle Roboter Deep Learning Onlinewerbung schwanger Luigi Jabberserver Jabber XMPP Datenschutzhelden Facebook targeting Google Safetynet sexistisch Manifest
Mobil qrcode zeigen

0 Kommentare

Juni 11, 2017

Links (123)

Kategorien Links
Tagged Journalist Medienkompetenz Fotos Videos Google Analytics Homebrew Roomba Long exposure Langbelichtung ATM skimming Geldautomat Apple Musik Webmaster Github Open Source Kondome condoms Feministinnen Race Tube Underground U-Bahn Thimbleweed Park Bayes bayesian Stockfotos Nigera Prinz JavaScript Radium Bugreport Microsoft Apps Tracking Android Hatespeech Verschwörungstheorien Facebook
Mobil qrcode zeigen

0 Kommentare

April 10, 2017

Technischer Datenschutz: Passwörter

Der wichtigeste Tipp für Passwörter ist: Sichere nicht erratbare Passwörter verwenden, für jede Seite ein anderes Passwort verwenden und einen Passwortmanager installieren um sich die Passwörter nicht merken zu müssen.

Warum Passwortmanager?

Viele Leute benutzen nur wenige Passwörter für alle Seiten die sie besuchen. Wird nur eine Seite davon gehackt, kann das Passwort auch auf allen anderen benutzt werden. Der Grund nur wenige Passwörter zu benutzen ist, dass es schwer ist sich viele (sichere) Passwörter zu merken.

Unsichere Passwörter sind selbst mit starker Verschlüsslung schnell gehackt und auch sichere Passwörter sind gefährdet, weil viele Seiten sie unverschlüsselt speichern.

Fatal ist, wenn gerade das E-Mailpasswort mit dem Passwort einer Seite übereinstimmt. Wird die Datenbank der Seite dann gehackt, hat der Hacker das Passwort und die E-Mailadresse und kann es direkt nutzen um fremde E-Mails zu lesen. Das ist besonders gefährlich, weil die meisten Seiten es erlauben das Passwort mit Hilfe der E-Mailadresse zurückzusetzen. Das heißt wer das E-Mailpasswort hat, kann sich Zugang zu fast allen Accounts verschaffen. Deswegen ist es eine gute Idee gerade für den E-Mailaccount ein besonders kompliziertes Passwort zu verwenden, das nirgendwo sonst verwendet wird.

Ein Passwortmanager hilft hier für jede Seite ein eigenes kompliziertes Passwort zu benutzen ohne es zu vergessen.

Im Browser eingebaute Passwortmanager sind eine gute Wahl

Der im Browser eingebaute Passwortmanager hat den Vorteil, dass er automatisch erkennt ob das Passwort zur Seite gehört. Hat man das Passwort auf www.paypal.com eingespeichert wird es auf www.paypal-fake.com nicht eingefügt, wenn man es dort nicht neu eingibt. Damit hilft der Passwortmanager hier auch betrügerische Seiten zu erkennen.

Schließlich ist noch ein Vorteil, dass man keiner fremden Software vertrauen muss. Der Browser kann jedes eingegebene Passwort mitlesen, sodass man ihm sowieso vertrauen muss. Da ist das einspeichern der Passwörter im Browser nicht gefährlicher als das verwenden des Browsers selber. Bei externen Passwortmanagern sollte man gut darauf achten, ob sie von einer vertrauenswürdigen Firma kommen und ggf. ob die den Ruf hat unsichere Software herzustellen.

Es ist auf jeden Fall zu empfehlen für den Passwortmanager ein Masterpasswort zu verwenden, das beim ersten Passwort nach dem Start des Browsers eingegeben werden muss um den Passwort-Safe zu entsperren. Sonst kann jeder Computervirus direkt die ganze Passwortliste klauen.

Der Nachteil von in den Browsern eingebauten Passwortmanagern ist, dass sie meistens keine Funktion enthalten um für eine Seite ein sicheres Passwort zu generieren. Dazu muss also ein anderer Passwortgenerator verwendet werden.

Wie benutze ich die Passwortmanager der Browser?

Bei anderen Passwortmanagern ist es zu empfehlen auch die entsprechende Browserintegration zu installieren, außer man weiß genau was man tut.

Passwort synchronisieren: Segen oder Fluch?

Firefox bietet mit "Firefox Sync" eine Möglichkeit Browserdaten von mehreren Geräten auf dem gleichen Stand zu halten, unter anderem auch die gespeicherten Passwörter. Chrome ermöglicht das gleiche über den Googleaccount, wenn man sich im Browser damit einlogged.

Die Funktionen haben Vor- und Nachteile.

Der Vorteil ist, dass man überall die Passwörter hat und damit vermeidet einige vielleicht doch eher unsicher zu wählen, weil man sie häufig auf anderen Geräten braucht.

Der Nachteil ist, dass Passwörter die "in der Cloud" liegen auch bei Datenpannen der Dienste verloren werden können. Etwas das nur auf dem eigenen PC liegt ist ein überschaubares Risiko, Cloud hingegen ist ein modernes Wort für "Computer anderer Leute" ;-).

Sichere Passwörter

Die ganze Mühe ist natürlich immer noch nicht sicher, wenn man unsichere Passwörter benutzt. Daher lohnt es sich entweder Passwörter zu generieren (bei guten Funktionen dazu punkten vor allem die externen Manager) oder ein sicheres System zum finden von Passwörtern zu benutzen.

Der erste Tipp ist: Die Länge machts! Ein Buchstabe von A-Z macht 26 Passwörter, nimmt man A-Z und 0-9 sind es 36 mögliche Passwörter. Wenn man aber zwei Buchstaben von A-Z nimmt ergeben sich 676 mögliche Passwörter. Die Folgerung ist ganz klar: Lieber ein Passwort mit 16 Zeichen oder mehr mit wenig Zahlen und Sonderzeichen als ein 8 Zeichen Passwort mit so viel Zeichensalat dass es auch schwer zu merken ist.

Passwort? Warum keine Passphrase? Ein Passwort wie "K#(Ll$5]" ist schwer zu merken und schwierig zu tippen, gerade wenn man schnell blind tippen kann. Eine Passphrase wie "Wenn-lila-Hasen-abends-um-11-Kohlrabi-kochen" ist nicht nur sehr sicher, sondern auch einfach zu merken und schnell zu tippen. Und man hat sie jetzt schon im Gedächtnis. (Comic dazu[englisch]).

Wenn man sich einen solchen Satz komplett selber ausdenkt sollte man darauf achten, dass er "komisch" genug ist um nicht erraten zu werden. "Haenschen-klein-ging-allein-in-den-Wald-hinein" ist also nicht so gut geeignet, obwohl es gegenüber Hackern die einfach stumpf alle Buchstabenkombinationen durchprobieren trotzdem sehr sicher ist. Aber ein Mensch der die Methode kennt könnte auf die Idee kommen Zitate, Sprichwörter und Volkslieder einmal auszuprobieren und muss damit viel weniger Passwörter ausprobieren.

Eine sichere Passphrase: Diceware

Die Fantasie ist meistens nicht so kreativ, wie man denkt. Die Hasen oben kochen Kohlrabi. Lecker. Gummireifen wäre aber vielleicht besser, weil das kochen von Gemüse ja erraten werden könnte.

Also kann man doch ein System das einem zufällige aber merkbare Worte generiert nehmen. Eine weit verbreitete sichere Methode ist Diceware, bei der man mit einem Würfel und einer Wortliste die man runterladen kann sichere Passphrases generieren kann.

Sicher und leicht zu merken mit einem Reim

Eine weitere Idee ist, ein Passwort mit sechs Wörtern und Reim[englischer Artikel] zu verwenden. Die Idee dabei ist, dass sich auch ein langes Passwort mit einem Reim leicht merken lässt.

Passwortmanager? Oder doch offline?

Wer hat es noch nicht gehört: Passwörter bloß nie irgendwo aufschreiben!

Aber stimmt das? Der Zettel am Bildschirm ist sicher eine schlechte Idee und der unter der Tastatur nur wenig besser. Aber aufschreiben allgemein ist nicht immer eine schlechte Idee.

Ein aufgeschriebenes Passwort kann nicht durch einen Computervirus geklaut werden, auch der eifersüchtige Partner kann nicht den Passwortmanager (ohne Masterpasswort) auf dem PC nutzen um heimlich E-Mails zu lesen. Man muss das Passwort nur an einer Stelle verwahren, wo es sicher ist.

Eine Möglichkeit ist hier ein Zettel im Portemonaie. Warum dort? Wenn einem der Geldbeutel geklaut wird, hat man sowieso ein Problem und viel zu tun. Die Bankkarte muss gesperrt werden. Und die Kreditkarte. Und vielleicht muss man den Ausweis neu beantragen. Da ist das ändern aller Passwörter nur ein weiterer Schritt den Schaden zu beseitigen, wenn man schon einmal dabei ist.

Und das Schützen seines Portemonaies ist etwas, das jeder versteht. Egal ob der Computerfreak oder nur gelegentlicher Nutzer, wie man vermeidet wertvolles Papier zu verlieren hat man von klein auf gelernt und ist meistens ziemlich gut darin.

Dafür sollte man natürlich gegebenenfalls eine Liste der Accounts (ohne Passwörter) noch irgendwo anders aufgeschrieben haben. Und das E-Mailpasswort sollte nie aufgeschrieben oder abgespeichert sein, weil es wie oben schon erwähnt der Generalschlüssel für alle anderen Accounts ist, der zum Beispiel hier benutzt wird um die verlorenen Passwörter zurückzusetzen.

Kategorien Datenschutz Sicherheit Software
Tagged Passwörter Passwortmanager technischer Datenschutz
Mobil qrcode zeigen

0 Kommentare