(english summary at the end of the post)
Updates:
– smtpd and dovecot logfiles at the end of the post
– heise.de has a second source confirmation from Marc “van Hauser” Heuse who sniffed the traffic from the phone to discvoeryservice.blackberry.com and found the actual credential transmission. So the chain of evidence is now complete.
Ich bin ja Angehöriger der Minderheit, die über den aktuellen Smartphone-Trend mit immer größeren Bildschirmen und ohne Tastaturen nicht froh sind. Deswegen bin ich immer auf der Suche nach einem modernen Telefon mit ordentlichem Texteingabe-Keyboard. Eine der ganz wenigen verbliebenen Optionen sind die aktuellen Blackberry-Geräte der Q-Serie. Die Hardware überzeugt ziemlich, das Blackberry10- Betriebssystem macht einen soliden und erwachsenen Eindruck, was die Bedienkonzepte angeht.
Leider zeigt sich trotz aller Betonung der Sicherheitsfeatures der neuen Blackberrys schon bei relativ flüchtigem Hinschauen ein gravierendes Vertrauens- und Sicherheitsproblem, das höchstwahrscheinlich sogar einen Verstoß gegen deutsches Recht darstellt. Wenn man eine der Hauptfunktionen des Telefons, den E-Mail-Client für POP und IMAP benutzt, werden die kompletten Account-Daten inklusive Username und Passwort an Blackberrys Server übertragen, ohne Warnung, ohne Hinweis, ohne Option, dieses Verhalten abzustellen. Sobald man einen E-Mail-Account auf dem Telefon einrichtet, kann man auf seinem Mailserver erfolgreiche Verbindungsversuche für IMAP und SMTP von der Adresse 68.171.232.33 sehen, und zwar mit dem Username und Passwort des Accounts, den man gerade eingerichtet hat.
Die Adresse gehört zum Netzbereich von Research In Motion, kurz RIM, der Herstellerfirma der Blackberry-Telefone in Kanada.
NetRange: 68.171.224.0 – 68.171.255.255
CIDR: 68.171.224.0/19
OriginAS: AS18705
NetName: RIMBB-IPV4-05
(…)
OrgName: Research In Motion Limited
OrgId: RIM
Address: 295 Phillip Street
City: Waterloo
StateProv: ON
PostalCode: N2L-3W8
Country: CA
Schaut man sich einen Traceroute zu diesem Server an, sieht man, daß dieser nicht nur in Kanada steht, die Verbindung geht auch noch über Großbritannien und die USA. Wenn man kein zwangsweises SSL/TLS auf seinem Mailserver konfiguriert hat, wandern der Nutzername und das Passwort direkt durch die Schnüffelinstallationen der Briten und Amerikaner. Aber selbst wenn die Verbindung zum Mailserver wg. SSL/TLS verschlüsselt ist, hat Blackberry diese Daten trotzdem.
Mit anderen Worten: Blackberry sammelt die Zugangsdaten aller E-Mail-Accounts seiner Nutzer, womit diese den kanadischen Behörden zugänglich sind. Und Kanada ist Mitglied der “Five Eyes”, der extrem engen Kooperation, unter der die NSA nicht nur mit dem britischen GCHQ – jüngst durch das TEMPORA-Abhörprogramm bekannt geworden – sondern auch mit den entsprechenden Schnüffel-Diensten Australiens, Neuseelands und Kanadas zusammenarbeitet.
Um Mißverständnissen vorzubeugen: Diese Accountdaten-Übermittlung erfolgt unmittelbar nach der Konfiguration eines E-Mail-Kontos auf dem Telefon. Sie dient offenbar der möglichst komfortablen Konfiguration der korrekten Maileinstellungen, die aber auch ohne weiteres direkt auf dem Telefon erledigt werden könnte. Es gibt keinerlei technische Notwendigkeit für ein derartiges Vorgehen. Das Problem hat nichts mit PIN-Messaging, BBM-Messaging, Push-E-Mail oder anderen Blackberry-Diensten zu tun, bei denen der Nutzer wissentlich die Dienste von Blackberry in Anspruch nimmt. Das Telefon darf nicht anderes tun, als sich direkt mit dem E-Mailserver zu verbinden, ohne jegliche Beteiligung von Blackberry-Servern. Gerade die Möglichkeit, normale E-Mail ohne Blackberry-Infrastruktur zu benutzen ist einer der Hauptverkaufspunkte für die neuen Blackberry-10-Geräte.
Angesichts der durch die NSA-Leaks von Edward Snowden bekannt gewordenen Details der Abhör- und Datenzugriffssysteme und dem kompletten Verschweigen des beschriebenen Vorgehens gegenüber dem nichtsahnenden Nutzer ist ein solches heimliches Übermitteln der Accountdaten nach Kanada vollkommen inakzeptabel. Nach deutschem Recht ist es höchstwahrscheinlich komplett illegal, da der Nutzer weder darauf hingewiesen wird, noch eine Option zur Abwahl dieser Funktion hat und obendrein nicht einmal einen Dienstleistungsvertrag mit Blackberry abgeschlossen hat. Der Zweck der Acountdatenspeicherung ist somit nicht von der deutschen Rechtsordnung gedeckt. Ich bin gespannt, was die entsprechenden Verantwortlichen bei den Datenschützern und beim BSI dazu meinen.
Kurzfristig sollten alle Blackberry10-Nutzer das eingebaute Mailprogramm nicht weiter benutzen, die Accountdaten aus dem Telefon sofort löschen und die so exponierten Mailpassworte umgehend ändern. Als alternatives Mailprogramm für das Telefon empfiehlt sich zum Beispiel das freie K9Mail.
Summary in english:
When you enter your POP / IMAP e-mail credentials into a Blackberry 10 phone they will be sent to Blackberry without your consent or knowledge. A server with the IP 68.171.232.33 which is in the Research In Motion (RIM) netblock in Canada will instantly connect to your mailserver and log in with your credentials. If you do not have forced SSL/TLS configured on your mail server, your credentials will be sent in the clear by Blackberrys server for the connection. Blackberry thus has not only your e-mail credentials stored in its database, it makes them available to anyone sniffing inbetween – namely the NSA and GCHQ as documented by the recent Edward Snowden leaks. Canada is a member of the “Five Eyes”, the tigh-knitted cooperation between the interception agencies of USA, UK, Canada, Australia and New Zealand, so you need to assume that they have access to RIMs databases. You should delete your e-mail accounts from any Blackberry 10 device immediately, change the e-mail password and resort to use an alternative mail program like K9Mail.
Clarification: this issue is not about PIN-messaging, BBM, push-messaging or any other Blackberry service where you expect that your credentials are sent to RIM. This happens if you only enter your own private IMAP / POP credentials into the standard Blackberry 10 email client without having any kind BER, special configuration or any explicit service relationship or contract with Blackberry. The client should only connect directly to your mail server and nowhere else. A phone hardware vendor has no right to for whatever reason harvest account credentials back to his server without explicit user consent and then on top of that connect back to the mail server with them.
Recipe for own experiment:
1. set up your own mail server with full logging on an unused domain
2. create throw-away IMAP account
3. enter IMAP account credentials into Blackberry 10 device, note time
4. check mail with Blackberry
5. look in logfiles for IPÂ 68.171.232.33 (or others from RIM netblock)
Update:
Since some diehard Blackberry friends doubted the veracity of this discovery here are example logfiles from dovecot and smtpd. The original domain has been replaced with “mymailserver.org” and the IP with “217.xxx.xxx.xxx”.
I started configuring the mail account 13:46. As can be clearly seen, long before there is a successful connect from my mobile operator E-Plus (46.115.99.217) that should have happened in the very first place, the Blackberry server 68.171.232.33 connected back to my mailserver apparently trying to figure out the correct configuration for the account, as soon as I had entered user, password and mailserver name. And it logged in sucessfully with my e-mail credentials after figuring out the correct SSL / TLS configuration.
smtpd log:
Jul 17 13:47:12 mymailserver vpopmail[98463]: vchkpw-submission: (PLAIN) login success frank@mymailserver.org:68.171.232.33
Jul 17 13:47:12 mymailserver vpopmail[98464]: vchkpw-submission: (PLAIN) login success frank@mymailserver.org:68.171.232.33
Jul 17 13:47:13 mymailserver vpopmail[98465]: vchkpw-smtp: (PLAIN) login success frank@mymailserver.org:68.171.232.33
Jul 17 13:47:13 mymailserver vpopmail[98466]: vchkpw-smtp: (PLAIN) login success frank@mymailserver.org:68.171.232.33
Jul 17 13:48:59 mymailserver vpopmail[98580]: vchkpw-smtp: (PLAIN) login success frank@mymailserver.org:46.115.99.217
dovceot log:
Jul 17 13:47:11 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:11 auth(default): Info: client out: OK 1 user=frank@mymailserver.org
Jul 17 13:47:11 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:11 auth(default): Info: master out: USER 96457 frank@mymailserver.org uid=89 gid=89 home=/usr/local/vpopmail/domains/mymailserver.org/frank
Jul 17 13:47:11 imap-login: Info: Login: user=<frank@mymailserver.org>, method=PLAIN, rip=68.171.232.33, lip=217.xxx.xxx.xxx, TLS
Jul 17 13:47:11 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:11 auth(default): Info: client out: OK 1 user=frank@mymailserver.org
Jul 17 13:47:11 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:11 auth(default): Info: master out: USER 96458 frank@mymailserver.org uid=89 gid=89 home=/usr/local/vpopmail/domains/mymailserver.org/frank
Jul 17 13:47:11 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:11 auth(default): Info: client out: OK 1 user=frank@mymailserver.org
Jul 17 13:47:11 imap-login: Info: Login: user=<frank@mymailserver.org>, method=PLAIN, rip=68.171.232.33, lip=217.xxx.xxx.xxx, TLS
Jul 17 13:47:11 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:11 auth(default): Info: master out: USER 96459 frank@mymailserver.org uid=89 gid=89 home=/usr/local/vpopmail/domains/mymailserver.org/frank
Jul 17 13:47:11 imap-login: Info: Login: user=<frank@mymailserver.org>, method=PLAIN, rip=68.171.232.33, lip=217.xxx.xxx.xxx, TLS
Jul 17 13:47:11 IMAP(frank@mymailserver.org): Info: Disconnected: Logged out bytes=8/328
Jul 17 13:47:11 IMAP(frank@mymailserver.org): Info: Disconnected: Logged out bytes=8/328
Jul 17 13:47:11 IMAP(frank@mymailserver.org): Info: Disconnected: Logged out bytes=8/328
Jul 17 13:47:12 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:12 auth(default): Info: client out: OK 1 user=frank@mymailserver.org
Jul 17 13:47:12 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:12 auth(default): Info: master out: USER 96460 frank@mymailserver.org uid=89 gid=89 home=/usr/local/vpopmail/domains/mymailserver.org/frank
Jul 17 13:47:12 imap-login: Info: Login: user=<frank@mymailserver.org>, method=PLAIN, rip=68.171.232.33, lip=217.xxx.xxx.xxx, TLS
Jul 17 13:47:12 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:12 auth(default): Info: client out: OK 1 user=frank@mymailserver.org
Jul 17 13:47:12 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:12 auth(default): Info: master out: USER 96461 frank@mymailserver.org uid=89 gid=89 home=/usr/local/vpopmail/domains/mymailserver.org/frank
Jul 17 13:47:12 imap-login: Info: Login: user=<frank@mymailserver.org>, method=PLAIN, rip=68.171.232.33, lip=217.xxx.xxx.xxx, TLS
Jul 17 13:47:12 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:12 auth(default): Info: client out: OK 1 user=frank@mymailserver.org
Jul 17 13:47:12 auth(default): Info: vpopmail(frank@mymailserver.org,68.171.232.33): lookup user=frank domain=mymailserver.org
Jul 17 13:47:12 auth(default): Info: master out: USER 96462 frank@mymailserver.org uid=89 gid=89 home=/usr/local/vpopmail/domains/mymailserver.org/frank
Jul 17 13:47:12 imap-login: Info: Login: user=<frank@mymailserver.org>, method=PLAIN, rip=68.171.232.33, lip=217.xxx.xxx.xxx, TLS
Jul 17 13:47:12 IMAP(frank@mymailserver.org): Info: Disconnected: Logged out bytes=8/328
Jul 17 13:47:12 IMAP(frank@mymailserver.org): Info: Disconnected: Logged out bytes=8/328
Jul 17 13:47:12 IMAP(frank@mymailserver.org): Info: Disconnected: Logged out bytes=8/328
Jul 17 13:48:54 auth(default): Info: vpopmail(frank@mymailserver.org,46.115.99.217): lookup user=frank domain=mymailserver.org
Jul 17 13:48:54 auth(default): Info: client out: OK 1 user=frank@mymailserver.org
Jul 17 13:48:54 auth(default): Info: vpopmail(frank@mymailserver.org,46.115.99.217): lookup user=frank domain=mymailserver.org
Jul 17 13:48:54 auth(default): Info: master out: USER 96480 frank@mymailserver.org uid=89 gid=89 home=/usr/local/vpopmail/domains/mymailserver.org/frank
Jul 17 13:48:54 imap-login: Info: Login: user=<frank@mymailserver.org>, method=PLAIN, rip=46.115.99.217, lip=217.xxx.xxx.xxx, TLS