Что значит «без пользователя»?
Скопировать или продиктовать
-> ввести
-> подтвердить
Ошибка при вводе. Передача 3-им лицам
Получить код
-> ввести
-> подтвердить
Код устарел или введен неверно. Передача 3-им лицам
Включить доступы
-> найти устройство
-> подтвердить
Разрешения
Поиск устройства
Сбои соединения
Перевел запрос клиента в продуктовые требования
Продукт — это привычный мессенджер с надстройкой в виде усиленной безопасности
Без регистрации, телефона, имени и email
Не знает, с кем я общаюсь
Без поиска по номеру и адресной книги
Без доступа к переписке и файлам
Минимум данных на стороне сервиса
Помогает контролировать разговор
Видны действия собеседника в чате и звонке
Почему не взять готовый мессенджер?
Сначала я проверил, можно ли решить задачу готовым продуктом
Briar был ближе всех по логике. Но клиенту нужен был свой сервис: свой дизайн, свой доступ, без посторонних пользователей.
QR выигрывал по UX: знакомый паттерн, меньше шагов, меньше ошибок, быстрее старт общения.
Контакт называет сам пользователь. Сервис не получает имя, а пользователь может скрыть реальную связь за нейтральным названием
Открытый продукт, не закрытый круг
Не подходил как кастомный закрытый сервис
QR-контакт после личной встречи
Близко по логике, но не по задаче клиента
ID вместо обязательного телефона
Все равно внешний продукт со своей моделью
Как назвать человека без профиля?
Если у пользователя нет аккаунта, сервис не может брать имя из профиля
Пользователь задает имя при входе
Сервис получает персональные данные
В чате видно набор символов
Непонятно, кто «перед тобой»
Человек сам передает свое имя
Пользователь сам называет контакт
Команда разработки выбрала сквозное шифрование. Сообщение закрывается у отправителя, проходит через сервер закрытым и открывается только у получателя
Как шифровать содержимое переписок?
Техническое решение согласовывалось с разработкой. Мне было важно понять принцип
Итак, лозунг нашего МВП — «Защитить то, чем уже пользуются»
Сроки и бюджет уже были сжаты.Предложил собрать MVP вокруг ключевых сценариев клиента. Остальное — в backlog. Не потому что «неважно», а потому что первая версия должна была быстро заменить привычное общение на защищенное
Онбординг как первый trust-механизм
Я собрал структуру и тексты онбординга вокруг одной задачи — показать, где пользователь сможет контролировать свою безопасность
Обычное серверное хранение
Сообщения хранятся на сервере
Сервис потенциально видит данные
Устройства общаются напрямую
Сложнее стабильность и доставка
Сообщение шифруется у отправителя
и расшифровывается у получателя
Что клиент уже делает в обычных мессенджерах, но делает с риском, тревогой или ограничением?
На уровне базовой коммуникации:
Клиент может находиться в России или зарубежом
Один маршрут подключения может быть нестабильным
На уровне контекста использования:
Приложение передается дальше закрытому кругу
Новые пользователи не обязаны верить клиенту «на слово»
Онбординг с принципами защиты.
Security-лейблы в чувствительных сценариях
Пользователь хочет понимать, что защита работает
Безопасно выглядит абстрактно
Статус защищенного соединения на главном экране и в настройках
Пользователь хочет убрать следы устройства
Непонятно, что остается после удаления
Удаление локальных данных
На уровне доверия и контроля
Добавить человека из закрытого круга
Контакт создается через номер, username
или адресную книгу
Альтернативное решение без персональных данных
Обычный чат раскрывает активность и прочтение
Исключаем индикатор прочитанных сообщений.
Исключаем статус online у пользователей.
Отправлять документы и фото
Файлы уходят через привычные, но небезопасные каналы
Нужен принцип шифрования содержания чатов
Звонить по важным вопросам
Обычный звонок не дает контроля над условиями разговора
Индикаторы действий собеседника. Видеть включенную громкую связь, mute режим, включенный bluetooth
Как спроектировать приложение без персональных данных и каков будет принцип шифрования?
Как не потерять защищенное соединение?
Продумал статусную модель
Proxy выглядел как простая настройка: Local, Global и Auto-selection. Но за ней скрывалась логика сбоев, fallback-маршрутов и восстановления соединения