本发明涉及安全校验,具体涉及一种基于kinesis video streams的安全校验方法及系统。
背景技术:
1、随着物联网(ioot)技术的发展,越来越多的设备能够通过网络连接上传视频流到云端;这些视频流可能包含敏感信息或个人隐私内容,因此确保只有授权用户才能访问这些视频变得尤为重要。amazon kinesis video streams (kvs) 是一种由亚马逊提供的服务,允许用户轻松地从各种来源摄取和处理实时视频数据。然而,在传统的视频流传输和访问控制中,通常采用静态的安全措施,如固定密钥或者一次性生成的播放链接,这在一定程度上保证了安全性。
2、当用户试图访问存储在kvs中的视频时,通常的做法是请求云端服务器生成一个临时的url,然后使用该url下载并播放视频。这种方式虽然提供了一定程度的保护,但仍然存在一些潜在的安全风险。例如,如果云端内部处理出现异常,可能会导致为一个用户生成的播放链接被错误地分配给另一个用户,从而使得未经授权的用户能够访问和观看视频内容。
3、此外,现有的安全机制往往缺乏端到端的安全校验能力,即在整个视频流从设备上传到最终用户观看的过程中,没有对每个环节都进行严格的权限验证。这就可能导致即使是在视频片段已经被正确加密的情况下,也有可能因为中间环节的安全漏洞而让非授权用户获取到视频数据。
4、现有技术的不足:
5、1.缺乏动态加密机制:现有的系统通常采用静态加密方法,一旦密钥泄露,所有相关的视频内容都将面临风险。此外,对于不同事件的视频流,没有采用不同的加密密钥来增加安全性。
6、2.端到端的安全性不足:现有技术在视频流的整个生命周期中,包括上传、存储和播放过程中,并没有实现完整的端到端的安全校验。尤其是在播放阶段,用户的权限验证往往不够严格,容易受到攻击。
7、3.依赖单一的认证方式:许多系统只依靠一次性的播放链接或者固定的认证令牌来控制访问,这样的认证方式容易被破解或滥用。特别是在多用户共享设备的情况下,很难有效地区分和管理不同用户的访问权限。
8、4.云端处理错误的风险:当云端内部发生错误或故障时,可能会产生不正确的播放链接,导致视频内容被错误地暴露给未授权的用户。这种情况下,现有的安全措施无法防止这种情况的发生。
9、5.用户关联信息更新滞后:在设备与多个用户关联的情况下,如果用户关联信息没有及时更新或同步到设备上,那么新加入或移除的用户可能无法立即获得或失去相应的访问权限。
10、因此,现有技术存在不足,需要进一步改进。
技术实现思路
1、针对现有技术存在的问题,本发明提供一种基于kinesis video streams的安全校验方法及系统。
2、为实现上述目的,本发明的具体方案如下:
3、本发明提供一种基于kinesis video streams的安全校验系统,该系统包括:
4、设备,用于检测事件、生成事件记录并向云端服务器请求唯一的alarm_id以及kvs上传url,所述设备能够将视频流打包成若干fragment片段(每个片段时长为3秒),并通过使用所述alarm_id动态加密用户id列表后附加至每个fragment片段,随后将这些fragment片段上传到云端的kvs存储;
5、云端服务器,用于接收来自设备的请求并生成唯一的alarm_id及对应的kvs上传url,同时支持应用程序对指定时间段内视频片段的播放链接请求,并能根据请求生成播放链接;还能够处理应用程序与设备之间的绑定请求,下发绑定token给设备,并在绑定成功后向设备发送绑定用户的id信息进行持久化存储;
6、应用程序,用于向云端服务器请求设备的事件列表及特定事件的播放链接,下载对应时间段的视频片段,并通过所述alarm_id解密用户id列表以校验当前用户的访问权限,当校验通过时允许渲染播放视频。
7、进一步地,所述设备还包括算法模块,该算法模块被配置为自动检测事件的发生,并且在事件发生时触发视频流的录制和上传过程。
8、进一步地,所述云端服务器进一步包含一安全机制,用于确保即使在内部处理异常的情况下,也能阻止未经授权的用户通过已经签名好的url直接下载和播放不属于他们的视频内容。
9、进一步地,所述用户id列表是通过云端动态生成的,并且对于每个事件都使用不同的alarm_id进行加密,以增加安全性。
10、进一步地,所述应用程序能够在获取到播放链接后,执行实时的用户id校验,在每次下载新的视频片段时都重新进行校验,从而实现端到端的安全控制。
11、本发明还提供一种基于kinesis video streams的安全校验方法,基于上述安全校验系统,该方法包括以下步骤:
12、s1,设备端检测到事件发生,向云端服务器请求生成事件记录;
13、s2,云端服务器响应请求并返回一个唯一的alarm_id以及kvs上传url;
14、s3,设备将事件相关的视频流分割成分割成多个fragment片段,并通过所述alarm_id动态加密用户id列表后附加至每个fragment片段,然后将这些fragment片段上传到云端的kvs存储;
15、s4,当事件结束时,设备停止上传;
16、s5,应用程序向云端服务器请求设备的事件列表;
17、s6,云端服务器返回包含alarm_id的事件列表;
18、s7,应用程序选择一个或多个事件,并请求相应的播放链接;
19、s8,云端服务器生成播放链接并反馈给应用程序;
20、s9,应用程序通过播放链接下载视频片段,在下载过程中利用所述alarm_id解密用户id列表,并校验当前用户的id是否存在于解密后的用户id列表中;
21、s10,如果校验通过,则应用程序允许渲染播放所下载的视频片段。
22、进一步地,步骤s1还包括应用程序通过网络连接方式与设备建立临时通信会话,以便于设备接收并解析云端服务器下发的绑定token,完成设备与用户的绑定过程。
23、进一步地,步骤s3还包括云端服务器在接收到设备上传的每个片段时,验证片段中的用户id列表的有效性,以确保数据完整性和正确性。
24、进一步地,步骤s6中,云端服务器还设置有一个事件日志数据库,其中记录了所有生成的alarm_id及其相关联的信息,包括设备id、时间戳,便于后续的查询和管理。
25、进一步地,步骤s10中,应用程序在播放视频前,不仅校验用户id,还检查用户的访问权限级别,以确保只有具有相应权限级别的用户才能访问特定类型的视频内容。
26、采用本发明的技术方案,具有以下有益效果:
27、1.增强的安全性:通过为每个事件生成唯一的alarm_id,并使用该alarm_id对用户id列表进行动态加密,即使播放链接被泄露,非授权用户也无法解密并获取到用户id列表,从而无法观看视频内容。
28、2.端到端的安全校验:本发明确保了从设备端的视频片段上传到应用程序端的视频播放整个过程中的安全校验。在每次下载新的视频片段时都重新进行用户id校验,从而实现了真正的端到端的安全控制。
29、3.灵活的用户管理:支持多用户的绑定和分享功能,允许用户之间方便地共享设备访问权限。云端服务器能够实时更新设备上的用户关联信息,确保只有当前有权访问的用户才能观看相关视频内容。
30、4.防止内部错误导致的安全漏洞:即便云端内部处理出现异常或出错,由于采用了动态加密和用户id列表校验机制,可以有效防止未经授权的用户通过已经签名好的url直接下载和播放不属于他们的视频内容。
31、5.提升用户体验:通过优化视频片段的管理和传输,用户可以在请求后快速获得指定时间段内的视频播放链接,并且在确认权限后立即播放,提供了流畅的用户体验。
32、6.数据隐私保护:通过对用户id列表的动态加密,即使视频片段在传输过程中被截获,攻击者也无法轻易获取到用户的个人信息,从而更好地保护了用户的隐私。
33、7.高效的资源利用:每个视频片段的时长固定为3秒,这样可以更有效地管理和检索数据,同时减少了不必要的数据传输,节省了网络带宽和存储空间。
34、8.可扩展性和适应性:本发明的方法和技术不仅适用于kinesis video streams,也可以应用于其他类似的视频流处理平台,具有良好的可扩展性和适应性。
1.一种基于kinesis video streams的安全校验系统,其特征在于,该系统包括:
2.根据权利要求1所述的系统,其特征在于,所述设备还包括算法模块,该算法模块被配置为自动检测事件的发生,并且在事件发生时触发视频流的录制和上传过程。
3.根据权利要求1或2所述的系统,其特征在于,所述云端服务器进一步包含一安全机制,用于确保即使在内部处理异常的情况下,也能阻止未经授权的用户通过已经签名好的url直接下载和播放不属于他们的视频内容。
4.根据权利要求1至3中任一项所述的系统,其特征在于,所述用户id列表是通过云端动态生成的,并且对于每个事件都使用不同的alarm_id进行加密,以增加安全性。
5.根据权利要求1至4中任一项所述的系统,其特征在于,所述应用程序能够在获取到播放链接后,执行实时的用户id校验,在每次下载新的视频片段时都重新进行校验,从而实现端到端的安全控制。
6.一种基于kinesis video streams的安全校验方法,基于权利要求1-5任意一项所述的安全校验系统,其特征在于,该方法包括以下步骤:
7.根据权利要求6所述的方法,其特征在于,
8.根据权利要求6或7所述的方法,其特征在于,
9.根据权利要求6至8中任一项所述的方法,其特征在于,步骤s6中,云端服务器还设置有一个事件日志数据库,其中记录了所有生成的alarm_id及其相关联的信息,包括设备id、时间戳,便于后续的查询和管理。
10.根据权利要求6至9中任一项所述的方法,其特征在于,
