- Trusted proxy config option for proxy-aware IP extraction used by rate limiting and audit logs; validates proxy IP before trusting X-Forwarded-For / X-Real-IP headers - TOTP replay protection via counter-based validation to reject reused codes within the same time step (±30s) - RateLimit middleware updated to extract client IP from proxy headers without IP spoofing risk - New tests for ClientIP proxy logic (spoofed headers, fallback) and extended rate-limit proxy coverage - HTMX error banner script integrated into web UI base - .gitignore updated for mciasdb build artifact Security: resolves CRIT-01 (TOTP replay attack) and DEF-03 (proxy-unaware rate limiting); gRPC TOTP enrollment aligned with REST via StorePendingTOTP Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
44 lines
1.2 KiB
Plaintext
44 lines
1.2 KiB
Plaintext
# mcias-dev.conf — Local development configuration for mciassrv
|
|
#
|
|
# Suitable for running mciassrv on a developer workstation.
|
|
# DO NOT use this configuration in production:
|
|
# - Tokens expire quickly (for rapid test iteration).
|
|
# - The master key passphrase is trivial.
|
|
# - TLS paths point to local self-signed certificates.
|
|
#
|
|
# Generate a self-signed certificate for local development:
|
|
# openssl req -x509 -newkey ed25519 -days 365 \
|
|
# -keyout /tmp/mcias-dev.key -out /tmp/mcias-dev.crt \
|
|
# -subj "/CN=localhost" -nodes
|
|
#
|
|
# Set the master passphrase:
|
|
# export MCIAS_MASTER_PASSPHRASE=devpassphrase
|
|
#
|
|
# Start the server:
|
|
# mciassrv -config /path/to/mcias-dev.conf
|
|
|
|
[server]
|
|
listen_addr = "127.0.0.1:8443"
|
|
grpc_addr = "127.0.0.1:9443"
|
|
tls_cert = "/tmp/mcias-dev.crt"
|
|
tls_key = "/tmp/mcias-dev.key"
|
|
# trusted_proxy not set — direct local development, no reverse proxy.
|
|
|
|
[database]
|
|
path = "/tmp/mcias-dev.db"
|
|
|
|
[tokens]
|
|
issuer = "https://localhost:8443"
|
|
default_expiry = "1h"
|
|
admin_expiry = "30m"
|
|
service_expiry = "24h"
|
|
|
|
[argon2]
|
|
# OWASP minimums maintained even in dev; do not reduce further.
|
|
time = 2
|
|
memory = 65536
|
|
threads = 4
|
|
|
|
[master_key]
|
|
passphrase_env = "MCIAS_MASTER_PASSPHRASE"
|