termal.in

Безопасность в Termalin

Termalin — это SSH-клиент: он хранит самые чувствительные учётные данные, какие у вас есть. Эта страница просто и по делу объясняет, что хранят наши серверы, что они никогда не смогут прочитать и почему вам почти не нужно им доверять.

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

Всё значимое шифруется на вашем устройстве, прежде чем куда-либо отправиться, ключом, производным от вашего мастер-пароля (PBKDF2-HMAC-SHA256, 600 000 итераций → AES-256-GCM). Мастер-пароль никогда не покидает ваше устройство. Мы не можем прочитать ваши данные и не можем сбросить его за вас — так задумано, это не баг. Страховка — в ваших руках: задайте необязательный код восстановления, и вы сможете вернуться, если когда-нибудь забудете пароль; пропустите его — и забытый пароль означает, что данные потеряны. В любом случае возможность восстановления остаётся у вас, а не у нас.

Что видят наши серверы

ДанныеСервер может прочитать?
Ваши хосты, SSH-ключи, пароли, сниппеты (синхронизация)Нет — только зашифрованный блоб
Записи сессий терминала (содержимое)Нет — только зашифрованный блоб
Ваш мастер-парольНикогда не отправляется
Email и пароль аккаунтаEmail — да; пароль хранится как хеш Argon2
Название записи и метка хостаНет — зашифрованы вашим мастер-паролем, как и сама запись
Метаданные записи (длительность, размер, действовал ли ИИ-агент)Да — используются для списков и квот
Тариф подписки, имена устройств, метки времениДа
Сессии терминала в браузере (веб-кабинет)Проходят через наш сервер, пока активны; не сохраняются. Хост, порт и имя пользователя записываются в лог
Команды, которые ИИ-приложения выполняют через облачный MCP-эндпоинтДа — текст команды есть в вашем журнале активности; её вывод сохраняется, только если вы это включите, и зашифрован ключом, который есть только у вас
Метрики серверов и оповещения с серверов, подключённых через ConnectorДа — нужны, чтобы строить графики и поднимать оповещения (см. политику конфиденциальности, на английском)
Соль для вывода ключаДа — соль не секрет; она позволяет веб-кабинету вывести ваш ключ в вашем браузере

Обновления нельзя подделать

Автообновления подписываются офлайн-ключом Ed25519; соответствующий открытый ключ встроен в приложение. Перед установкой чего-либо приложение проверяет подпись манифеста релиза и SHA-256 установщика по ней. Наш собственный сервер здесь не является доверенной стороной: даже полностью скомпрометированный сервер обновлений (или подмена через DNS/hosts) может только не отдать обновление — но не подсунуть своё.

Приложение проверяет сам сервер, а не только TLS

Прежде чем куда-либо отправить учётные данные вашего аккаунта, приложение отправляет серверу случайный nonce; сервер должен подписать его своим ключом идентичности, который проверяется по открытому ключу, встроенному в приложение. Поддельный бэкенд — до которого добрались через файл hosts или подмену DNS, либо на машине, настроенной доверять лишнему TLS-сертификату, — не сможет создать такую подпись, поэтому он никогда не увидит ваш пароль.

В бинарнике нет секретов

Десктоп-приложение встраивает только открытые ключи. Изучение файлов приложения не даёт ничего полезного. Всё, что относится к платным функциям, проверяется на стороне сервера.

Веб-кабинет — честно

Веб-кабинет расшифровывает записи в вашем браузере с помощью вашего мастер-пароля — пароль никогда не покидает страницу. Честная оговорка, общая для всех веб-продуктов с E2E: код этой страницы отдаёт сервер, поэтому скомпрометированный сервер мог бы отдать изменённую страницу. Десктоп-приложение с его подписанными обновлениями остаётся путём с наивысшим доверием; кабинет — для удобства.

На вашей машине

  • Ключи хостов SSH закрепляются при первом подключении (TOFU) в ~/.termalin/known_hosts.
  • Ваш аккаунт termal.in поддерживает двухфакторную аутентификацию (TOTP с резервными кодами) и ключи доступа (passkeys) — десктоп-приложение может входить через браузер, так что пароль вообще не касается приложения.
  • Записи хранят вывод терминала и маркеры событий — но не сами нажатия клавиш. Пароль, введённый в скрытом приглашении (sudo и подобное), не отображается на экране, поэтому в запись он не попадает; всё, что печатает терминал, входит в запись.
  • «Запомнить мастер-пароль» (необязательно, по умолчанию выключено) защищено хранилищем ключей вашей ОС — Windows DPAPI, macOS Keychain или Linux Secret Service — и привязано к вашему пользователю ОС.

Инфраструктура

Бэкенд работает в Docker за Cloudflare, с TLS 1.2+ (сертификаты Let's Encrypt). База данных доступна только с localhost хоста — никогда не открыта в интернет — а бэкапы зашифрованы. Мы собираем как можно меньше: никаких аналитических SDK, никаких рекламных трекеров, и мы не продаём данные.

Соответствие требованиям и планы

Мы предпочитаем честно сказать, на каком мы этапе, чем намекать на большее, чем сделали:

ОбластьСтатус
Хранилища AES-256-GCM, PBKDF2-HMAC-SHA256, обновления с подписью Ed25519Готово
Минимизация данных + полное удаление аккаунта и данных по запросу (подход в духе GDPR)Готово
Независимый пентест сторонней компаниейЗапланирован до GA
SOC 2В планах — спросите, на каком этапе

Сообщить об уязвимости

Напишите на security@termal.in (см. наш security.txt): что вы нашли, как это воспроизвести и какое, по-вашему, у этого влияние. Мы отвечаем в течение 3 рабочих дней и сообщаем, что решили, — в том числе когда решаем, что это не проблема, и почему.

Тестируйте, пожалуйста, только на своём аккаунте, останавливайтесь на доказательстве проблемы (без выгрузки данных, без закрепления, без отказа в обслуживании, без чужих или пользовательских данных) и дайте нам разумный срок до публикации. Действуйте в этих рамках — и мы не будем вас за это преследовать.

Мы не платим за найденные уязвимости (bug bounty). Termalin — небольшой проект без выручки, и бюджета на вознаграждения нет; мы предпочитаем сказать об этом сразу, чем позволить кому-то потратить выходные впустую. Что мы предлагаем: упоминание в благодарностях нашего security.txt под тем именем и ссылкой, которые вы выберете, письменную рекомендацию с описанием вашего отчёта и лицензию Pro на несколько месяцев. Если находка серьёзная, мы также сообщим, когда выйдет исправление.

Благодарности

Спасибо исследователям, которые ответственно сообщили о проблемах и помогли сделать Termalin безопаснее:

  • MD Rabbi Hossain  — усиление регистрации OAuth-клиентов в процессе авторизации MCP (сентябрь 2026).