Ключі не покидають телефон
Створюються на пристрої й лишаються там. Сервер їх не має - тому не може віддати нікому.
Безпека
Як зашифровано, що бачить сервер і чого не бачить, де він стоїть і що посилюємо далі. Повні межі - на сторінці «Приватність», перевірка кожної обіцянки - в аудиті.
Як це працює
Щоб слова вище можна було перевірити, а не приймати на віру. Нижче - схема того самого, однією картинкою.
Створюються на пристрої й лишаються там. Сервер їх не має - тому не може віддати нікому.
Байти, розмір, час і адреса черги. Імʼя відправника лежить усередині шифротексту, але хто надсилає, сервер знає: надсилання йде токеном акаунта. Сховати й це (Sealed Sender) - у плані.
PQXDH: X25519 разом із ML-KEM-1024. Записане сьогодні не відкриє й той компʼютер, якого ще немає.
Double Ratchet: украдений один ключ не відкриває ні попередніх повідомлень, ні наступних.
Єдиний шлях назад. Ними ж зашифрована копія на сервері - ми її не відкриємо.
Доставлений стирається одразу, недоставлений - за 30 днів, вкладення - за 14.
Шифрування
Криптографію не винаходять у стартапі. Тиша стоїть на libsignal - тій самій бібліотеці, що й Signal, яку роками перевіряють незалежні криптографи.
Бібліотеку прикріплено за версією й контрольною сумою. Ми її не писали й не переписували - лише вбудували.
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), серверний - ні. Тому межі сервера описані словами й перевірені аудитом.
Модель загроз
Далі
Чесна межа сьогодні - не назавжди. Ось що в плані, по порядку.
Доповнення до кратних 256 байт - щоб за розміром не було видно ні виду конверта, ні довжини тексту.
Обсяг перевірки описано, аудитора обираємо. Після - винагорода тим, хто знайде вразливість.
Щоб будь-хто міг перевірити: збірка в магазині зібрана саме з того коду, який ми даємо.