← projects
Telegram logo

Telegram

Standard

A cross-platform cloud-based messaging service launched in 2013 by Pavel Durov. Telegram uses its proprietary MTProto protocol with server-client encryption for regular chats and optional end-to-end encryption for 'Secret Chats'. Client apps are open source, but server code is proprietary. As of 2024, Telegram has over 950 million monthly active users.

README

Telegram

Description

Telegram is a cross-platform cloud-based messaging service launched in 2013 by Pavel and Nikolai Durov. With over 950 million monthly active users (2024), it's one of the world's most popular messaging platforms.

Important Privacy Note: Unlike Signal, Telegram does NOT use end-to-end encryption by default. Regular chats use server-client encryption (MTProto), meaning Telegram servers can theoretically access message content. End-to-end encryption is only available through the optional "Secret Chats" feature, which is not available for group chats.

Links

  • Website: https://telegram.org
  • Documentation: https://core.telegram.org
  • GitHub (Desktop): https://github.com/telegramdesktop
  • GitHub (TDLib): https://github.com/tdlib

Category

Privacy Infrastructure (Messaging - Partial E2E)

Ecosystem

Non-blockchain (formerly connected to TON)

Key Features

Communication

  • Cloud Sync: Messages synced across devices
  • Large Groups: Up to 200,000 members
  • Channels: Broadcast to unlimited subscribers
  • File Sharing: Up to 2GB per file
  • Bots: Extensive bot platform

Privacy Features

  • Secret Chats: Optional E2E encryption (not default)
  • Self-Destructing Messages: Timed deletion
  • Hidden Phone Number: With Premium
  • MTProto 2.0: Server-client encryption

Encryption Status

| Chat Type | Encryption | E2E | |-----------|------------|-----| | Regular Chat | MTProto (server-client) | NO | | Group Chat | MTProto (server-client) | NO | | Secret Chat | MTProto E2E | YES | | Voice Call | E2E | YES |

GitHub Metrics

| Repository | Stars | Language | |------------|-------|----------| | tdesktop | 29,577 | C++ | | libtgvoip | 91 | C++ |

Open Source Status

  • Clients: Open source (GPL v2/v3)
  • TDLib: Cross-platform library (Boost 1.0)
  • Server: Closed source
  • Protocol: Documented but proprietary

Security Concerns

  1. No Default E2E: Regular chats readable by Telegram
  2. Proprietary Protocol: MTProto not standard cryptography
  3. Closed Server: Cannot verify server-side claims
  4. Metadata: Telegram collects significant metadata
  5. Academic Criticism: Cryptographic weaknesses identified

Founder

Pavel Durov - Also founded VKontakte (Russian social network)


Research completed with Constitutional Research v2.0.0 Last updated: 2026-01-19

Note: For privacy-critical communications, Signal is generally recommended over Telegram due to default E2E encryption and open protocol.

OSINT Assessment

Telegram OPSEC & Vulnerability Assessment

Project: Telegram Messenger Assessment Date: 2026-01-19 Methodology: Constitutional Research Framework v3 Confidence Score: 0.91


⚠️ CRITICAL FINDINGS

| Finding | Severity | Status | |---------|----------|--------| | 4 CVEs detected | HIGH | Unpatched | | nginx 1.18.0 (EOL) | HIGH | Outdated | | No default E2E encryption | MEDIUM | By design | | Closed-source server | MEDIUM | Cannot audit |


Executive Summary

Telegram's infrastructure shows concerning security posture with 4 known CVEs detected on their main server and an end-of-life nginx version. Unlike Signal or ProtonMail, Telegram does not provide end-to-end encryption by default - only opt-in "Secret Chats" are E2E encrypted. The server remains closed-source, preventing independent security audits.


Infrastructure Overview

DNS & Domain Configuration

| Attribute | Value | |-----------|-------| | Primary Domain | telegram.org | | DNS Provider | Google Domains | | Nameservers | ns-cloud-b1-4.googledomains.com |

IP Infrastructure

| Service | Subdomain | IP | |---------|-----------|-----| | Main Website | telegram.org | 149.154.167.99 | | API | api.telegram.org | 149.154.166.110 | | Web Client | web.telegram.org | 149.154.167.99 | | Core Docs | core.telegram.org | 149.154.167.99 |


Vulnerability Analysis

Shodan Scan Results (149.154.167.99)

{
  "cpes": ["cpe:/a:f5:nginx:1.18.0"],
  "tags": ["eol-product"],
  "vulns": [
    "CVE-2023-44487",
    "CVE-2025-23419",
    "CVE-2021-23017",
    "CVE-2021-3618"
  ]
}

CVE Details

| CVE | Name | Severity | Description | |-----|------|----------|-------------| | CVE-2023-44487 | HTTP/2 Rapid Reset | HIGH | DDoS vulnerability allowing resource exhaustion | | CVE-2025-23419 | (Recent) | TBD | Recently disclosed vulnerability | | CVE-2021-23017 | DNS Resolver | HIGH | nginx DNS response processing vulnerability | | CVE-2021-3618 | ALPACA | MEDIUM | TLS confusion attack on nginx |

End-of-Life Warning

| Component | Version | Status | |-----------|---------|--------| | nginx | 1.18.0 | ⚠️ End of Life |

nginx 1.18.0 was released in April 2020 and is no longer receiving security updates. Current stable is nginx 1.25.x.


Security Headers Analysis

telegram.org

| Header | Value | Status | |--------|-------|--------| | Server | nginx/1.18.0 | ⚠️ Version exposed | | Strict-Transport-Security | max-age=31536000; includeSubDomains; preload | ✅ | | X-Frame-Options | SAMEORIGIN | ✅ | | Content-Security-Policy | Not set | ❌ | | X-Content-Type-Options | Not set | ❌ | | Referrer-Policy | Not set | ❌ |

Missing critical headers increase attack surface.


Encryption Model Comparison

| Feature | Telegram | Signal | ProtonMail | |---------|----------|--------|------------| | Default E2E | ❌ No | ✅ Yes | ✅ Yes | | Group E2E | ❌ No | ✅ Yes | ✅ Yes | | Server-side encryption | ✅ Default | N/A | N/A | | Can read messages | ✅ Yes* | ❌ No | ❌ No | | Open-source server | ❌ No | ✅ Yes | ✅ Yes |

*Telegram can read regular chats; only "Secret Chats" are E2E encrypted.

Telegram's Encryption Model

Regular Chats:     [User] → [Telegram Server] → [User]
                           ↑ Telegram can read

Secret Chats:      [User] ←──────E2E──────→ [User]
                           ↑ Telegram cannot read

Critical: Most users don't enable Secret Chats, meaning Telegram has access to their messages.


Privacy Concerns

Data Telegram Has Access To

| Data Type | Regular Chats | Secret Chats | |-----------|---------------|--------------| | Message content | ✅ | ❌ | | Metadata (who, when) | ✅ | ✅ | | Phone number | ✅ | ✅ | | Contact list | ✅ | ✅ | | IP addresses | ✅ | ✅ | | Group memberships | ✅ | N/A |

Phone Number Requirement

  • Registration requires phone number
  • Creates linkage between identity and account
  • Can be mitigated with secondary numbers but not eliminated

GitHub Organization Analysis

| Metric | Value | |--------|-------| | Organization | telegramdesktop | | Public Repos | 20 | | Created | December 5, 2013 |

Open Source Status

| Component | Status | |-----------|--------| | Desktop Client | ✅ Open source | | Android Client | ⚠️ Partially open | | iOS Client | ⚠️ Partially open | | Server | ❌ Closed source |

The server being closed-source means:

  • Cannot verify encryption implementation
  • Cannot audit for backdoors
  • Must trust Telegram's claims

Subdomain Analysis

Legitimate Services

| Subdomain | Purpose | |-----------|---------| | api.telegram.org | Bot API | | web.telegram.org | Web client | | core.telegram.org | Developer docs | | osx.telegram.org | macOS downloads | | proxy.telegram.org | Proxy configuration |

Mail Infrastructure

| Subdomain | Purpose | |-----------|---------| | mx1-mx110.telegram.org | Mail exchangers | | mail.telegram.org | Mail service |

Suspicious Patterns Detected

Several double-dash domains appeared in certificate transparency logs:

  • chinese--telegram.org
  • china--telegram.org
  • chinas--telegram.org

These are likely phishing domains, not official Telegram services.


Risk Assessment Summary

Critical Issues

| Issue | Impact | Recommendation | |-------|--------|----------------| | CVE-2023-44487 | DDoS vulnerability | Patch immediately | | CVE-2021-23017 | DNS resolver exploit | Patch immediately | | nginx EOL | No security updates | Upgrade nginx | | No default E2E | Messages readable by Telegram | Use Secret Chats |

Security Posture Rating

| Category | Rating | Notes | |----------|--------|-------| | Infrastructure Security | ⚠️ POOR | Multiple CVEs, EOL software | | Privacy (Regular Chats) | ⚠️ POOR | Server can read messages | | Privacy (Secret Chats) | ✅ GOOD | True E2E encryption | | Transparency | ⚠️ POOR | Closed-source server | | Security Headers | ⚠️ PARTIAL | Missing CSP, X-Content-Type-Options |


Potential Improvements

For Telegram (Urgent)

  1. CRITICAL: Upgrade nginx to current stable version
  2. CRITICAL: Patch all CVEs - 4 known vulnerabilities
  3. Add Content-Security-Policy header
  4. Add X-Content-Type-Options header
  5. Remove server version from headers
  6. Consider open-sourcing server code
  7. Consider E2E encryption by default

For Users

  1. Use Secret Chats for sensitive conversations
  2. Do not trust group chats for private information
  3. Consider using Signal or ProtonMail for truly private communication
  4. Use Telegram for convenience, not security
  5. Be aware that Telegram can read your regular messages

Comparison: Privacy Messengers

| Feature | Signal | Telegram | WhatsApp | |---------|--------|----------|----------| | CVEs on main server | 0 | 4 | Unknown | | Default E2E | ✅ | ❌ | ✅ | | Open-source server | ✅ | ❌ | ❌ | | HSTS Preload | ✅ | ✅ | ✅ | | nginx version | N/A | EOL | Unknown | | Phone required | ✅ | ✅ | ✅ |

Conclusion: For privacy-sensitive communications, Signal is significantly more secure than Telegram.


Methodology & Sources

This assessment was conducted using:

  • crt.sh - Certificate transparency enumeration
  • Shodan InternetDB - Vulnerability scanning
  • DNS resolution - Infrastructure mapping
  • HTTP header analysis - Security posture
  • GitHub API - Repository analysis
  • CVE databases - Vulnerability research

Assessment conducted in accordance with Constitutional Research Framework principles.


Report generated: 2026-01-19 Next review recommended: 2026-02-19 (accelerated due to CVE findings)

Repository Analysis

Code Review: Telegram

Last Updated: 2026-01-19


Open Source Status

Open Source Components

| Component | License | Repository | |-----------|---------|------------| | Desktop Client | GPL v2 | telegramdesktop/tdesktop | | Android Client | GPL v2 | TelegramMessenger (various) | | iOS Client | GPL v2 | TelegramMessenger (various) | | TDLib | Boost 1.0 | tdlib/td | | Web Clients | GPL v3 | Various |

Closed Source

  • Server infrastructure
  • Backend code
  • MTProto server implementation

Key Repository: tdesktop

URL: https://github.com/telegramdesktop/tdesktop Stars: 29,577 Language: C++ License: GPL v2

Build Verification

Telegram claims apps can be verified as built from GitHub source through reproducible builds.


TDLib

Cross-platform library for building Telegram clients:

  • License: Boost Software License 1.0
  • Languages: C++ with bindings for many languages
  • Purpose: Enables third-party client development

Protocol Documentation

MTProto is documented at core.telegram.org but is:

  • Proprietary (not an open standard)
  • Developed internally
  • Not independently standardized

Actual Code Analysis (January 2026)

Analysis performed via direct code inspection on cloned tdesktop repository.

Cryptographic Implementation Analysis

Critical File: Telegram/SourceFiles/mtproto/mtproto_auth_key.cpp

SHA-1 Usage (DEPRECATED for cryptographic use)

void AuthKey::prepareAES_oldmtp(const MTPint128 &msgKey, MTPint256 &aesKey, MTPint256 &aesIV, bool send) const {
    bytes::array<20> sha1_a, sha1_b, sha1_c, sha1_d;
    // ...
    openssl::Sha1To(sha1_a, data_a);
    openssl::Sha1To(sha1_b, data_b);
    openssl::Sha1To(sha1_c, data_c);
    openssl::Sha1To(sha1_d, data_d);
    // Key derived by concatenating SHA1 hash fragments
    memcpy(key, sha1_a.data(), 8);
    memcpy(key + 8, sha1_b.data() + 8, 12);
    // ...
}

SHA-1 Instances in MTProto:

| File | SHA1 Calls | Purpose | |------|------------|---------| | mtproto_auth_key.cpp | 5 | AES key derivation, key ID generation | | mtproto_dc_key_creator.cpp | 8 | DC key creation | | mtproto_rsa_public_key.cpp | 1 | RSA fingerprinting | | mtproto_dc_key_binder.cpp | 1 | Key binding |

Total: 29+ SHA-1 usages across MTProto codebase (many in cryptographically critical paths)

Contrast: Signal uses SHA-256 exclusively in core protocol; SHA-1 only available as generic utility.

Memory Safety Analysis

Language: C++ (manual memory management required)

| Metric | Count | Risk Level | |--------|-------|------------| | memcpy in MTProto | 69 | Medium-High | | malloc/free patterns | Present | Medium | | Manual offset calculations | Extensive | Medium |

Example of Manual Memory Operations (mtproto_auth_key.cpp:69-75):

memcpy(key, sha1_a.data(), 8);
memcpy(key + 8, sha1_b.data() + 8, 12);
memcpy(key + 8 + 12, sha1_c.data() + 4, 12);
memcpy(iv, sha1_a.data() + 8, 12);
memcpy(iv + 12, sha1_b.data(), 8);
memcpy(iv + 12 + 8, sha1_c.data() + 16, 4);
memcpy(iv + 12 + 8 + 4, sha1_d.data(), 8);

Risk: Off-by-one errors or buffer overflows possible if any offset calculations are incorrect.

Contrast: Signal's Rust implementation has zero unsafe blocks in protocol code; compiler enforces memory safety.

Key Derivation Comparison

| Aspect | Telegram MTProto | Signal Protocol | |--------|-----------------|-----------------| | Key Derivation | Custom (SHA1/SHA256 concat) | HKDF-SHA256 (RFC 5869) | | Hash Function | SHA-1 in legacy paths | SHA-256 only | | Standard Compliance | Proprietary | RFC-compliant | | Post-Quantum | None | CRYSTALS-KYBER-1024 |

E2E Encryption Coverage

| Feature | E2E Status | Notes | |---------|------------|-------| | 1:1 Cloud Chats | NOT E2E | Server can read | | Group Chats | NOT E2E | Server can read | | Secret Chats | E2E (opt-in) | Manual activation required | | Voice Calls | E2E | | | Video Calls | E2E | | | File Transfers | NOT E2E | Unless in Secret Chat |

Critical Finding: Regular Telegram chats are NOT end-to-end encrypted. Messages are encrypted client-to-server but Telegram servers can read message content.

Contrast: Signal encrypts ALL messages end-to-end by default.

Static Analysis Results

$ semgrep --config auto Telegram/SourceFiles/mtproto/

| Finding | Count | |---------|-------| | Default ruleset matches | 0 |

Note: Semgrep default rules may not cover custom cryptographic implementations. Manual review identified concerns above.

Academic Security Research

Royal Holloway/ETH Zurich (2021): Published analysis found MTProto 2.0:

  • "Fell short of providing key indistinguishability"
  • Timing side-channel vulnerabilities
  • Reordering attack possible under certain conditions

CVEs:

  • CVE-2024-7014 ("EvilVideo"): Malicious video could execute code
  • Multiple XSS vulnerabilities in web clients

Comparison Summary: Telegram vs Signal

| Aspect | Telegram | Signal | |--------|----------|--------| | Protocol | Custom MTProto | Signal Protocol (open standard) | | Hash Functions | SHA-1 in critical paths | SHA-256 only | | Key Derivation | Custom concatenation | HKDF (RFC 5869) | | Post-Quantum | None | CRYSTALS-KYBER-1024 | | Memory Safety | C++ (manual) | Rust (compiler-enforced) | | E2E Default | No (opt-in Secret Chats) | Yes (all messages) | | Server Code | Closed source | Open source | | Formal Verification | None published | Published F* proofs |


Sources

| Source | Type | |--------|------| | GitHub - tdesktop | Official | | Telegram Apps | Official |


Constitutional Research Note: While Telegram's clients are open source, the proprietary server and protocol mean security claims cannot be fully verified.

Team Research

Team Analysis: Telegram

Last Updated: 2026-01-19


Leadership

Pavel Durov

Role: Founder, CEO

Background:

  • Founded VKontakte (VK), largest Russian social network
  • Left Russia in 2014 due to government pressure
  • Self-described "digital nomad"
  • Known for privacy advocacy

Nikolai Durov

Role: Co-founder, Technical Lead

Background:

  • Pavel's brother
  • Chief architect of Telegram
  • Developed MTProto protocol
  • Mathematics background

Company Structure

  • Headquarters: Dubai, UAE (moved from various locations)
  • Legal Entity: Various jurisdictions
  • Employees: Relatively small team for user base
  • Funding: Self-funded by Durov + TON ICO (returned)

Privacy Stance

Telegram has historically:

  • Resisted government data requests
  • Left countries over encryption disputes
  • Advocated for user privacy
  • Refused to build backdoors

Caveats

  • Privacy advocacy ≠ E2E encryption by default
  • Company can still access regular chat content
  • Relies on trust in leadership

Sources

| Source | Type | |--------|------| | Wikipedia - Pavel Durov | Reference | | Telegram FAQ | Official |


Constitutional Research Note: The Durov brothers' track record includes leaving Russia over privacy demands, suggesting genuine commitment to user protection. However, the technical architecture (no default E2E) limits what this commitment can guarantee.

Security Analysis

Security Analysis: Telegram

Last Updated: 2026-01-19


Critical Security Notice

Telegram does NOT provide end-to-end encryption by default. Regular chats, including all group chats, use server-client encryption only. This means Telegram's servers can access message content.


Encryption Model

Regular Chats (Default)

  • Protocol: MTProto 2.0
  • Type: Server-client encryption
  • E2E: NO
  • Telegram Access: YES - servers can read messages

Secret Chats (Optional)

  • Protocol: MTProto E2E
  • Type: End-to-end encryption
  • E2E: YES
  • Telegram Access: NO
  • Limitations: Not available for groups, device-specific

MTProto Protocol

Design

  • Proprietary protocol developed by Telegram
  • Not based on established standards (unlike Signal Protocol)
  • Documentation available but not open standard

Academic Analysis

Security researchers have identified concerns:

  • "Technically trivial to more advanced theoretical" weaknesses
  • Not using established cryptographic patterns
  • Custom constructions instead of proven primitives

Mitigating Factors

  • For most users, "immediate risk is low"
  • MTProto 2.0 addressed some earlier issues
  • Perfect Forward Secrecy supported

What Telegram CAN See

In regular chats, Telegram has access to:

  • Message content
  • Sender/recipient
  • Timestamps
  • Media files
  • Group memberships
  • Contact lists (if synced)

What Telegram Claims

  • Messages stored encrypted on servers
  • Distributed across multiple jurisdictions
  • No advertising-based business model
  • Resisted government requests (historically)

Verification

  • Cannot independently verify server claims
  • Server code is closed source
  • Requires trust in Telegram

Comparison to Signal

| Feature | Telegram | Signal | |---------|----------|--------| | Default E2E | NO | YES | | Group E2E | NO | YES | | Protocol | Proprietary | Open standard | | Server Code | Closed | Open | | Metadata | Collected | Minimized |


Recommendations

Use Telegram For:

  • Large group coordination
  • Channels and broadcasts
  • File sharing
  • Public communities

Do NOT Use Telegram For:

  • Privacy-critical communications
  • Sensitive personal matters
  • Situations requiring E2E by default
  • Adversarial threat models

If You Must Use Telegram Privately:

  1. Use Secret Chats exclusively
  2. Enable self-destruct timers
  3. Verify encryption keys
  4. Remember: no group E2E available

Sources

| Source | Type | |--------|------| | MTProto Documentation | Official | | Security Analysis | Academic | | Wikipedia | Reference |


Constitutional Research Note: Telegram's security model is fundamentally different from Signal. The lack of default E2E encryption is a significant limitation for privacy-focused use cases. Users should understand that regular Telegram chats are NOT private from Telegram itself.

Explore Related Projects

Click nodes to explore connections. Drag to reposition.