Девять рычагов, и каждый — выключатель, который видно, а не
обещание, в которое надо поверить.
Связывание
Устройство входит один раз и вашей рукой
Агент показывает QR-код и набираемый код с одноразовым
секретом. У приглашения есть срок, и оно умирает при первом же
использовании.
- Обе стороны вычисляют отпечаток канала и показывают его. Связывание
завершается, только когда вы подтвердили на обеих; расхождение
прерывает его и попадает в журнал безопасности агента.
- Агент держит список: имя, тип устройства, когда связано, когда
подключалось в последний раз, отпечаток.
- Отозвали устройство — его живые соединения рвутся немедленно, выданные
ему материалы перестают работать, а приложение стирает свой кэш этого
Mac.
- Всё это работает в локальной сети вообще без внешней
инфраструктуры.
Область видимости
Mac отдаёт папки, а не файловую систему
Вы регистрируете каталог под человеческим именем. Всего, что
вне его, для телефона не существует.
- Любая файловая, поисковая и git-операция проверяется по этой границе
после разрешения символических ссылок — ссылка наружу не
становится дверью.
- Пространство бывает «только чтение». И отдельная папка или файл внутри
записываемого — тоже; при расхождении действует более строгий
режим.
- Правила задаются на Mac и больше нигде. Телефону сообщается
действующий режим каждого объекта, и он показывает его до того,
как вы попробуете записать.
- Отдельный выключатель решает, могут ли файлы пространства вообще
покидать Mac. Запрет означает: не сохраняются на устройстве, даже не
предлагаются к сохранению, не отдаются другим приложениям — а
сохранённое раньше удаляется.
- Удалили пространство — вместе с ним закрылись все его сессии и
подписки.
Разрешения
Ничего опасного не включено из коробки
Завершение процессов, управление долгоживущими, ввод секрета
в запрос sudo, продолжение сессии терминала Mac, предпросмотр
локальных серверов, изменение баз данных и чтение баз приложений в
симуляторах iOS с телефона — семь отдельных выключателей, и все семь
выключены.
- Выключение действует немедленно: начатая операция отклоняется, а
управляемые процессы продолжают работать и остаются видны на Mac.
- Отказ называет причину. «Выключено на Mac» отличимо от «не разрешено
правами» и от «процесс не ваш» — и приложение говорит, где этот
выключатель.
- Секрет для
sudo отпирается Face ID на устройстве и идёт
отдельной операцией, а не нажатиями в потоке. Владелец Mac разрешает это
отдельно; по умолчанию выключено.
- Пространство «только чтение» действует и на терминал — вместе с
процессами, которые он породил, — а если наложить запрет не удалось, вам
это скажут, а не дадут предположить.
Досягаемость
Одно устройство разом, пока вы не решите иначе
По умолчанию с агентом работает ровно одно устройство.
Настройка идёт от одного до пяти или снимается вовсе. Место занимает
устройство, а не соединение.
- Устройство сверх предела получает отказ с названной причиной, а не
тихо отваливается.
- Ретранслятор запрещается отдельно для каждого агента: только прямой и
локальный путь — или никакого.
- Список узлов Rendezvous — настройка агента, а не то, что зашито в
приложение. Пустой список означает «только локальная сеть», и это
поддерживаемый способ работы, а не поломка.
- Узел из опубликованного каталога попадает в рабочий список только
вашим действием. Само обращение к каталогу выключается, и продукт без
него полностью работоспособен.
Допуск по месту
Только устройство, назвавшее, где оно
Включите — и соединение установит только то устройство, что
назвало своё место. Устройству с выключенной или запрещённой геолокацией
приходит отказ: с причиной и с указанием, где это включается.
- Место записывается в журнал доступа со своей точностью и пометкой
«со слов устройства» — потому что это ровно то, что есть: со слов, а
не проверено. Агент не делает вида, что иначе.
- Отказ по отсутствию места записывается точно так же, как допуск.
Запись остаётся в обоих случаях.
- Это допуск, а не слежка: хранится сказанное в момент соединения и
ничего в промежутках между ними.
Журнал доступа
Каждая операция — и никогда её содержимое
Агент записывает, чего попросило подключённое устройство:
момент, устройство, вид операции, чем кончилась и предмет, названный самим
запросом.
- Предмет — это путь, ветка, процесс, строка поиска, объём
переданного: то, что назвал запрос.
- Подключение и отключение записываются наравне с операциями.
- Никогда: содержимое файлов, вывод команд, ввод терминала, ни
слова из разговора с AI. Ни при каком уровне подробности.
- Повтор той же операции с тем же предметом от того же устройства внутри
окна увеличивает счётчик, а не добавляет строку.
- Ограничен сроком и объёмом; первыми уходят самые давние записи.
- Отбор по устройству, по виду, по куску предмета. Выгрузка файлом, чтобы
разбирать снаружи. Выключение — и само выключение пишется в этот же
журнал.
- Сбой записи никогда не отменяет и не задерживает операцию, которую он
собирался записать.
- В протоколе нет операции чтения журнала. Его нельзя забрать ни
телефоном, ни нами, ни кем-либо ещё: он читается на Mac тем, кто за ним
сидит.
Копии
Mac слышит, что стало с отданным файлом
Устройство сообщает судьбу полученного: сохранено на
устройстве, отправлено в другое приложение, удалено.
- Когда система называет приложение-получателя, отчёт называет его
тоже.
- Заявленная запись помечена как заявленная и остаётся отличимой от
того, что агент наблюдал сам, — и в журнале, и в интерфейсе.
- Отчёт переживает обрыв связи и уходит при следующем соединении.
- И интерфейс говорит неудобное вслух: отсутствие отчёта не означает
отсутствия копии. Гарантия, которую нельзя обеспечить, здесь не
выдаётся за гарантию.
Apple Watch
У часов свой ключ, и подписываете за них вы
У часов собственная пара ключей. Полномочия им делегирует
iPhone, и агент принимает эту делегацию только после подтверждения на
Mac.
- У делегации есть срок, и она обновляется при контакте с iPhone.
- Отзыв iPhone лишает силы всё, что он делегировал.
- Что позволено запястью, решает риск: отклонить можно всегда;
подтвердить — при низком риске, при среднем нужен поворот коронки, при
высоком дело уходит на телефон. Запрос, распознанный лишь эвристикой,
подтверждается с часов только при низком риске.
- Файловые операции и git с часов недоступны вовсе.
Питание
Mac не засыпает, потому что от запертого Mac толку нет
Пока агент работает, он удерживает Mac от блокировки экрана.
Запертый Mac не может собрать свои ключи, и соединение не встаёт — поэтому
это умолчание, а не жёсткое правило.
- Удержание выключается, и тогда запертый Mac отказывает в соединении,
называя именно эту причину, а не отваливаясь общей ошибкой.
- Свой журнал привилегированных операций агент ведёт на Mac отдельно от
журнала доступа.