Skip to content

Node authentication

Both registrars support file and grpc credential sources. They verify every submitted password or challenge response locally. The backend supplies a generated shared password; IAX challenge-response stays in the IAX registrar.

Local file

The CSV must have a node_id,password header, one unique canonical positive numeric ID per row, and a 1–79-character printable ASCII password without whitespace. IDs fit a signed int64 and have no leading zeros. Generated 32-character base64url passwords avoid the AllStarLink configuration delimiters. Example placeholders are not production credentials.

The file is validated and loaded once at startup. Restart after edits. The service runs as UID/GID 10001, which must be able to read the file. Mount it read-only and restrict host access.

Central lookup

The central credential service implements the server side of this lookup. Select grpc when a compatible server is deployed. Use verified TLS with a service token or client certificate pair; the server must authorize each registrar's credential scope.

Successful lookups use a per-process LRU cache with a TTL: 4096 entries and 60 seconds by default. Unexpired credentials work during an outage; misses and expired entries fail closed. There is no stale extension, negative cache, or automatic CSV fallback. Every proof is checked, and wrong proofs do not force fresh backend requests. Password changes and revocations may take up to the cache TTL to reach clients.

See the HTTP authentication settings or IAX authentication settings for TLS and rate controls.

Abuse controls

Separate budgets cover global traffic, source IPs, failed attempts by IP and node, and successful refreshes. State and concurrent work are bounded. There is no global node lockout that an attacker can trigger. Allow for legitimate nodes behind shared NAT. Multiple processes or replicas multiply application budgets; use shared ingress limits and monitoring for deployment-wide protection.

Do not log passwords or raw authentication messages. Backend passwords remain sensitive in files, service memory, and backups. Databases may be added later; they are not supported by the current provider selection.