Skip to content

Security

Resonix currently implements a minimal authentication mechanism with plans for expansion.

Current Model

  • Optional shared secret password in config: [server].password
  • Every HTTP request must include a literal header Authorization: <password>
  • WebSocket upgrades inherit the same middleware enforcement

Strength comes from transport security: deploy behind TLS (reverse proxy or terminate locally in future) to prevent password leakage.

Threat Considerations

ThreatMitigation / Status
Unauthorized playback / resource abuseShared password required (if configured).
Brute force password attemptsBasic; rely on external rate limiting (reverse proxy / WAF).
Source abuse (e.g., streaming disallowed domains)Regex allow/block patterns.
Dependency compromise (yt-dlp/ffmpeg)Download from official release URLs at runtime; verify network path (future: checksum pinning).
Log leakageLogs omit sensitive data; avoid embedding secrets in URIs.
Path traversal in local file URIsUsers control provided file paths – recommended to restrict using allow regex.

Recommendations

  • Always set a strong password in production
  • Restrict network access (firewall / security group)
  • Use HTTPS; never expose plain HTTP across untrusted networks
  • Maintain yt-dlp & ffmpeg up to date by removing cached binaries when needed
  • Consider running in a restricted container / user

Future Enhancements

FeaturePriority
Token-based auth with scopes (playback, queue, admin)High
Rate limiting middlewareMedium
mTLS / API key rotationMedium
Downloaded binary signature verificationMedium
Audit log of administrative operationsLow

Released under the BSD-3-Clause License.