Telefonnummer wird nur als Hash bei WhatsApp gespeichert

Sowohl bei WhatsApp, aber auch bei anderen Messengern wie Signal wird die eigene Telefonnummer benutzt, um die Person zu identifizieren. Das ist auch der Grund, warum das komplette Telefonbuch eines WhatsApp-Nutzers auf den Server hochgeladen werden muss. Anhänger dieses Vorgehens argumentieren dabei oft, dass die Telefonnummer auf dem Server ja nicht direkt gespeichert wird, sondern nur ein Hashwert davon. Ein Hash-Algorithmus wandelt also einen Eingabewert (die Telefonnummer) in einen anderen Ausgabewert (den Hashwert, der dann gespeichert wird) um.

EinbahnstraßeDieser Algorithmus funktioniert nur in einer Richtung. Man kann also nicht den Hashwert eingeben und bekommt dann die Telefonnummer heraus. Aber! Wenn man den Hash-Algorithmus kennt, und den Ausgabewert auch, dann kann man durch Ausprobieren aller Eingaben auch den Eingabewert „erraten“. Jetzt könnte man argumentieren, dass solch ein „durchprobieren“ sehr lange dauert, aber dem ist wohl nicht (mehr) so! Heutzutage ist es möglich 200 Milliarden MD5-Hashes pro Sekunde zu prüfen, mit 8 handelsüblichen NVIDIA GTX 1080 Grafikkarten. Außerdem kann man solche Rechenergebnisse auch prima in sogenannten Rainbow-Tabellen ablegen, so dass man gar nicht mehr rechnen muss, sondern nur noch den Hash mit dem Hash in der Tabelle vergleichen muss und dann gleich ablesen kann, welcher Eingabewert (Telefonnummer) dazu gehört.

Ein zusätzliches Problem ist aber, dass eine Telefonnummer immer nach einer bestimmten Form aufgebaut ist. So ist die Länge einer Rufnummer international auf 15 Zeichen begrenzt. Theoretisch kann jede dieser 15 Stellen die Werte 0 bis 9 annehmen, was also zu 1015 möglichen Telefonnummern führt. Wenn man den Ländercode und/oder die Vorwahl der zu suchenden Telefonnummer kennt, grenzt das die notwendigen Kombinationen noch einmal erheblich ein.

Unter der Annahme, dass wir tatsächlich alle möglichen Kombinationen durchrechnen müssten und wir nur den Rechner mit den 8 NVIDIA-Grafikkarten haben, kommt man bei verschiedenen heute gängigen Hash-Algorithmen auf bedenklich kurze Zeiten, um ALLE Kombinationen durchzurechnen:

1,00E+15Operationen pro SekundeMinutenStundenTage
MD520030000000083,211,390,06
SHA168771000000242,354,040,17
SHA25623012100000724,2612,070,50
SHA51286247000001932,4332,211,34
SHA364956000002565,8442,761,78
scrypt34936004770628,2079510,473312,94

Ein Angreifer benötigt also mit oben genannter Hardware und dem Hash-Algorithmus scrypt nur 3313 Tage (das sind ca. 9 Jahre), um alle theoretisch möglichen Kombinationen aller Telefonnummern auszurechnen. Ein staatlicher Angreifer verfügt wohl über etwas mehr Rechenkapazität und wird entsprechend schneller fertig. Edward Snowden hat bei einem seiner ersten Kontakte mit Laura Poitras in einer E-Mail geschrieben, dass Sie davon ausgehen soll, dass die NSA 1 Billion Operationen pro Sekunde ausführen kann. Das würde bedeuten, dass scrypt statt in 9 Jahren dann innerhalb von 16,7 Minuten geknackt wäre!

Und wenn man die Telefonnummer einer Person kennt, dann kennt man auch die Person dahinter, denn es gibt immer weniger Länder, in denen eine Telefonnummer anonym erworben werden kann.

Es ist also keine gute Idee, die Telefonnummer als Identifikator zu verwenden, auch wenn es auf den ersten Blick so scheint und es auch schön bequem ist, dass man seine Kontakte automatisch zusammengesammelt bekommt. Deshalb: Wechselt euren Messenger!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.