Docs / Security

Security

Assumptions are listed. Marketing words are not.

Host keys

First connection: show host, address, key type, SHA256. Trust or cancel. Later match: connect. Later mismatch: block. Replacing a recorded identity requires typing the hostname. This is slower than “click OK”. That is the point.

Vault

Secrets are AES-256-GCM blobs (12-byte nonce, 16-byte tag, 32-byte master key). On unpackaged Windows the master key is a DPAPI file under AppData, because unpackaged SecureStorage hangs without package identity. Local malware running as you can still read process memory. We still refuse plaintext secret columns and secret logs.

Paths

Remote names with .., NUL, or newlines are rejected. Local combines are rooted so a hostile filename cannot walk out of the destination folder.

AI

Terminal output is data, not instructions. User-owned API keys. Redaction of tokens and Authorization headers before send. No tool in Tlyrn executes a generated command. Risk labels are a heuristic.

Cloud

PUT /sync is designed to carry ciphertext. A stolen server snapshot should not yield SSH passwords. Backup export uses a separate password (PBKDF2, 210,000 iterations).

Out of scope

This tree is not production code-signed. The updater is not a trusted channel yet. Do not install a zip whose SHA256 does not match the download page.