Recently, the theoretical and practical analysis of secure instant messenger protocols received much attention, but the focus of prior evaluations mostly lay in one-to-one communication. In this blog post we want to presents the results of our work that focuses on group chat protocols of three major instant messenger applications; namely Signal, WhatsApp, and Threema.
In this blog post, we aim to focus on the practical impact and the found weaknesses identified by our analysis. The interested reader may also look into our paper for more details.
In a two party scenario, this analysis is rather fixed to two components of the protocol: the key establishment between both parties and the communication channel protection using the established key (mostly consisting of an encryption algorithm and a scheme for providing integrity like MACs or signature schemes).
In a group setting, the same attackers apply (network, provider, other users). However the requirements for secure communication differ. It is further necessary that only group members can write to and read content from the group. Additionally, only administrators of the group are able to add new members.
In addition to these standard requirements, we also evaluated the protocols' security guarantees if the client's secrets were revealed (forward secrecy and future secrecy).
Since Signal's key exchange protocol provides future secrecy, we also evaluated the protocol's ability to recover into a secure group state after a member's state was compromised. The essential weakness here is that a sender only needs to know the static group ID to send a message to the group. If a group member receives a message with the correct group ID, no verification regarding the current member set takes place but the message is directly added to the group communication. Consequently it is sufficient to retrieve the group ID in order to send messages to the group. Since Signal treats content messages the same way as messages for the manipulation of the group set, an attacker who knows the group ID can add herself to the group and thereby read the subsequent group communication.
In addition to this, in all cases the delivery state of sent messages was not securely provided. Threema's group chats do not inform the sender about the delivery state while Signal and WhatsApp do not protect the delivery information on the end-to-end layer. Therefore the central provider can forge this information and drop messages without letting the communicating parties detect this.
Also the order of messages was manipulable for the providers of the applications such that the provider is able to deliver the messages in a different order than they were sent. Threema's weakness of rewinding a group state results from missing replay attack protection.
In all applications, the provider can undetectably drop and reorder messages during the delivery and thereby manipulate the view of the communication such that further attacks can be obfuscated.
The central servers of WhatsApp can be used to add arbitrary users to groups and thereby receive their communication.
To achieve the same result for Signal, it suffices to retrieve the group ID. An earlier member who left the group once still knows this ID since it is static. However, in contrast to WhatsApp, the origin of the manipulation is correctly displayed in the Signal application (which was not the fact when we started our analysis).
As a result, the end-to-end protection of WhatsApp is not sufficient to reach confidentiality in groups. For Signal no future secrecy is reached in groups and Threema was vulnerable to replay attacks which resulted in further weaknesses.
[1] https://twitter.com/alexstamos/status/951169036947107840
[2] https://web-in-security.blogspot.de/2018/01/group-instant-messaging-why-baming.html
In this blog post, we aim to focus on the practical impact and the found weaknesses identified by our analysis. The interested reader may also look into our paper for more details.
Our Aim and What We Were Looking For
End-to-end encryption protects the confidentiality of communication that is forwarded via central servers to the designated receivers. As a consequence, neither parties on the network route of the messages, nor the provider of the central server (e.g. the WhatsApp server) should be able to read any information out of the observation of the communication. In particular, no other user of the application should have access to the communication. Further it might be desirable to require that also the messages' integrity is end-to-end protected and that a sender is informed about the delivery state of sent messages.Delivery state information in Signal (upper screenshot) and WhatsApp (lower screenshot) |
In a two party scenario, this analysis is rather fixed to two components of the protocol: the key establishment between both parties and the communication channel protection using the established key (mostly consisting of an encryption algorithm and a scheme for providing integrity like MACs or signature schemes).
Regarded attackers |
In a group setting, the same attackers apply (network, provider, other users). However the requirements for secure communication differ. It is further necessary that only group members can write to and read content from the group. Additionally, only administrators of the group are able to add new members.
In addition to these standard requirements, we also evaluated the protocols' security guarantees if the client's secrets were revealed (forward secrecy and future secrecy).
Our Approach
We analyzed the mentioned protocols by reading the source code and debugging the apps. We also used alternative open source implementations of Threema and WhatsApp as a help and we traced the network traffic. When using alternative implementations, we only took incoming traffic into account, which was generated by official applications. Thereby we extracted the protocol descriptions and evaluated them regarding the defined requirements.Our Findings
In WhatsApp and Threema, the provider was able to manipulate the set of members. Threema only allowed the provider to rewind the set of members to a previous state. As a consequence previously removed members could have been added to the group again. The WhatsApp provider is able to arbitrarily manipulate the member set. Thereby further members and administrators can be added to the group. Since the authenticity of group manipulation is not protected, the WhatsApp provider can set the real group administrator as the source of manipulation even though this administrator was not active.Since Signal's key exchange protocol provides future secrecy, we also evaluated the protocol's ability to recover into a secure group state after a member's state was compromised. The essential weakness here is that a sender only needs to know the static group ID to send a message to the group. If a group member receives a message with the correct group ID, no verification regarding the current member set takes place but the message is directly added to the group communication. Consequently it is sufficient to retrieve the group ID in order to send messages to the group. Since Signal treats content messages the same way as messages for the manipulation of the group set, an attacker who knows the group ID can add herself to the group and thereby read the subsequent group communication.
In addition to this, in all cases the delivery state of sent messages was not securely provided. Threema's group chats do not inform the sender about the delivery state while Signal and WhatsApp do not protect the delivery information on the end-to-end layer. Therefore the central provider can forge this information and drop messages without letting the communicating parties detect this.
Also the order of messages was manipulable for the providers of the applications such that the provider is able to deliver the messages in a different order than they were sent. Threema's weakness of rewinding a group state results from missing replay attack protection.
Impact of Weaknesses
Even though end-to-end encryption is implemented in all analyzed applications, the central providers can largely manipulate the communication in groups and partially also read it.In all applications, the provider can undetectably drop and reorder messages during the delivery and thereby manipulate the view of the communication such that further attacks can be obfuscated.
The central servers of WhatsApp can be used to add arbitrary users to groups and thereby receive their communication.
To achieve the same result for Signal, it suffices to retrieve the group ID. An earlier member who left the group once still knows this ID since it is static. However, in contrast to WhatsApp, the origin of the manipulation is correctly displayed in the Signal application (which was not the fact when we started our analysis).
As a result, the end-to-end protection of WhatsApp is not sufficient to reach confidentiality in groups. For Signal no future secrecy is reached in groups and Threema was vulnerable to replay attacks which resulted in further weaknesses.
Responsible Disclosure
We disclosed our findings to the developers and received varying response. Threema updated their protocol in version 3.14 such that our attacks are not feasible anymore. Moxie Marlinspike responded that Signal is "working on an entirely new group mechanism that we should be deploying soon". WhatsApp did not hold out the prospect of fixing the described vulnerabilities (Update 01/18: According to Facebook's Security Head, the invite links make a fix more difficult [1]; we proposed a way to solve this issue [2]).[1] https://twitter.com/alexstamos/status/951169036947107840
[2] https://web-in-security.blogspot.de/2018/01/group-instant-messaging-why-baming.html
Related articles
- Hacking Apps
- Hacking Apps
- Hacking Tools For Windows Free Download
- Hack Tools
- Hack Apps
- Hacking Tools For Games
- Free Pentest Tools For Windows
- Best Pentesting Tools 2018
- Hacking Apps
- Pentest Tools Apk
- Termux Hacking Tools 2019
- Pentest Tools Find Subdomains
- Hacker Tools Linux
- Hacker Techniques Tools And Incident Handling
- Hacking Tools For Games
- Hacker Tools Free Download
- Hacker Tools Linux
- Hacker Techniques Tools And Incident Handling
- Hacker Tools Github
- What Are Hacking Tools
- Hacks And Tools
- Pentest Tools List
- Hacking Tools And Software
- Hackers Toolbox
- Hacking Tools 2019
- Github Hacking Tools
- Hack Tools For Games
- Hacking Tools For Pc
- Tools Used For Hacking
- Hacker Tools For Windows
- Best Hacking Tools 2019
- Underground Hacker Sites
- Best Hacking Tools 2020
- Pentest Tools List
- Hacking Tools 2019
- Hacking Tools Name
- Pentest Tools For Android
- How To Make Hacking Tools
- Hack Tools Pc
- Best Hacking Tools 2019
- Hack Rom Tools
- Pentest Tools Framework
- How To Hack
- Pentest Tools Android
- Ethical Hacker Tools
- Github Hacking Tools
- Hacker Tools 2020
- Hacker Tools 2019
- Pentest Box Tools Download
- Pentest Tools Download
- Hack Tools For Pc
- Hack Tools For Games
- Best Pentesting Tools 2018
- Hack Tools Mac
- Hacker Tools List
- Pentest Tools Online
- Hack Tools
- Hack Website Online Tool
- Pentest Tools
- Hacking Apps
- Hacking Tools For Mac
- Hacking Tools Hardware
- Hack Tools Github
- Ethical Hacker Tools
- Ethical Hacker Tools
- Free Pentest Tools For Windows
- Hacking Tools Windows 10
- Hacker Tools Software
- Github Hacking Tools
- Android Hack Tools Github
- Hacking Tools For Mac
- Black Hat Hacker Tools
- Pentest Tools Bluekeep
- Hack Tools Github
- Pentest Tools For Mac
- Hacker Tools List
- Hacker Tool Kit
- Hacking Tools For Games
- Hacker Tools Free
- Hacker Tools Apk
- Pentest Tools Nmap
- Hacker Tools Github
- Hacking Tools Download
- Hack Rom Tools
- Pentest Tools Review
- Pentest Tools Framework
- Pentest Tools Bluekeep
- Hacker Tools Github
- Hacker Tools Free Download
- Hack Tools Pc
- Hack Tool Apk
- Hacking Tools Github
- Pentest Tools Alternative
- Hacking Tools For Windows Free Download
- Hack Tools For Games
- Hacker Techniques Tools And Incident Handling
- Hack Tools Mac
- Pentest Tools Windows
- Hacking Tools And Software
- What Is Hacking Tools
- Hacking Tools Usb
- Pentest Box Tools Download
- Pentest Tools Free
- Hacking Tools Name
- Pentest Tools Linux
- Hacker Tools Linux
- Pentest Tools Url Fuzzer
- Hacker Tools Github
- Pentest Tools Nmap
- Hacker Tools For Pc
- Usb Pentest Tools
- Hacking Tools Windows 10
- Hacker Tools For Mac
- Kik Hack Tools
- Hacking Tools Online
- Hacker Techniques Tools And Incident Handling
- Pentest Tools Download
- Pentest Tools For Windows
- Hacking Tools 2019
- Pentest Tools Subdomain
- Hack Tools For Pc
- Hacking Tools Kit
- Best Pentesting Tools 2018
- Hacker Tools 2019
- Pentest Tools Online
- Pentest Tools Windows
- Pentest Tools Android
- Tools For Hacker
- Pentest Tools List
- Hacking Tools For Games
- Hacker Tools Free
- Hacker Tools Apk Download
- Pentest Tools Review
- Hacking Tools And Software
- Hacking Tools Hardware
- Hacker Tools For Pc
- Hacker Hardware Tools
- Hacking Tools 2020
- Hacker Tools Mac
- Tools Used For Hacking
- Hack App
- Hacks And Tools
- Pentest Tools Android
- Pentest Tools Free
- Hacker Tools Online
- Game Hacking
- Nsa Hack Tools
- Hacker Tools For Pc
- Hack Tools Github
- Blackhat Hacker Tools
- Pentest Tools Apk
- Pentest Tools For Android
- Hacking Tools Kit
- Usb Pentest Tools
- Pentest Automation Tools
- Hacking Tools For Beginners
Commentaires
Enregistrer un commentaire