物联网+移动互联时代下的数码安全新挑战
|
去年七月那项目,甲方说“就改一点点”的时候,我盯着微信里六十秒的语音方阵,手指在键盘上悬了半分钟——这他妈哪是改一点点?是让我把整个安全架构拆了重搭!他们要加移动端动态密钥同步,可当初合同里写的明明是“基础设备认证”,现在突然要兼容BLE和NFC双通道,还要求密钥过期时间从七十二小时缩到十八秒。我原以为加个API接口就能糊弄过去,结果测试组反馈:旧设备固件不支持短密钥,得全量刷机。 最绝的是,甲方技术总监凌晨三点发来需求文档,PDF里用荧光笔标了二十七个“必须”,其中三个是重复的。我打电话过去问,他那边背景音是机场广播:“哦,那个啊,我们安全顾问说必须这么改,不然过不了等保三级。”我翻出合同附件,上面白纸黑字写着“需求变更需双方书面确认”,结果他说:“现在补个邮件就行,你先把代码改了,尾款我们肯定给。” 改到一半,测试组又报了个诡异bug:移动端APP在弱网环境下会重复发送密钥请求,导致设备端缓存溢出。我蹲在服务器机房查日志,发现是甲方自己写的加密库有问题——他们把AES-256的IV向量硬编码成了固定值,还怪我们API没做防重放机制。我原以为这种低级错误只会出现在实习生代码里,结果他们CTO在视频会议里拍桌子:“我们花了十八个月写的库,怎么可能有问题?肯定是你们接口设计不合理!” 那天晚上我翻出项目初期签的NDA,发现里面藏着个坑:甲方要求源码交付后保留三个月修改权。这意味着就算现在验收了,他们还能随时让我返工。我给法务发消息问怎么办,她回了个转账截图:“他们刚打了三十万预付款,剩下的七十万说等二开一起结。”我盯着屏幕上的数字,突然想起上周甲方项目经理发来的消息:“在吗?我们想加个生物识别模块,指纹和人脸二选一,工期加两周,费用不变。” 后来我偷偷问了同行,发现这他妈是行业潜规则:物联网+移动互联的项目,甲方永远觉得“就改一点点”是合理的。他们不管你架构设计时考虑了多少兼容性,也不管旧设备固件能不能升级,反正最终用户要的是“无缝体验”。我上次在群里吐槽,有个做智能门锁的兄弟说,他遇到过更离谱的——甲方要求把RSA-2048换成国密SM2,理由是“上级单位检查时说进口算法不安全”,结果改完发现旧设备CPU带不动,又让他把加密强度降一半。
文章配图,仅供参考 现在我最怕听到的话不是“需求变更”,而是“我们咨询了专家”。去年十二月那个项目,甲方请了个“安全顾问”,开了三次会,每次都能提出新需求:第一次说要加设备指纹识别,第二次说要实现密钥碎片化存储,第三次直接要求把整个通信协议换成MQTT over TLS 1.3。我查了下,这顾问的LinkedIn上写着“十年安全经验”,结果他推荐的加密库,GitHub上最后更新时间是五年前,星标数还没我私人项目多。最搞笑的是验收那天,甲方拿了台十年前的安卓机来测APP,说“要覆盖所有用户场景”。那手机连TLS 1.2都不支持,我们临时降级成HTTP+AES-CBC,结果他们说“不安全,必须用TLS”。我指着设备参数说:“这手机系统版本太低,OpenSSL都不支持TLS 1.1以上。”他们项目经理推了推眼镜:“那我们用户里肯定有这种老设备,你们得解决。”最后我妥协了,在服务器端做了个兼容层,把所有老设备的请求都转发到备用HTTPS接口——这活本来不在合同里,但甲方说“就加个中间件,不难”。 现在这项目还在二开,甲方又提了新需求:要把动态密钥同步改成区块链存证。我查了下,他们说的“区块链”其实是个私有链,节点就三台服务器,还都在他们自己机房。我问他们:“这和直接存数据库有什么区别?”他们说:“专家说区块链不可篡改,安全。”我叹了口气,打开GitHub,准备fork个Hyperledger Fabric的样例代码——反正尾款还没结,先拖着呗。 有时候我在想,这行业是不是被甲方惯坏了?他们总觉得“就改一点点”是合理的,却从不考虑技术实现的成本。我上次算过,一个物联网项目里,真正花在初始开发上的时间只占三分之一,剩下的全是改需求、返工、适配旧设备。有次我实在忍不住,在验收报告里写了句“需求变更导致工期延长40%”,甲方项目经理看完笑了笑:“没事,我们理解,但尾款得等二开验收再结。” 现在我只盼着二开能顺利结项,最好甲方别再提“就改一点点”。不过我知道,这不可能——他们下周还要开个会,讨论要不要把AES换成更“安全”的XX算法。我翻了翻邮箱,发现他们还没发会议邀请,但微信群里已经有人在问:“在吗?那个加密方案,我们想再聊聊。” (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


5G模组功耗优化:嵌入式视角下的移动互联新规则