一种基于RTMP 协议认证访问方法的流媒体系统的设计与实现
作者: 严竞雄
摘要:RTMP协议在视频直播、点播领域有着广泛和重要的应用,基于RTMP的流媒体协议具有低延迟、连接可靠、多路复用的特点。文章通过设计一种基于RTMP协议的鉴权接入方法,在客户端访问服务器时,提供鉴权密钥进行访问验证,如果验证通过则放行,不通过则拒绝连接,从而提高系统的安全性。
关键词:RTMP;令牌;鉴权;流媒体;平台
中图分类号:TP319 文献标识码:A文章编号:1009-3044(2023)29-0013-03
0 引言
移动互联网时代,视频直播随处可见,人们更愿意以手机直播的方式来进行沟通和交流,直播手段也由开始的网页直播方式发展到移动手机直播方式[1],在享受移动设备便利的同时,网络安全也成为日益重要的话题。如何在保证直播正常开展的情况下,维护用户的个人信息和隐私不被泄露成为网民日益关心的话题。因此,直播信息安全越来越受到社会各界的重视。本文通过一种基于RTMP协议鉴权接入方法的设计来进行流媒体系统的实现,从技术角分析了RTMP协议的安全性,对现有的流媒体架构进行改进,从而更好地保护直播数据流的信息安全。
由于窃取链接的频繁发生,反窃取链接技术应运而生,即通过一些技术手段和加密方法,防止非法用户访问,防止链盗从原始网站获取数据和流量,通过相关指标跟踪来源。一旦检测到来源不是站点,它将被阻止或返回到指定页面,以实现防盗链。RTMP协议是一种用于实时数据通信的网络协议。它主要用于Flash/Air平台与支持RTMP协议的流媒体/交互式服务器之间的音频、视频和数据通信,因此可以用于支持网络直播。然而,当前的防盗链是基于HTTP协议的网页,这在RTMP网络广播中很难实现。
RTMP防盗链是指通过在RTMP协议通信中添加鉴权令牌,来保证视频资源安全的一种方式。在加入RTMP流媒体直播点播鉴权功能后,RTMP协议中将包含若干个鉴权字符串,如用户名、密码、播放权限等。只有合法生成的鉴权令牌才能进行正常的推流和拉流;另外,推拉流的时间戳令牌具有时效性,只有在有效期内才能正常地推拉流。
1 技术简介
流媒体客户端采用ActionScript编程语言进行设计与实现,通过Flash 采集用户视频和音频,采用H264进行视频编码,通过RTMP协议将编码的视频流推送到RTMP 服务端,服务器采用C++语言开发的RTMPServer,对外提供RTMP直播服务,包含了基于RTMP流媒体协议的相关交互过程,具有较强的先进性及应用价值。
2 功能原理
流媒体鉴权分为推流鉴权和拉流鉴权[2],都是利用RTMP协议来实现的,该功能是通过RTMP流媒体主机与客户端推拉流程序配合实现:
1) 启用流媒体鉴权功能后,客户端向视频服务器请求推拉流地址前先将所需的权限信息和时效信息进行加密,生成鉴权串。
2) 客户端向视频服务器发出包含鉴权串的RTMP 请求。
3) 流媒体服务器对客户端发送的RTMP协议中的权限信息和时效信息进行提取,获得加密鉴权串。
4) 流媒体服务器对RTMP协议中的权限信息和时效信息进行验证,对合法且在有效期内的请求正常响应,对非法或过期的请求拒绝响应。