Друзья! Всё чаще вокруг меня ходят слухи о безопасности переписки в популярных мессенджерах. И почти все из них полнейшая ерунда. Поэтому я решил простым языком рассказать как работает шифрование.
Для простоты понимания представим что передача сообщения у нас происходит не через интернет, а через почтовую службу.
Если мы просто возьмём и пошлём письмо, то это письмо может посмотреть кто угодно: почтальон (провайдер), почтовые работники (сервер мессенджера), злоумышленник, который ограбил почтальона (хакер). Ну и вообще все, кто каким-то образом получил доступ к этому письму.
Теперь давайте представим замок, у которого есть 2 ключа: одним ключом можно этот замок только открыть, другим только закрыть. Почтовая служба посылает нам ключ, которым можно только закрывать. Мы пишем письмо, кладём в сверхпрочный ящик (который не вскрыть грубой силой за разумное время) и закрываем его этим ключом. И отправляем эту конструкцию на почту. Таким образом, никто, кроме почты (у которой есть ключ, который открывает ящик), не может посмотреть, что в этом письме. Почта у себя вскрывает ящик, оставляет себе копию письма (для истории), закрывает его уже на другой замок, закрывающий ключ к которому она получила от адресата сообщения, и отправляет ящик адресату. Преимущество данной схемы в том, что, во-первых, обеспечивается высокая безопасность от постороннего вмешательства (ни провайдеры, ни те, кто просто пытается перехватить сообщение не могут получить к нему доступ), а во-вторых, удобство использования: вся информация хранится на сервере, и если, например, ваш телефон внезапно вышел из строя, то важная переписка не пропадёт. По такому принципу работают социальные сети и обычный чат в Telegram.
Теперь предположим, что мы не хотим, чтобы сотрудники почты увидели наше письмо. Тогда мы делаем как в прошлом примере, только ящик закрываем ключом, который нам заранее отправил непосредственно наш собеседник. Тогда у почты физически не будет ключа, которым можно открыть замок. Такая схема менее удобна в том плане, что информация на сервере не хранится, соответственно, в случае потери доступа к устройству, с которого велась переписка, теряется ещё и вся история сообщений. Так же не совсем тривиально общаться с нескольких устройств: шифрует одно, главное устройство. Остальные лишь дублируют его. Но при этом достигается и большая приватность. По такому принципу работают чаты и звонки в WhatsApp и Viber.
Однако предыдущая схема не совсем идеальна: теоретически почта (или любой другой злоумышленник между двумя собеседниками) может подменить ключ, которым закрывают ящик на свой. Отправитель сообщения закрывает им ящик с письмом, отправляет обратно той же почтой, на почте его вскрывают своим, читают/меняют, закрывают тем, который заранее отправил адресат, и отправляют адресату. Таким образом, к адресату попал ящик, закрытый его ключом, он его вскрывает и ничего не подозревает. Способ защиты от такого проникновения - уточнить по другим каналам связи, совпадают ли отправленный и полученный ключи. Возможность сравнить их на данный момент даёт только голосовой звонок и защищенный чат в Telegram.
Как резюме: если вы доверяете серверу, то наиболее безопасны для вас социальные сети и Telegram в режиме обычного чата. Если доверия нет, то наибольшую безопасность предоставляет защищённый чат в Telegram.