Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

[quote]

In the light of these results, we can affirm that MTProto 2.0 does not present any logical flaw. Vulnerabilities can arise only from the cryptographic primitives, from implementation flaws (e.g. insufficient checks), from side-channels exfiltration (such as timing or traffic analysis), or from incorrect user behaviour. Hence, these are the aspects which deserve further investigation and particular care in the implementation and use of this protocol.

The basic encryption primitive of MTProto 2.0 is assumed to be a perfect authenticated encryption scheme (IND-CCA and INT-CTXT). Although no attack on this scheme is known to date, these properties need to be formally proved in order to deem MTProto 2.0 definitely secure. This proof cannot be done in a symbolic model like ProVerif’s, but it can be achieved in a computational model, using tools like CryptoVerif or EasyCrypt [5, 2], which we leave to future work. However, even in the very unlikely case that a flaw is found in the encryption scheme, the results in this paper would be still valid: the protocol could be used just by replacing the encryption scheme, and no other changes would be required.

[/quote]

This analysis the protocol, not the cryptographic primitives, which was what get criticized



Another interesting quote:

“ Following this approach, in our model we consider the message encryption scheme used in MTProto 2.0 as a robust authenticated-encryption scheme, abstracting from its actual implementation.”

So yeah, they’re abstracting away the AE part of it, which may not be an accurate reflection of what telegram uses.

That being said, they’re aware this is a strong assumption:

“ Namely, the only assumption we make is that the latter is an authenticated encryption scheme, guaranteeing both integrity of ciphertext (INT-CTXT) and indistinguishability of chosen plaintext (IND-CPA). These properties are difficult to prove in a symbolic model like ProVerif’s, but can be proved in a computational model, e.g. using tools like CryptoVerif or EasyCrypt [5, 2]. This assumption may appear strong, especially considering that Telegram has been widely criticized for its design choices (such as ad hoc cryptographic primitives and an unusual encryption mode), and vulnerabilities have been found in MTProto v1.0 (but actually, none of these attacks have been replicated on the new MTProto 2.0). Still, proving the logical correctness of the protocol under a fairly general threat model is very important because, if a weakness in the protocol exists, it must be looked for in the “lower-level” part of the protocol, among the chosen cryptographic functions and other implementation choices.”


Apart from choosing RSA over elliptical curves, which primitive in particular is the problem? Otherwise under the hood it's AES256-IGE and SHA256?

The key exchange is a strange choice for a modern greenfields project but hardly that noteworthy.


As far as I can tell, AES256-IGE is a made up mode used only by Telegram. That’s far from being a standard choice. I don’t know what authenticated encryption scheme they build on it, but on a very brief look, it doesn’t look authenticated at all.

See: https://mgp25.com/AESIGE/


> made up mode

It's was implemented in OpenSSL 15 years ago.

https://github.com/openssl/openssl/blob/master/crypto/aes/ae...


AES256-IGE is a good choice since it disappeared from papers and suspected to be superior than other modes.

Papers are literally disappeared in first month of public Telegram release.

Source: Myself working at first months after public Telegram release on Android client.


How is disappearance from papers a good thing? I found a patent (!):

https://patents.google.com/patent/US6973187B2/en

It’s written in patent-ese, but it looks like a mediocre attempt at an efficient authenticated encryption scheme, and it doesn’t appear to use the building blocks of modern schemes. I can’t even find a coherent description of what the “non-cryptographic manipulation detection code” is or what properties are required.

Meanwhile, the Telegram protocol is new. Surely it should use a standard AEAD with a security proof.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: