
Telegram
StandardA 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
- No Default E2E: Regular chats readable by Telegram
- Proprietary Protocol: MTProto not standard cryptography
- Closed Server: Cannot verify server-side claims
- Metadata: Telegram collects significant metadata
- 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.orgchina--telegram.orgchinas--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)
- CRITICAL: Upgrade nginx to current stable version
- CRITICAL: Patch all CVEs - 4 known vulnerabilities
- Add Content-Security-Policy header
- Add X-Content-Type-Options header
- Remove server version from headers
- Consider open-sourcing server code
- Consider E2E encryption by default
For Users
- Use Secret Chats for sensitive conversations
- Do not trust group chats for private information
- Consider using Signal or ProtonMail for truly private communication
- Use Telegram for convenience, not security
- 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:
- Use Secret Chats exclusively
- Enable self-destruct timers
- Verify encryption keys
- 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.