Is Telegram safe?

Telegram is a popular, secure voice and messaging app that was released in 2013. Since its launch, it has added many features to its service and grown to over 350 million users. It brands itself as a secure messaging app, but how safe is Telegram?

In this post, we examine the Telegram app in depth to determine its privacy and security and whether you should trust it with your communications.

Let’s start.

The Telegram basics

Telegram is a free messaging service that focuses on privacy and security. It was founded by brothers Nikolai and Pavel Durov, and the app was first released in 2013. Telegram supports both mobile and desktop operating systems and can be used to send text, audio, video… You know the drill by now: you can send messages and arbitrary files (audio, video, documents, etc.). You can create group conversations (group conversations are unencrypted) on Telegram with up to 200,000 members. The app also allows you to make voice and video calls.

The app is full-featured and provides a good messaging experience, but how does encryption work on Telegram?

Does Telegram support end-to-end encryption (E2EE)?

Yes, it does. But not by default.

Telegram provides two types of chats: standard chats and secret chats.

Standard chats

In standard chats, your messages aren’t end-to-end encrypted. In fact, they’re not encrypted at all. In standard chats, your messages are stored on Telegram’s servers (in various data centers).

While your messages aren’t end-to-end encrypted, they’re still encrypted in transit (using SSL/TLS) and encrypted at rest once they hit Telegram’s servers. Telegram uses a so-called “secret-splitting scheme,” meaning that your messages are stored in distributed data centers and are all under Telegram’s control but reside in different jurisdictions with different laws regarding access to data by authorities. The decryption keys are also split in this manner.

The main benefit of standard chats is that the conversations can be accessed from multiple devices, while secret chats can only be accessed from the device on which they were sent or received.

Attackers would need to jump through a bunch of hoops to access your messages surreptitiously. And because some of these jurisdictions are more hostile than others to such requests, it would be difficult for a single government entity to compel Telegram to hand over user data or block the service altogether.

Nonetheless, Telegram itself has the technical capacity to decrypt your standard chats.

Secret chats

For your messages to be end-to-end encrypted on Telegram, you must create a secret chat. A secret chat starts as a standard chat that you convert into a secret one. Once converted, all messages (and attachments) within that chat are end-to-end encrypted.

Only you and your recipient can decrypt and read the messages sent and received in a secret chat. The messages are encrypted locally on your device, and only you and your recipient have the key to decrypt them – Telegram does not. The messages in secret chat are not stored on Telegram’s servers and can only be viewed on the device on which they were created or received.

Secret chats support self-destructing messages, which delete messages from the chat after the set time interval has expired. Secret chats also disallow message forwarding, so private messages cannot “escape” the secret chat in which they reside.

This all sounds great, but there’s a hitch…

The MTProto encryption protocol

Telegram uses a proprietary encryption protocol called MTProto, which it developed in-house. The protocol uses various existing cryptographic algorithms, such as AES-256, to encrypt the actual message content. RSA is used to exchange keys between sender and receiver.

MTProto is pretty new. Being proprietary means, it was only reviewed by security researchers when Telegram granted them access to its code. And they did find vulnerabilities during their limited review (which got fixed). But because MTProto is closed-source, security researchers can’t review the code on a continuous basis, leaving you to cross your fingers that Telegram did it right.

While using MTProto is certainly more secure than plain text chats, it’s still not ideal.

What information does Telegram collect?

The Telegram privacy policy is comprehensive and quite good. Nonetheless, the service does collect a few data points from its users.

In a nutshell, Telegram collects:

  • Your IP address
  • Your username
  • Your contacts
  • Your phone number
  • Your device information
  • Your standard chat messages (still encrypted on its servers, as detailed above)

While you could legitimately wish the list was a bit leaner, this is pretty standard for a voice and messaging app – even secure ones. I do wish, however, that it didn’t collect IP addresses. This is likely done to prevent spam, which is a legitimate concern for a service like Telegram.

IP addresses and telephone numbers can be used to identify you, which means that although Telegram might be private and secure, it is not anonymous.

Other secure voice and messaging apps, such as Signal, also allow you to upload your contacts list, but Signal stores this in a cryptographically hashed format. Telegram appears to upload them in plain text (and encrypts them once they’re on their servers). This would be another nice-to-have regarding Telegram’s privacy practices.

Now, let’s go over how to initiate encrypted conversations and provide an overview of some of the app’s main security features.

Creating a secret chat

As mentioned above, conversations in Telegram aren’t end-to-end encrypted by default. You need to manually enable E2EE for each conversation. Here’s how you do this.

  1. From the main Chats window, click the New Message icon at the top right of the UI. Your contacts are displayed.Telegram - New Chat
  2. Select a recipient from your contacts. The New Chat window (unencrypted) is displayed.Telegram - Contacts
  3. Click your recipient’s contact image or initials to access the settings related to this contact/conversation.Telegram - Click Name
  4. Click the more button. A sub-menu is displayed.Telegram - Click More
  5. Select Start Secret Chat.Telegram - Start Secret Chat
  6. The conversation is now end-to-end encrypted, and the New Secret Chat window is displayed.Telegram - New Secret Chat

From now on, all your communications with this contact in Telegram are encrypted end-to-end.

Note that the screenshot states that secret chats have a self-destruct timer. This is not the case. Whether in a standard or secret chat, you must manually enable auto-deletion of messages in the Settings.

Configuring auto-delete messages

When you enable auto-delete messages, they apply to all your Telegram conversations, whether or not they’re encrypted. You can set your self-destruct timer to run for anywhere between a day and a year (at predetermined intervals). Here’s how to do that.

  1. From the main window, click the Settings icon at the bottom right of the UI. The Settings page is displayed.Telegram - Main Window
  2. Select Privacy and Security. The Privacy and Security page is displayed.Telegram - Settings
  3. Select Auto-Delete Messages. The Auto-Delete Messages page is displayed. You can select one of the predetermined intervals or select Set Custom Time… to set a different interval. I’ll select 1 day in this example.Telegram - Set Timer
  4. You’re prompted to confirm you want to enable auto-deletion. Click Enable Auto-Deletion.Telegram - Auto-Delete Popup
  5. Auto-deletion is now enabled. A confirmation message is displayed at the bottom of the screen.Telegram - Auto-Delete Enabled

Screenshots

In standard chats, screenshots are allowed with no restrictions. But in secret chats, screenshots are disabled for security. You’ll still get a screenshot of the conversation window, but it will be devoid of any messages.

Of course, nothing stops anyone from taking photographs (from another device) of Telegram conversations, but that’s much less convenient and requires more motivation. Disabling screenshots is far from bulletproof, but it’ll dissuade the less motivated, so it still has some value.

Telegram also notifies you when your recipient takes a screenshot (in both standard and secret chats). Here’s a photograph of a secret conversation in which both participants took screenshots.

Telegram - Pic of Screenshot

And here’s the resulting screenshot.

Telegram - Secret Chat Screenshot

Deleting your contacts

When you first launch Telegram, it requests your permission to access and upload your contacts list. This is optional. But if you disallow access, you’ll need to manually input the phone number of those you wish to contact through Telegram.

You can revoke access to your contacts at any time, however. When you revoke access, your contacts are deleted within a week. Here’s how to do that.

  1. From the main window, click the Settings icon at the bottom right of the UI. The Settings page is displayed.Telegram - Main Window
  2. Select Privacy and Security. The Privacy and Security page is displayed.Telegram - Settings
  3. Scroll down and select Data Settings. The Data Settings page is displayed.Telegram - Data Settings
  4. Set the Sync Contacts switch to Off and click Delete Synced Contacts. You’re prompted to confirm the deletion.Telegram - Disable Contacts Sync
  5. Click Delete. Your contacts list is marked for deletion and will be purged from Telegram’s servers within a week.Telegram - Confirm Delete Contacts
  6. A confirmation is displayed at the bottom of the screen.Telegram - Contacts Deleted

General privacy

Telegram lets you control what other people see about you within the app. These are things like:

  • Who can see your phone number
  • Who sees your online status
  • Who can send you voice messages, etc.

Here’s how to configure that.

  1. From the main window, click the Settings icon at the bottom right of the UI. The Settings page is displayed.Telegram - Main Window
  2. Select Privacy and Security. The Privacy and Security page is displayed. Under the PRIVACY header, we can restrict who sees what in Telegram.Telegram - Privacy & Security
  3. Selecting an entry (I selected Phone Number) provides three options for who can view your phone number (Everybody, My Contacts, or Nobody). There’s also an EXCEPTIONS section where you can add users with whom you never share your phone number and with whom you always share it.Telegram - Privacy Settings

Telegram vs. WhatsApp vs. Skype vs. Signal

All of the above apps claim to be secure and offer E2EE. So they should all just be equivalent, right? Wrong.

WhatsApp

WhatsApp, contrary to Telegram, actually encrypts all messages by default. But your messages’ metadata is not encrypted, and that gets collected by WhatsApp along with your message timestamps and your IP addresses. That data is also shared with and correlated with your Facebook data.

One of WhatsApp’s redeeming factors is that it uses the Signal protocol for its encryption, which is open-source and widely deemed the gold standard for conversation encryption. So I actually prefer What’sApp’s encryption protocol to Telegram’s.

However, one difference is that, if you switch phones, WhatsApp may take the liberty of renegotiating your encryption keys so that you can retrieve messages from your old phone. That’s convenient, but involves breaking Signal’s end-to-end encryption scheme somewhat. If someone’s phone is offline for any reason, WhatsApp could conceivably fake a new phone and private key to receive backed up messages and decrypt them.

Skype

Like Telegram, Skype does not E2E encrypt its conversations by default. Again, just like Telegram, you need to enable encryption on a chat-by-chat basis by sending an invitation for a private (unencrypted) conversation.

Once the recipient accepts the invitation, E2EE is applied to text and voice. However, Skype uses the Signal protocol for its encryption rather than Telegram’s homegrown protocol (MTProto). As mentioned above, I would be more inclined to trust the open-source Signal protocol than the proprietary MTProto protocol.

Signal

Signal is the best choice for encrypted communications. It uses its open-source encryption protocol (Signal protocol), and all messages, voice conversations, attachments, and even stickers are E2E encrypted by default.

Signal also keeps data collection to an absolute minimum, only collecting what’s absolutely necessary to provide its service. And because Signal only supports encrypted chats, nothing human-readable is ever stored on its servers. E2EE bars Signal from decrypting your conversations.

Signal is the clear winner here.

Do I recommend Telegram?

I do. However, I still feel that Signal is the better app for privacy and security. And the main reason for that (though not the only reason) is Telegram’s proprietary encryption protocol. I have no reason to believe that it’s flawed or insecure. The limited security reviews that were performed concluded that it was secure. However, because the protocol is proprietary, it can’t be continually reviewed. Security audits represent a snapshot in time. The assessment may well be valid when the audit is performed, but what about six months later? Or a year later? That’s the crux of the issue.

Telegram collects more data than Signal and supports unencrypted chats by default. And because you need to convert standard chats into secret chats, there’s a chance users could forget to do that and wrongly believe their conversations are secure. Perhaps a more secure option, if Telegram wants to keep supporting unencrypted chats, would be to make all chats secret by default while providing the option to convert them to standard.

But these somewhat minor gripes shouldn’t discourage you from using Telegram over old-fashioned text messages. Telegram is significantly more secure than SMS and non-E2EE messengers. And once you’ve made the jump to so-called secure messaging apps, you may want to graduate to Signal.

Nonetheless, Telegram provides users with an engaging messaging experience with higher levels of privacy and security than most. Despite having (minor) flaws, Telegram is recommended.

See also: