Cryptographic Weaknesses in Telegram's MTProto
mtpsym.github.io
mtpsym.github.io
"In particular, Telegram encrypts acknowledgement messages, i.e. messages that encode that a previous message was indeed received, but the way it handles the re-sending of unacknowledged messages leaks whether such an acknowledgement was sent and received. "
That ^ bit is indeed of interest. Having this ability could be useful in two ways that immediately spring to mind if I were a 'james bond villain'
I am currently taking a skim through the paper which for the curious is available at https://mtpsym.github.io/paper.pdf (52 pages)
[Edit] Will leave it to those better qualified regarding the math but uhhmm yeah, A good summary is yes, there were somethings that could have been exploited and were patched by the Telegram team and a bug bounty awarded (as noted in the article). The thing I found of interest bit turned out indeed to be in the 'highly theoretical' realm. As in "only on a wet Wednesday when the wind is blowing from the west at a precise angle way"
> We also show how an attacker can mount an “attacker-in-the-middle” attack on the initial key negotiation between the client and the server. This allows an attacker to impersonate the server to the client, allowing to break confidentiality and integrity of the communication. Luckily, this attack is also quite difficult to carry out, as it requires sending billions of messages to a Telegram server within minutes.
How do you fix this in a messaging system? What do you do in the common case where a message just gets lost? You can wait for a while for the message to show up but you can't wait forever without permanently breaking the system.
So - in a theoretical situation you are looking at what is known as a re-play attack.
Ping the same message to all cell numbers in a block (discovering who does and does not have Telegram installed)
Once you have that, ping a message to a group of interest that has an invite only policy.
Ping that message to all in that group of numbers to see who has read/received that message. You now have a list of active in that group list of numbers.
Once you have that - delay some messages so they appear out of order to some (but not all) users in that group.
Create FUD re security (omg, did we just get hacked??? Coz messages are turning up crazy out of order aka WTF?)
Target group falls back to fall-back comms method.
Profit.