Найти тему
О науке

О телеграмме

20 марта РНК уведомил теллеграм о необходимости в 15 дневный срок предоставить ключи для дешифрования сообщения пользователь. 2 апреля телеграмм опубликовал официальный ответ,в котором сообщалось,что предоставить ключи дешифровки технически невозможно.После этого весь интернет начал бухтеть-"уу тупые фсбшники учите матчасть".Но что если тупые мы и что если требования фсб вполне исполнимы и ситуация вовсе не так однозначна,давайте попробуем в этом разобраться.предлагаю сразу исключить из обсуждения моральную составляющую этого вопроса,хорошо или нет читать чужую переписку,соответствует это конституции или все ради безопасности. Так же нам придется принять за аксиому то,что протоколы шифрования телеграмма описаны на сайте в точности как они работают в телефоне каждого из нас. кроме того сразу выкинем из головы теорию заговора,что мол телеграмм был изначально создан российскими спец службами а роль Павла Дурова бежавшего под натиском этих самых спец служб,всего лишь роль.Отлично теперь наш мозг чист от всякого рода предрассудков и мы определили начальные условия,так давайте погрузимся в матчасть и кто же прав,а кто строит из себя дурочка.Начнем с того,что для шифрования телеграмм использует собственный криптографический протокол MTProto в основе которого лежит комбинация симметричного алгоритма шифрования AES,протоколы Диффи-Хеллмана и ряда хэш функций.Самое главное что нам сегодня понадобится-протокол Диффи-Хеллмана,который позволяет двум или более сторонам,получить общий секретный ключ используя при этом незащищенный при этом канал связи.Далее этот секретный ключ будет использовать для шифрования и дешифрования сообщения,но как же происходит генерация и тайная пересылка этого ключа,все просто изначально на вашем устройстве генерируется случайное очень большое число "a" и еще пара других чисел "g" и "p" далее используя все эти три числа генерируется еще одно число "A".Затем числа "g" ,"p" и А пересылаются 2 собеседнику,он с помощью уже своего большого случайного числа "b" и полученный от вас "g" и "p" генерирует число "B" и отправляет его вам.Затем на устройствах каждого собеседника независимо генерируется общее секретное число K,оно одинаково для вас и вашего собеседника,только вы для генерации его используете свое секретное число "a" и полученное "B",а собеседник "b" и полученное от вас "A".Таким образом и это важно запомнить,что после завершения данной процедуры,каждый собеседник получает общее секретное число,которое уже можно использовать для шифрования и дешифрования. Так же при реализации протокола Диффи-Хеллмана по каналом связи передаются числа "g","p","A","B" в то время ваши секретные числа a и b,а так же общее секретное число всегда остаются в памяти ваших устройств и никогда никуда не передаются.Даже если злоумышленник перехватит все передающиеся числа,то определить общее секретное число он не сможет,поскольку он столкнется с неразрешимой за разумное время проблемой вычисления.поверьте даже использование всех компьютеров мира не позволит справится с этой задачей.Теперь давайте перейдем к телеграмму и сообщениям в нем.Как известно в телеграмме реализовано 2 типа переписки,это облачное и секретное,так чем они отличаются и можно ли тайно расшифровать их.Давайте начнем с более простого случая,секретная переписка реализована таким образом,что сервер не участвует в процессе шифрования,он исполняет просто роль моста,перекидывая зашифрованные пакеты между собеседниками,все шифрование и дешифрование происходит непосредственно на устройствах абонента,там же хранятся общие секретные ключи,собственно поэтому секретный чат привязан к конкретному устройству и не может открыт нигде больше,поэтому секретный чат невозможно взломать физически не завладев одним из устройств участвующих в переписке.Здесь телеграмм говорить правду,на его серверах не хранятся ни ключей, ни даже зашифрованные пакеты.Так что если ваш собеседник не в сети,то увы сообщения от вас он не получит.Пойдем дальше,облачные чаты,тут и начинается самое интересное.Те кто не пользуется телеграммом я напомню,что облачные чаты могут быть открыты на нескольких устройствах,а так же восстановлены с сервера на новые устройства и такое возможно только потому что, при переписке вашим настоящим собеседником является вовсе не человек,а сервер,а как вы помните протокол Диффи-Хеллмана подразумевает,что оба собеседника владеют общим ключом шифрования,получается что в случае облачной переписки сервер так же владеет вашим ключом шифрования и теперь, когда вы хотите открыть облачный чат на другом устройстве,сервер просто отправляет вам в зашифрованном виде конечно,общий секретный ключ и таким образом вы получаете доступ к своей переписке но уже на другом устройстве,если бы сервер не хранил этот ключ,то и открыть облачный чат на другом устройстве было бы просто невозможно,как и в случае с секретным чатом. Таким образом мы имеем,что на самом деле сервера телеграмма хранят не только облачную переписку в зашифрованном виде,но и ключи для ее дешифрования,но и здесь не так просто. Тут телеграмм пошел дальше своих аналогов и разбивает вашу переписку, и ключи шифрования на части и хранит на разных серверах и того в сухом остатке мы получаем,что секретные чаты так и останутся секретными,а вот с облачными чатами дела обстоят совсем иначе и технически для телеграмма нет никаких проблем передать ключи шифрования фсб. Тем более телеграм может подавать уже расшифрованную переписку,что компания уже и предлагала в октябре прошлого года,когда пыталась оспорить свой штраф 800 тыс рублей.Как видите наша переписка всегда будет оставаться под чьм-то контролем.