# 安全 ## 概述 Neotask 以安全为核心原则构建。从许可证激活到数据存储到网络通信,每一层都旨在保护您的数据并防止未授权访问。 ## 许可证安全 - **设备绑定**:每个许可证通过 SHA-256 指纹以加密方式绑定到单个设备。 - **HMAC-SHA256 请求签名**:所有 API 请求都使用每设备密钥、随机数和时间戳进行签名。 - **时间安全比较**:所有密钥比较使用常量时间算法以防止时序攻击。 - **Token 生命周期**:访问和刷新 token 的过期由服务器端通过签名的 JWT 声明控制,支持即时撤销。 - **自动重新验证**:您的许可证每 6 小时检查一次。 - **离线宽限期**:在需要重新验证之前有 72 小时的离线访问。 - **远程撤销**:许可证可以在服务器端即时撤销。 ## 双因素认证(TOTP) Neotask 支持可选(但推荐)的双因素认证以访问控制面板。 - 兼容 Google Authenticator、Authy、1Password 和任何 TOTP 兼容应用。 - 设置期间提供备用代码。这些代码经过 SHA-256 哈希处理,仅供一次性使用。 - 可以随时从控制面板设置中的**安全**部分启用或禁用 TOTP。 ## 加密 ### 静态数据 - **AES-256-GCM**:所有 token、密钥和 API key 均以加密方式存储。 - **机器衍生密钥**:加密密钥通过 scrypt 从您的设备身份衍生。 - **无明文存储**:token 永远不会以明文形式存储。 ### 传输中数据 - **TLS 1.3**:所有 API 通信都通过 HTTPS 传输。 - **WebSocket Secure (WSS)**:实时网关通信经过加密。 - **HMAC 签名**:每个请求都包含随机数和时间戳签名。 ### 环境密钥 - **双层加密**:构建时环境加密使用独立密钥。 - **无硬编码密钥**:源代码中不存在任何 API key 或 token。 - **日志编辑**:敏感数据自动从日志中剥离。 ## 桌面应用安全 ### Electron 加固 Neotask 应用严格的 Electron 安全设置以保护桌面应用程序: - `sandbox: true`:渲染器进程在沙箱环境中运行。 - `contextIsolation: true`:UI 无法直接访问主进程。 - `nodeIntegration: false`:UI 不暴露 Node.js API。 - `webSecurity: true`:强制执行同源策略。 ### 内容安全策略(CSP) - `default-src 'self'`:仅加载来自应用本身的资源。 - `script-src 'self'`:不允许外部脚本。 - 弹出窗口被阻止。 - 导航被阻止以防止重定向攻击。 - 页面刷新被阻止以防止状态操纵。 ### 应用完整性 - **ASAR 完整性**:对打包应用进行 SHA-256 哈希验证。 - **版本认证**:具有终止开关功能的服务器签名清单。 - **代码混淆**:在生产构建中应用 JavaScript 混淆。 - **硬失败模式**:任何完整性故障时应用完全阻止。 ## 网络安全 ### 网关隔离 - 网关仅运行在**回环地址**(127.0.0.1),意味着零外部网络暴露。 - 不接受来自您机器外部的传入连接。 - 会话授权具有 10 分钟生命期,绑定到设备,并经过 HMAC 签名。 ### 3 次失败锁定 - 连续 3 次网关操作失败后,所有操作被阻止。 - 需要手动重置以恢复访问。 - 此机制防止暴力破解尝试。 ## API 安全 ### 认证方法 | 方法 | 用途 | 安全级别 | |--------|----------|----------------| | **JWT Bearer Token** | Web 控制面板、API 调用 | 标准(90 天过期) | | **许可证 HMAC** | 桌面应用操作 | 高(每设备密钥) | | **会话授权** | 网关操作 | 非常高(10 分钟,HMAC 签名) | | **TOTP** | 控制面板登录 | 附加因素 | ### 速率限制 | 端点 | 限制 | |----------|-------| | 联系表单 | 15 分钟内 5 次请求 | | 登录尝试 | 15 分钟内 10 次请求 | | 分析/跟踪 | 60 秒内 30 次请求 | ### 输入验证 - 所有 IPC 参数在处理前经过验证。 - 所有 API 输入经过净化。 - 已部署针对 SQL 注入、XSS 和命令注入的保护措施。 ## 提供商密钥安全(BYOK) 使用自带密钥(BYOK)模式时,Neotask 对您的 API key 应用额外的安全措施: - API key 在存储前使用 AES-256-GCM 加密。 - 密钥永远不会在日志或错误消息中暴露。 - 密钥在控制面板中以掩码形式显示(仅可见最后 4 个字符)。 - 移除密钥时执行安全删除。 ## 安全模式 Neotask 包含安全模式功能,为代理提供执行沙箱: - 按代理执行沙箱隔离每个代理的操作。 - 敏感操作在执行前需要用户明确批准。 - 主开关允许您全局启用或禁用安全模式。 - 按计划自动重新启用确保安全模式在临时更改后重新激活。 - 实时策略同步使所有连接的设置保持一致。 ## 审计与合规 - 所有配置更改都带有时间戳记录。 - 配置哈希检测未授权修改。 - 使用遥测(可选加入)支持异常检测。 - CORS 限制为仅授权的域名。 - 所有 Web 响应都应用了 Helmet 安全头。 ## 最佳实践 1. **启用 TOTP** 以在控制面板上使用双因素认证。 2. **下载备用代码**并安全存储。 3. **设置每日预算**以防止意外费用。 4. **使用 BYOK 模式** 如果您想完全控制 API key。 5. **保持应用更新**,因为自动更新包含安全补丁。 6. **定期审查代理权限** 在安全模式设置中。