Перейти к содержимому

Глоссарий

Zero knowledge

Это утверждение о том, кто может прочитать ваши данные, когда никто не смотрит. Стоит оно ровно столько, сколько ответ на один вопрос: покажет ли сервис ваши данные, если вы забыли пароль?

Zero knowledge это устройство сервиса, при котором он хранит ваши данные в виде, который сам прочитать не может.

Что утверждает это слово

При таком устройстве зашифровывание и расшифровывание идут на вашей стороне, и до сервиса доезжает уже нечитаемое для него. Выгрузка всей базы даёт тогда размеры и даты, а не содержимое.

Главное слово здесь про знание. Не про то, что данные зашифрованы, это может честно сказать почти каждый, а про то, что держащая их сторона не умеет превратить их обратно в текст.

Как проверить утверждение

Четыре проверки решают дело быстрее любой страницы описаний, и три из них проходят без единой строки чужого кода.

  • Проверка забытым паролем

    Если поддержка возвращает доступ к данным, а не к пустому аккаунту, ключ есть у кого-то на той стороне.

  • Где идёт арифметика

    Шифрование на сервере означает, что открытое значение сперва туда приехало, что бы с ним ни сделали потом.

  • Что покажет выгрузка

    Прямой ответ называет поля, которые остаются читаемыми, потому что в любой живой системе такие поля есть.

  • Вопрос о передаче

    Отдать секрет напарнику так, чтобы сервис его не увидел, это трудная часть, и тихо кончаются обещания именно здесь.

Что до сервера не доходит вовсе

Для самого важного здесь вопрос и не встаёт: это просто никуда не отправляется.

  • Куки и данные сайтов

    Они остаются в каталоге профиля на той машине, где работал браузер.

  • Пара входа у профиля

    Она не отправляется вовсе, и общий профиль приходит к напарнику через сервер без неё.

  • Ключ одноразового кода

    Столбца для него нет, поэтому вход с другой машины его за собой не приводит.

  • Отпечаток

    Он не хранится вообще нигде: он выводится при запуске из самого профиля.

Что сервер всё-таки держит

Пока вы в своём аккаунте, настройки профилей отражаются на сервере, чтобы вторая машина и напарники видели один список: имя, папка, сценарий, шаблон и поколение отпечатка, прокси, метки и заметки. Это читаемо на нашей стороне, потому что общий список надо где-то собирать.

Пароль вашего аккаунта лежит хешем и никогда открытым. Пароль прокси закрыт в базе ключом, который живёт вне её, и это бережёт украденную выгрузку, но не бережёт от того, у кого есть и выгрузка, и ключ.

Где здесь стоит этот продукт

Мы не называем ARMANOS продуктом zero knowledge, потому что названные выше настройки нам читаемы, а забытый пароль восстанавливается письмом. Обратное утверждение провалило бы первую же проверку с этой страницы.

У архивов, которые везут ваши сессии, итог тот же, но другой дорогой. Они зашифрованы ключом, растянутым из вашего пароля, едут через вашу собственную папку, и сам пароль в эту папку не попадает.

С чем это путают

  • Сквозное шифрование

    Оно про сообщение между двумя людьми. Zero knowledge про данные, лежащие на чужой машине.

  • Обещание не вести журналов

    Это обещание о том, что выбрасывается, а не о том, что можно прочитать, пока оно лежит.

  • Шифрование при хранении

    Данные закрыты, а вопрос о том, у кого ключ, остаётся открытым. В этом вопросе и вся разница.

  • Доказательство с нулевым разглашением

    Способ доказать утверждение, не открывая того, на чём оно стоит. Торговля взяла оттуда слова, а не математику.

Чего это не делает

  • Этот продукт не zero knowledge, и здесь нигде не сказано обратного. Настройки профилей, отражённые на сервере, пока вы в своём аккаунте, читаемы на нашей стороне.
  • Забытый пароль аккаунта восстанавливается письмом. Одного этого хватает, чтобы слово не подходило, и это нарочная плата продукта для команды.
  • Пароль прокси в базе закрыт ключом, который живёт вне её. Тот, у кого есть и выгрузка, и ключ, прочитает его.
  • Пароль, который храните только вы, не восстановит никто. Эта часть ведёт себя ровно так, как обещает слово, и потеря пароля закрывает те архивы насовсем.

Проверить

За каждым утверждением выше стоит файл, а за большинством ещё и стенд, который краснеет, когда утверждение перестаёт быть правдой.

Ни один запрос с настройками профиля не несёт пару входа, и в отражённой таблице для неё нет столбца
apps/desktop/test/login-stays-local.js · apps/server/prisma/schema.prisma
Отпечаток выводится при запуске, а не хранится, и на обеих машинах выходит одним и тем же
packages/shared/src/index.js · apps/server/test/отпечаток-один-и-тот-же.js
Архив сессии едет под вашим паролем, а сам пароль с ним не едет
apps/desktop/src/lib/sessionSync.js · apps/desktop/test/session-sync-folder.js
Пароль аккаунта лежит хешем, а второй шаг входа одноразовый
apps/server/src/auth/auth.service.ts · apps/server/test/two-factor.js

Вопросы

Zero knowledge это просто «зашифровано»?
Нет. Шифрование говорит, что данные закрыты, а это слово говорит, у кого ключ, и только второй ответ показывает, чего стоит украденная база.
Вы можете прочитать мои куки?
Они никуда не отправляются. Данные сайтов и собственные базы браузера остаются в каталоге профиля на вашей машине.
Вы можете прочитать пароль моего прокси?
В базе он закрыт ключом, который живёт вне базы. Тот, у кого есть и то и другое, его откроет, и поэтому слово сюда не подходит.
А архивы в моей папке синхронизации?
Они зашифрованы ключом, растянутым из вашего пароля, и сам пароль в папку не попадает. Копии этого пароля нет ни у кого.
Почему не построить продукт именно так?
Часть его так и построена, а остальное это цена общего списка: вид, который видит напарник, надо собрать из настроек, читаемых кем-то.

Прочитайте, что знает сервер

Страница безопасности называет каждое значение, уходящее с вашей машины, каждое остающееся и границы, на которых защита кончается.