Безопасность в 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).