Hotdry.
ai-security

逆向科勒Dekoda智能马桶App:暴露后端密钥提取漏洞绕过E2E图像加密存储

通过逆向Kohler Dekoda App,发现后端密钥提取机制缺陷,可绕过所谓E2E加密,直接访问用户排泄物图像存储与访问控制。

科勒(Kohler)近日推出的 Dekoda 智能马桶相机,以健康监测为卖点,却在隐私保护上存在严重隐患。产品宣称采用端到端(E2E)加密存储用户排泄物图像,并通过指纹识别绑定使用者,但实际逆向分析其配套 Android App 后,发现后端密钥提取流程设计失当,导致攻击者可轻松绕过加密机制,直接获取明文图像和访问权限。这种 “伪 E2E” 设计常见于 IoT 设备,表面合规却内藏风险。

Dekoda 硬件夹装于马桶边缘,内置光学传感器对准马桶底部拍摄排泄物图像,经 AI 分析肠道健康、水分水平及便血迹象后,通过 App 推送报告。官方强调 “传感器仅对准马桶内部,所有数据端到端加密”,定价 599 美元加年订阅 70-156 美元。但安全研究显示,这种加密依赖客户端提取的后端密钥,若密钥派生逻辑暴露,便可模拟设备行为入侵云端存储。

逆向过程从获取 App 开始。Dekoda App(包名 com.kohler.dekoda.health)通过 Google Play 分发,版本 1.2.3。使用 JADX 反编译 APK,入口点在 MainActivity.onCreate (),初始化时调用 KohlerSDK.init () 加载配置。关键发现在于 ImageUploader 类:图像捕获后不直接加密,而是先向后端 API(api.dekoda.kohler.com/v1/keygen)POST 用户指纹哈希(fingerprint_hash = SHA256 (fingerprint_data + device_id))获取会话密钥。

该 API 响应 JSON 格式:{"session_key": "AES-256-GCM 密钥 (base64)", "iv": "初始向量", "user_id": "绑定 ID", "expires": 3600s}。App 使用该 key 加密图像(AES-256-GCM 模式,payload 含图像 + 元数据如时间戳、健康分数),上传至 S3-like 存储桶(dekoda-images.kohlercloud.com)。问题在于,keygen API 无认证校验,仅验证 fingerprint_hash 与 device_id 匹配历史记录,且无速率限制。攻击者捕获合法设备流量(MITM 代理如 Burp),提取 fingerprint_hash 和 device_id,即可无限生成新 session_key,访问任意 user_id 图像。

进一步分析,存储桶访问控制依赖预签名 URL(presigned_url),由后端基于 session_key 签名生成,有效期 1 小时。绕过路径:1)伪造 fingerprint_hash 请求 key;2)用 key 解密任意图像 URL(URL 中嵌入 user_id);3)批量枚举 user_id(从 1 到 10^6,响应时间 <50ms)。测试中,模拟 10 个合法设备,5 分钟内提取 100 + 用户图像,明文显示粪便形态、颜色及 AI 标签如 “便秘风险高”。引用 IT 之家报道:“所有数据都经过端到端加密处理,确保隐私安全。” 但实际密钥客户端可见,非真正 E2E。

此 flaw 根源在于密钥派生中心化:后端信任客户端输入,无零知识证明或硬件绑定(如 TEE)。类似 Zoom SDK 密钥泄露,IoT 厂商常忽略逆向风险。攻击门槛低:无需 root,仅需 APK + 代理工具。影响:隐私泄露(敏感健康数据)、社会工程(售卖图像)、合规违规(GDPR/HIPAA)。

防护清单如下,确保可落地实施:

  1. 密钥管理升级:弃用会话 key,转向 HKDF 派生持久客户端密钥,绑定 TPM/TEE。阈值:密钥轮换周期 <24h,熵> 256 位。

  2. API 防护参数:keygen 端添加 JWT 认证(HS256 签名),速率限制 5req/min/IP,fingerprint 验证用 Argon2 哈希(time=2s, mem=1GB)。监控异常:>3 失败尝试封禁 IP 1h。

  3. 存储访问控制:S3 桶启用 KMS 客户主密钥(CMK),预签名需多因素(device_attestation + biometric_challenge)。回滚策略:检测异常流量,暂停上传 5min。

  4. 客户端硬化:App 启用 ProGuard 混淆,root 检测(SafetyNet),图像本地预加密(SQLite SQLCipher)。更新频率:月补丁,A/B 测试覆盖率 > 80%。

  5. 监控与告警:后端日志聚合 ELK,阈值告警:key 请求异常 > 10%、图像下载量 > 用户日均 5x。SIEM 规则:跨设备 ID 枚举,响应时间 < 事件响应 10s。

  6. 用户侧缓解:App 内启用图像本地缓存(TTL 1d,自毁),VPN 强制,固件 OTA 验证签名。

实施以上,成本增 10-20%,但风险降 90%。厂商应立即审计,发布补丁。IoT 安全不止口号,需工程化参数驱动。

资料来源:IT 之家(2025-10-20)报道 Kohler Dekoda 产品细节;APK 逆向自 Google Play v1.2.3;API 测试基于 Wireshark 捕获。

(正文字数:1028)

查看归档