签名与安全 - 设备验签由 HMAC 重构为 ECDSA P-256(SHA256withECDSA),抽出 DeviceSignatureVerifier,canonical 串为 METHOD|path|bodyHash|ts|nonce - 新增 CachedBodyRequestWrapper 支持请求体读取,multipart 不参与 bodyHash - Redis 一次性 nonce 防重放,验签前校验设备存在且 status != 0(封禁即吊销) - bind_phone 接口豁免过滤器,改由 Controller 用请求内公钥做 PoP 验签并自动注册 - 新增封禁/解封设备接口(sys:device:update),SQL 增加 sys_sn.public_key 家属端(client) - 壁纸:上传单个 / 轮换(最多 7 张)/ 调整顺序,静态资源映射 /static/wallpaper/** - 图片:发送到设备(contentType=24)、发送记录列表、收藏状态标记 - 闹钟:查询 / 新增 / 修改 / 删除,变更后推送设备同步(contentType=25) - 新增请求绑定设备(contentType=20)、绑定成功通知(21)、反向拨号(22) 设备端(mobile) - 新增 get_alarms / sync_alarms,按设备本地 id 整表覆盖重建 - 策略接口同步新增 20 项管控开关(安全模式、ADB、APN、飞行模式、定位等) 其他 - MQTT 首次连接失败不再阻塞启动,新增每分钟定时兜底重连 - 文件服务补充 md5/sha1/sha256 校验值,AppIcon 增加 iconSha1/iconSha256 - 新增 SQL:sn_device_key / sn_device_alarm / sn_device_picture / sn_device_wallpaper
22 lines
1.0 KiB
SQL
22 lines
1.0 KiB
SQL
-- =============================================================================
|
||
-- 设备 ECDSA P-256 签名公钥字段(sys_sn 表扩展)
|
||
-- 说明:
|
||
-- · 设备首次注册时上传 ECDSA P-256 公钥(X.509 SubjectPublicKeyInfo, Base64),
|
||
-- 服务端绑定 SN ↔ 公钥,后续 /api/v1/sn/** 请求用该公钥做 SHA256withECDSA 验签。
|
||
-- · 封禁/吊销通过 sys_sn.status 字段:1=启用,0=封禁(验签前校验)。
|
||
-- =============================================================================
|
||
|
||
-- 1. 为 sys_sn 表新增设备签名公钥字段(幂等:已存在则跳过)
|
||
SET @column_exists := (
|
||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME = 'sys_sn'
|
||
AND COLUMN_NAME = 'public_key'
|
||
);
|
||
SET @ddl := IF(@column_exists = 0,
|
||
'ALTER TABLE sys_sn ADD COLUMN public_key TEXT NULL COMMENT ''设备ECDSA P-256公钥(X.509 Base64)'' AFTER sn_mobile',
|
||
'SELECT 1');
|
||
PREPARE stmt FROM @ddl;
|
||
EXECUTE stmt;
|
||
DEALLOCATE PREPARE stmt;
|