Cryptocat
Cryptocat 3.1.24 running on Windows 10. | |
Original author(s) | Nadim Kobeissi |
---|---|
Developer(s) | Nadim Kobeissi and contributors[1] |
Initial release | 19 May 2011 |
Repository |
github |
Written in | JavaScript |
Operating system | Cross-platform |
Available in | 3 languages |
Type | Secure communication |
License | GNU General Public License |
Website |
crypto |
Cryptocat is an open source desktop application intended to allow encrypted online chatting available for Windows, OS X, and Linux.[2] It uses end-to-end encryption to secure all communications to other Cryptocat users. Users are given the option of independently verifying their buddies' device lists and are notified when a buddy's device list is modified and all updates are verified through the built-in update downloader.[3]
Cryptocat is developed by Nadim Kobeissi and a community of open source contributors and is published under the terms of the GPLv3 license.
History
Cryptocat was first launched on 19 May 2011 as a web application.
In June 2012, Kobeissi said he was detained at the U.S. border by the DHS and questioned about Cryptocat's censorship resistance. He tweeted about the incident afterwards, resulting in media coverage and a spike in the popularity of the software.[4][5]
In June 2013, security researcher Steve Thomas pointed out a security bug that could be used to decrypt any group chat message that had taken place using Cryptocat between September 2012 and April 19, 2013.[6][7] Private messages were not affected, and the bug had been resolved a month prior. In response, Cryptocat issued a security advisory, requested that all users ensure that they had upgraded, and informed users that past group conversations may have been compromised.[7]
In February 2014, an audit by iSec Partners criticized Cryptocat's authentication model as insufficient.[8] In response, Cryptocat made improvements to user authentication, making it easier for users to authenticate and detect man-in-the-middle attacks.[9]
In February 2016, citing dissatisfaction with the project's current state after 19 months of non-maintenance, Kobeissi announced that he would be taking Cryptocat temporarily offline and discontinuing the development of its mobile application, pending a complete rewrite and relaunch of the software.[10] In March 2016 Kobeissi announced the re-release of Cryptocat, rewritten completely as desktop software instead of the original web application software, as a public beta and the resumption of the service.[11] The new desktop-centric approach allowed Cryptocat to benefit from stronger desktop integration, in a style similar to Pidgin.
Features
Cryptocat allows its users to set up end-to-end encrypted chat conversations. Users can exchange one-to-one messages, encrypted files, photos as well as create and share audio/video recordings. All devices linked to Cryptocat accounts will receive forward secure messages, even when offline.
All messages, files and audio/video recordings sent over Cryptocat are end-to-end encrypted. Cryptocat users link their devices to their Cryptocat account upon connection, and can identify each other's devices via the client's device manager in order to prevent man-in-the-middle attacks. Cryptocat also employs a Trust on first use mechanism in order to help detect device identity key changes.
Cryptocat also includes a built-in auto-update mechanism that automatically performs a signature check on downloaded updates in order to verify authenticity, and employs TLS certificate pinning in order to prevent network impersonation attacks.
Originally in 2013, Cryptocat offered the ability to connect to Facebook Messenger to initiate encrypted chatting with other Cryptocat users.[12] According to the developers, the feature was meant to help offer an alternative to the regular Cryptocat chat model which did not offer long-term contact lists.[13] This feature was disconnected in November 2015.
Reception and usage
In June 2013, Cryptocat was used by journalist Glenn Greenwald while in Hong Kong to meet NSA whistleblower Edward Snowden for the first time, after other encryption software failed to work.[14]
In November 2013, Cryptocat was banned in Iran, shortly after the election of Iran's new president Hassan Rouhani who had promised more open Internet laws.[15]
Cryptocat was listed on the Electronic Frontier Foundation's "Secure Messaging Scorecard" from 4 November 2014 until 13 March 2016. During that time, Cryptocat had a score of 7 out of 7 points on the scorecard. It had received points for having communications encrypted in transit, having communications encrypted with keys the provider did not 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 were stolen (forward secrecy), having its code open to independent review (open source), having its security designs well-documented, and having completed an independent security audit.[16]
Architecture
Encryption
Cryptocat uses a Double Ratchet Algorithm in order to obtain forward and future secrecy across messages, after a session is established using a four-way Elliptic curve Diffie-Hellman handshake. The handshake mixes in long-term identity keys, an intermediate-term signed pre-key, and a one-time use prekey.[17] The approach is similar to the encryption protocol adopted for encrypted messaging by the Signal mobile application. Cryptocat's goal is for its messages to obtain confidentiality, integrity, source authenticity, forward and future secrecy and indistinguishability even over a network controlled by an active attacker.[3] The forward secrecy features of the protocol that Cryptocat uses are similar to those first introduced by Off-the-Record Messaging.
Cryptocat uses the Advanced Encryption Standard in Galois/Counter Mode for authenticated encryption, Curve25519 for Elliptic curve Diffie-Hellman shared secret agreement, HMAC-SHA256 for key derivation and Ed25519 for signing.[18] In order to limit the effect of a long-term identity key compromise, long-term keys are used exclusively once for the initial Authenticated Key Exchange, and once for signing a newly generated intermediate-term signed prekey.
For the transport layer, Cryptocat adopts the OMEMO Multi-End Message and Object Encryption standard, which also gives Cryptocat multi-device support and allows for offline messaging.[3]
Network
Cryptocat's network relies on a XMPP configuration served over WebSockets. According to the project's mission statement, Cryptocat's network only relays encrypted messages and does not store any data.[1] In addition to the Cryptocat client's end-to-end encryption protocol, client-server communication is protected by TLS.
Distribution
From March 2011 until March 2016, Cryptocat was officially distributed through the Google Chrome Web Store, the Apple App Store and other official channels controlled by targeted platforms. After Cryptocat's re-write into desktop software in March 2016, the software became distributed exclusively through Cryptocat's own servers, which also handle signed update delivery.[19]
See also
- Comparison of instant messaging clients
- Freedom of information
- GNU Project
- Hacktivism
- Internet privacy
References
- 1 2 Cryptocat. "Cryptocat Mission Statement". Retrieved 2016-04-22.
- ↑ "Cryptocat". crypto.cat. Retrieved 2016-03-29.
- 1 2 3 "Cryptocat - Security". crypto.cat. Retrieved 2016-03-29.
- ↑ Jon Matonis (2012-04-18). "Detaining Developer At US Border Increases Cryptocat Popularity". Forbes. Retrieved 2012-07-28.
- ↑ "Developer's detention spikes interest in Montreal's Cryptocat". Itbusiness.ca. 2012-06-08. Retrieved 2012-07-28.
- ↑ Steve Thomas. "DecryptoCat". Retrieved 2013-07-10.
- 1 2 Cryptocat Development Blog. "New Critical Vulnerability in Cryptocat: Details". Retrieved 2013-07-07.
- ↑ https://isecpartners.github.io/publications/iSEC_Cryptocat_iOS.pdf
- ↑ Cryptocat. "Recent Audits and Coming Improvements". Retrieved 2014-06-22.
- ↑ Paletta, Damian (22 February 2016). "How the U.S. Fights Encryption—and Also Helps Develop It". The Wall Street Journal. News Corp. Retrieved 24 February 2016.
- ↑ "Cryptocat Release Announcement". crypto.cat. Retrieved 2016-04-22.
- ↑ Norton, Quinn (12 May 2014). "Cryptocat Creates an Encrypted, Disposable Chatroom on Any Computer with a Web Browser". The Daily Beast. Retrieved 22 June 2014.
- ↑ Cryptocat. "Cryptocat, Now with Encrypted Facebook Chat". Retrieved 2014-06-22.
- ↑ Greenwald, Glenn (May 13, 2014). No Place to Hide: Edward Snowden, the NSA, and the U.S. Surveillance State. Metropolitan Books. p. 59. ISBN 978-1627790734. Retrieved 22 June 2014.
- ↑ Franceschi-Bicchierai, Lorenzo (21 November 2013). "Iran Blocks Encrypted Chat Service Despite Claims of Internet Freedom". Mashable. Retrieved 22 June 2014.
- ↑ "Secure Messaging Scorecard. Which apps and tools actually keep your messages safe?". Electronic Frontier Foundation. 4 November 2014. Retrieved 21 April 2016.
- ↑ "Cryptocat Axolotl Implementation". github.com. Retrieved 2016-04-22.
- ↑ "Cryptocat Cryptographic Primitives". github.com. Retrieved 2016-04-22.
- ↑ Cryptocat. "Cryptocat Download Server". Retrieved 2016-04-22.
Further reading
- Greenberg, Andy (27 May 2011). "Crypto.cat Aims To Offer Super-Simple Encrypted Messaging". Forbes.
- Curtis, Christopher (17 February 2012). "Free encryption software Cryptocat protects right to privacy: inventor". Montréal Gazette. Archived from the original on 19 February 2012.
- Dwyer, Jim (17 April 2012). "Using His Software Skills With Freedom, Not a Big Payout, in Mind". New York Times.
- Knowles, Jamillah (3 March 2012). "Raspberry Pi network plan for online free-speech role". BBC News.
- Kirk, Jeremy (14 March 2012). "Cryptocat Aims for Easy-to-use Encrypted IM Chat". PCWorld. Archived from the original on 17 December 2012.