MTProto. Telegram-en protokoloa

Telegram, Whatsapp-aren alternatiba nagusiena, segurua dena eta ez denaren garaian.

MTProto, Mobile Protocol ingelesez deritzona, esplikatu nahi dizuet. Suposatu mezu bat bidali nahi diogula gure lagunen bati (honek ere Telegram aplikazioa eduki beharko du).

Mezua bidali aurretik, mezua zifratu egiten da eta honi, 64 bitetako gako identifikatzaile bat gehitzen zaio buruan. Gako identifikatzaile honek, baimen gako bakarra eta mezu gakoa identifikatu ahal izango ditu zerbitzariarentzat edo erabiltzailearentzat.

Erabiltzaile gako batek eta mezu gako batek, uneko gako bat eta hastapen bektore bat (IV) definitzen ditu (biak 256 bitekoak). Honela, mezua zifra daiteke AES 256 enkriptazioa erabilita. Hala ere, mezuaren hasierako datu aldakorrek (sesioa, mezuaren identifikatzailea, sekuentzia zenbakia,…) mezuaren gakoan eragina izan dezakete (eta honela AES 256 eta IV bektorean ere bai).

 

 

MTProto enkriptazio prozesua
MTProto enkriptazio prozesua

Hemen enkriptazio sistemaren eremu batzuk.

  • AuthKey: 64 biteko SHA1 gakoa, mezua zifratzeko zein gako partikular erabili den adierazteko.
  • Salt: ausazko 64 bit, zerbitzariari eginiko eskaera bakoitzeko alda daitezke. Reply motatako erasoak saihetsi daitezke.
  • Session_id: bezeroak sortutako 64 bit instantzia desberdinak identifikatzeko. Sesioak eta gako identifikatzaileak, aplikazioaren instantzia bat osatzen dute.
  • Payload. 24 bytetako burua. 16 byte gako identifikatzailearentzat eta 16 byte mezu gakoarentzat. Mezua jasotzen duenak, payload guztia egiaztatzen du.
  • Padding: byte betegarriak.