昨天群友转发了一篇有趣的文章:[案例解读 | 淘宝”生意参谋”数据案判赔3000万](https://mp.weixin.qq.com/s?__biz=MzU2NDk5Njg2OA==&mid=2247506406&idx=1&sn=fa2f5764f4dc8ba7c362b7aaae95ff10&scene=21#wechat_redirect),南京中院支持了原告淘宝的索赔 3000 万元的诉讼请求,其中认定被告小旺神插件的“指数一键还原”功能,虽未破解生意参谋“指数化”算法模型,但是通过不正当手段获取了大量具有对应关系的数据,再通过技术手段向本不应该获取上述信息的商户提供无限接近淘天平台的真实数据,破坏淘宝“生意参谋”的商业模式,属于不正当竞争。 |
判决书里有些内容记录很好玩,我摘录几条:
这个一键还原到底有多准呢?下图是判决书里贴的对比,几乎一模一样:
判决书里只提了生意参谋的软著,不过“保序脱敏”这个关键词挺罕见,我试着去搜了一下中国发明专利总库,还真发现有 2 个结果,分别是腾讯(直播热度)和阿里(商品指数)。看完内容,没错,阿里巴巴集团 2020 年申请、 2024 年授权的 CN114065272B 号专利《数据处理与发布方法、设备及存储介质》,就是本案核心的生意参谋指数化保序脱敏算法!
专利描述都很冗长,我用 AI 快速总结一下其中最易懂的实例流程,如下图所示:
flowchart LR
subgraph main[主流程]
A[开始] --> B[初始化<br/>原始数据范围M=1,16<br/>脱敏数据范围C=1,7<br/>原始数据=3]
B --> C["迭代计算<br/>σ=P*(M_max-M_min+1)/2<br/>m_mid=(M_max+M_min)/2<br/>c_mid=Sample(k,C,σ)"]
C --> D{是否收敛到<br/>m=m_mid?}
D -->|否| E[更新M, C范围]
E --> C
D -->|是| F[脱敏数据=2]
F --> G[结束]
end
subgraph details[迭代详情]
H[第1次迭代<br/>计算m_mid=9<br/>判断1≤3<9成立<br/>更新M为1,9<br/>更新C为 1,4]
I[第2次迭代<br/>计算m_mid=5<br/>判断1≤3<5成立<br/>更新M为1,5<br/>更新C为 1,2]
J[第3次迭代<br/>计算m_mid=3<br/>m=m_mid=3<br/>输出c_mid=2]
H --> I
I --> J
end
C -.-> H
style A fill:#e1f5fe
style G fill:#e8f5e8
style C fill:#fff3e0
style D fill:#fce4ec
style F fill:#f3e5f5
style H fill:#e8f5e8
style I fill:#e8f5e8
style J fill:#e8f5e8
专利描述中虽然说“有界伪随机函数 Sample() 的实际实现不限分布”,但考虑到函数传参用了标准差,应该就是最普通的高斯分布。所以从这个流程可以判断,整个指数化算法中,只有两个可控参数:作为种子密钥的 k,和作为安全性控制的 P。
更巧的是:腾讯的专利里还强调了随机种子在不同业务标识之间各自独立,而阿里的专利中并未强调这点——虽然从判决书来看,一共 4 个指标,哪怕 k 独立了,难度也没增加多少。
算法的另一部分输入是数据范围。可惜淘宝商品的搜索数、收藏数、交易数这些都是公开可见。有心人只需要直接排序就能获取它们的 Max 值。然后注册个小店,或者其他渠道获取一些对应数据,就能还原出来整个公式和参数 P 了。
技术上的解读到这里就结束了。事实上,保序加密都不可能是什么密不可破的算法,需要更多从系统整体设计、甚至企业内控的层面,来审视数据的暴露风险。