whistle.im: FaaS - Fuckup as a Service

Seit uns die Snowden-Enthüllungen gezeigt haben, dass die NSA und das UK nicht nur in der Lage sind, alle Verbindungen, die die Grenze passieren mitzulesen, sondern dies auch tun, ist eine deutliche Steigerung des Interesses an Verfahren für die Verschlüsselung von Kommunikation im Internet zu erkennen. Dieses begrüßenswerte Phänomen entwickelt jedoch zunehmend einen bitteren Beigeschmack durch neu entstehende Projekte, die aus Marketingzwecken grade jetzt aus dem Boden gestampft werden. Diese Projekte spielen mit dem gesteigerten Problembewusstsein der Bevölkerung, ohne dass sie einen wirklichen Schutz liefern.

Neben der "E-Mail Made in Germany" brüstet sich ein Projekt von zwei Studenten namens whistle.im damit, sichere Ende-zu-Ende-Verschlüsselung anzubieten. Auch sie legen Wert auf den lächerlichen "Made in Germany"-Slogan.

Features

Auf den ersten Blick mag das Projekt sinnvoll erscheinen:

Ende-zu-Ende-Verschlüsselung

"Unsere Kryptographie ist Open Source - Mitstreiter willkommen!"

Verwendung von SSL, RSA, AES

Doch schaut man etwas tiefer in das Projekt, so merkt man schnell, dass es sich mehr um hohle Phrasen handelt, als um Ansätze, die mit Sach- oder Fachverstand geprüft wurden. Dass hier grundlegende Konzepte schon vollkommen unbrauchbar implementiert wurden lässt nur eine Aussage zu: Das ganze System ist "Broken beyond Repair".

Design-Probleme

Bevor ich auf irgendwelche technischen Details eingehe, hier einmal ein paar Punkte, die sich direkt ergeben:

Der Dienstanbieter betreibt einen Keyserver, auf dem die RSA-Keys aller Kommunikationsteilnehmer abgelegt sind. Dies bedeutet, dass der Anbieter die Schlüssel an die Nutzer austeilt. Dort kann natürlich ein gefälschter Key ausgeliefert werden und somit die Kommunikation mitgelesen werden.

Die privaten Schlüssel der Kommunikationsteilnehmer liegen (wenn auch verschlüsselt) auf dem Server des Dienstanbieters. Erhält dieser Kenntnis vom Passwort, so kann nachträglich jede Kommunikation entschlüsselt werden.

Es handelt sich um einen zentralen Dienst. Daher ist der Dienstanbieter auch in er Lage herauszufinden, wer, wann mit wem für wie lange kommuniziert.

Die Cryptographischen-Verfahren mögen als Javascript vorliegen. Nicht aber die Applikation. Das Wort OpenSource stiftet mehr Verwirrung als Klarheit. Was die Applikation an sich tut, bleibt verborgen.

Grundlegende Konzepte aktueller Verschlüsselungsverfahren wurden nicht verstanden.

Die Serverkommunikation hält Man-in-the-Middle-Angriffen nicht Stand.

Alle Keys werden vor Kommunikationsbeginn immer mit dem Keyserver ausgetauscht. Damit kann ein Angreifer, der eine Man-in-the-Middle-Attacke durchführt jederzeit in eine Kommunikation eingreifen und diese auch mitlesen. Eingeschränkt wird diese Möglichkeit nur durch die kryptische Anzeige des Fingerprints des RSA-Keys im Display.

Ein Angreifer kann problemlos eine Session "hijacken" und damit selbst Kommunikationspartner werden.

How to fail SSL for dummies

Wie sieht das ganze auf technischer Ebene aus?

Die Kommunikation der Anwendung erfolgt per JSON mit dem Server switch.whistle.im. Die Verbindung wird per HTTPS hergestellt. Da hier offensichtlich Profis am Werk waren, lauert hier schon er erste unverzeihliche Fehler: Das SSL-Zertifikat wird nicht geprüft. Für die Verbindung wird auch ein beliebiges, selbst signiertes Zertifikat akzeptiert.

Für dieses Geschenk kann man dem whistle.im-Team als Angreifer nur den größten Dank aussprechen. Die Mühe für den Server ein signiertes Zertifikat auszustellen hätte man sich in dem Zusammenhang auch sparen können. Die Verbindung könnte an dieser Stelle auch gleich unverschlüsselt sein.

Nachdem man die Kommunikation über einen transparenten Proxy seiner Wahl umgeleitet hat, der das vermeintlich sichere SSL-Zertifikat der Applikation gegen ein eigenes Zertifikat tauscht, hat man Zugriff auf die Kommunikation mit dem Server und kann diese beliebig modifizieren.

How to fail private key handling for dummies

Die Kommunikation mit dem Server stellt sich als Unspektakulär heraus:

Abfrage der Version Abfragen eines Salt-Wertes für die Passwortauthentifizierung Login per Passwort/Benutzername (Passwort ist anscheinend mit Salt gehasht; Bislang nicht geprüft.) Übermittlung des Private- und Public-Keys für die Kommunikation vom Server

GET /keys/blubba2/5KsGE76Nvx8gOjsy7ia2TTtCUXdAgNQi HTTP/1.1 Host: switch.whistle.im Accept-Encoding: gzip Accept-Language: de-DE, en-US Accept: */* User-Agent: Mozilla/5.0 (Linux; U; Android 2.3.7; de-de; HTC Desire Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7

HTTP/1.1 200 OK Date: Sun, 18 Aug 2013 12:03:45 GMT Content-Type: application/json; charset=utf-8 Connection: keep-alive Vary: Accept-Encoding cache-control: no-cache Content-Length: 2494 { "keys": [ "-----BEGIN ENCRYPTED PRIVATE KEY-----\r

MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIPuxzLnEn6okCAggA\r

MB0GCWCGSAFlAwQBAgQQTbQRk2jToiPndgnKQWI+YwSCBNB4TvHh6YsG2MFE9BEK\r

H8/WVWZswoFncqTSmFzyFegZhNOVSYSvyOFw6p8aCBv7kxeEyNi5GLaMe3COLvc7\r

wyqZrJ4zDacjnTAYouQLe87vbzt2tpzgdBF2Y7wHR6cT6Fp2VsqiSgGgm6q+vLlR\r

S+HnicoWrh3op+GogaXj+tTx1uFuXW3KFZASpAvwlQw/2YT+Q0lxTY2SmiMiNDqY\r

q3kVgQz0FZEqRqHC5G9hZJDUcKEumKiiOVYNAwm5QhdYDCsEBPC2LFY8f1B/eeRt\r

4K2e0Nt27ssFcYqIBHrMcYGjfT3x1qpaRiN+nVFQw8dA38zzfgWTUVYEx4Ng3oaa\r

ZM9HftAc87Sk3L+VV0FweeN7oJT8c/6A5dyKiAHlJC/Hz5vSBnls6I1Ngyq65SOR\r

+6zjDaJujs7oDkuPwP3IGX7DFSCDRMPubkb42ce+fW/8x8WP2c3hz0Q/VaRv45Vi\r

EkBD3oVvH/o3LBtnxjtHSwQzdBYxQuVQz5KRN+/BXGLwVYsC7R1pjvLlrvi4uUG7\r

jXl6EbBfhm61mSy/EZJL+022cQPAunynGKFLlOn2Y3+dRRQDgsTz7qsrdhROC2kn\r

ocUs8Tq0DD/pk372/m+HIkskQKDqGrLPGKM4GJqxV8zYr8prxFG0sdb8UkD2lwQ1\r

jWuv7YfzUc7JHRvlSmTnJ+2gAiogFn/DyUuu1App4jjBxTohBkyupUaz5HXpg8U8\r

/9Ao6MytrKCUZYuU7WqOdpHAo2+e4rvzFuF/HJSbYbHJjh4dnxodhwnFEStfJA1x\r

uOlmRinxYV4u4ubkSKK2mAiNms1sMwHZNNWFdRezIHOCwfNOHkm1vmOC1zVJ2LNS\r

PMiiHh4Qg3KBsy/dyhSu1c/iZdRDDGnlKbAk2XqrbL9mZsLyE1X0LsnqBErfYf8x\r

Y54l8v9ufVboYtQje8qLr66aIIjh7AezJ5vnPha1/jEExHHGUD/xcTGnQf4R+stb\r

aaNyY+Vqv4k7rnpWYUBSJ6rZmAWT9L0niqyiiKzLDHfMa5R4WrUD+yn5nyV9RmMv\r

lkmJ1zVhCXtqLrBUOPpV0aKswUWC9czXXm44IEMfmcr0ky/OoUSNr65Ee/5XbE7l\r

mIGrIAr+I6jQMv/3Q+s4JRskJD+0CR40SkDqvuFzas3A47XL7QEw/fKumdrM2gUq\r

F1m9+RB67c1vQtkCspi8C/YKO3DSQ37VSprsZdwe6yFwmwKYXFSfOEoRGqqA3I+c\r

nVa9wfshsVMNclbWYFChzQc/eAFEKrcnaieM2UnXrq9lAohm99i5z6mzzhRy5CqF\r

LukdxTUhQHdzYXqM/vLgMvfw25Uk6fZyLsm6vXHAfru8NqJvOzNVklik0vFfFXyj\r

nZuVUZxPuB48l53LC2TvcwM2HmkAioKa99nTRCdOkyR04mkHOLRIk3CEF89JDa7G\r

iqfXKg8fxd7SxuKFO0dDJTflKWeQoXtRikVhJ7AIiCnna98Sa6Z1H3MQXiYRj7dE\r

ZxPpqVdvCv+MiXRVFgDidtTRR5XuwfDuCxbGknQ5hpfhrrUpwxdlYpf87u1Zfi9B\r

sXtRYaZ4AhL597S8cWR1GDKD+o6jxwjy7basPVExUgzrDQpneWNs71pg3Do72Nql\r

JoeEq+48GgSB/rNZ6T+EyVcQ5A==\r

-----END ENCRYPTED PRIVATE KEY-----", "-----BEGIN PUBLIC KEY-----

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2ArwcK9t8DhyBTGskFz+Yw1Y8M/iSING

HfwTo0T4q+2J4zIkTP/A9QXG+jDFgfDB8Wfr7WSFtpIG5iqLz68M6bFzjwIvvWWAfceHuRNtjC79

In5NKQBJyqZEh3TT1HcYsJkwnQht4Q1JT7qRG1fIjVkhHHmaQU1YIa++oEC4t9i4tNdTeLjT2Tag

T+35XsEql0+kWHYc/7t7k+1atFW8x65RcWk+Rh137fgGh8Jor4RLO5Wm1gggAjRFPlV+foq+3CHA

8q+XiT996OBchhcgPdLrjMSNcGVSbk8uoOxba2MWLMyO0CAPaxAb+pngqyPdm6XC+bF260ax37xM

o5MCOwIDAQAB

-----END PUBLIC KEY-----" ], "symkey": "F9aneGBMe/s01AcFCSYSa5NMRmu2f7iJdiWZCl2WlDU="

Wait? What? Richtig. Nicht nur der Public-, sondern auch der Private-Key liegen auf dem Server des Dienstanbieters. Obwohl die Website vermittelt, dass der Anbieter keinen Zugriff auf die Kommunikation hat, werden die Keys auf dem Server abgelegt. Diese sind zwar verschlüsselt, mit Kenntnis des Benutzerpasswortes kann aber Anbieterseitig die komplette Kommunikation nachvollzogen werden. Und hier wird natürlich das einzig wichtige Gebot der asymmetrischen Cryptographie gebrochen: Never publish your private key!

Durch diesen zweiten, gravierende Fehler liegen die keys nicht mehr beim Benutzer, sondern man ist auch hier wieder auf die Vertrauenswürdigkeit des Anbieters und seiner Software angewiesen.

Wenn die administrativen Kenntnisse der beiden Entwicker genau so fundiert sind, wie ihre Cryptographischen, dann kann jedoch hier sicherlich nichts schief gehen!!1

Im übrigen ist jeder Benutzer darauf angewiesen, dass die Entwickler auch immer brav eine Software ausliefern, die keine Passworter für die Private-Keys an die Dienstbetreiber ausliefern. Da kann man nun wirklich nicht mehr von "sicherer Ende-zu-Ende-Kommunikation" sprechen.

Aber weiter im Text, denn dies war erst der zweite Streich und der Dritte folgt sogleich ;)

How to fail key management for dummies

Werfen wir doch mal einen Blick darauf, was passiert, wenn man nun mit einem anderen Benutzer eine Kommunikation beginnt:

GET /key/blubba2/9Xqe4hR7ZB6Y3jjK7aEsOaCrdVUxI3Fg/blubba1 HTTP/1.1 Host: switch.whistle.im Accept-Encoding: gzip Accept-Language: de-DE, en-US Accept: */* User-Agent: Mozilla/5.0 (Linux; U; Android 2.3.7; de-de; HTC Desire Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7

HTTP/1.1 200 OK Date: Sun, 18 Aug 2013 10:57:36 GMT Content-Type: application/json; charset=utf-8 Connection: keep-alive Vary: Accept-Encoding cache-control: no-cache Content-Length: 471 { "key": "-----BEGIN PUBLIC KEY-----

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoyMSuK8sb/oChvl8Y9XH8IQtHJNwTUEt

br8F+PI2ajd5GywwB1tG6ZDyGZA8heDtjPhLSmSWDQi0m4C4+FbXOUVefIfYXctVGOOGT8Yi2Cwu

4xhJGqCyXy5YCXQtddMLN9XXLotmqSX93R6JdlERHR+vDIStnRo2s5+UPARmW3ZRYu7wEKoYqBln

8Ji9ewpObIL7Q8H6jnVbMQOhrNFw35CxmES8cKJ5J0PTxssKSXQr+3hldNRFZvuIT9arz1NXzAkO

9mqzZXOtZZNizl7F+Gplr3P7SJnYzV5z3GzvMslkE1igJC1cVj1vja9dIvj48s36EAnxh7hpEWGS

ZiupKQIDAQAB

-----END PUBLIC KEY-----" }

Zunächst wird also der Key des Kommunikationspartners vom Server abgerufen. Hier kann sowohl ein Angreifer, als auch der Dienstbetreiber einen beliebigen Key einfügen. Eine wunderbare Möglichkeit die Ende-zu-Ende-Verschlüsselung um einen Knotenpunkt in der Mitte zu erweitern und alle ausgehende Kommunikation mitzulesen.

Der Client merkt nicht mal, wenn man ihm einen anderen als den bisher bekannten Key unterschiebt. Wer die Keys aller Freunde auswendig lernt, könnte oben unter dem Nickname die Änderung des Keys erkennen. In diesem Fall erkennt man, dass der Fingerprint des RSA-Keys abweicht. Die Zielgruppe, die für die Software angedacht ist, wird dies wohl kaum erkennen können.

How to fail privacy for dummies

Außerdem puffert der Server alle Chatprotokolle:

GET /msg/blubba2/9Xqe4hR7ZB6Y3jjK7aEsOaCrdVUxI3Fg/blubba1?limit=5 HTTP/1.1 Host: switch.whistle.im Accept-Encoding: gzip Accept-Language: de-DE, en-US Accept: */* User-Agent: Mozilla/5.0 (Linux; U; Android 2.3.7; de-de; HTC Desire Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7

HTTP/1.1 200 OK Date: Sun, 18 Aug 2013 10:57:36 GMT Content-Type: application/json; charset=utf-8 Connection: keep-alive Vary: Accept-Encoding cache-control: no-cache Content-Length: 3994 [ [ { "inc": null, "sig": "YZDqZc3yyViJa3eY6kY5tlk+T4UHKCQCPkNd2dmF/A8OGDu7ohTAFk7sXCTF3nkDhlht3Wi0zXtDEhZuxTb3AIxSSeN7GNKY2cei5EfLkzqWXnnXA5lWQvRuG9nuea9LIuNlOyxwgnOLHFE2yFNtilBwTBQLWh8x9eSQjc/ZDVXVc31ucbgWkQfWbw0Bof50PDx99BXARVWnccOn7WJt39Sse6Xym0G/7GT8Bm/wEFH6TpOklqHpnadQW5Vdij4wj34nRl76jJNPkeXrpyVP/e0LVe2/IZBY+NCaszWZxtdypfESLaCI3SZwf5sekE2pSsteZJKGlG8x1vklVEq7tw==", "enc": "nBv6IXtD8/LEULH6PjKJQ72Q9BBLD8J6KlGrgkovHXQAagCgx+7+7YuG+XbAaiu+LUsNBZhBUhJu5RX4f2uAPzmeRPXj16IOqN6Ub2Nj79HPJ/7aVrGS0TpQ4UaEgwElvI4LgFJ5VF2/fBeNGCArENmOT81DcqzmQygufDlDYG+fnta1caraSckzuUbO6D+NAaPm6hA6UNzoGBpKP9RhvwisAIkPeOG1x3GPoC1NbhcVlwiRNAaBvC4G5QSSFu1cq6jlj66LMmQh9MlrIFmakd0qo3/3UixF85pnfXMo1Xa8wY/TxWx2gkK7EBAGyByuTsYQ+LSah1YLnEIb0FdcWozn4qsXfSmbP2oxNdJaqlQ=", "to": "blubba2", "from": "blubba1", "_id": "5210a88383b007465601e704", "__v": 0, "time": "2013-08-18T10:57:07.009Z" }, { "inc": null, "sig": null, "enc": "m7+zsAcH17GdhpU0KYpyYI+Y9dH7nH5pIj0CXMaw3cRgx3/6yLUTbQmQP/Maye4KpSA0QOhphgOq12EWO1BnGdskRy6ZCaTR5APgBhw8JogCX9oG+7t5JfkPNS3MN+KP2s2kUo5n72GgxxagPi5GssAgTF+1BFonGwVdjF/Q22wzeqvtPbLrmlXoHv9liT5tKBZEY0rsLgnf/W+JBk3UwSw+ZwcDDwlSIsUWuzv4oDcgFlPpHsyAkSmNDMA8heqBkQ3hPiLh14AuEn8lL6kJ0qo0mAG2Ob3nvZ3cshla3iMaPnfRUxfawXFuj7VO6yljpfOuXQ6llEsE4649mbRqaKC53cDZLp64EufCWEvhokVzoisd8yKMkWAt4SO7odzW", "to": "blubba1", "from": "blubba2", "_id": "52109f5f83b007465601df0e", "__v": 0, "time": "2013-08-18T10:18:07.093Z" }, { "inc": null, "sig": null, "enc": "LodfsnfCs5JZpHm/YnQ/zYWIRqFHA5t2CihkOW42crZ0qjaqp6MePHEi3MQu6snkPDLGfFfjyyFWaGQO3l9sKlK68hHDN4/o8tJk06lKEfv4mbh/qbUXK6ujY5K0t7gAKaODibkUFdzUwAvkEhzLhpEQKFL18Y/hlPGbP+ubmfZEXNUcHbm9LNvZvNfA2X3Rl24LyEFUcMrCG6DNsHoW3j/oM0Nu7TyLp9ESJZaCLiQEw4zUxHa6ipz0HPjy7hHaVQPxBRGEPdzWBBmqFLddlQXvMq2dB3exKGEGxWum48BTolNb6ea0OKP4UEU5B3hOgzAORRW7fRdppinMu/rfZ3x/wCtB5HEesKZyMz/4DxdB2uQfAlME5e7Guj8i3rKj", "to": "blubba1", "from": "blubba2", "_id": "52109f5883b007465601df03", "__v": 0, "time": "2013-08-18T10:18:00.310Z" }, { "inc": null, "sig": "LqWR8HdI65kKOmHV6NA9SWvk9qt1xDfNCaQL1B6vli7wiMYQjBR2QSd3v6qUMnY/l++RQZjVO6UQBVwGXRqNhsh9rmQTf3V5QvxTIDsgDFw0idtVyO1Kjc24CZhtaDr8fw5HECOg7Io7bwsCF1oEatZl1VxOkItyI//wCvG2HWE1j/67PEUS4sxe8tN+7Bpjz/05afdhj310+oScC5M+AFiqJM8xdkqFSBs/JPK56DxTTDHhOexoiqlBwJ7TZSwNwco0RXEbt2J8Wet4w30YpgYl6fZKVVNMifUVQA8laKs/7mFz4rKOMNKdY+/KkKZ2493EnbjimgXs83Ww9nJ79w==", "enc": "YJ4+dqDimSiDCmeO0WVMvpMOjEmEtsAO/99QH0PCZEO6OXZF8ntcT5rwze88gvFax44B3BbAovaPDwnEFMzF1Mk++TWPhBxhu4xQtYQXIY3KtZmLS8WZI71g1sFqebT9+ZKcyuR9RaD6fKhwmNxFCmQUm1yInaO3Q/cmUSFfAU1AJ+v/TniF1wKu1h/IlSqGj/C1i0Eh1lpUIyMxRQSyXoQvwfL9wgP+v4nzQZ2dKtakGmkhdCKnjNi0fOHcznTq1KjU22An6eLyHisk80/5TMYHGhx1YKnoisnq2ax51XGcZaSua/A4BHDTkVe9Gwmw/LGBgmRW6WLxe2h1p0A74thxQf/9xv/IfsI+iLCZ2MDSt4M+ktWQWmx5kr/HBPWY", "to": "blubba2", "from": "blubba1", "_id": "52109f3583b007465601ded6", "__v": 0, "time": "2013-08-18T10:17:25.049Z" }, { "inc": null, "sig": "VOpAsdnGIVKAh4+DtrkaKhKdkxidrIDXmhHtTPZH2QhFfxc5n3P5wrhTBxL46igQEcKvtxTCP3khWcCgdYUVPV4uhqMiWVlmXA4I1InKftIB/Sc0S5MRAuLl3msklCkgAYrADpqCGulqUhT7cyFeI5jPG/VKf83OEw1FBH5ENEXDDkuNfazEJFMP81WRAgKk2n3Q7qvdWTbBrk/VaYvBnLUnvC1DRobYsI9zgoe/BanUsVd0yFT2GemrhmiBzzXQr7RoXlgIu9J2qCarU9LzHZ2V5104Gzt9xQT8v+Q295udV8LnsNN8RBN47Hugziq1V+JJlddK9eLTF/Hu/bd8Bw==", "enc": "cCh1HtsTuYpNaS3eSjKQbTJjuQQ6l8pTLIhEGSTR/WySNy76j/fZas/vd5ijO09AVU+29Q4JWR5y6xa5Wr/+yKa5WC9zt9fHVm9fF4fPx1jXeAN0s0/d1AXJ4zVdVbSenkaeDt+LX47jBRJDih3pf2XQQKsBWZzBd1fv38vHSu/CP8nDD1EpKx0HBmcWhUHwSUiDZmHVBCb1D01C8/K4WAv7nI5v9XWf7i4BPA70yzShq28poLRnk2Cn7nnvtCh4OkqG2Xm/9w9OLbN8qVUBPa2cQKcNZ2dojxchtMFQ25SzeQF5aerx/SQ8qmOleFctj7SBYkUAO/5uucqNV+xQrKafY+cIicJ7S1ORa8Vw1IQ=", "to": "blubba2", "from": "blubba1", "_id": "52109f2b83b007465601ded1", "__v": 0, "time": "2013-08-18T10:17:15.405Z" } ], true ]

Diese Speicherung auf Vorrat ermöglicht es dem Serverbetreiber die Nachrichten nachträglich zu lesen, wenn das Passwort zum Entschlüsseln des private Keys vorhanden ist.

whitsle.im erlaubt einem Benutzer nicht einmal einen kompromittierten Key zu tauschen. Einmal zum Server übertragen, liegt dieser dort dauerhaft. Wird das Mobiltelefon mit einem Trojaner infiziert, so kann der Key ausgespäht werden. Ein Benutzer ist danach gezwungen ein neues Konto anzulegen. Also nicht einmal ein brauchbares Key-Management wurde hier implementiert.

Alles in allem ein vollkommen undurchdachtes Konzept. Die aktuellen Analysen kratzen bisher nur an der Oberfläche und decken eklatante Sicherheitsmängel und ein grundlegendes Missverständnis kryptographischer Algorithmen auf. Statt sich mit existierenden Lösungen zu beschäftigen und diese zu verbessern, wird hier durch den Versuch ein neueres, bunteres Verfahren zu entwickeln eine cryptographische Bauchlandung vollzogen.

Viel mehr sollten sich die Entwickler einmal umschauen um festzustellen, dass bereits brauchbare Lösungen für sichere Kommunikation existieren, die eher an einer benutzerfreundlichen Integration kranken. Stichworte wären hier OTR oder GnuPG über XMPP. Beide Protokolle haben ihre Macken. OTR beispielsweise ist Anfällig für DoS-Attacken. Allerdings können sie im Gegensatz zu whistle.im ein wenig Sicherheit bieten.

Nur eins leistet diese Software tatsächlich: Aktuell wird whistle.im als WhatsApp-Alternative gehandelt. In Sicherheitsmängeln steht es damit seinem Vorbild in nichts nach.

Kontakt Autor: nexus Mail: nexus (at) hannover (.) ccc (.) de

Update:Ehrlich gesagt hatte ich nicht wirklich damit gerechnet, dass von diesem Text in der aktuell beobachteten Masse Notiz genommen wird. Daher bitte ich alle Leser für die grausamen Rechtschreibfehler um Verzeihung. Auch der grausame Denglish-Mix ist wohl eher der eiligen Niederschrift zuzuschreiben.