THREEMA WEB CLIENT PROTOTYPE mittels SaltyRTC

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.600 Mitglieder helfen dir weiter. > Frage stellen <
    • Offizieller Beitrag

    SaltyRTC
    Seriously Secure WebRTC

    Lennart Grahl (lgrahl) veröffentlichte am 19. October 2015 seine Bachelorarbeit an der FH Münster zum Thema SaltyRTC.


    Aus der sehr interessanten und lesenswerten Arbeit möchte ich einige Teile bezüglich des THREEMA WEB CLIENT PROTOTYPE hervorheben: Die Threema GmbH erlaubte es Lennart Grahl im Zuge seiner Arbeit zu SaltyRTC einen THREEMA WEB CLIENT PROTOTYPE zu entwickeln. Dieser sowie eine frühere Version von SaltyRTC wurde von ihm im März bei Threema vor Ort entwickelt wofür er drei Monate lang in die Schweizer Firmenzentrale fuhr.

    Die Arbeit macht die Problematik der End-zu-End-Verschlüsselung im Hinblick auf eine Multideviceanbindung deutlich, zeigt aber auch Lösungswege auf - im Zuge der Arbeit wird sogar ein funktionierender Web Client für Threema entwickelt:



    "Der Prototyp zeigt einen typischen Anwendungsfall für SaltyRTC. Es beweist auch, dass Multi-Device-Unterstützung für Threema schwierig, aber auf jeden Fall möglich ist. Die einzige Einschränkung ist, dass das Gerät online und über das Internet erreichbar sein muss."


    Wir danken herzlich Lennart Grahl (lgrahl) dafür das er uns die Arbeit zur Verfügung stellt!
    Besucht ihn unter lgrahl.de

    Die komplette Arbeit als PDF:
    Download von lgrahl.de: http://www.lgrahl.de/pub/ba-thesis-…-revised-v1.pdf
    Download von Threema-Forum.de: https://threema-forum.de/uploads/SaltyR…maWebClient.pdf

    • Offizieller Beitrag

    In einem kurzen Gespräch mit mir spricht Lennart über seine Einschätzung bezüglich eines Release:


    Zitat


    Also gegen einen Release in naher Zukunft spricht bisher natürlich der Zustand des Web Clients. Es fehlen etliche Features, wie z.B. das Anzeigen von Bildern (wobei Thumbnails bereits funktionieren), Videos, Audio-Nachrichten, Umfragen und vieles mehr. Es muss quasi zu einem großen Teil die App im Browser nachgebaut werden und das ist sehr viel Arbeit. Darüber hinaus ist die WebRTC-Bibliothek von Google für Android einfach viel zu groß, weil sie unter anderem Audio- und Video-Codecs enthält, die wir aber für unseren Verwendungszweck gar nicht benötigen. Das Problem muss also noch gelöst werden. Ich persönlich sehe aber keine unüberwindbaren Hindernisse, die grundlegend gegen einen Release sprechen würden. Für einen Release spricht die innovative Art und Weise, wie die App mit dem Browser kommuniziert - nämlich direkt, Ende-zu-Ende verschlüsselt und (idealerweise) ohne Umwege. Das wäre aktuell ein Alleinstellungsmerkmal für Threema und würde den Fokus auf kompromisslose Sicherheit nochmals unterstreichen.


    Des weiteren möchte ich ganz deutlich festhalten:
    Es kann nicht gesagt werden, ob und inwiefern Threema an einem WebClienten arbeitet!
    Aber ich finde es schön zu lesen, dass Sie Lennart die Möglichkeit gegeben haben diese Eventualität zu testen und einen Prototypen zu entwickeln. Gute Arbeit Lennart! Und danke das wir als erstes darüber berichten konnten :)

    Beste Grüße: Simon

  • Ich sehe ein ganz ganz grelles Licht am Ende des Tunnels :D

    Besteht die Möglichkeit, eine deutsche Version der Arbeit zu bekommen?

    Gruß, Patrick
    -------
    Handy: Samsung Galaxy Note 8
    Android: 9
    Threema: V. 4.22
    ThreemaWork: V. 4.22k

    Einmal editiert, zuletzt von patrick (1. November 2015 um 19:47)


  • Besteht die Möglichkeit, eine deutsche Version der Arbeit zu bekommen?

    Leider nicht, es sei denn, du findest jemanden, der sie vollständig übersetzt. ;)


    Multi Device-unterstützung?

    Ich sag mal so viel: Es macht technisch keinen Unterschied, ob sich da ein Browser oder sich eine App zur Threema App verbindet. Und man kann natürlich auch mehrere solcher Clients haben, die gleichzeitig mit der Threema App verbunden sind.


    Uii! Hat @Igrahl vor, den Source Code zu veröffentlichen? Oder will das Threema nicht?

    SaltyRTC wird demnächst (ich definiere das mal nicht genauer, denn da muss noch einiges aufgearbeitet werden) auf GitHub veröffentlicht. Wer sehr interessiert daran ist, wird vermutlich vorher eine Version auf unserem VCS-Server finden.

    (Um Verwirrung zu vermeiden: Ich arbeite bei Threema, spreche hier aber für mich.)

  • Mit meinen rudimentären Englischkenntnissen habe ich mich mal durchgekämpft und wäre froh, folgende Aussagen als "richtig verstanden" bestätigt zu bekommen:

    1) Es wurde häufig "Android" geschrieben. Das heißt iOS ist anders zu beurteilen?

    2) Der "Hauptdevice" muss online sein, damit die Nummer funktioniert, aber im Grunde ist es auch möglich, dass ich diesen nicht permanent bei mir trage?

    Soll mir recht sein: ich komme nach hause und kann statt auf dem Handy aufm Lappy weiterschreiben. Fände ich top!

    Gruß, Patrick
    -------
    Handy: Samsung Galaxy Note 8
    Android: 9
    Threema: V. 4.22
    ThreemaWork: V. 4.22k

  • Ja, Patrick, ich habe das wie Du verstanden. Ich fürchte daher, dass es schlecht aussieht für einen iOS-Threema-Node, also ein "Threema-Master", gemäß der Batchelor-Arbeit von f09fa681:
    In Kapitel 5.5 ist nämlich zu lesen: "The only constraint left is that the node device has to be online and reachable over the Internet". Meines Wissens nach ist diese Anforderung unter iOS (und WP?) nicht zu erfüllen, da Apps nicht permanent im Hintergrund laufen dürfen (Ausnahme: Streamingdienste wie Webradio etc.). Damit wäre der Node nicht permanent erreichbar und unter iOS folglich zweckfrei... ich hoffe sehr, dass ich mich irre bzw. hoffe sehr auf die Fähigkeiten der Threema-Programmierer, diese Problematik zu umschiffen...

    AndyG

    Einmal editiert, zuletzt von andyg (2. November 2015 um 08:57)


  • 1) Es wurde häufig "Android" geschrieben. Das heißt iOS ist anders zu beurteilen?

    Damit hab ich mich in der Arbeit nicht beschäftigt. Google's WebRTC-Library gibt's auch für iOS. Technisch ist es möglich. Scheitern könnte es also an Apple's Policies. Wenn dich das Thema mehr interessiert, kannst du ggf. recherchieren warum WhatsApp so lange für den Web Client Support in der iOS-Variante gebraucht hat.


    2) Der "Hauptdevice" muss online sein, damit die Nummer funktioniert, aber im Grunde ist es auch möglich, dass ich diesen nicht permanent bei mir trage?

    Ja, es ist egal wo das Gerät rumliegt, solange es Internet hat.


    [...] da [iOS-]Apps nicht permanent im Hintergrund laufen dürfen (Ausnahme: Streamingdienste wie Webradio etc.). Damit wäre der Node nicht permanent erreichbar und unter iOS folglich zweckfrei... [...]

    Kannst dir ja schon mal was ausdenken, warum Threema plötzlich Streaming in der App braucht. ;)

    (Um Verwirrung zu vermeiden: Ich arbeite bei Threema, spreche hier aber für mich.)

  • @"lgrahl" erst mal mal Glückwunsch zum B.Sc. [Emoji6]

    Zum Thema iOS Node:

    Die Realisierung trotz der iOS-Beschränkungen dürften meiner Meinung nach kein Problem darstellen. Außer Audio (inkl. VoIP) und GPS-Anwendungen darf lt Apple nichts im Hintergrund laufen. Also Threema dauerhaft aktiv ist nicht.
    Macht aber nichts, denn es gibt ja den APNS (Apple Push Notification Service) bzw. GCM (Google Cloud Messaging, auch für iOS verfügbar) den wir uns zu Nutze machen können:

    Durch die Push-Benachrichtigung wird Threema über neue Nachrichten informiert und wird im Hintergrund ausgeführt. Dann kann die Nachricht an einen ggf vorhandenen Node gesendet werden.

    Zitat


    For tasks that require more execution time to implement, you must request specific permissions to run them in the background without their being suspended. In iOS, only specific app types are allowed to run in the background:

    • [...]
    • Apps that need to download and process new content regularly

    Besonders interessant der Abschnitt "Using Push Notifications to Initiate a Download"

    Die Rückrichtung (Client -> iOS Node) kann ähnlich gelöst werden:
    Der Node sendet eine Push-Nachricht an das Device, welches aufwacht und die Nachricht verarbeiten kann.

    Stromsparend ist das ganze auch, da die App ja nur bei Bedarf aktiv ist.

    Sollte nach meiner Auffassung so funktionieren.

    Mysterion

    [hr]
    Quelle

  • Wäre super, wenn das tatsächlich ginge, also Threema per Push-Mitteilung im Hintergrund unter iOS zu starten! Hoffentlich läuft das auch hinreichend zuverlässig, denn nicht vieles ist nerviger als ein unzuverlässiger Messenger...
    Hmm... dann könnte iOS-Threema aber eigentlich gleich noch weiter verbessert werden... ich denke da z. B. an sofortigen Message-Download gleich bei Eintreffen der Push-Notifikation, oder an eine Anzeige des Absenders im Klartext schon in der Push-Mitteilung im Sperr-Bildschirm... [emoji6]


    - AndyGG

    Einmal editiert, zuletzt von andyg (2. November 2015 um 22:19)

  • Vielleicht eröffnet das aktuelle Sicherheitsaudit auch noch weitere Türen bei Android/IOS.

    PS: Seid heute gibt es Whatsapp auch für Firefox OS ;)

    ______________________________________________________________________________________________
    "Wir kaufen Dinge, die wir nicht brauchen, mit Geld, das wir nicht haben um Leute zu imponieren, die wir nicht mögen“