Выберите собеседника или добавьте нового по QR-коду.
Мессенджер без хранения на сервере. Ключи передаются только лично, по QR-коду.
Загрузка…
Введите пароль, чтобы расшифровать граф ключей на этом устройстве.
Граф ключей может вести только одна страница за раз: две, пишущие по очереди, теряли бы ключи друг друга. Закройте ту вкладку — или заберите устройство сюда.
Ключ личности создаётся прямо здесь и никогда не покидает устройство.
Нажмите внизу Safari, затем «На экран „Домой“». Откройте приложение уже оттуда и создайте личность там.
Так надо потому, что на iPhone у приложения с экрана «Домой» своё хранилище, отдельное от Safari. Личность, созданная здесь, в него не попадёт — придётся либо заводить заново, либо переносить файлом ключей.
или
Тогда это будет второе устройство той же личности. Ключ ему всё равно нужен свой — он создаётся здесь, — а первое устройство впишет его в подписанный список и пришлёт переписку. Читать её можно будет после того, как вы перенесёте граф ключей файлом, руками: по сети ключи не ходят.
Выберите собеседника или добавьте нового по QR-коду.
Голос — это один бит на человека на вариант со временем: побеждает более позднее. Поэтому группа, половина которой была не в сети, сходится на одном и том же, и арбитр для этого не нужен.
Пересылка — это новая отправка: содержимое шифруется заново ключом того, кому вы пересылаете. Файл получает и новый ключ, и новый идентификатор.
Больше не с кем — познакомьтесь ещё с кем-нибудь лично.
Переписка пришла по сети запертой: она зашифрована ключом личности, а он есть только в файле графа ключей — и этот файл вы переносите руками. Ни сервер, ни это устройство до сих пор не могли её прочитать.
Тот самый файл с расширением .scmpkeys, который вы сохранили на старом устройстве.
Откройте файл любым текстовым редактором, скопируйте всё и вставьте сюда.
Личность этого устройства при этом не меняется: из файла берётся только ключ, которым открывается архив. Устройство остаётся собой и остаётся в вашем списке устройств.
Знакомство — обмен ключами в обе стороны. Решите, кто передаёт первым: один показывает код, второй считывает, потом наоборот. Порядок ничего не меняет, он просто помогает не запутаться вдвоём у одного экрана.
Код держится, пока знакомство не завершится: окно можно закрыть и открыть снова, он не изменится. Обновляйте его, только если показывали код на видео или в переписке.
Введите или вставьте код собеседника — он виден у него на экране:
На обоих устройствах должно быть одно и то же число. Сверьте вслух — это и есть подтверждение, что между вами никого нет.
Чаще всего это значит, что один из вас показал код, а потом нажал «Новый код» — тогда второй принял уже недействительный. Закройте окно на обоих устройствах, начните знакомство заново и не обновляйте коды.
Если не совпадает и после этого — не продолжайте. Именно так выглядит попытка встать между вами, и шесть цифр существуют ровно для того, чтобы это заметить.
Взаимозаменяемы: переносят шифротекст и ничего не хранят. Сообщение уйдёт через первый работающий, а придёт с любого. Порядок задаёт приоритет.
STUN подсказывает устройствам, как они видны снаружи — этого хватает в большинстве домашних и офисных сетей. В мобильных сетях NAT часто симметричный: там прямое соединение получится только через TURN, который пересылает уже зашифрованный поток.
Наш сервер умеет и то и другое: при подключении он выдаёт учётку на время, и ничего настраивать не нужно. TURN пересылает уже зашифрованный поток и видит не больше, чем и так видит сервер пересылки.
Проверяет, что эта сеть вообще позволяет: ничего никому не отправляет, только спрашивает STUN и TURN.
Группы здесь нет ни на одном сервере: это список людей, с каждым из которых вы познакомились лично. Сообщение шифруется каждому отдельно его собственным ключом и уходит каждому — сервер видит несколько не связанных между собой конвертов.
Чтобы участники могли писать друг другу, а не только вам, каждая пара должна познакомиться лично. Тех, с кем знакомства не было, видно в группе как недоступных.
Договорённость, а не приказ: настройка уезжает собеседнику, но каждая сторона удаляет свою копию сама, по своим часам. Ничего не удаляется на чужом устройстве по команде — и поэтому это работает, даже если собеседника неделю не было в сети.
Только на этом устройстве. Сколько переписки хранить — ничьё чужое дело, и собеседнику об этом не сообщается.
Все ваши знакомые уже в группе.
Каждый ключ живёт ровно 10 сообщений. Приватная половина ключа, который вы объявили, есть только здесь — чтобы прочитать переписку на другом устройстве, экспортируйте граф в файл и импортируйте его там.
Без истории второе устройство увидит только то, что придёт после импорта: свои исходящие расшифровать нельзя ни на одном устройстве.
Откройте файл любым текстовым редактором, скопируйте всё и вставьте сюда.
Имя и фото — оформление, а не удостоверение. Их видят только те, с кем вы знакомы. Кто есть кто, говорит адрес: он выводится из ключа, и подделать его нельзя.
Звук синтезируется на месте, без звуковых файлов. В уведомлении только имя — текст сообщения в него не попадает и на заблокированном экране не светится.
iOS не даёт приложению держать соединение в фоне — ни этому, ни какому-либо другому без сервиса push от Apple. Поэтому на iPhone уведомления приходят, только пока приложение открыто. Ни сообщения, ни их отправители при этом никуда наружу не уходят: просто некому разбудить.
Положите скачанный файл в ~/.config/spacecop/watch.json и включите службу:
systemctl --user enable --now spacecop-watch. Служба слышит от сервера одно
слово — что пришла почта. Ни от кого, ни что, ни даже для какого адреса.
Подменить ключ знакомящий не может: адрес участника — это отпечаток его ключа, и он проверяется. Но поручиться за человека может только тот, кто его привёл, поэтому такие собеседники помечены «не проверен лично», пока вы не сверите код при встрече. Выключите для строгого правила: ключ только с QR-кода в руках.
Не вышло — идём через сервер, шифрование от этого не меняется. Прямой канал доходит только до того устройства, которое его держит: читаете с двух — выключите, тогда сервер разошлёт входящее на оба.
Привязка — это то же личное знакомство по QR, плюс одна фраза: «и вот это тоже я». Список устройств подписывается ключом первого из них, поэтому собеседник, который знаком с ним лично, может принять устройство, которого он никогда не видел, — и не может быть обманут кем-то, кто впишет туда своё. Отвязать устройство можно; вернуть то, что оно уже прочитало, — нельзя, и делать вид, что можно, здесь никто не будет.
——Отпечаток — это подпись всего клиента целиком: каждого файла, из которых он собран. Сравните его с тем, что опубликован у проекта. Совпал — вам отдали тот же код, что и всем остальным. Не совпал — не вводите пароль и не переписывайтесь с этого устройства, пока не разберётесь.
Удаление стирает граф ключей, а заодно ключ, подписки и ключи ваших каналов в публичной половине. Без экспортированного файла переписка не восстановится, и с собеседниками придётся знакомиться заново.