Приватность
Что защищено, а что нет
Здесь без обтекаемых слов. Ниже написано, что именно шифруется, кто и что в принципе может прочитать и почему сделано именно так.
Личные переписки
Переписка двоих шифруется в браузере, до отправки. На сервере вместо текста лежит запечатанная строка: тот, кто получит доступ к базе — копией, кражей, чужими руками, — прочитает набор символов, а не разговор.
У каждого своя пара ключей. Открытый лежит на сервере открыто, закрытый — там же, но запечатанный ключом, который выводится из пароля. Сервер хранит конверт; открыть его может только браузер, в котором ввели пароль. Закрытый ключ лежит на сервере намеренно: иначе переписка не открылась бы ни на телефоне, ни после переустановки, а потеря ключа означала бы потерю всей переписки без возможности что-то вернуть.
Чего это не даёт. Ключ выводится из пароля, а пароль сервер видит в момент входа — иначе он не смог бы проверить, что это вы. Значит, у того, кто держит сервер, есть техническая возможность вывести тот же ключ. Защита здесь — от кражи базы и от чтения переписки сторонним кодом, а не от хозяина сервера.
Что не шифруется
- Каналы серверов. Их читает круг людей, а не двое, и общего секрета на всех не существует.
- Переписки на несколько человек. По той же причине: секрет двоих для троих не годится.
- Вложения. Файлы лежат на диске как есть.
- Кто, кому и когда. Списки участников, время сообщений и то, кто с кем переписывается, видны серверу всегда — без этого он не смог бы ничего доставить.
Правило простое: всё, что не в личной переписке двоих, считайте видимым тому, кто держит сервер.
Разговор голосом
Звук обычно идёт напрямую между собеседниками: сервер только сводит участников. Если прямой путь не находится — так бывает у домашних провайдеров, — звук идёт через ретранслятор, то есть проходит через сервер. В обоих случаях он зашифрован по дороге, но во втором расшифровать его технически возможно там, где он проходит.
Учётная запись
- Пароль
- В базе только хеш (Argon2id). Восстановить пароль невозможно — можно задать новый.
- Вход в два шага
- После пароля на почту приходит шестизначный код. Пароль отвечает лишь на вопрос «знаете ли вы секрет», а секреты утекают — чаще всего с других сайтов, где пароль был тем же.
- Письмо как сигнал
- Код, пришедший тому, кто никуда не входил, означает, что пароль знает кто-то ещё, — и приходит раньше, чем этот кто-то успеет что-либо прочитать.
- Запасные способы
- Одноразовые коды из приложения-аутентификатора и резервные коды на бумагу — на случай, когда почта недоступна.
- Устройства
- В настройках видно все входы, любой можно отозвать. Смена пароля отзывает все сессии сразу.
- Токены
- Рабочий токен живёт пятнадцать минут и только в памяти приложения. Долгий лежит в защищённой cookie, в базе — лишь его отпечаток, и при каждом обновлении он меняется.
Чего здесь нет
- Рекламы и рекламных сетей.
- Счётчиков посещений и внешней аналитики.
- Сторонних скриптов и шрифтов: страница не обращается никуда, кроме самого сервиса.
Разумные ожидания
Это мессенджер небольшого круга, а не защищённая связь для тех, кому она нужна по работе. Он закрывает случайного постороннего, кражу базы и любопытство рекламных сетей — но не того, у кого есть доступ к самому серверу. Для разговора, который нельзя доверить человеку, держащему сервер, нужен другой инструмент.