Based on previous questions it seems to be somewhat ambiguous, so does Telegram depend on a CA root key pair for the intermediate CAs which issue certificates to newly registering members? I highly doubt a PGP-like system was implemented, but just to confirm this I would be interested to know what Telegram relies on to ensure that the public keys are not forged.


As I understand it, the answer is no, there are no CAs involved in user authentication. Users generate a public/private key pair and provide the public portion to the server, but there is no certificate or signing operation in response. Instead, the server probably stores a fingerprint of the public key (or perhaps the whole key, I haven't looked at a server implementation) and uses challenges signed by the client to verify the key. The authorization API only speaks of a key id. Telegram's own FAQ only speaks of nonces:

Various secrets (nonce, server_nonce, new_nonce) exchanged during key generation guarantee that the DH-key can only be obtained by the instance that initiated the exchange.

This is neither like the CA system used for X.509 nor the OpenPGP web of trust, but is instead a highly-centralized system that assumes a single operator for the clients. There's no need for CAs here -- Telegram is the only trusted third party involved.

(Clients do verify the server by a certificate presented via TLS, but this certificated is pinned in the official clients, so the CA signature is not the only thing verifying the server identity to the client.)

  • Good answer. This still disturbes me, however, since I can still see how if a government pressured Telegram they could control the network for not-yet-connected users (users who do not yet know the public key of their friend). By CA I did mean a personalized root pair (which would still leave Telegram as the only trusted third-party). Thanks again! Jan 27 '18 at 23:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.