直播防盗链这个话题,方案书上永远写得云淡风轻——"支持多重鉴权、有效防止盗播"。真到客户追问"到底能防住谁",很多人就答不上来了。
今年三月,摄行科技技术组自己做了一场内部攻防演练。红队四个人负责布防,用四种不同的鉴权方式各搭一套;蓝队三个人负责破,规则是只能用公开工具和公开信息,不许社工、不许拿内网权限。演练一共跑了六个小时,下面是完整记录。
演练的动机很实在:有个做付费培训的客户问我们,他们的课程被人扒到网盘上卖,能不能技术上堵住。这个问题我们答不好,就干脆自己试一遍。
先把话说在前面:直播防盗链不是一个开关,是一组措施的组合。指望配一个选项就万事大吉的想法,在演练的第一个小时就被打得粉碎。
布防一:Referer 白名单
这是最老也最常见的一招。CDN 侧配置只允许来自指定域名的请求,其他来源一律拒绝。
红队十五分钟就配好了,蓝队破解用了四分钟。
方法简单到有点尴尬:用 curl 手动加一个 Referer 头,或者装个浏览器插件改请求头,直接就过了。Referer 是客户端可以随意伪造的字段,它防的是"在别的网站上直接嵌入播放器"这种懒人盗链,防不了任何有意为之的人。
结论:Referer 白名单只能算门帘,不能算门。它有价值——能挡掉百分之八九十的顺手牵羊,但你不能把它当成安全措施写进合同。把它当成直播防盗链的全部,是很多项目翻车的起点。
布防二:时间戳加密 URL
第二套方案给播放地址加了一个带过期时间的签名参数,服务端用密钥算 MD5,超时或签名不对就 403。
红队配了四十分钟,蓝队折腾了五十二分钟才算破了一半。
所谓"破了一半"是这个意思:蓝队没法伪造签名,但他们发现只要在有效期内,这个 URL 可以在任何地方、任何设备上使用。我们设的有效期是三十分钟,蓝队的做法是写个脚本每二十五分钟去正常页面抓一次新地址,然后转发出去。整个直播两小时,他们抓了五次,全程盗播成功。
这暴露了时间戳鉴权的本质:它防的是"链接被永久保存",不是"链接被实时转发"。把有效期缩到三分钟能增加对方的麻烦,但也会增加正常用户断流重连的失败率。摄行科技现在给客户的默认值是十分钟,是在这两者之间折的中。
关于传输链路本身的加密和数据合规要求,直播数据安全合规问答那篇里讲了存储和权限侧的做法,和鉴权是两件互补的事。
布防三:Token 一次性票据
第三套上了强度:观众进入播放页时,业务系统向鉴权服务申请一张一次性 Token,这张票据绑定用户ID,用过即废,且同一账号同时只能有一个有效会话。
红队配了将近两小时(要改业务侧代码),蓝队最后没能在演练时间内破掉。
他们试过的路子有几条。抓包拿 Token 转发,失败——票据已被首次使用作废。多设备同时登录,失败——后登录的把先登录的踢下线。用两个不同账号同时看,成功了,但这是正常业务行为,不算破解。
Token 鉴权真正的短板不在技术,在运营。同一账号只能一路在线,意味着用户换了个设备、或者网络切换导致重连,都可能触发"被踢"的体验问题。我们做过统计,在开启单会话限制的项目里,客服收到的"我怎么被踢了"投诉大约是每千人四到七起。
这就是为什么摄行科技在给客户配这套的时候,会同时准备一份客服话术,把可能触发踢线的场景讲清楚。技术再硬,用户不理解就是麻烦。
布防四:一机一码加动态水印
第四套是防"录屏外传"的,思路完全不同:不阻止你看,而是让你不敢传。
具体做法是在播放画面上叠加一层半透明水印,内容是观看者的工号或手机号后四位,位置每隔十几秒随机漂移一次。这样即便有人录屏发出去,一眼就能追溯到源头。
蓝队试了三种去水印手段:裁剪画面,被水印漂移打败了,裁到最后没画面了;用视频修复算法擦,能擦掉但画面留下明显的糊斑,且耗时是视频时长的十几倍;用另一台设备翻拍屏幕,水印照样在。
演练结束时蓝队的评价是:"技术上能对抗,但成本高到不值得。"这句话其实就是安全的本质——不是让攻击不可能,是让攻击不划算。
企业内训类的场景对这一层需求最强烈,企业内训直播为什么不能直接用公开平台那篇里专门讲过权限、水印、防录屏这三道关。
四种方式的对照
把演练结果摆到一起看,结论很直观。
Referer 白名单,配置成本极低,被攻破用时四分钟,适合公开内容防嵌套。时间戳签名,配置成本低,被绕过用时五十二分钟,适合有一定价值的公开内容。Token 一次性票据,配置成本中高(要改业务),演练未被攻破,适合付费或内部内容。动态水印,配置成本中等,攻击不划算,适合怕外泄的机密会议。
我要特别强调一点:直播防盗链这四种做法不是四选一,是叠加使用的。摄行科技给中高敏感度项目的标配是"时间戳签名 + Token 票据 + 动态水印"三层,Referer 白名单当作免费赠品也开上。单独任何一层都有明显短板,叠起来才有意义。
演练里最意外的发现
最让我们警醒的其实不是哪一层被破了,而是蓝队在第五个小时找到的一条路:他们发现直播的备份录制文件被存在一个没有做鉴权的对象存储桶里,路径规律可以推测。
也就是说,前面四道防线守得再好,后门开着也白搭。这已经不是直播防盗链能覆盖的范围了,是资产管理的问题。演练之后我们把"录制文件存储权限核查"加进了摄行科技的项目交付检查表,每个项目上线前必须过一遍。
素材落盘和归档的规范做法,直播录制与剪辑的素材管理里有一套完整的分段落盘和标签体系,权限设置那一节可以重点看。
想做一次自己的攻防演练吗
如果你手里正好有一套在跑的直播系统,又不太确定它的鉴权层到底扛不扛得住,可以把架构描述发给我们。摄行科技可以帮你做一次同样规格的对抗测试,出一份带被攻破用时的评估报告,告诉你哪一层需要补、补到什么程度够用。测试和报告都不收费,真要落地加固再谈。
网络安全等级保护的具体要求和评测标准,国家层面的公开文件可以在中央网信办官网查到,做私有化部署的项目建议对照着看一遍;相关国家标准的正式文本,全国标准信息公共服务平台上可以免费检索原文。
#摄行科技