Skip to main content

安全 & 合规

鉴权机制

用户登录

  • 用户名 + 密码 + (可选)TOTP 二步验证
  • 密码 bcrypt + salt(cost factor 12)
  • 失败 5 次锁账户 15 分钟
  • 默认 admin/admin 首次登录强制改密

JWT

  • HS256 签名(key 在 /etc/kvm/secret.key 600 权限)
  • 有效期默认 24h,可配
  • 信令 WebSocket /ws + 所有 /api/* 都强制 JWT

RBAC 角色

Role能做
admin用户管理 / 系统配置 / 审计导出 / 全部控制
operator视频流 / 键鼠 / 录像查看 / 不可改配置
viewer仅视频流 + 键鼠禁用
auditor仅审计日志查看 / 录像查看 / 不可控制

权限矩阵在 internal/rbac/policy.go 静态定义,启动时加载。

传输安全

  • HTTPS 强制:HTTP 自动 301 到 HTTPS
  • TLS 证书:默认自签(dev),生产放正式 cert 到 /etc/kvm/certs/
  • WebSocket Wss:信令 + WebRTC datachannel 全 SRTP 加密
  • HSTS:响应头 Strict-Transport-Security: max-age=31536000; includeSubDomains

审计追溯

日志签名链

  • 每条审计事件 SHA-256 链式 hash(含前一条 hash + 当前 payload + 时间戳)
  • 篡改任何一条会破链 — kvm-server 启动时 verify 全链 + journalctl warn
  • 导出 jsonl 含完整 hash,可独立 verify

视频水印

  • 实时 NV12 域水印(用户 ID / 时间戳)— 录像截图后仍可提取
  • DCT 抗压缩 + 错误纠正编码(Reed-Solomon)
  • 详见 src/video/video_watermark.cpp

录像

  • HLS segment + manifest(默认 5s/segment)
  • 加密存储(AES-GCM,per-segment key)
  • 默认保留 7 天,可改

隐私脱敏

  • 实时 OCR + 正则:识别屏幕上的手机号 / 身份证 / 银行卡 / 信用卡 / API key
  • 区域 redaction:对识别到的敏感区块在编码填黑
  • fail-closed:privacy 服务挂了 → 视频流停(不漏数据)
  • 粒度:可配白名单 / 黑名单 / 按类型开关

合规对齐

  • MLPS 2.0 三级:基本满足(详见仓库 docs/MLPS_COMPLIANCE_REPORT.md对外)
  • GDPR:本地处理 + 用户数据可导出 / 删除
  • 数据主权:默认无数据出网;启用 LLM Agent 时只发脱敏片段到云

CVE 历史

CVE版本范围严重度状态
CVE-2026-05-22-001v1.x → v2.0.3严重(远程 RCE 等效)v2.0.4 修复(信令 WS 加 JWT)

升级 = 强制:v2.0.3 及以下 必须升级到 v2.0.4+。

Pentest 报告

未公开(仅企业 license 用户在 NDA 后提供)。