Тиша English

Безпека

Довіра, яку можна перевірити

Як зашифровано, що бачить сервер і чого не бачить, де він стоїть і що посилюємо далі. Повні межі - на сторінці «Приватність», перевірка кожної обіцянки - в аудиті.

Як це працює

Сервер передає конверт, а не читає листування

Щоб слова вище можна було перевірити, а не приймати на віру. Нижче - схема того самого, однією картинкою.

Ключі не покидають телефон

Створюються на пристрої й лишаються там. Сервер їх не має - тому не може віддати нікому.

Серверу дістається конверт

Байти, розмір, час і адреса черги. Імʼя відправника лежить усередині шифротексту, але хто надсилає, сервер знає: надсилання йде токеном акаунта. Сховати й це (Sealed Sender) - у плані.

0:14
Фото · один перегляд
Договір.pdf2,4 МБ
так це бачить серверb6·f3·0e·9a·41·c7·2d
7c·02·d9·4b·a6·13·f0·8e
c4·5d·ee·19·70·ab·3f·d2

Постквантове установлення

PQXDH: X25519 разом із ML-KEM-1024. Записане сьогодні не відкриє й той компʼютер, якого ще немає.

Свій ключ на кожне повідомлення

Double Ratchet: украдений один ключ не відкриває ні попередніх повідомлень, ні наступних.

12 слів замість пароля

Єдиний шлях назад. Ними ж зашифрована копія на сервері - ми її не відкриємо.

Екран із дванадцятьма словами відновлення

Конверт живе 30 днів

Доставлений стирається одразу, недоставлений - за 30 днів, вкладення - за 14.

Ваш iPhone шифрується тут ключі лежать тут iPhone співрозмовника розшифровується тут ключі лежать тут Сервер b6·f3·0e·9a·41·c7·2d бачить: хто кому пише, розмір і час не бачить: текст, файли, звук і відео запечатаний конверт запечатаний конверт дзвінок за замовчуванням іде через наш ретранслятор він ховає вашу адресу від співрозмовника й не бачить змісту; прямий шлях - ваш вибір у налаштуваннях
КлючіСтворюються на телефоні й не покидають його. Сервер їх не має - тому й не може віддати нікому.
КонвертБайти, адреса черги, розмір і час. Імʼя відправника - усередині шифротексту, але надсилання йде вашим токеном, тож сервер знає, хто кому пише. Сховати відправника - у плані.
СповіщенняСервер надсилає порожній сигнал «є нове»: тексту він не знає. Підставляє його ваш телефон, розшифрувавши сам.

Шифрування

Чим зашифровано - і чого ми не писали самі

Криптографію не винаходять у стартапі. Тиша стоїть на libsignal - тій самій бібліотеці, що й Signal, яку роками перевіряють незалежні криптографи.

libsignal без переписувань

Бібліотеку прикріплено за версією й контрольною сумою. Ми її не писали й не переписували - лише вбудували.

Постквантове знайомство

PQXDH: X25519 разом із ML-KEM-1024 у кожному знайомстві. Тест у збірці міряє справжній розмір ключа.

Свій ключ на кожне повідомлення

Double Ratchet: украдений один ключ не відкриває ні попередніх повідомлень, ні наступних.

Постквантовий храповик

SPQR (Triple Ratchet) на iPhone і iPad: постквантове оновлення ключів і після знайомства. Для інших платформ ще не перевірено.

Код безпеки

60 цифр або QR - звіряються при зустрічі. Змінився ключ співрозмовника - надсилання зупиняється до нової звірки.

Окремий ключ на кожен файл

Вкладення шифруються AES-256-GCM випадковим ключем, а ключ їде всередині зашифрованого листа.

Сервер

Що в нас на сервері - і що ні

Сервер передає конверти й тримає мінімум, без якого доставка неможлива. Ось усе, що про нього варто знати, - тими самими словами, що на сторінці «Приватність».

Де стоїть

Сервер і ретранслятор дзвінків - у ЄС.

Що лежить у базі

Імʼя користувача, токен сповіщень, адреса черги, відкриті ключі для знайомства, зашифрована копія акаунта. Тексту й ключів шифрування немає.

Хто кому пише - знає

Імʼя відправника в конверті не пишеться, але сервер бачить, з якого акаунта пішов конверт і в яку чергу. Так працює доставка.

Скільки живе

Доставлений конверт стирається одразу, недоставлений - за 30 днів, файли - за 14, код-запрошення - за 15 хвилин.

Журнали

Без IP, імен і тіл запитів. Виняток - журнал ретранслятора з IP: три файли по 10 МБ, що перезаписуються самі.

Резервних копій бази немає

Стерте не повертається з копії - її просто немає. Ваша копія акаунта зашифрована 12 словами, і їх у нас немає.

Справжній із справжнім

Застосунок доводить серверу, що він справжній (App Attest), а сам перевіряє сертифікат сервера - підмінити жоден бік не вийде.

Стан - публічно

Чи все працює, видно на окремій сторінці стану, поза нашою інфраструктурою: status.202ok.online/status/tysha.

Код сервера закритий

Код застосунку - за запитом (AGPL), серверний - ні. Тому межі сервера описані словами й перевірені аудитом.

Модель загроз

Від чого захищає - і від чого ні

Захищає

  • Перехоплення в мережі: в дорозі лише шифротекст
  • Злам сервера: вмісту там немає
  • Пошук вас за номером чи імʼям - пошуку немає
  • IP у дзвінку - співрозмовник бачить ретранслятор
  • Стороннього на розблокованому телефоні - Face ID на переписці й стирання

Не захищає

  • Співрозмовника, який перешле чи сфотографує екран іншим телефоном
  • Шкідливу програму на вашому телефоні з правами системи
  • Того, хто знає ваш код розблокування і тримає телефон

Далі

Що посилюємо наступним

Чесна межа сьогодні - не назавжди. Ось що в плані, по порядку.

Однаковий розмір конвертів

Доповнення до кратних 256 байт - щоб за розміром не було видно ні виду конверта, ні довжини тексту.

Зовнішній аудит і bug bounty

Обсяг перевірки описано, аудитора обираємо. Після - винагорода тим, хто знайде вразливість.

Відтворювані збірки

Щоб будь-хто міг перевірити: збірка в магазині зібрана саме з того коду, який ми даємо.