# 软件授权控制系统使用说明 ## 概述 本系统实现了基于数字签名的软件授权控制功能,支持离线授权验证和多种授权类型。 ## 文件结构 ``` backend/ ├── devices/utils/license_manager.py # 授权管理核心模块 ├── tools/license_generator.py # 授权文件生成工具 ├── license_public_key.pem # 授权验证公钥 ├── sample_license.json # 示例授权文件 ├── dev_license.json # 开发测试授权文件 ├── config.ini # 配置文件(包含[LICENSE]节) └── LICENSE_README.md # 本说明文档 ``` ## 配置说明 ### 1. 配置文件设置 在 `config.ini` 中的 `[LICENSE]` 节配置授权相关参数: ```ini [LICENSE] # 授权文件路径 path = dev_license.json # 公钥文件路径 public_key = license_public_key.pem # 授权过期宽限期(天) grace_days = 7 # 开发模式(跳过授权检查) dev_mode = True ``` ### 2. 开发模式 - 设置 `dev_mode = True` 可跳过授权检查,便于开发调试 - 生产环境必须设置 `dev_mode = False` ## 授权类型 ### 1. 试用版 (trial) - 功能限制:录制时长30分钟,最多10个会话 - 适用于产品试用 ### 2. 标准版 (standard) - 功能:完整录制和导出功能 - 限制:最多1000个会话,10个用户 - 适用于中小型机构 ### 3. 专业版 (professional) - 功能:所有功能无限制使用 - 包含高级分析功能 - 适用于大型机构 ## 使用流程 ### 1. 生成密钥对(首次部署) ```bash cd backend python tools/license_generator.py --generate-keys --private-key private_key.pem --public-key license_public_key.pem ``` ### 2. 生成授权文件 ```bash # 生成标准版授权 python tools/license_generator.py \ --private-key private_key.pem \ --license-id "STANDARD-2025-001" \ --license-type standard \ --company-name "天宏博科技" \ --contact-info "contact@example.com" \ --expires-days 365 \ --output customer_license.json # 生成试用版授权 python tools/license_generator.py \ --private-key private_key.pem \ --license-id "TRIAL-2024-001" \ --license-type trial \ --company-name "试用客户" \ --expires-days 30 \ --output trial_license.json ``` ### 3. 部署授权文件 1. 将生成的授权文件复制到客户端 2. 更新 `config.ini` 中的 `path` 参数指向授权文件 3. 确保 `dev_mode = False` 4. 重启应用 ## API接口 ### 1. 获取授权信息 ```http GET /api/license/info ``` 响应示例: ```json { "success": true, "data": { "valid": true, "message": "授权有效", "license_type": "standard", "license_id": "STANDARD-2024-001", "expires_at": "2025-12-31T23:59:59Z", "features": { "recording": true, "export": true, "max_sessions": 1000 }, "machine_id": "ABC123..." } } ``` ### 2. 生成激活请求 ```http POST /api/license/activation-request Content-Type: application/json { "company_name": "客户公司", "contact_info": "contact@customer.com" } ``` ### 3. 验证授权文件 ```http POST /api/license/verify Content-Type: multipart/form-data license_file: [授权文件] ``` ## 受保护的API 以下API需要有效授权才能访问: - `POST /api/detection/start` - 需要 `recording` 功能 - `POST /api/detection/{session_id}/stop` - 需要 `recording` 功能 - `GET /api/detection/data/*` - 需要基础授权 - `DELETE /api/detection/data/*` - 需要基础授权 ## 安全注意事项 ### 1. 私钥保护 - 私钥文件必须妥善保管,不得泄露 - 建议使用硬件安全模块(HSM)存储私钥 - 定期轮换密钥对 ### 2. 授权文件保护 - 授权文件包含数字签名,不可篡改 - 建议通过安全渠道分发授权文件 - 客户端应定期验证授权有效性 ### 3. 机器绑定 - 可通过 `machine_id` 参数绑定特定机器 - 使用 `*` 表示不限制机器 - 机器指纹基于硬件信息生成 ## 故障排除 ### 1. 授权验证失败 - 检查授权文件格式是否正确 - 确认公钥文件路径配置正确 - 验证授权文件签名是否有效 ### 2. 功能受限 - 检查授权类型和功能权限 - 确认授权是否过期 - 验证机器ID是否匹配 ### 3. 开发调试 - 临时启用 `dev_mode = True` - 查看日志文件获取详细错误信息 - 使用 `dev_license.json` 进行测试 ## 技术支持 如遇到授权相关问题,请提供以下信息: 1. 错误日志 2. 授权文件内容(去除签名) 3. 机器硬件指纹 4. 配置文件相关部分 联系方式:[技术支持邮箱]