M7d follow-ups — remote TLS/auth polish

Abierto
#57 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
54/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust

Línea de trabajo

Comienza con docs/remote-tls.md y la especificación de diseño M7d; después, inspecciona crates/clowder-daemon/src/main.rs y remote_tls.rs::load_or_generate. Antes de abordar los elementos exclusivamente de diseño, concéntrate en los dos seguimientos concretos: evita que las credenciales de inicio queden expuestas en los logs y asegúrate de que la rotación de tokens no invalide el certificado ni el pin TOFU. El issue no menciona ninguna prueba, así que confirma los criterios de aceptación con los maintainers.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement priority: high rust

Context

M7d (#53) shipped opt-in TLS + bearer-token auth + TOFU for the remote daemon. These are the deferred minors from its review and threat model (docs/remote-tls.md, docs/superpowers/specs/2026-08-03-clowder-m7d-remote-tls-auth-design.md). None block use; all are polish/hardening.

Note: the "exposure warning still says NO authentication under TLS" minor was already fixed in the cleanup batch (#54).

Follow-ups

  • Token logged in cleartext at info-level (crates/clowder-daemon/src/main.rs) — the bearer token is printed to the daemon log on startup so the operator can copy it, but it then lands in any log aggregation. Consider redacting from the log and pointing operators at clowder remote-token (which reads the state-dir file) instead, or writing it to a 0600 file only.
  • Credential rotation is all-or-nothing (crates/clowder-daemon/src/remote_tls.rs::load_or_generate) — it only takes the "load" path when all three files (remote-cert.pem, remote-key.pem, remote-token) exist; deleting any one regenerates all three, so "rotate the token" silently also rotates the cert and breaks every client's TOFU pin. Consider independent token rotation (e.g. clowder remote-token --rotate that regenerates only the token) and/or an explicit --rotate-cert.

Larger deferred items (design-only in the M7d spec)

  • mTLS / client certificates — channel-bound client auth instead of a bearer token.
  • QUIC transport (quinn) — if roaming/mux ever matters (M7 deliberately deferred this; TCP+TLS is adequate for a terminal).
  • Configured-fingerprint pin / pairing UX — an alternative to TOFU that closes the first-connect window (a single pasted "pairing string" of fingerprint + token).
  • macOS Keychain storage for the client token (currently config/env only; the Rust forwarder would need security-framework).
Lenguaje dominante
Rust
Estrellas
0
Forks
0
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de richardcase/clowder

Todos los issues de richardcase/clowder

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.