Original author(s) | Moxie Marlinspike and Stuart Anderson (Whisper Systems) |
---|---|
Developer(s) | Open Whisper Systems and community |
Initial release | May 25, 2010 [1] |
Final release | |
Repository | |
Written in | Java (client and server) |
Operating system | Android |
Successor | merged with RedPhone to become Signal [3] |
Size | 11 MB |
Available in | 34 languages [4] |
Type | Encrypted instant messaging |
License | GPLv3 (client), [5] AGPLv3 (server) [6] |
Website | whispersystems |
TextSecure was an encrypted messaging application for Android that was developed from 2010 to 2015. It was a predecessor to Signal and the first application to use the Signal Protocol, which has since been implemented into WhatsApp and other applications. TextSecure used end-to-end encryption to secure the transmission of text messages, group messages, attachments and media messages to other TextSecure users.
TextSecure was first developed by Whisper Systems, who were later acqui-hired by Twitter. The application's source code was then released under a free and open-source software license. In 2013, TextSecure's development was picked up by an independent group called Open Whisper Systems, who merged it with an encrypted voice calling application called RedPhone and renamed the product as Signal.
TextSecure started as an application for sending and receiving encrypted SMS messages. [7] Its beta version was first launched on May 25, 2010, by Whisper Systems, [1] a startup company co-founded by security researcher Moxie Marlinspike and roboticist Stuart Anderson. [8] [9] In addition to launching TextSecure, Whisper Systems produced a firewall, tools for encrypting other forms of data, and RedPhone, an application that provided encrypted voice calls. [1] [8] All of these were proprietary enterprise mobile security software.
In November 2011, Whisper Systems announced that it had been acquired by Twitter. The financial terms of the deal were not disclosed by either company. [10] The acquisition was done "primarily so that Mr. Marlinspike could help the then-startup improve its security". [11] Shortly after the acquisition, Whisper Systems' RedPhone service was made unavailable. [12] Some criticized the removal, arguing that the software was "specifically targeted [to help] people under repressive regimes" and that it left people like the Egyptians in "a dangerous position" during the events of the 2011 Egyptian revolution. [13]
Twitter released TextSecure as free and open-source software under the GPLv3 license in December 2011. [8] [14] [15] [16] RedPhone was also released under the same license in July 2012. [17] Marlinspike later left Twitter and founded Open Whisper Systems as a collaborative Open Source project for the continued development of TextSecure and RedPhone. [18] [19]
Open Whisper Systems' website was launched in January 2013. [19] Open Whisper Systems started working to bring TextSecure to iOS in March 2013. [20] [21]
In February 2014, Open Whisper Systems introduced the second version of their TextSecure Protocol (now Signal Protocol), which added group chat and push messaging capabilities to TextSecure. [20] [22] Toward the end of July 2014, Open Whisper Systems announced plans to unify its RedPhone and TextSecure applications as Signal. [23] This announcement coincided with the initial release of Signal as a RedPhone counterpart for iOS. The developers said that their next steps would be to provide TextSecure instant messaging capabilities for iOS, unify the RedPhone and TextSecure applications on Android, and launch a web client. [24] Signal was the first iOS app to enable easy, strongly encrypted voice calls for free. [18] [25]
TextSecure compatibility was added to the iOS application in March 2015. [26] [27] Later that month, Open Whisper Systems ended support for sending and receiving encrypted SMS/MMS messages on Android. From version 2.7.0 onward, TextSecure only supported sending and receiving encrypted messages via the data channel. Reasons for this included: [7]
Open Whisper Systems' abandonment of SMS/MMS encryption prompted some users to create a fork named Silence (initially called SMSSecure [28] ) that is meant solely for the encryption of SMS and MMS messages. [29] [30]
In November 2015, the RedPhone application was merged into TextSecure and it was renamed as Signal for Android. [3]
TextSecure allowed users to send encrypted text messages, audio messages, photos, videos, contact information, and a wide selection of emoticons over a data connection (e.g. Wi-Fi, 3G or 4G) to other TextSecure users with smartphones running Android. TextSecure also allowed users to exchange unencrypted SMS and MMS messages with people who did not have TextSecure. [22]
Messages sent with TextSecure to other TextSecure users were automatically end-to-end encrypted, which meant that they could only be read by the intended recipients. The keys that were used to encrypt the user's messages were stored on the device alone. In the user interface, encrypted messages were denoted by a lock icon.
TextSecure allowed the user to set a passphrase that encrypted the local message database and the user's encryption keys. [32] This did not encrypt the user's contact database or message timestamps. [32] The user could define a time period after which the application "forgot" the passphrase, providing an additional protection mechanism in case the phone was lost or stolen. [31]
TextSecure had a built-in function for verifying that the user was communicating with the right person and that no man-in-the-middle attack had occurred. This verification could be done by comparing key fingerprints (in the form of QR codes) in person. [31] The application would also notify the user if the correspondent's key fingerprint had changed. [31]
TextSecure allowed users to chat with more than one person at a time. [33] Group chats were automatically end-to-end encrypted and held over an available data connection if all participants were registered TextSecure users. Users could create groups with a title and avatar icon, add their friends, join or leave groups, and exchange messages/media, all with the same encryption properties pairwise TextSecure chats provided. The servers did not have access to group metadata such as lists of group members, the group title, or the group avatar icon. [22] [34]
The application could also function as a drop-in replacement for Android's native messaging application as it could fall back to sending unencrypted SMS and MMS messages.
TextSecure required that the user had a phone number for verification. [35] The number did not have to be the same as on the device's SIM card; it could also be a VoIP number [35] or a landline as long as the user could receive the verification code and have a separate device to set-up the software. A number could only be registered to one device at a time.
The official TextSecure client required Google Play Services because the app was dependent on Google's GCM push messaging framework. [36] From February 2014 to March 2015, TextSecure used GCM as the transport for message delivery over the data channel. From March 2015 forward, TextSecure's message delivery was done by Open Whisper Systems themselves and the client relied on GCM only for a wakeup event. [7]
TextSecure was the first application to use the Signal Protocol (then called the TextSecure Protocol), which has since been implemented into WhatsApp, Facebook Messenger, and Google Allo, encrypting the conversations of "more than a billion people worldwide". [37] The protocol combines the Double Ratchet Algorithm, prekeys, and a 3-DH handshake. [38] It uses Curve25519, AES-256, and HMAC-SHA256 as primitives. [39]
The protocol provides confidentiality, integrity, authentication, participant consistency, destination validation, forward secrecy, backward secrecy (aka future secrecy), causality preservation, message unlinkability, message repudiation, participation repudiation, and asynchronicity. [40] It does not provide anonymity preservation, and requires servers for the relaying of messages and storing of public key material. [40]
The group chat protocol is a combination of a pairwise double ratchet and multicast encryption. [40] In addition to the properties provided by the one-to-one protocol, the group chat protocol provides speaker consistency, out-of-order resilience, dropped message resilience, computational equality, trust equality, subgroup messaging, as well as contractible and expandable membership. [40]
All client-server communications were protected by TLS. [41] Once the server removed this layer of encryption, each message contained either the phone number of the sender or the receiver in plaintext. [42] This metadata could in theory have allowed the creation of "a detailed overview on when and with whom users communicated". [42] Open Whisper Systems asserted that their servers did not keep this metadata.
In order to determine which contacts were also TextSecure users, cryptographic hashes of the user's contact numbers were periodically transmitted to the server. [43] The server then checked to see if those matched any of the SHA256 hashes of registered users and told the client if any matches were found. [43] Moxie Marlinspike wrote that it is easy to calculate a map of all possible hash inputs to hash outputs and reverse the mapping because of the limited preimage space (the set of all possible hash inputs) of phone numbers, and that "practical privacy preserving contact discovery remains an unsolved problem". [42] [43]
The group messaging mechanism was designed so that the servers did not have access to the membership list, group title, or group icon. [44] Instead, the creation, updating, joining, and leaving of groups was done by the clients, which delivered pairwise messages to the participants in the same way that one-to-one messages were delivered. [22] [34]
The server architecture was partially decentralized between December 2013 and February 2016. In December 2013, it was announced that the messaging protocol that was used by TextSecure had successfully been integrated into the Android-based open-source operating system CyanogenMod. [45] [46] [47] From CyanogenMod 11.0 onward, the client logic was contained in a system app called WhisperPush. According to Open Whisper Systems, the Cyanogen team ran their own TextSecure server for WhisperPush clients, which federated with Open Whisper Systems' TextSecure server, so that both clients could exchange messages with each-other seamlessly. [47] The CyanogenMod team discontinued WhisperPush in February 2016, and recommended that its users switch to Signal. [48]
The complete source code of TextSecure was available on GitHub under a free software license. [5] The software that handled message routing for the TextSecure data channel was also open source. [6]
TextSecure was officially distributed only through Google Play. In October 2015, TextSecure had been installed over 1 000 000 times through Google Play. [2]
TextSecure was briefly included in the F-Droid software repository in 2012, but was removed at the developer's request because it was an unverified build and exceptionally out of date. Open Whisper Systems have subsequently said that they will not support their applications being distributed through F-Droid because it does not provide timely software updates, relies on a centralized trust model and necessitates allowing the installation of apps from unknown sources which harms Android's security for average users. [36]
In October 2013, iSEC Partners published a blog post in which they said that they had audited several of the projects supported by the Open Technology Fund over the past year, including TextSecure. [49]
In October 2014, researchers from Ruhr University Bochum published an analysis of the TextSecure encryption protocol. [39] Among other findings, they presented an unknown key-share attack on the protocol, but in general, they found that the encrypted chat client was secure. [50]
Former NSA contractor Edward Snowden endorsed TextSecure on multiple occasions. In his keynote speech at SXSW in March 2014, he praised TextSecure for its ease-of-use. [51] [52] During an interview with The New Yorker in October 2014, he recommended using "anything from Moxie Marlinspike and Open Whisper Systems". [53] Asked about encrypted messaging apps during a Reddit AMA in May 2015, he recommended TextSecure. [54] [55]
In October 2014, the Electronic Frontier Foundation (EFF) included TextSecure in their updated Surveillance Self-Defense guide. [56] In November 2014, TextSecure received a perfect score on the EFF's Secure Messaging Scorecard. [57] [58] TextSecure received points for having communications encrypted in transit, having communications encrypted with keys the providers don't have access to (end-to-end encryption), making it possible for users to independently verify their correspondent's identities, having past communications secure if the keys are stolen (forward secrecy), having their code open to independent review (open-source), having their security designs well-documented, and having recent independent security audits. [57] At the time, "ChatSecure + Orbot", Cryptocat, "Signal / RedPhone", Pidgin (with OTR), Silent Phone, Silent Text, and Telegram's optional secret chats also received seven out of seven points on the scorecard. [57]
TextSecure was developed by a nonprofit software group called Open Whisper Systems. [59] The group is funded by a combination of donations and grants, and all of its products are published as free and open-source software.
As of October 2016 [update] , the project has received an unknown amount of donations from individual sponsors via the Freedom of the Press Foundation. [60] Open Whisper Systems has received grants from the Knight Foundation, [61] the Shuttleworth Foundation, [62] and the Open Technology Fund, [63] a U.S. government funded program that has also supported other privacy projects like the anonymity software Tor and the encrypted instant messaging app Cryptocat.
Instant messaging (IM) technology is a type of online chat allowing immediate transmission of messages over the Internet or another computer network. Messages are typically transmitted between two or more parties, when each user inputs text and triggers a transmission to the recipient(s), who are all connected on a common network. It differs from email in that conversations over instant messaging happen in real-time. Most modern IM applications use push technology and also add other features such as emojis, file transfer, chatbots, voice over IP, or video chat capabilities.
End-to-end encryption (E2EE) is a private communication system in which only communicating users can participate. As such, no one, including the communication system provider, telecom providers, Internet providers or malicious actors, can access the cryptographic keys needed to converse.
The following is a comparison of instant messaging protocols. It contains basic general information about the protocols.
ZRTP is a cryptographic key-agreement protocol to negotiate the keys for encryption between two end points in a Voice over IP (VoIP) phone telephony call based on the Real-time Transport Protocol. It uses Diffie–Hellman key exchange and the Secure Real-time Transport Protocol (SRTP) for encryption. ZRTP was developed by Phil Zimmermann, with help from Bryce Wilcox-O'Hearn, Colin Plumb, Jon Callas and Alan Johnston and was submitted to the Internet Engineering Task Force (IETF) by Zimmermann, Callas and Johnston on March 5, 2006 and published on April 11, 2011 as RFC 6189.
This is a comparison of voice over IP (VoIP) software used to conduct telephone-like voice conversations across Internet Protocol (IP) based networks. For residential markets, voice over IP phone service is often cheaper than traditional public switched telephone network (PSTN) service and can remove geographic restrictions to telephone numbers, e.g., have a PSTN phone number in a New York area code ring in Tokyo.
Moxie Marlinspike is an American entrepreneur, cryptographer, and computer security researcher. Marlinspike is the creator of Signal, co-founder of the Signal Technology Foundation, and served as the first CEO of Signal Messenger LLC. He is also a co-author of the Signal Protocol encryption used by Signal, WhatsApp, Google Messages, Facebook Messenger, and Skype.
iMessage is an instant messaging service developed by Apple Inc. and launched in 2011. iMessage functions exclusively on Apple platforms – including macOS, iOS, iPadOS, and watchOS – as part of Apple's broader strategic approach to inter device integration, sometimes referred to as the Apple Eco-System.
Whisper Systems was an American enterprise mobile security company that was co-founded by security researcher Moxie Marlinspike and roboticist Stuart Anderson in 2010. The company was acquired by Twitter in November 2011. Some of the company's software products were released under open-source licenses after the acquisition. An independent group called Open Whisper Systems later picked up the development of this open-source software, which led to the creation of the Signal Technology Foundation.
Silent Circle is an encrypted communications firm based in Washington DC. Silent Circle provides multi-platform secure communication services for mobile devices and desktops. Launched October 16, 2012, the company operates under a subscription business model. The encryption part of the software used is free software/open source and peer-reviewed. For the remaining parts of Silent Phone and Silent Text, the source code is available on GitHub, but under proprietary software licenses.
Wickr is an American software company based in New York City, known for its instant messenger application of the same name. The Wickr instant messaging apps allow users to exchange end-to-end encrypted and content-expiring messages, and are designed for iOS, Android, Mac, Windows, and Linux operating systems. Wickr was acquired by Amazon Web Services (AWS) mid-2021 and discontinued the free version of the app in December 2023.
Open Whisper Systems was a software development group that was founded by Moxie Marlinspike in 2013. The group picked up the open source development of TextSecure and RedPhone, and was later responsible for starting the development of the Signal Protocol and the Signal messaging app. In 2018, Signal Messenger was incorporated as an LLC by Moxie Marlinspike and Brian Acton and then rolled under the independent 501c3 non-profit Signal Technology Foundation. Today, the Signal app is developed by Signal Messenger LLC, which is funded by the Signal Technology Foundation.
Threema is a paid cross-platform encrypted instant messaging app developed by Threema GmbH in Switzerland and launched in 2012. The service operates on a decentralized architecture and offers end-to-end encryption. Users can make voice and video calls, send photos, files, and voice notes, share locations, and make groups. Unlike many other popular secure messaging apps, Threema does not require phone numbers or email addresses for registration, only a one-time purchase that can be paid via an app store or anonymously with Bitcoin or cash.
Wire Swiss GmbH is a software company with headquarters in Zug, Switzerland. Its development center is in Berlin, Germany. The company is best known for its messaging application called Wire.
Signal is an encrypted messaging service for instant messaging, voice, and video calls. The instant messaging function includes sending text, voice notes, images, videos, and other files. Communication may be one-to-one between users or may involve group messaging.
In cryptography, the Double Ratchet Algorithm is a key management algorithm that was developed by Trevor Perrin and Moxie Marlinspike in 2013. It can be used as part of a cryptographic protocol to provide end-to-end encryption for instant messaging. After an initial key exchange it manages the ongoing renewal and maintenance of short-lived session keys. It combines a cryptographic so-called "ratchet" based on the Diffie–Hellman key exchange (DH) and a ratchet based on a key derivation function (KDF), such as a hash function, and is therefore called a double ratchet.
The Signal Protocol is a non-federated cryptographic protocol that provides end-to-end encryption for voice and instant messaging conversations. The protocol was developed by Open Whisper Systems in 2013 and was first introduced in the open-source TextSecure app, which later became Signal. Several closed-source applications have implemented the protocol, such as WhatsApp, which is said to encrypt the conversations of "more than a billion people worldwide" or Google who provides end-to-end encryption by default to all RCS-based conversations between users of their Google Messages app for one-to-one conversations. Facebook Messenger also say they offer the protocol for optional Secret Conversations, as does Skype for its Private Conversations.
Wire is an encrypted communication and collaboration app created by Wire Swiss. It is available for iOS, Android, Windows, macOS, Linux, and web browsers such as Firefox. Wire offers a collaboration suite featuring messenger, voice calls, video calls, conference calls, file-sharing, and external collaboration – all protected by a secure end-to-end-encryption. Wire offers three solutions built on its security technology: Wire Pro – which offers Wire's collaboration feature for businesses, Wire Enterprise – includes Wire Pro capabilities with added features for large-scale or regulated organizations, and Wire Red – the on-demand crisis collaboration suite. They also offer Wire Personal, which is a secure messaging app for personal use.
Comparison of user features of messaging platforms refers to a comparison of all the various user features of various electronic instant messaging platforms. This includes a wide variety of resources; it includes standalone apps, platforms within websites, computer software, and various internal functions available on specific devices, such as iMessage for iPhones.
Conversations is a free software, instant messaging client application software for Android. It is largely based on recognized open standards such as the Extensible Messaging and Presence Protocol (XMPP) and Transport Layer Security (TLS).
Silence is a free, open-source messaging encryption software, based on a fork from TextSecure software. It allows the secure exchange of SMS and MMS-type messages with other Silence or TextSecure users. The program allows message encryption and identity verification between correspondents by comparing the fingerprint of the encryption keys.