Signal is an encrypted communications application for Android and iOS. A desktop version is also available for Linux, Windows, and macOS. It uses the Internet to send one-to-one and group messages, which can include files, voice notes, images and videos, and make one-to-one voice and video calls.
Signal uses standard cellular mobile numbers as identifiers, and uses end-to-end encryption to secure all communications to other Signal users. The applications include mechanisms by which users can independently verify the identity of their messaging correspondents and the integrity of the data channel.
Signal is developed by Open Whisper Systems. The clients are published as free and open-source software under the GPLv3 license. The server code is published under the AGPLv3 license.
Video Signal (software)
History
2010-2013: Origins
Signal is the successor of an encrypted voice calling app called RedPhone and an encrypted texting program called TextSecure. The beta versions of RedPhone and TextSecure were first launched in May 2010 by Whisper Systems, a startup company co-founded by security researcher Moxie Marlinspike and roboticist Stuart Anderson. Whisper Systems also produced a firewall and tools for encrypting other forms of data. All of these were proprietary enterprise mobile security software and were only available for Android.
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. The acquisition was done "primarily so that Mr. Marlinspike could help the then-startup improve its security". Shortly after the acquisition, Whisper Systems' RedPhone service was made unavailable. 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.
Twitter released TextSecure as free and open-source software under the GPLv3 license in December 2011. RedPhone was also released under the same license in July 2012. Marlinspike later left Twitter and founded Open Whisper Systems as a collaborative Open Source project for the continued development of TextSecure and RedPhone.
2013-present: Open Whisper Systems
Open Whisper Systems' website was launched in January 2013.
In February 2014, Open Whisper Systems introduced the second version of their TextSecure Protocol (now Signal Protocol), which added end-to-end encrypted group chat and instant messaging capabilities to TextSecure. Toward the end of July 2014, they announced plans to unify the RedPhone and TextSecure applications as Signal. 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. Signal was the first iOS app to enable easy, strongly encrypted voice calls for free. TextSecure compatibility was added to the iOS application in March 2015.
From its launch in May 2010 until March 2015, the Android version of Signal (then called TextSecure) included support for encrypted SMS/MMS messaging. From version 2.7.0 onward, the Android application only supported sending and receiving encrypted messages via the data channel. Reasons for this included security flaws of SMS/MMS and problems with the key exchange. Open Whisper Systems' abandonment of SMS/MMS encryption prompted some users to create a fork named Silence (initially called SMSSecure) that is meant solely for the exchange of encrypted SMS and MMS messages.
In November 2015, the TextSecure and RedPhone applications on Android were merged to become Signal for Android. A month later, Open Whisper Systems announced Signal Desktop, a Chrome app that could link with a Signal mobile client. At launch, the app could only be linked with the Android version of Signal. On September 26, 2016, Open Whisper Systems announced that Signal Desktop could now be linked with the iOS version of Signal as well. On October 31, 2017, Open Whisper Systems announced that the Chrome app was deprecated. At the same time, they announced the release of a standalone desktop client (based on the Electron framework) for Windows, MacOS and certain Linux distributions.
On October 4, 2016, the American Civil Liberties Union (ACLU) and Open Whisper Systems published a series of documents revealing that OWS had received a subpoena requiring them to provide information associated with two phone numbers for a federal grand jury investigation in the first half of 2016. Only one of the two phone numbers was registered on Signal, and because of how the service is designed, OWS was only able to provide "the time the user's account had been created and the last time it had connected to the service". Along with the subpoena, OWS received a gag order requiring OWS not to tell anyone about the subpoena for one year. OWS approached the ACLU, and they were able to lift part of the gag order after challenging it in court. OWS said it was the first time they had received a subpoena, and that they were committed to treat "any future requests the same way".
In March 2017, Open Whisper Systems transitioned Signal's calling system from RedPhone to WebRTC, also adding the ability to make video calls.
Maps Signal (software)
Features
Signal allows users to make voice and video calls to other Signal users on iOS and Android. All calls are made over a Wi-Fi or data connection and (with the exception of data fees) are free of charge, including long distance and international. Signal also allows users to send text messages, files, voice notes, pictures, GIFs, and video messages over a Wi-Fi or data connection to other Signal users on iOS, Android and a desktop app. The apps also support group messaging.
All communications to other Signal users are automatically end-to-end encrypted. The keys that are used to encrypt the user's communications are generated and stored at the endpoints (i.e. by users, not by servers). Signal also has a built-in mechanism for verifying that no man-in-the-middle attack has occurred. For authentication, Signal users can compare key fingerprints (or scan QR codes) out-of-band. The app employs a trust on first use mechanism in order to notify the user if a correspondent's key changes.
On Android, users can opt into making Signal the default SMS/MMS application, allowing them to send and receive unencrypted SMS messages in addition to the standard end-to-end encrypted Signal messages. Users can also opt into allowing Signal to fall back to unencrypted SMS/MMS when communicating with contacts who do not have Signal.
The Android version of Signal allows the user to set a passphrase that encrypts the local message database and the user's encryption keys. This does not encrypt the user's contact database or message timestamps. The user can define a time period after which the application "forgets" the passphrase, providing an additional protection mechanism in case the phone is lost or stolen. On iOS, the local message database is encrypted by the operating system if the user has a passphrase on their lock screen.
Signal also allows users to set timers to messages. After a specified time interval, the messages will be deleted from both the sender's and the receivers' devices. The time interval can be between five seconds and one week long, and the timer begins for each recipient once they have read their copy of the message. The developers have stressed that this is meant to be "a collaborative feature for conversations where all participants want to automate minimalist data hygiene, not for situations where your contact is your adversary".
Signal excludes users' messages from non-encrypted cloud backups by default.
Limitations
Signal requires that the user have a phone number for verification. The number does not have to be the same as on the device's SIM card; it can also be a VoIP number or a landline as long as the user can receive the verification code and have a separate device to set up the software. A number can only be registered to one device at a time.
Signal also requires that the primary device be an Android or iOS based smartphone with an Internet connection. A desktop app that can link with a Signal mobile client is also available.
Android specific
From February 2014 to February 2017, Signal's official Android client required the proprietary Google Play Services because the app was dependent on Google's GCM push messaging framework. In March 2015, Open Whisper Systems moved to a model of handling Signal's message delivery themselves and only using GCM for a wakeup event. In February 2017, Open Whisper Systems implemented WebSocket support into the client, making it possible for it to be used without Google Play Services.
Usability
In July 2016, the Internet Society published a user study that assessed the ability of Signal users to detect and deter man-in-the-middle attacks. The study concluded that 21 out of 28 participants failed to correctly compare public key fingerprints in order to verify the identity of other Signal users, and that the majority of these users still believed they had succeeded while in reality they failed. Four months later, Open Whisper Systems updated Signal's user interface to make verifying the identity of other Signal users simpler.
As of December 2017, the Signal iOS client does not support exporting or importing the user's messaging history, and the Signal Android client can only make plain text-only backups of the message history, i.e. without media messages. When switching to a new Android phone, a user will only be able to restore their plain-text message history. Media files can be saved manually as single files, but without their original context.
Architecture
Encryption protocols
Signal messages are encrypted with the Signal Protocol (formerly known as the TextSecure Protocol). The protocol combines the Double Ratchet Algorithm, prekeys, and a 3-DH handshake. It uses Curve25519, AES-256, and HMAC-SHA256 as primitives. 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. It does not provide anonymity preservation, and requires servers for the relaying of messages and storing of public key material.
The Signal Protocol also supports end-to-end encrypted group chats. The group chat protocol is a combination of a pairwise double ratchet and multicast encryption. 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.
In October 2014, researchers from Ruhr University Bochum published an analysis of the Signal Protocol. Among other findings, they presented an unknown key-share attack on the protocol, but in general, they found that it was secure. In October 2016, researchers from UK's University of Oxford, Queensland University of Technology in Australia, and Canada's McMaster University published a formal analysis of the protocol. They concluded that the protocol was cryptographically sound.
As of October 2016, the Signal Protocol has been implemented into WhatsApp, Facebook Messenger, and Google Allo, making it possible for the conversations of "more than a billion people worldwide" to be encrypted. However, Google Allo and Facebook Messenger do not encrypt by default, nor notify users that default conversations are unencrypted; they only offer end-to-end encryption in an optional mode. Microsoft also plans to use Signal Protocol to bring end-to-end encryption to Skype.
Up until March 2017, Signal's voice calls were encrypted with SRTP and the ZRTP key-agreement protocol, which was developed by Phil Zimmermann. As of March 2017, Signal's voice and video calling functionalities use the app's Signal Protocol channel for authentication instead of ZRTP.
Servers
Signal relies on centralized servers that are maintained by Open Whisper Systems. In addition to routing Signal's messages, the servers also facilitate the discovery of contacts who are also registered Signal users and the automatic exchange of users' public keys. By default, Signal's voice and video calls are peer-to-peer. If the caller is not in the receiver's address book, the call is routed through a server in order to hide the users' IP addresses. Open Whisper Systems has set up dozens of servers in more than 10 countries around the world to minimize latency.
Contact discovery
The servers store registered users' phone numbers, public key material and push tokens which are necessary for setting up calls and transmitting messages. In order to determine which contacts are also Signal users, cryptographic hashes of the user's contact numbers are periodically transmitted to the server. The server then checks to see if those match any of the SHA256 hashes of registered users and tells the client if any matches are found. The hashed numbers are thereafter discarded from the server. In 2014, 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." In September 2017, Open Whisper Systems announced that they were working on a way for the Signal client applications to "efficiently and scalably determine whether the contacts in their address book are Signal users without revealing the contacts in their address book to the Signal service."
Metadata
All client-server communications are protected by TLS. Once the server removes this layer of encryption, each message contains the phone number of either the sender or the receiver in plaintext. This metadata could in theory allow the creation of "a detailed overview on when and with whom users communicated". Signal's privacy policy states that these identifiers are only kept on the servers as long as necessary in order to place each call or transmit each message. Open Whisper Systems have asserted that their servers do not keep logs about who called whom and when. In June 2016, Marlinspike told The Intercept that "the closest piece of information to metadata that the Signal server stores is the last time each user connected to the server, and the precision of this information is reduced to the day, rather than the hour, minute, and second".
The group messaging mechanism is designed so that the servers do not have access to the membership list, group title, or group icon. Instead, the creation, updating, joining, and leaving of groups is done by the clients, which deliver pairwise messages to the participants in the same way that one-to-one messages are delivered.
Federation
Signal's server architecture was federated between December 2013 and February 2016. In December 2013, it was announced that the messaging protocol that is used in Signal had successfully been integrated into the Android-based open-source operating system CyanogenMod. Since CyanogenMod 11.0, the client logic was contained in a system app called WhisperPush. According to Open Whisper Systems, the Cyanogen team ran their own Signal messaging server for WhisperPush clients, which federated with Open Whisper Systems' Signal server, so that both clients could exchange messages with each other. The WhisperPush source code was available under the GPLv3 license. In February 2016, the CyanogenMod team discontinued WhisperPush and recommended that its users switch to Signal. In May 2016, Moxie Marlinspike wrote that federation with the CyanogenMod servers degraded the user experience and held back development, and that Open Whisper Systems' servers will probably not federate with other servers again.
In May 2016, Signal's lead developer Moxie Marlinspike requested that a third-party client called LibreSignal not use the Signal service or the Signal name. As a result, on 24 May 2016 the LibreSignal project posted that the project was "abandoned".
Licensing
The complete source code of the Signal clients for Android, iOS and desktop is available on GitHub under a free software license. This enables interested parties to examine the code and help the developers verify that everything is behaving as expected. It also allows advanced users to compile their own copies of the applications and compare them with the versions that are distributed by Open Whisper Systems. In March 2016, Moxie Marlinspike wrote that, apart from some shared libraries that are not compiled with the project build due to a lack of Gradle NDK support, Signal for Android is reproducible.
Signal's servers are also open source. In November 2015, Open Whisper Systems wrote that they did not officially provide support for people to host their own servers.
Distribution
Signal is officially distributed through the Google Play store, Apple's App Store, and the official website. Applications distributed via Google Play are signed by the developer of the application, and the Android operating system checks that updates are signed with the same key, preventing others from distributing updates that the developer themselves did not sign. The same applies to iOS applications that are distributed via Apple's App Store. As of March 2017, Open Whisper Systems provides a way to download the Android version of Signal as a separate APK package binary from their website.
Reception
In October 2014, the Electronic Frontier Foundation (EFF) included Signal in their updated surveillance self-defense guide. In November 2014, Signal received a perfect score on the EFF's secure messaging scorecard; it received points for having communications encrypted in transit, having communications encrypted with keys the provider doesn't have access to (end-to-end encryption), making it possible for users to independently verify their correspondents' identities, having past communications secure if the keys are stolen (forward secrecy), having the code open to independent review (open source), having the security designs well-documented, and having a recent independent security audit. At the time, "ChatSecure + Orbot", Pidgin (with OTR), Silent Phone, and Telegram's optional "secret chats" also received seven out of seven points on the scorecard.
On December 28, 2014, Der Spiegel published slides from an internal NSA presentation dating to June 2012 in which the NSA deemed Signal's encrypted voice calling component (RedPhone) on its own as a "major threat" to its mission, and when used in conjunction with other privacy tools such as Cspace, Tor, Tails, and TrueCrypt was ranked as "catastrophic", leading to a "near-total loss/lack of insight to target communications, presence..."
Former NSA contractor Edward Snowden has endorsed Signal on multiple occasions. In his keynote speech at SXSW in March 2014, he praised Signal's predecessors (TextSecure and RedPhone) for their ease-of-use. During an interview with The New Yorker in October 2014, he recommended using "anything from Moxie Marlinspike and Open Whisper Systems". During a remote appearance at an event hosted by Ryerson University and Canadian Journalists for Free Expression in March 2015, Snowden said that Signal is "very good" and that he knew the security model. Asked about encrypted messaging apps during a Reddit AMA in May 2015, he recommended Signal. In November 2015, Snowden tweeted that he used Signal "every day".
In September 2015, the American Civil Liberties Union called on officials at the U.S. Capitol to ensure that lawmakers and staff members have secure communications technology. One of the applications that the ACLU recommended in their letter to the Senate Sergeant at Arms and to the House Sergeant at Arms was Signal, writing:
One of the most widely respected encrypted communication apps, Signal, from Open Whisper Systems, has received significant financial support from the U.S. government, has been audited by independent security experts, and is now widely used by computer security professionals, many of the top national security journalists, and public interest advocates. Indeed, members of the ACLU's own legal department regularly use Signal to make encrypted telephone calls.
In March 2017, Signal was approved by the Sergeant at Arms of the U.S. Senate for use by senators and their staff.
Following the 2016 Democratic National Committee email leak, Vanity Fair reported that Marc Elias, the general counsel for Hillary Clinton's presidential campaign, had instructed DNC staffers to exclusively use Signal when saying anything "remotely contentious or disparaging" about Republican presidential nominee Donald Trump.
Blocking
In December 2016, Egypt blocked access to Signal. In response, Open Whisper Systems added domain fronting to their service. This allows Signal users in a specific country to circumvent censorship by making it look like they are connecting to a different Internet-based service. As of October 2017, Signal's domain fronting is enabled by default in Egypt, the United Arab Emirates, Oman and Qatar.
As of January 2018, Signal is blocked in Iran.
Developers and funding
Signal is developed by a software group called Open Whisper Systems. The group is funded by a combination of donations and grants, and all of its products are published as free and open-source software.
The project receives donations via the Freedom of the Press Foundation, which has acted as Open Whisper Systems' fiscal sponsor since December 2016. Open Whisper Systems has received grants from the Knight Foundation, the Shuttleworth Foundation, and the Open Technology Fund, 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.
See also
- Comparison of instant messaging clients
- Comparison of VoIP software
- Internet privacy
- List of video telecommunication services and product brands
- Secure communication
References
Bibliography
External links
- Official website
- How to: Use Signal for Android by the Electronic Frontier Foundation
- How to: Use Signal on iOS by the Electronic Frontier Foundation
Source of article : Wikipedia