trdl спроектирован так, чтобы минимизировать ущерб от потенциальных атак на систему обновления. Три основных компонента, которые за это отвечают, — менеджер секретов Vault, репозиторий на основе The Update Framework и Git.
trdl обеспечивает безопасный канал доставки обновлений от Git-репозитория до хоста пользователя и верификацию неизменности содержимого обновлений.
Система защищает от подмены и компрометации Git-репозитория. Контроль основывается на Git-коммитах, что обеспечивает гарантию целостности всей истории изменений, включая все метаданные и содержимое хранилища, вплоть до начального коммита.
Все операции подтверждаются кворумом GPG-подписей у коммита. Подписи хранятся в Git-репозитории, публичные части допустимых GPG-ключей и минимальный набор подписей — в Vault.
Система защищает от отката каналов обновлений на предыдущие версии с уязвимостями. При обновлении система проверяет родство коммита последней успешной публикации с текущим. Поэтому git push --force на предыдущий подписанный коммит ни к чему не приведёт.
Система управляет ключами шифрования, автоматически создаёт и хранит их в Vault. Ни у кого нет доступа к ключам шифрования, никто не работает с ними.
От угроз, связанных с физическим доступом к хосту, на котором установлен trdl-клиент.
От ошибок, связанных с человеческим фактором, в частности — некорректной настройки кворума GPG-подписей, сборочных инструкций, самого Vault.