CN107333151A - 一种视频流地址鉴权方法及装置 - Google Patents

一种视频流地址鉴权方法及装置 Download PDF

Info

Publication number
CN107333151A
CN107333151A CN201710527420.9A CN201710527420A CN107333151A CN 107333151 A CN107333151 A CN 107333151A CN 201710527420 A CN201710527420 A CN 201710527420A CN 107333151 A CN107333151 A CN 107333151A
Authority
CN
China
Prior art keywords
video flowing
function
authentication key
flowing address
stack information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710527420.9A
Other languages
English (en)
Other versions
CN107333151B (zh
Inventor
周志刚
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710527420.9A priority Critical patent/CN107333151B/zh
Publication of CN107333151A publication Critical patent/CN107333151A/zh
Priority to PCT/CN2018/082510 priority patent/WO2019001084A1/zh
Application granted granted Critical
Publication of CN107333151B publication Critical patent/CN107333151B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25875Management of end-user data involving end-user authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4627Rights management associated to the content

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种视频流地址鉴权方法及装置,应用于网络直播领域。该方法包括:如果接收到对目标直播房间的视频观看指令,通过目标底层库函数获取调用堆栈信息,调用堆栈信息中保存有被调用函数的函数标识,目标底层库函数为直播客户端所处操作系统的系统级函数;读取M个鉴权要素,M个鉴权要素与直播客户端当前的状态相关;将调用堆栈信息和M个鉴权要素经过哈希函数处理,以生成同时与调用堆栈信息和M个鉴权要素相关的视频流地址鉴权KEY值;将携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求发送给视频流服务器,视频流地址请求用于向视频流服务器请求目标直播房间的视频流地址。本发明解决了现有视频流地址鉴权的安全性较低的问题。

Description

一种视频流地址鉴权方法及装置
技术领域
本发明涉及网络直播领域,尤其涉及一种视频流地址鉴权方法及装置。
背景技术
目前,网络直播是利用互联网及流媒体技术进行视频直播,然而视频内容的提供方存在视频流地址被第三方平台获取,从而可以不通过直播网站直接观看视频,即绕过了直播网站的视频播放器提供的视频播放。从而对于视频网站减少了网站的流量。
目前存在一些黑客通过逆向调试分析直播平台的视频流地址的鉴权函数,从而可以破解出如何生成视频流地址的函数,最终绕过了平台的检测,以能够不通过直播网站就直接观看视频,可见,现有视频流地址鉴权的可靠性较低。
发明内容
本发明实施例通过提供一种视频流地址鉴权方法及装置,解决的技术问题为:现有视频流地址鉴权的可靠性较低。
第一方面,本发明实施例提供了一种视频流地址鉴权方法,应用于直播客户端,所述方法包括:
如果接收到对目标直播房间的视频观看指令,通过目标底层库函数获取调用堆栈信息,其中,所述目标底层库函数为所述直播客户端所处操作系统的系统级函数;
读取M个鉴权要素,所述M个鉴权要素均与所述直播客户端当前的状态相关,M为正整数;
将所述调用堆栈信息和所述M个鉴权要素经过哈希函数处理,以生成同时与所述调用堆栈信息和所述M个鉴权要素相关的视频流地址鉴权KEY值;
将携带有所述视频流地址鉴权KEY值和所述M个鉴权要素的视频流地址请求发送给所述视频流服务器,所述视频流地址请求用于向所述视频流服务器请求所述目标直播房间的视频流地址。
可选的,在所述将携带有所述视频流地址鉴权KEY值和所述M个鉴权要素的视频流地址请求发送给所述视频流服务器之前,所述方法还包括:
将所述调用堆栈信息发送给所述视频流服务器。
可选的,所述读取M个鉴权要素,包括:
读取所述直播客户端本次登陆所述直播平台时,从所述视频流服务器所获取的令牌;和
读取所述直播客户端当前的系统时间;和
读取所述直播客户端当前进入的所述目标直播房间的房间ID;和
读取所述直播客户端当前的IP地址;和
读取所述直播客户端的设备唯一ID。
可选的,所述通过目标底层库函数获取调用堆栈信息,包括:
获取所述操作系统中系统库的句柄;
通过所述操作系统中系统库的句柄,获取与所述调用堆栈信息相关的N个底层库函数,N为正整数;
调用所述N个底层库函数,以获取所述调用堆栈信息。
可选的,与所述调用堆栈信息相关的N个底层库函数,包括:
用于获取所述调用堆栈信息的内存地址的函数,和
用于通过所述内存地址从所述调用堆栈信息中获取所述函数标识的函数,和
用于对获取所述函数标识的句柄进行释放的函数。
第二方面,本发明实施例提供了一种视频流地址鉴权方法,应用于视频流服务器,所述方法包括:
如果接收到来自待鉴直播客户端的携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求,从所述视频流地址请求中获取所述视频流地址鉴权KEY值和所述M个鉴权要素,其中,所述M个鉴权要素均与所述直播客户端当前的状态相关,M为正整数;
将所述M个鉴权要素与调用堆栈信息经过哈希函数处理,以生成同时与所述调用堆栈信息和所述M个鉴权要素相关的视频流地址鉴权KEY值,其中,所述调用堆栈信息为所述直播客户端在已经登录到直播平台之后通过目标底层库函数获取并发送给所述视频流服务器的,所述目标底层库函数为所述直播客户端所处操作系统的系统级函数,所述调用堆栈信息中以调用顺序保存有被调用函数的函数标识;
将从所述视频流请求中获取的视频流地址鉴权KEY值与所述视频流服务器生成的视频流地址鉴权KEY值进行对比;
如果对比结果为一致,向所述待鉴直播客户端下发所述视频流地址请求中所请求的视频流地址。
第三方面,本发明实施例提供了一种视频流地址鉴权装置,应用于直播客户端,所述装置包括:
堆栈信息获取单元,用于如果接收到对目标直播房间的视频观看指令,通过目标底层库函数获取调用堆栈信息,其中,所述调用堆栈信息中以调用顺序保存有被调用函数的函数标识,所述目标底层库函数为所述直播客户端所处操作系统的系统级函数;
鉴权要素读取单元,用于读取M个鉴权要素,所述M个鉴权要素与所述直播客户端当前的状态相关,M为正整数;
鉴权处理单元,用于将所述调用堆栈信息和所述M个鉴权要素经过哈希函数处理,以生成同时与所述调用堆栈信息和所述M个鉴权要素相关的视频流地址鉴权KEY值;
请求发送单元,用于将携带有所述视频流地址鉴权KEY值和所述M个鉴权要素的视频流地址请求发送给所述视频流服务器,所述视频流地址请求用于向所述视频流服务器请求所述目标直播房间的视频流地址。
可选的,所述装置还包括:
堆栈信息发送单元,用于将所述调用堆栈信息发送给所述视频流服务器。
可选的,所述鉴权要素读取单元,具体用于:
读取所述直播客户端本次登陆所述直播平台时,从所述视频流服务器所获取的令牌;和
读取所述直播客户端当前的系统时间;和
读取所述直播客户端当前进入的所述目标直播房间的房间ID;和
读取所述直播客户端当前的IP地址;和
读取所述直播客户端的设备唯一ID。
可选的,所述堆栈信息获取单元,具体用于:
获取所述操作系统中系统库的句柄;
通过所述操作系统中系统库的句柄,获取与所述调用堆栈信息相关的N个底层库函数,N为正整数;
调用所述N个底层库函数,以获取所述调用堆栈信息。
第四方面,本发明实施例提供了一种视频流地址鉴权装置,应用于视频流服务器,所述装置包括:
请求接收单元,用于如果接收到来自待鉴直播客户端的携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求,从所述视频流地址请求中获取所述视频流地址鉴权KEY值和所述M个鉴权要素,其中,所述M个鉴权要素均与直播客户端当前的状态相关,M为正整数;
鉴权处理单元,用于将所述M个鉴权要素与调用堆栈信息经过哈希函数处理,以生成同时与所述调用堆栈信息和所述M个鉴权要素相关的视频流地址鉴权KEY值,其中,所述调用堆栈信息为所述直播客户端在已经登录到直播平台之后通过目标底层库函数获取并发送给所述视频流服务器的,所述目标底层库函数为所述直播客户端所处操作系统的系统级函数,所述调用堆栈信息中以调用顺序保存有被调用函数的函数标识;
KEY值对比单元,将从所述视频流请求中获取的视频流地址鉴权KEY值与所述视频流服务器生成的视频流地址鉴权KEY值进行对比;
地址下发单元,用于如果对比结果为一致,向所述待鉴直播客户端下发所述视频流地址请求中所请求的视频流地址。
第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一实施方式所述的步骤。
第六方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面中任一实施方式所述的步骤。
本发明实施例中的技术方案,通过目标底层库函数获取调用堆栈信息,将调用堆栈信息和各个鉴权要素经过哈希函数处理,以生成同时与调用堆栈信息和各个鉴权要素相关的视频流地址鉴权KEY值,从而调用堆栈信息成为了视频流地址鉴权KEY值的一部分,使得:非法的直播客户端即使调用了相同的视频流地址鉴权算法,所用的调用堆栈信息与正确的直播客户端所用的调用堆栈信息也是不一致的,进而使得视频流服务器可以准确判断直播客户端是否伪造了视频流地址鉴权KEY值,从而本发明能够避免视频流地址被非法获取,提高了视频流地址鉴权的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用于直播客户端的视频流地址鉴权方法的流程图;
图2为本发明实施例提供的应用于视频流服务器的侧视频流地址鉴权方法的流程图;
图3为本发明实施例提供的应用于直播客户端的视频流地址鉴权装置的结构示意图;
图4为本发明实施例提供的应用于视频流服务器的视频流地址鉴权装置的结构示意图;
图5为本发明实施例提供的计算机可读存储介质的结构示意图;
图6为本发明实施例提供的计算机设备的结构示意图。
具体实施方式
本发明实施例通过提供一种视频流地址鉴权方法及装置,解决了现有视频流地址鉴权的可靠性较低的技术问题。
为了解决上述技术问题,本发明实施例提供的技术方案,总体思路如下:
如果接收到对目标直播房间的视频观看指令,通过目标底层库函数获取调用堆栈信息,其中,调用堆栈信息中以调用顺序保存有被调用函数的函数标识,目标底层库函数为直播客户端所处操作系统的系统级函数;读取M个鉴权要素,M个鉴权要素均与直播客户端当前的状态相关,将调用堆栈信息和M个鉴权要素经过哈希函数处理,以生成同时与调用堆栈信息和M个鉴权要素相关的视频流地址鉴权KEY值;将携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求发送给视频流服务器。
通过上述技术方案,生成同时与调用堆栈信息和M个鉴权要素相关的视频流地址鉴权KEY值,使得调用堆栈信息成为了视频流地址鉴权KEY值的一部分。而通过目标底层库函数获取的调用堆栈是固定的,视频流服务器是可以预先获知,从而直播客户端在发送视频流地址鉴权KEY值和M个鉴权要素的同时不需要发送调用堆栈信息到视频流服务器,则调用堆栈信息不会同时与视频流地址鉴权KEY值和M个鉴权要素出现在网络中,从而可以保证调用堆栈信息不被泄露,使得,非法的直播客户端即使调用了相同的视频流地址鉴权算法,所用的调用堆栈信息与正确直播客户端所用调用堆栈信息也不会一致,进而视频流服务器可以准确判断的直播客户端是否伪造了鉴权KEY值,从而本发明能够避免视频流地址被非法获取,提高了视频流地址鉴权的可靠性。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本发明实施例提供的视频流地址鉴权方法,应用于直播客户端。参考图1所示,该视频流地址鉴权方法包括如下步骤:
S101、如果接收到对目标直播房间的视频观看指令,通过目标底层库函数获取调用堆栈信息,其中,调用堆栈信息中以调用顺序保存有被调用函数的函数标识,目标底层库函数为直播客户端所处操作系统的系统级函数。
具体的,函数标识可以为符号名称。
需要说明的是,在本实施例中,视频观看指令可以为观众对目标直播房间进行点击时生成的,进而以使直播客户端能够进入目标直播房间。
本实施例中,目标直播房间可以为直播平台上任一正在进行网络视频直播的房间,基于观众的点击操作生成进入目标直播房间的视频观看指令。
需要说明的是,在本实施例中的操作系统为安卓(Android)。Android提供的用于获取调用堆栈信息的函数,所获取的调用堆栈信息易于被黑客修改,而在本实施例中,通过调用Android系统的底层库函数来获取调用堆栈信息,使得不会被黑客所侵入而修改堆栈信息,从而获取的调用堆栈信息更为安全和准确。
在一实施例中,S101的实施流程包括如下步骤S1011~S1014,以确保获取的调用堆栈信息准确。
执行S1011、获取操作系统中系统库的句柄。
在S1011之后,接着执行S1012:通过操作系统中系统库的句柄,获取与调用堆栈信息相关的N个底层库函数,N为正整数。
S1011~S1012的具体实现过程具体为:获取库libcorkscrew.so的句柄,具体实现方式如下:
gHandle=dlopen("/system/lib/libcorkscrew.so",RTLD_NOW)
其中,调用系统函数dlopen来获取库libcorkscrew.so的句柄,返回值gHandle就是库libcorkscrew.so对应的句柄。
继而获取库libcorkscrew.so中提供的用于获取调用堆栈信息的N个底层库函数。
具体的,获取的N个底层库函数,包括:用于获取调用堆栈信息的内存地址的函数:“unwind_backtrace”,还包括:用于通过内存地址从调用堆栈信息中获取函数标识的函数:“get_backtrace_symbols”,还包括:用于对获取函数标识的句柄进行释放的函数:“free_backtrace_symbols”。
首先,通过第一次调用系统函数dlsym,获取库libcorkscrew.so提供的“unwind_backtrace”函数的函数指针,其具体实现如下:
punwind_backtrace=dlsym(gHandle,“unwind_backtrace”);
具体的,“unwind_backtrace”函数能够获取调用堆栈中被调用函数的内存地址、以及无函数的符号名称。
接着,通过第二次调用系统函数dlsym,以获取库libcorkscrew.so提供的“get_backtrace_symbols”函数的函数指针,其具体实现可以如下:
pbacktrace_symbols=dlsym(gHandle,"get_backtrace_symbols")
再接着,通过第三次调用系统函数dlsym,以获取库libcorkscrew.so提供的“free_backtrace_symbols”函数的函数指针,其具体实现可以如下:
pfree_backtrace_symbols=dlsym(gHandle,"free_backtrace_symbols");
在经S1012获取N个底层库函数之后,接着执行S1013、调用N个底层库函数,以获取调用堆栈信息。
具体的,结合S1012中的一具体实施例,在S1013中,调用S1012获取的“unwind_backtrace”函数来获取调用堆栈中被调用函数的内存地址,具体实现可以如下:
Count=punwind_backtrace(mStack,1,MAX_DEPTH);
其中,参数mStack是用于存储被调用函数的内存地址,参数MAX_DEPTH标示获取的调用堆栈(mStack)的层数。返回值Count标示获取内存地址的个数。
通过S1012获取的函数"get_backtrace_symbols",以获取被调用函数的函数标识,如:函数名称。具体实现可以如下:
pbacktrace_symbols(mStack,Count,symbols);
此函数的调用将获取内存地址转化成具体的函数名称,从而通过函数名称知道具体调用了什么函数。
S102:读取M个鉴权要素,M个鉴权要素与直播客户端当前的状态相关,M为正整数。
具体的,在读取的M个鉴权要素中,与直播客户端当前的状态相关的鉴权要素包括:直播客户端当前的系统时间(Time)、直播客户端当前的IP地址、直播客户端的设备唯一ID、直播客户端本次登陆直播平台时从视频流服务器所获取的令牌(Tocken)、直播客户端当前进入的目标直播房间的房间ID。
需要说明的是,在具体实施过程中,S102和S103为独立执行的步骤,本发明不限定两者执行的先后顺序。
S103、将调用堆栈信息和M个鉴权要素经过哈希函数处理,以生成同时与调用堆栈信息和M个鉴权要素相关的视频流地址鉴权KEY值。
在直播客户端,可以通过MD5函数但是不限于MD5函数,将直播客户端当前的系统时间(Time)、直播客户端当前的IP地址(Ip)、直播客户端的设备唯一ID(ID)、直播客户端本次登陆直播平台时从视频流服务器所获取的令牌(Tocken)、目标直播房间的房间ID(RoomId)和调用堆栈(CallStack)信息一起经过通过MD5函数计算出一个HASH值,作为上报给视频流服务器的视频流地址鉴权KEY值。通过MD5函数实现的方式可以如下:
KEY=MD5.create(Tocken+Time+Ip+ID+RoomId+CallStack)
S104、将携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求发送给视频流服务器,视频流地址请求用于向视频流服务器请求目标直播房间的视频流地址。
需要强调的是,在S105中不发送调用堆栈信息。其中,由于通过目标底层库函数获取的调用堆栈是固定的,可以通过直播客户端在S105之前,将该调用堆栈信息发送给视频流服务器。从而在发送视频流地址请求中不携带调用堆栈信息。
则调用堆栈信息不会与视频流地址鉴权KEY值同时出现在网络中,从而可以保证调用堆栈CallStack信息的安全性,不被泄露。
在具体实施过程中,将调用堆栈信息发送给视频流服务器,可以是在直播客户端接收到对目标直播房间的视频观看指令并通过目标底层库函数获取调用堆栈信息时,也可以是在S101之前获取的调用堆栈信息并发送给视频流服务器。
基于同一发明构思,本发明实施例提供了一种视频流地址鉴权方法,应用于视频流服务器。参考图2所示,本实施例中应用于视频流服务器的视频流地址鉴权方法包括如下步骤:
S201、如果接收到来自待鉴直播客户端的携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求,从视频流地址请求中获取所述视频流地址鉴权KEY值和M个鉴权要素,其中,M个鉴权要素均与直播客户端当前的状态相关,M为正整数;
S202、将M个鉴权要素与调用堆栈信息经过哈希函数处理,以生成同时与调用堆栈信息和M个鉴权要素相关的视频流地址鉴权KEY值,其中,调用堆栈信息为直播客户端在已经登录到直播平台之后通过目标底层库函数获取并发送给视频流服务器的,目标底层库函数为直播客户端所处操作系统的系统级函数,调用堆栈信息中以调用顺序保存有被调用函数的函数标识;
S203、将从视频流请求中获取的视频流地址鉴权KEY值与视频流服务器生成的视频流地址鉴权KEY值进行对比;
S204、如果对比结果为一致,向待鉴直播客户端下发视频流地址请求中所请求的视频流地址,如果对比结果为不一致,则视频流服务器拒绝待鉴直播客户端的视频流地址请求。
通过本实施例,如果黑客想通过调用本文编写的视频流地址鉴权算法而绕过校验,那么待鉴直播客户端获取的函数调用堆栈信息肯定和正常的客户端获取调用堆栈信息是不一致,从而会导致上报给视频流服务器的视频流地址鉴权KEY值与视频流服务器自身生成的不一致,从而视频流服务器可以判断直播客户端伪造了视频流地址鉴权KEY值。
需要说明的是,视频流服务器将M个鉴权要素与调用堆栈信息经过哈希函数处理,以生成同时与调用堆栈信息和M个鉴权要素相关的视频流地址鉴权KEY值的步骤中,所用的哈希函数为与发送该调用堆栈信息的客户端所用的哈希函数为相同的哈希函数。
通过本实施例,相当于是对调用堆栈信息进行了校验,即使黑客也调用了与本文相同的视频流地址鉴权方式,所用的调用堆栈信息也会和正确的客户端获取的调用堆栈信息不一致,从而导致视频流服务器对接收的视频流地址鉴权KEY值与视频流服务器计算的视频流地址鉴权KEY值对比结果不一致,以完全避免非法获取目标直播房间的直播视频。
基于同一发明构思,本发明实施例提供了一种视频流地址鉴权装置,应用于直播客户端,参考图3所示,本实施例提供的装置包括:
堆栈信息获取单元301,用于如果接收到对目标直播房间的视频观看指令,通过目标底层库函数获取调用堆栈信息,其中,调用堆栈信息中以调用顺序保存有被调用函数的函数标识,目标底层库函数为直播客户端所处操作系统的系统级函数;
鉴权要素读取单元302,用于读取M个鉴权要素,M个鉴权要素与直播客户端当前的状态相关,M为正整数;
鉴权处理单元303,用于将调用堆栈信息和M个鉴权要素经过哈希函数处理,以生成同时与调用堆栈信息和M个鉴权要素相关的视频流地址鉴权KEY值;
请求发送单元304,用于将携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求发送给视频流服务器,视频流地址请求用于向视频流服务器请求目标直播房间的视频流地址。
在一实施例中,该装置还包括:
堆栈信息发送单元,用于将调用堆栈信息发送给视频流服务器。
可选的,鉴权要素读取单元302,具体用于:
读取直播客户端本次登陆直播平台时,从视频流服务器所获取的令牌;和
读取直播客户端当前的系统时间;和
读取直播客户端当前进入的目标直播房间的房间ID;和
读取直播客户端当前的IP地址;和
读取直播客户端的设备唯一ID。
在一实施例中,堆栈信息获取单元301,具体用于:
获取操作系统中系统库的句柄;
通过操作系统中系统库的句柄,获取与调用堆栈信息相关的N个底层库函数,N为正整数;
调用N个底层库函数,以获取调用堆栈信息。
基于同一发明构思,本发明实施例提供了一种视频流地址鉴权装置,应用于视频流服务器。参考图4所示,本实施例中的视频流地址鉴权装置包括:
请求接收单元401,用于如果接收到来自待鉴直播客户端的携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求,从视频流地址请求中获取视频流地址鉴权KEY值和M个鉴权要素,其中,M个鉴权要素均与直播客户端当前的状态相关,M为正整数;
鉴权处理单元402,用于将M个鉴权要素与调用堆栈信息经过哈希函数处理,以生成同时与调用堆栈信息和M个鉴权要素相关的视频流地址鉴权KEY值,其中,调用堆栈信息为直播客户端在已经登录到直播平台之后通过目标底层库函数获取并发送给视频流服务器的,目标底层库函数为直播客户端所处操作系统的系统级函数,调用堆栈信息中以调用顺序保存有被调用函数的函数标识;
KEY值对比单元403,将从视频流请求中获取的视频流地址鉴权KEY值与视频流服务器生成的视频流地址鉴权KEY值进行对比;
地址下发单元404,用于如果对比结果为一致,向待鉴直播客户端下发视频流地址请求中所请求的视频流地址。
基于同一发明构思,本发明实施例提供了一种计算机可读存储介质501,参考图5所示,其上存储有计算机程序502,该程序502被处理器执行时实现前述视频流地址鉴权方法中任一个实施例中的步骤。
基于同一发明构思,本发明实施例提供了一种计算机设备600,参考图6所示,包括存储器610、处理器630及存储在存储器610上并可在处理器630上运行的计算机程序620,所述处理器630执行所述程序620时实现前述视频流地址鉴权方法中任一个实施例中的步骤。
由于上述所介绍的装置、存储介质及计算机设备为实施本发明实施例中视频流地址鉴权方法所采用,故而基于本发明实施例中所介绍的前述视频流地址鉴权方法,本领域所属技术人员能够了解该装置、存储介质及计算机设备的具体实施方式以及其各种变化形式,所以在此对于装置、存储介质及计算机设备如何实现本发明实施例中的视频流地址鉴权方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中视频流地址鉴权方法所采用的装置、存储介质及计算机设备,都属于本发明所欲保护的范围。
上述实施例中的技术方案,至少具有如下的技术效果或优点:
通过目标底层库函数获取调用堆栈信息,将调用堆栈信息和各个鉴权要素经过哈希函数处理,以生成同时与调用堆栈信息和各个鉴权要素相关的视频流地址鉴权KEY值,从而调用堆栈信息成为了视频流地址鉴权KEY值的一部分,使得:非法的直播客户端即使调用了相同的视频流地址鉴权算法,所用的调用堆栈信息与正确的直播客户端所用的调用堆栈信息也是不一致的,进而使得视频流服务器可以准确判断直播客户端是否伪造了视频流地址鉴权KEY值,从而本发明能够避免视频流地址被非法获取,提高了视频流地址鉴权的可靠性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种视频流地址鉴权方法,应用于直播客户端,其特征在于,所述方法包括:
如果接收到对目标直播房间的视频观看指令,通过目标底层库函数获取调用堆栈信息,其中,所述调用堆栈信息中以调用顺序保存有被调用函数的函数标识,所述目标底层库函数为所述直播客户端所处操作系统的系统级函数;
读取M个鉴权要素,所述M个鉴权要素均与所述直播客户端当前的状态相关,M为正整数;
将所述调用堆栈信息和所述M个鉴权要素经过哈希函数处理,以生成同时与所述调用堆栈信息和所述M个鉴权要素相关的视频流地址鉴权KEY值;
将携带有所述视频流地址鉴权KEY值和所述M个鉴权要素的视频流地址请求发送给所述视频流服务器,所述视频流地址请求用于向所述视频流服务器请求所述目标直播房间的视频流地址。
2.如权利要求1所述的视频流地址鉴权方法,其特征在于,在所述将携带有所述视频流地址鉴权KEY值和所述M个鉴权要素的视频流地址请求发送给所述视频流服务器之前,所述方法还包括:
将所述调用堆栈信息发送给所述视频流服务器。
3.如权利要求2所述的视频流地址鉴权方法,其特征在于,所述读取M个鉴权要素,包括:
读取所述直播客户端本次登陆所述直播平台时,从所述视频流服务器所获取的令牌;和
读取所述直播客户端当前的系统时间;和
读取所述直播客户端当前进入的所述目标直播房间的房间ID;和
读取所述直播客户端当前的IP地址;和
读取所述直播客户端的设备唯一ID。
4.如权利要求1所述的视频流地址鉴权方法,其特征在于,所述通过目标底层库函数获取调用堆栈信息,包括:
获取所述操作系统中系统库的句柄;
通过所述操作系统中系统库的句柄,获取与所述调用堆栈信息相关的N个底层库函数,N为正整数;
调用所述N个底层库函数,以获取所述调用堆栈信息。
5.如权利要求4所述的视频流地址鉴权方法,其特征在于,与所述调用堆栈信息相关的N个底层库函数,包括:
用于获取所述调用堆栈信息的内存地址的函数,和
用于通过所述内存地址从所述调用堆栈信息中获取所述函数标识的函数,和
用于对获取所述函数标识的句柄进行释放的函数。
6.一种视频流地址鉴权方法,应用于视频流服务器,其特征在于,所述方法包括:
如果接收到来自待鉴直播客户端的携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求,从所述视频流地址请求中获取所述视频流地址鉴权KEY值和所述M个鉴权要素,其中,所述M个鉴权要素均与直播客户端当前的状态相关,M为正整数;
将所述M个鉴权要素与调用堆栈信息经过哈希函数处理,以生成同时与所述调用堆栈信息和所述M个鉴权要素相关的视频流地址鉴权KEY值,其中,所述调用堆栈信息为所述直播客户端在已经登录到直播平台之后通过目标底层库函数获取并发送给所述视频流服务器的,所述目标底层库函数为所述直播客户端所处操作系统的系统级函数,所述调用堆栈信息中以调用顺序保存有被调用函数的函数标识;
将从所述视频流请求中获取的视频流地址鉴权KEY值与所述视频流服务器生成的视频流地址鉴权KEY值进行对比;
如果对比结果为一致,向所述待鉴直播客户端下发所述视频流地址请求中所请求的视频流地址。
7.一种视频流地址鉴权装置,应用于直播客户端,其特征在于,所述装置包括:
堆栈信息获取单元,用于如果接收到对目标直播房间的视频观看指令,通过目标底层库函数获取调用堆栈信息,其中,所述调用堆栈信息中以调用顺序保存有被调用函数的函数标识,所述目标底层库函数为所述直播客户端所处操作系统的系统级函数;
鉴权要素读取单元,用于读取M个鉴权要素,所述M个鉴权要素均与所述直播客户端当前的状态相关,M为正整数;
鉴权处理单元,用于将所述调用堆栈信息和所述M个鉴权要素经过哈希函数处理,以生成同时与所述调用堆栈信息和所述M个鉴权要素相关的视频流地址鉴权KEY值;
请求发送单元,用于将携带有所述视频流地址鉴权KEY值和所述M个鉴权要素的视频流地址请求发送给所述视频流服务器,所述视频流地址请求用于向所述视频流服务器请求所述目标直播房间的视频流地址。
8.一种视频流地址鉴权装置,应用于视频流服务器,其特征在于,所述装置包括:
请求接收单元,用于如果接收到来自待鉴直播客户端的携带有视频流地址鉴权KEY值和M个鉴权要素的视频流地址请求,从所述视频流地址请求中获取所述视频流地址鉴权KEY值和所述M个鉴权要素,其中,所述M个鉴权要素均与所述直播客户端当前的状态相关,M为正整数;
鉴权处理单元,用于将所述M个鉴权要素与调用堆栈信息经过哈希函数处理,以生成同时与所述调用堆栈信息和所述M个鉴权要素相关的视频流地址鉴权KEY值,其中,所述调用堆栈信息为已经登录到直播平台的直播客户端通过目标底层库函数获取并发送给所述视频流服务器的;
KEY值对比单元,用于将从所述视频流请求中获取的视频流地址鉴权KEY值与所述视频流服务器生成的视频流地址鉴权KEY值进行对比;
地址下发单元,用于如果KEY值对比单元中的对比结果为一致,向所述待鉴直播客户端下发所述视频流地址请求中所请求的视频流地址。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5中任一项所述的步骤。
CN201710527420.9A 2017-06-30 2017-06-30 一种视频流地址鉴权方法及装置 Active CN107333151B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710527420.9A CN107333151B (zh) 2017-06-30 2017-06-30 一种视频流地址鉴权方法及装置
PCT/CN2018/082510 WO2019001084A1 (zh) 2017-06-30 2018-04-10 一种视频流地址鉴权方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710527420.9A CN107333151B (zh) 2017-06-30 2017-06-30 一种视频流地址鉴权方法及装置

Publications (2)

Publication Number Publication Date
CN107333151A true CN107333151A (zh) 2017-11-07
CN107333151B CN107333151B (zh) 2019-07-09

Family

ID=60197566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710527420.9A Active CN107333151B (zh) 2017-06-30 2017-06-30 一种视频流地址鉴权方法及装置

Country Status (2)

Country Link
CN (1) CN107333151B (zh)
WO (1) WO2019001084A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108307246A (zh) * 2018-01-09 2018-07-20 武汉斗鱼网络科技有限公司 一种计算直播间人气的方法、存储介质、设备及系统
WO2019001084A1 (zh) * 2017-06-30 2019-01-03 武汉斗鱼网络科技有限公司 一种视频流地址鉴权方法及装置
CN110691267A (zh) * 2018-07-05 2020-01-14 武汉斗鱼网络科技有限公司 基于tls的视频流地址鉴权方法、存储介质、设备及系统
CN113238800A (zh) * 2021-05-25 2021-08-10 上海安路信息科技股份有限公司 堆栈结构和函数调用方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721411A (zh) * 2015-05-15 2016-06-29 乐视云计算有限公司 一种防止盗链的方法、防止盗链的服务器及客户端
CN105871884A (zh) * 2016-05-11 2016-08-17 乐视控股(北京)有限公司 一种身份验证方法及装置
CN105893873A (zh) * 2016-03-31 2016-08-24 乐视控股(北京)有限公司 一种基于布隆滤波器查询优化的防盗链方法和系统
US20160277382A1 (en) * 2010-11-17 2016-09-22 Invysta Technology Group Validation database resident on a network server and containing specified distinctive identifiers of local/mobile computing devices may be used as a digital hardware key in the process of gaining authorized access to a users online website account such as, but not limited to, e-Commerce website accounts, online financial accounts and online email accounts
CN106060059A (zh) * 2016-06-20 2016-10-26 乐视控股(北京)有限公司 视频播放方法及视频播放云平台

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107333151B (zh) * 2017-06-30 2019-07-09 武汉斗鱼网络科技有限公司 一种视频流地址鉴权方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160277382A1 (en) * 2010-11-17 2016-09-22 Invysta Technology Group Validation database resident on a network server and containing specified distinctive identifiers of local/mobile computing devices may be used as a digital hardware key in the process of gaining authorized access to a users online website account such as, but not limited to, e-Commerce website accounts, online financial accounts and online email accounts
CN105721411A (zh) * 2015-05-15 2016-06-29 乐视云计算有限公司 一种防止盗链的方法、防止盗链的服务器及客户端
CN105893873A (zh) * 2016-03-31 2016-08-24 乐视控股(北京)有限公司 一种基于布隆滤波器查询优化的防盗链方法和系统
CN105871884A (zh) * 2016-05-11 2016-08-17 乐视控股(北京)有限公司 一种身份验证方法及装置
CN106060059A (zh) * 2016-06-20 2016-10-26 乐视控股(北京)有限公司 视频播放方法及视频播放云平台

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019001084A1 (zh) * 2017-06-30 2019-01-03 武汉斗鱼网络科技有限公司 一种视频流地址鉴权方法及装置
CN108307246A (zh) * 2018-01-09 2018-07-20 武汉斗鱼网络科技有限公司 一种计算直播间人气的方法、存储介质、设备及系统
CN108307246B (zh) * 2018-01-09 2020-02-07 武汉斗鱼网络科技有限公司 一种计算直播间人气的方法、存储介质、设备及系统
CN110691267A (zh) * 2018-07-05 2020-01-14 武汉斗鱼网络科技有限公司 基于tls的视频流地址鉴权方法、存储介质、设备及系统
CN110691267B (zh) * 2018-07-05 2021-11-09 武汉斗鱼网络科技有限公司 基于tls的视频流地址鉴权方法、存储介质、设备及系统
CN113238800A (zh) * 2021-05-25 2021-08-10 上海安路信息科技股份有限公司 堆栈结构和函数调用方法及系统

Also Published As

Publication number Publication date
WO2019001084A1 (zh) 2019-01-03
CN107333151B (zh) 2019-07-09

Similar Documents

Publication Publication Date Title
US20220067664A1 (en) E-mail message authentication extending standards complaint techniques
CN103634109B (zh) 操作权限验证方法和装置
CN104065616B (zh) 单点登录方法和系统
CN107333151A (zh) 一种视频流地址鉴权方法及装置
CN104113551B (zh) 一种平台授权方法、平台服务端及应用客户端和系统
CN104468637B (zh) 一种下载以及安装客户端的方法和设备
CN107465660B (zh) 一种视频流地址鉴权方法及装置
CN109413096B (zh) 一种多应用的登录方法及装置
US20140026189A1 (en) Method, client, server and system of login verification
CN109587110A (zh) 一种弱口令检测方法、装置、计算机设备及业务服务器
CN107733883B (zh) 一种检测批量注册账号的方法及装置
KR20180084053A (ko) 타겟 장치에서의 어플리케이션의 실행 무결성을 검증하는 방법
CN105099983B (zh) 授权方法、权限设置方法及装置
CN110324416A (zh) 下载路径跟踪方法、装置、服务器、终端及介质
TW201516910A (zh) 業務認證方法、系統及伺服器
CN104836777B (zh) 身份验证方法和系统
CN110324344A (zh) 账号信息认证的方法及装置
CN109842616A (zh) 账号绑定方法、装置及服务器
WO2016058478A1 (zh) 数据获取方法、装置及系统
US20160364565A1 (en) Authentication and secure communication with application extensions
CN104050054B (zh) 安装包安装失败的处理方法及原因确定方法及装置
CN108737416A (zh) 可信应用管理方法以及可信应用管理服务器
CN105391714B (zh) 移动应用软件自动化签名和验证方法及装置
CN107908978A (zh) 一种数据处理方法、服务器及系统
CN104052602B (zh) 用于单点登录的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant