著录项信息
专利名称 | 基于RTMP协议的流媒体服务用户认证方法 |
申请号 | CN201610150959.2 | 申请日期 | 2016-03-16 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2016-06-22 | 公开/公告号 | CN105704139A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 杭州狮说教育科技有限公司 | 申请人地址 | 浙江省杭州市拱墅区南北商务港大厦1幢703室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 杭州开课啦教育科技有限公司 | 当前权利人 | 杭州开课啦教育科技有限公司 |
发明人 | 陈勇;彭勇;赵云锋 |
代理机构 | 杭州求是专利事务所有限公司 | 代理人 | 邱启旺 |
摘要
本发明公开了一种基于RTMP协议的流媒体服务用户认证方法,视频服务器在提供视频服务前,先通过认证服务器验证用户身份的合法性,其次验证用户的访问权限,仅对具备足够访问权限的用户提供视频服务,拒绝非法或权限不足的用户请求;最后,对视频流数据进行加密传输,防止用户通过下载的方式获取视频内容并扩散传播。通过上述几种手段,可保证流媒体资源只能被合法的用户群使用,拒绝非法的视频请求,保证了视频资源被合理使用,同时降低了视频服务器的处理压力。本发明可实现流媒体点播与直播认证的可靠性与保密性,能显著提高网络流媒体管理的安全性,对于网络流媒体安全技术的发展有非常重要的现实意义。
1.一种基于RTMP协议的流媒体服务用户认证方法,其特征在于,该方法包括以下步骤:
(1)视频服务器接收来自客户端的资源请求;
(2)视频服务器从请求中提取用户会话信息,所述用户会话信息包括用户会话ID、用户ID、TOKEN和资源ID,并将这些信息交由认证服务器进行认证处理;
(3)认证服务器委托统一登录系统验证用户会话的有效性,若检测到用户ID或TOKEN无效时,直接响应未登录;当用户会话过期时,响应为无效的会话;当用户会话有效时,统一登录系统从数据库服务器取出当前用户的权限等级,作为响应结果返回给认证服务器;
(4)认证服务器在得到当前用户的权限等级后,根据资源ID向资源管理服务器获取所访问资源的权限等级信息,当用户权限等级不足以对相应的资源进行访问时,响应为权限不足;
(5)认证服务器判断当前用户ID是否处于播放状态,如果当前用户ID存在正在播放的会话,则由认证服务器通知提供服务的视频服务器中断视频传输过程;
(6)视频服务器建立与客户端的RTMP连接通道,并随机生成16字节长度的动态密钥作为本次会话密钥发送到客户端,然后通知认证服务器当前会话的RTMP连接成功,由认证服务器更新当前会话的播放状态;
(7)客户端接收会话密钥,存储在本地,并发出密钥响应消息到视频服务器;
(8)视频服务器收到客户端的密钥响应后,进行视频数据传输,根据当前的会话密钥对视频流数据进行实时加密后传输;
(9)客户端接收流媒体数据,解密成明文后正常播放;
(10)当本次会话的视频数据传输完毕,视频服务器通知认证服务器更新用户的播放状态。
2.根据权利要求1所述的一种基于RTMP协议的流媒体服务用户认证方法,其特征在于,所述资源管理服务器用于管理和维护所有的流媒体资源,对外提供资源信息查询的接口;
管理人员可在后台对视频资源进行上传、删除、权限更改操作;资源管理服务器定时检测本地资源库的变化,一旦检测到本地资源增加或减少,立即通知各个视频服务器进行资源库的更新,从而保证各个视频服务器上的资源一致性。
基于RTMP协议的流媒体服务用户认证方法\n技术领域\n[0001] 本发明属于流媒体服务技术领域,尤其涉及一种基于RTMP协议的流媒体服务,包括在线直播与在线点播的用户认证方法。\n背景技术\n[0002] 近年来,随着互联网技术的快速发展,越来越多的服务出现在互联网上,在线视频服务就是其中之一。RTMP协议是一个专为在线视频设计的传输协议,具有非常好的实时性,已广泛应用于视频的在线点播或直播等方面。由于RTMP协议自身并无对用户身份进行安全认证的环节,默认情况下,视频服务器会无差别的接受来自任何一方的连接请求,并提供视频服务。在需要保密或商业化媒体领域,仅仅依赖标准RTMP协议的服务在实用性方面具有很大的局限性,具体表现为以下几点不足:\n[0003] 1.商业性质的视频资源仅供注册用户浏览,若某一注册用户将请求视频资源所用的URL地址信息公开,那么未注册的用户群体都可正常浏览到对应的视频资源,不利于版权保护。\n[0004] 2.由于RTMP协议的公开性,竞争对手可设计定制化的视频请求客户端,就能冒充合法用户从服务器批量请求视频资源并做进一步的窃取、备份等,导致具有商业价值的视频资源或重要数据遭到泄漏或传播,使流媒体内容的版权遭到侵害。\n[0005] 3.竞争对手通过程序手段向视频服务器发出大量的连接请求,由于RTMP协议的无差异处理方式,服务器无法区分有效和无效的连接请求,容易导致服务器压力过大宕机,最终影响整个系统的可用性。\n发明内容\n[0006] 使用标准的RTMP协议无法保障资源持有方的版权利益,在实际应用中往往需要针对用户身份以及对应的访问级别进行访问控制,拒绝未授权的访问,从而保证商业资源能被合理化使用。本发明的目的在于针对现有技术的不足,在标准的RTMP应用上增加一种可定制的访问控制机制,使视频服务器仅仅针对合法的用户群体提供视频服务,同时对视频数据进行加密传输,从根本上保证流媒体的内容不被扩散传播。\n[0007] 本发明提供了一种基于RTMP协议的流媒体服务用户认证方法,视频服务器在提供视频服务前,先通过认证服务器验证用户身份的合法性,其次验证用户的访问权限,仅对具备足够访问权限的用户提供视频服务,拒绝非法或权限不足的用户请求;最后,对视频流数据进行加密传输,防止用户通过下载的方式获取视频内容并扩散传播,通过上述几种手段,可避免流媒体的版权信息遭到侵害。本发明方法具体包括以下步骤:\n[0008] (1)视频服务器接收来自客户端的资源请求。\n[0009] (2)视频服务器从请求中提取用户会话信息,所述用户会话信息包括用户会话ID、用户ID、TOKEN和资源ID,并将这些信息交由认证服务器进行认证处理。\n[0010] (3)认证服务器委托统一登录系统验证用户会话的有效性,若检测到用户ID或TOKEN无效时,直接响应未登录;当用户会话过期时,响应为无效的会话;当用户会话有效时,统一登录系统从数据库服务器取出当前用户的权限等级,作为响应结果返回给认证服务器。\n[0011] (4)认证服务器在得到当前用户的权限等级后,根据资源ID向资源管理服务器获取所访问资源的权限等级信息,当用户权限等级不足以对相应的资源进行访问时,响应为权限不足。\n[0012] (5)认证服务器判断当前用户ID是否处于播放状态,如果当前用户ID存在正在播放的会话,则由认证服务器通知提供服务的视频服务器中断视频传输过程。\n[0013] (6)视频服务器建立与客户端的RTMP连接通道,并随机生成16字节长度的动态密钥作为本次会话密钥发送到客户端,然后通知认证服务器当前会话的RTMP连接成功,由认证服务器更新当前会话的播放状态。\n[0014] (7)客户端接收会话密钥,存储在本地,并发出密钥响应消息到视频服务器。\n[0015] (8)视频服务器收到客户端的密钥响应后,进行视频数据传输,根据当前的会话密钥对视频流数据进行实时加密后传输。\n[0016] (9)客户端接收流媒体数据,解密成明文后正常播放。\n[0017] (10)当本次会话的视频数据传输完毕,视频服务器通知认证服务器更新用户的播放状态。\n[0018] 进一步地,所述资源管理服务器用于管理和维护所有的流媒体资源,对外提供资源信息查询的接口;管理人员可在后台对视频资源进行上传、删除、权限更改操作;资源管理服务器定时检测本地资源库的变化,一旦检测到本地资源增加或减少,立即通知各个视频服务器进行资源库的更新,从而保证各个视频服务器上的资源一致性。\n[0019] 本发明的有益效果是:\n[0020] 1、具备全面的访问控制功能,可保证流媒体资源只能被合法的用户群使用,拒绝非法的视频请求,保证了视频资源被合理使用,同时降低了视频服务器的处理压力。\n[0021] 2、保证了数据安全性,采用动态密钥对视频数据加密传输,使得视频只能被合法用户浏览,下载后的视频文件为密文状态,无法正常播放,保证了视频的商业价值不受侵害。\n[0022] 3、防止一号多用,结合统一登录系统,以用户会话为参考因素,避免了一个帐号多处同时请求视频资源的情况发生。同时可防止一个帐号在同一个设备上同时播放多个视频的情况发生,有利于带宽资源的合理化使用。\n[0023] 4、实时更新资源状态,通过资源管理服务器统一管理所有的媒体资源,当资源库发生变动时,将指令消息广播到各个视频服务器,保证各个视频服务器本地的视频资源处于最新状态。\n[0024] 5、有效的访问控制机制,管理人员可实时更新视频资源的权限等级或用户访问等级,达到实时更改用户的访问授权的目的。\n[0025] 6、本发明可实现流媒体点播与直播认证的可靠性与保密性,能显著提高网络流媒体管理的安全性,对于网络流媒体安全技术的发展有非常重要的现实意义。\n附图说明\n[0026] 图1为本发明中的各个关键部分的关系图;\n[0027] 图2为本发明中视频服务器在接收用户视频请求后,包含访问控制功能的流程图;\n[0028] 图3为本发明中资源管理服务器进行资源管理与同步的流程图。\n具体实施方式\n[0029] 如图1所示,本发明主要包括视频服务器、认证服务器、资源管理服务器和统一登录系统四个部分,用户终端为浏览器。\n[0030] 如图2所示,本发明提供的一种基于RTMP协议的流媒体服务用户认证方法,包括以下步骤:\n[0031] (1)视频服务器接收来自HTTP服务器的客户端请求。\n[0032] (2)视频服务器从请求中提取用户会话信息,所述用户会话信息包括用户会话ID、用户ID、TOKEN和资源ID,并将这些信息交由认证服务器进行认证处理。\n[0033] (3)认证服务器委托统一登录系统验证用户会话的有效性,若检测到用户ID或TOKEN无效时,直接响应未登录;当用户会话过期时,响应为无效的会话;当用户会话有效时,统一登录系统从数据库服务器取出当前用户的权限等级,作为响应结果返回给认证服务器。\n[0034] (4)认证服务器在得到当前用户的权限等级后,根据资源ID向资源管理服务器获取所访问资源的权限等级信息,当用户权限等级不足以对相应的资源进行访问时,响应为权限不足。\n[0035] (5)认证服务器判断当前用户ID是否处于播放状态,如果当前用户ID存在正在播放的会话,则由认证服务器通知提供服务的视频服务器中断视频传输过程。\n[0036] (6)视频服务器建立与客户端的RTMP连接通道,并随机生成16字节长度的动态密钥作为本次会话密钥发送到客户端,然后通知认证服务器当前会话的RTMP连接成功,由认证服务器更新当前会话的播放状态。\n[0037] (7)客户端接收会话密钥,存储在本地,并发出密钥响应消息到视频服务器。\n[0038] (8)视频服务器收到客户端的密钥响应后,进行视频数据传输,根据当前的会话密钥对视频流数据进行实时加密后传输。\n[0039] (9)客户端接收流媒体数据,解密成明文后正常播放。\n[0040] (10)当本次会话的视频数据传输完毕,视频服务器通知认证服务器更新用户的播放状态。\n[0041] 本发明在标准RTMP协议实现的基础上做了以下扩展:\n[0042] (1)扩展客户端的RTMP连接请求,客户端在请求数据中需要提供:用户ID、用户会话ID、TOKEN以及资源ID信息,同时增加了密钥接收响应与视频数据实时解密的处理逻辑。\n[0043] (2)更改视频服务器的处理逻辑,视频服务器在收到客户端发出的视频请求之后,并不直接提供视频服务,而是先从请求中提取用户ID、用户会话ID、TOKEN以及资源ID信息,交由认证服务器验证当前用户是否具备足够的访问权限。当验证通过后,才会与客户端建立RTMP连接并提供后续的视频服务,否则认为是无效的连接请求,拒绝连接。\n[0044] (3)对视频服务器新增生成动态密钥以及对视频数据实时加密传输的功能。\n[0045] (4)新增认证服务器,对视频服务器提供对用户身份和权限验证的服务接口,认证服务器根据用户ID以及资源ID信息,确定当前用户的请求是否合法,并将权限验证结果返回给视频服务器。\n[0046] (5)新增资源管理服务器,用于管理和维护所有的流媒体资源,对外提供资源信息查询的接口。如图3所示,管理人员可在后台对视频资源进行上传、删除、权限更改等操作。\n资源管理服务器会定时检测本地资源库的变化,一旦检测到本地资源增加或减少,则会立即通知各个视频服务器进行资源库的更新,从而保证各个视频服务器上的资源一致性。\n[0047] 本发明具有以下特征:\n[0048] 1、动态密钥加密视频流。视频服务器针对每个会话连接生成不同的动态密钥,对数据进行加密传输,客户端实时解密并播放,既不影响视频播放的实时性,又增加了算法猜解与密文破解的难度。\n[0049] 2、防止视频遭到下载和非法传播。本发明通过对视频数据加密的途径防止视频资源被非法下载和非法传播,加密后的视频内容无法播放,破解人员在缺少解密算法和解密密钥的条件下,难以获取视频的内容,从根本上防止视频内容遭到泄漏。\n[0050] 3、防止一号多用。认证服务器通过视频服务器的连接反馈信息,实时记录每一个用户ID的播放状态,当同一个帐号多次登录并请求视频服务时,只有最后一次发出的视频请求被认为是有效的,而相同帐号之前进行中的视频播放过程会被强制中断。这样可防止一个帐号多处登录,并同时请求视频服务的情况发生,也可限制一个帐号在同一个设备上同时进行视频播放的页面数量。
法律信息
- 2018-05-11
- 2018-05-08
著录事项变更
申请人由杭州狮说教育科技有限公司变更为杭州开课啦教育科技有限公司
地址由310015 浙江省杭州市拱墅区南北商务港大厦1幢703室变更为310015 浙江省杭州市拱墅区南北商务港大厦1幢703室
- 2016-07-20
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201610150959.2
申请日: 2016.03.16
- 2016-06-22
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-07-04
|
2010-12-08
| | |
2
| |
2008-08-20
|
2008-03-21
| | |
3
| |
2015-08-12
|
2015-04-30
| | |
4
| |
2008-10-01
|
2008-05-04
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |