2 подписчика
Часть 2.
На случай, если необходимо скрыть сам факт общения, есть еще один уровень шифрования. Отправляемое вами сообщение шифруется при помощи ключа, созданного вами и собеседником. Это словно положить письмо в конверт с адресом.
А после этого сообщение шифруется еще раз – словно вы вкладываете его в конверт и отправляете по адресу сервера вашего мессенджера. В этот момент вы используете для шифрования ключ, который генерируется на основе другой пары ключей – вашего и сервера.
Такой «конверт в конверте» сначала приходит на сервер мессенджера. Если кто-то попытается влезть в ваш разговор, то он увидит, что вы отправили сообщение, но кому-именно, узнать не сможет. Сервер «откроет» первый конверт, увидит адрес, но не увидит само сообщение. Напомним, оно зашифровано тем ключом, который сервер не знает.
Сервер переложит ваш конверт в другой конверт и отправит адресату. Если третье лицо вмешается в этот момент, то увидит, что сообщение адресату пришло, но от кого именно – не узнает.
Таких «конвертов», разлетающихся по разным адресам миллионы и отследить получателя именно вашего – задача не из простых. Если кто-то, например, задался бы целью и смог бы взвесить все эти миллионы «конвертов», то нашел бы два с одинаковым весом. Тогда этот кто-то нашел бы связь между вами и вашим собеседником. Чтобы этого не произошло, сервис добавляет в каждый конверт разные грузы случайного веса. То есть, конверт, отправленный вами и полученный вашим собеседником будут отличаться по весу.
Чтобы пользователь мог доказать, что это точно он, мессенджеры используют его адреса электронной почты или номера телефона. Но не каждый пользователь готов делиться этими данными с мессенджером. Поэтому некоторые сервисы используют внутренний ID приложения и предлагает пользователям обмениваться QR-кодами, которые содержат этот ID, чтобы подтвердить свою личность. Так обеспечивается аутентичность.
Каждое сообщение отправляется двум собеседникам. А поскольку они используют один и тот же ключ, то выходит, что это сообщение мог послать любой из них. То есть, даже если кому-то удастся-таки взломать диалог и каким-то образом расшифровать сообщение, установить точно, кто из двоих его написал, не получится. Таким образом достигается возможность отрицать сказанное.
Чтобы минимизировать риски расшифровки прошлых и будущих сообщение, сервер мессенджера должен перевыпускать ключи. То есть посторонний при помощи обнаруженного им ключа сможет прочитать лишь переписки за период между его перевыпусками. Это обеспечивает прямую и будущую секретность.
2 минуты
18 мая 2023