Принципы шифрования Telegram: почему мессенджер считают безопасным

Мессенджеры плотно вошли в нашу жизнь и активно используются в процессе жизнедеятельности. Связь между людьми, работа, развлечения, новости — это та не малая часть, быстрый доступ к которой предоставляют мессенджеры. Но можем ли мы быть уверены, что наши данные в сохранности, что наша переписка не станет достоянием общественности? Давайте разбираться.

Безопасность Telegram — это бренд

Telegram занимает 3-е место в мире по безопасности для использования.

Для обеспечения безопасности пользователей все данные шифруются определёнными алгоритмами.

Шифрование — это изменение информации с помощью определённого ключа подсказки, который известен получателям информации, но не известен третьим лицам.

В Telegram для этого существует протокол MTProto, который включает в себя сразу несколько алгоритмов шифрования. При авторизации, когда вы входите в свой логин и сервер вас узнает, используется алгоритм RSA. Для сообщений используется другой алгоритм, а именно DH. При помощи данных алгоритмов создаются ключи шифрования и данные шифруются.

Алгоритм RSA

Криптографический алгоритм основывающийся на вычислительной сложности задачи факторизации больших целых чисел. В процессе шифрования создаются два ключа: открытый и закрытый.

Открытый ключ необходим для того, чтобы зашифровать сообщение, закрытый — чтобы расшифровать.

Открытый ключ:

  1. выбирается 2 числа, допустим p=3 и q=7;
  2. вычисляется их модуль (n) 3*7=21;
  3. далее вычисляется функция Эйлера (f) (3-1)*(7-1)=12;
  4. выбираем число (е), которое отвечает условиям: простое, меньше чем f, взаимно простое с f. У нас подходит 3 числа 5, 7 и 11, возьмём 5;
  5. теперь у нас есть числа {e;n} которые и являются открытым ключом, которые мы можем отослать для шифровки.

Создаём закрытый ключ:

  1. нужно вычислить число d обратное по модулю f, то есть остаток от деления о модулю f произведения d*e равняется 1. (d*5)%12=1. Подходит несколько чисел, возьмём 17. В итоге получаем секретный ключ {d;n} помощью которого будем расшифровывать информацию.

Имея ключи {e;n} — шифруем. Возводим сообщение (число, которое мы хотим передать) в степень е по модулю n, результат и будет зашифрованным числом. Это число и отправляется как зашифрованное сообщение.

Расшифровка {d;n} — получаем зашифрованное число и возвожу его в степень d по модулю n. Результат совпадёт с зашифрованным ключом.

Чтобы шифровать буквы, каждой букве причисляется просто порядковый номер в алфавите.

Основной уязвимостью данного алгоритма является то, что по длинным сообщениям можно подобрать шифр без использования алгоритмов, потому что каждая буква шифруется по одному и тому же принципу. Собственно по этому данный алгоритм и применяется при авторизации, где объем символов не велик.

Протокол Диффи-Хеллмана — ДН

Протокол Диффи-Хеллмана — протокол позволяет получить общий секретный ключ, который и будет использоваться для шифрования.

Работает он таким образом:

  1. 2 сторонам известны 2 числа p и q, которые не являются секретными;
  2. генерируются ещё 2 числа: a — с одной стороны и b — с другой (эти числа секретные и не передаются друг другу);
  3. обе стороны вычисляют остаток от деления по имеющимся у них данным по формуле:

A=pa mod q и B=pb mod q

Числа А и В пересылаются между сторонами и производятся преобразования вида:

Ab mod q иBamod

У обеих сторон получается число q pabmodp, которое и является ключом для шифрования. Таким образом обе стороны получают ключ, при этом не передавая данные для расшифровки.

Хоть данный метод передачи и считается довольно безопасным, он имеет огромную уязвимость, связанную с каналом связи. Таким образом, если кто-то захочет прочесть сообщение, у него ничего не выйдет, однако, если перехватить сигнал и стать центральной ячейкой между 2 отправителями, по известной схеме можно просто дешифровать полученную информацию и зашифровав наново отправить дальше, получая полный доступ.

Типы чатов в Telegram

Рассмотрев методы шифрования всё не кажется таким уж безопасным, но это не совсем так. Telegram имеет небольшое разделение типов своих чатов: секретные и обычные. И именно в этом и кроется хитрость.

Обычный чат

Работает по принципу человек-сервер-человек, это значит, что данные шифруются, отправляются одним человеком на сервер, там сохраняются и пересылаются дальше. Однако в таком случае сервер может выступать (и скорее всего выступает) перехватчиком сообщений, о котором мы говорили в уязвимостях.

Секретный чат

Работает по такому же принципу, за исключением того, что данные попадают не на сервер, не в облачные хранилища, а хранятся только на устройствах отправителя и получателя, исключая таким образом вмешательство третьей стороны. Именно по этому на все требования властей предоставить ключи шифрования, этого сделать физически не возможно.

Казалось бы, зачем нужен тогда обычный чат, но есть нюанс. Доступ к сообщениям из обычного чата вы можете получить в любое время, на любом устройстве, если пройдёте на нем авторизацию, потому что данные подтянутся с сервера и вы сможете восстановить переписку. С секретным чатом так не выйдет: переписка хранится в физическом виде на устройстве и удаление информации с устройства удалит её безвозвратно. Так же уязвимость устройства может являться уязвимостью чата, так как доступ к смартфону или компьютеру даёт доступ ко всем его файлам, в том числе чатам.

Другие способы защиты мессенджера

Однако не только шифрованием Telegram защищает своих пользователей. К сожалению протокол MTProto выдает в общем объеме трафика именно трафик мессенджера. Так многие спец службы определяли в какое время и кто обменивается сообщениями и могли взламывать незащищённые чаты.

Недавно стало известно, что трафик Telegram маскируется под протокол HTTPS, что значительно усложняет выделять его из общего трафика, тем самым затрудняя доступ к информации. К сожалению, по длине пакетов всё же можно выявить трафик Telegram, но разработчики работают над этой проблемой, добавляя случайные байты в пакеты данных и изменяя префиксы.

Автор: Ян Луцкий, аналитик Freedman Сlub Crypto News

0 0 голоса
Рейтинг статьи

Эд Мицкевич

Поддерживаю Freedman. Club в процессе популяризации криптовалют, считаю важными основные принципы децентрализации, свободы и ответственности выбора.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x