Conchshell

В чём приложение отказывает

Вся эта страница про одну мысль: программа, которая держит ваши боевые учётные данные, должна быть устроена так, чтобы ошибка в её интерфейсе не могла их раздать. Всё описанное ниже обеспечено ядром на Rust, а не тем, что интерфейс ведёт себя прилично.

Четыре отказа — слева то, что приложение печатает на самом деле, справа — от чего это избавляет

// приложение, когда ключ сервера сменился Личность prod.example.com:22 ИЗМЕНИЛАСЬ Доверенный ранее: SHA256:Kkz0CCPBnHsPKEmiy2XisyDgW8bem/j8shCgWfqL4yA Предъявлен сейчас (ssh-ed25519): SHA256:fMHSkV5cnwiy+ETp4qYLKLjWIEC2RrVWngecUi88WvM [ Отмена ] [ Заменить ключ ]

Подтверждать ключ сервера — не дело приложения

Это окно рисует операционная система, а не окно приложения. Скомпрометированный интерфейс не может его перерисовать, не может по нему кликнуть и не может выдать замену ключа за первое подключение. Кнопка по умолчанию — безопасная.

// все IPC-команды, доступные интерфейсу vault_store_secrets → ok vault_delete_secrets → ok vault_has_secrets → true | false // команды vault_get_secret нет. И никогда не было.

Интерфейс может сохранить пароль и удалить его — но не прочитать

Учётные данные расшифровываются в ядре на Rust, в момент открытия соединения, и уходят прямо в сокет. Ни один путь в интерфейсе не может перечислить хранилище, потому что не существует команды, которая бы ответила.

// сохранённый пароль просят отправить в другое место Отказываюсь использовать сохранённые учётные данные для root@10.0.0.5:22. Они были сохранены для другого адреса.

Сохранённый пароль уходит только туда, для чего сохранён

Каждая запись привязана ко всему маршруту — хост, порт, пользователь, прокси и jump-хост. Перенаправьте подключение, и пароль останется на месте, даже если запрос пришёл изнутри приложения.

// окно, отображающее удалённый файл window: file-viewer-1754239900 7 команд window: rdp-prod-1a2b3c4d 7 команд window: main все Отказано в IPC-команде `trust_server_identity` окну `file-viewer-1754239900`.

Окно с удалённым файлом получает семь команд, а не девяносто пять

Отдельные окна показывают содержимое, приехавшее с машины, которую вы не контролируете. Им разрешено ровно то, что нужно, и ничего сверх — правило работает в ядре, а не держится на том, что окно ведёт себя прилично.

Проверяемо, а не обещано

Формат хранилища описан документом, исходники открыты, и каждое утверждение на этой странице соответствует коду, который можно прочитать. Никто вне проекта пока не проводил аудит — это стоит знать, решая, насколько доверять.

Формат хранилища →