CN115470499A - 数据的处理方法、装置、电子设备及存储介质 - Google Patents

数据的处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115470499A
CN115470499A CN202110656376.8A CN202110656376A CN115470499A CN 115470499 A CN115470499 A CN 115470499A CN 202110656376 A CN202110656376 A CN 202110656376A CN 115470499 A CN115470499 A CN 115470499A
Authority
CN
China
Prior art keywords
information
sdk
coding information
server
coding
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.)
Pending
Application number
CN202110656376.8A
Other languages
English (en)
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.)
Alibaba Innovation Co
Original Assignee
Alibaba Singapore Holdings Pte 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 Alibaba Singapore Holdings Pte Ltd filed Critical Alibaba Singapore Holdings Pte Ltd
Priority to CN202110656376.8A priority Critical patent/CN115470499A/zh
Publication of CN115470499A publication Critical patent/CN115470499A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供了一种数据的处理方法、装置、电子设备及存储介质,所述方法包括:SDK可以与服务端进行通信,服务端可以获取SDK发送的第一编码信息,第一编码信息至少包括输入参数以及设备信息,接着根据输入参数与设备信息对SDK进行鉴权,实现对SDK的身份验证,并生成针对输入参数的第二编码信息,然后将第二编码信息发送至SDK,SDK用于根据第二编码信息进行计算,生成针对输入参数的计算结果,从而通过SDK与服务端之间的数据交互,在通过输入参数与设备信息实现对SDK有效鉴权的情况下,使得SDK需要基于服务端返回的信息进行计算,有效抵抗了逆向分析,并且由于所传输的数据经过编码可以抵抗回放攻击,有效保证了SDK与服务端之间的数据传输安全性。

Description

数据的处理方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机处理技术领域,特别是涉及一种数据的处理方法、装置、电子设备、计算机存储介质。
背景技术
随着计算机技术的飞速发展,给人们的生活带来了许多的便利的同时,其应用场景也越来越复杂。SDK(Software Development Kit)作为一种能够提供特定功能的软件开发工具包,被广泛应用于移动端、客户端以及服务端等场景,为程序开发人员提供了极大的便利性。
在一般应用场景中,SDK具备开发人员可以使用的全部功能,尤其是SDK本身是开源免费的情况,使用的人越多,SDK的知名度越高,市场占有率也越高,SDK的开发者便能够从中获益。然而,在一些特定的SDK使用场景中,例如SDK需要付费使用时,SDK版权所有者的权益难以得到有效保护。因为SDK以数字形式存在,容易被复制、破解,这些都会给SDK的开发者造成难以估量的损失。
发明内容
本申请实施例提供一种数据的处理方法、装置、可读存储介质以及电子设备,以解决或部分解决相关技术中无法有效地对SDK进行鉴权,以及容易出现数据泄露的技术问题。
为了解决上述问题,本申请实施例公开了一种数据的处理方法,应用于SDK,具体包括:
响应针对预设功能模块的调用操作,获取所述SDK所属设备的设备信息,以及与所述功能模块对应的输入参数;
根据所述输入参数与所述设备信息,生成第一编码信息,并将所述第一编码信息发送至服务端,所述服务端用于根据所述第一编码信息对所述SDK进行鉴权,并返回针对所述输入参数的第二编码信息;
根据所述第二编码信息进行计算,生成与所述输入参数对应的计算结果。
可选地,所述根据所述输入参数与所述设备信息,生成第一编码信息,并将所述第一编码信息发送至服务端,包括:
获取针对所述输入参数与所述设备信息的第一加密密钥;
采用所述第一加密密钥对所述输入参数与所述设备信息进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端。
可选地,所述根据所述第二编码信息进行计算,生成与所述输入参数对应的计算结果,包括:
获取针对所述第二编码信息的第一解密密钥;
采用所述第一解密密钥对所述第二编码信息进行解密,获得针对所述输入参数的第一数据标识;
采用所述第一数据标识进行计算,生成与所述输入参数对应的计算结果。
可选地,所述输入参数至少包括目标对象、与所述目标对象对应的初始特征信息以及所述SDK的身份密钥;所述设备信息至少包括设备地址以及网络地址,所述采用所述第一加密密钥对所述输入参数与所述设备信息进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端,包括:
获取所述功能模块的功能信息;
对所述初始特征信息、所述设备地址、所述网络地址、所述身份密钥以及所述功能信息进行拼接,生成第二数据标识;
采用所述第一加密密钥对所述第二数据标识进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端;
其中,所述服务端用于根据所述设备地址、所述网络地址、所述身份密钥以及所述功能信息对所述SDK鉴权成功后,并根据所述初始特征信息,生成针对所述目标对象的第二编码信息。
可选地,所述第一数据标识至少包括鉴权结果标识以及与所述初始特征信息对应的目标特征信息,所述采用所述第一数据标识进行计算,生成与所述输入参数对应的计算结果,包括:
若所述鉴权结果标识指示所述SDK鉴权成功,则采用所述目标特征信息对所述目标对象进行处理,生成与所述输入参数对应的计算结果。
本申请实施例还公开了一种数据的处理方法,应用于服务端,所述方法包括:
获取SDK发送的第一编码信息,所述第一编码信息至少包括输入参数以及设备信息;
根据所述输入参数与所述设备信息对所述SDK进行鉴权,生成针对所述输入参数的第二编码信息;
将所述第二编码信息发送至所述SDK,所述SDK用于根据所述第二编码信息进行计算,生成针对所述输入参数的计算结果。
可选地,所述输入参数至少包括所述SDK的身份密钥、与所述输入参数对应的功能信息以及与目标对象对应的初始特征信息,所述根据所述输入参数与所述设备信息对所述SDK进行鉴权,生成针对所述输入参数的第二编码信息,包括:
将所述身份密钥、所述功能信息以及所述设备信息与预设的SDK管理表单进行匹配,生成针对所述SDK的鉴权结果;
若所述鉴权结果为所述SDK合法,则生成针对所述初始特征信息的鉴权结果标识;
采用所述初始特征信息与所述鉴权结果标识,确定针对所述输入参数的第二编码信息。
可选地,所述将所述身份密钥、所述功能信息以及所述设备信息与预设的SDK管理表单进行匹配,生成针对所述SDK的鉴权结果,包括:
获取针对所述第一编码信息的第二解密密钥;
通过所述第二解密密钥对所述第一编码信息进行解密,获得第一数据标识,所述第一数据标识至少包括所述SDK的身份密钥、与所述输入参数对应的功能信息、所述初始特征信息以及所述SDK所属设备的设备地址与网络地址;
将所述身份密钥、所述功能信息、所述设备地址以及所述网络地址与预设SDK管理表单进行匹配,生成针对所述SDK的鉴权结果。
可选地,,所述采用所述初始特征信息与所述鉴权结果标识,确定针对所述输入参数的第二编码信息,包括:
对所述初始特征信息进行编码,生成目标特征信息;
将所述鉴权结果标识与所述目标特征信息进行拼接,生成针对所述目标对象的第一数据标识;
获取针对所述第一数据标识的第二加密密钥;
通过所述第二加密密钥对所述第一数据标识进行加密,生成针对所述目标对象的第二编码信息。
可选地,所述将所述身份密钥、所述功能信息、所述设备地址以及所述网络地址与预设SDK管理表单进行匹配,生成针对所述SDK的鉴权结果,包括:
通过所述身份密钥从预设SDK管理表单中查询所述SDK的权限信息;
若所述权限信息表征所述SDK具有使用所述功能信息对应功能的权限,且所述SDK管理表单存在所述SDK对应的设备地址和网络地址,则生成用于表征所述SDK合法的鉴权结果。
可选地,还包括:
响应于检测到将所述第二编码信息发送至所述SDK,更新所述SDK管理表单中所述SDK对应的权限信息;
其中,所述权限信息至少包括所述SDK的剩余使用次数、剩余使用时间中的一种。
本申请实施例还公开了一种数据的处理装置,应用于SDK,所述装置包括:
信息获取模块,用于响应针对预设功能模块的调用操作,获取所述SDK所属设备的设备信息,以及与所述功能模块对应的输入参数;
编码信息生成模块,用于根据所述输入参数与所述设备信息,生成第一编码信息,并将所述第一编码信息发送至服务端,所述服务端用于根据所述第一编码信息对所述SDK进行鉴权,并返回针对所述输入参数的第二编码信息;
计算结果生成模块,用于根据所述第二编码信息进行计算,生成与所述输入参数对应的计算结果。
可选地,所述编码信息生成模块包括:
加密密钥确定子模块,用于获取针对所述输入参数与所述设备信息的第一加密密钥;
编码信息生成子模块,用于采用所述第一加密密钥对所述输入参数与所述设备信息进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端。
可选地,所述计算结果生成模块包括:
解密密钥确定子模块,用于获取针对所述第二编码信息的第一解密密钥;
数据标识生成子模块,用于采用所述第一解密密钥对所述第二编码信息进行解密,获得针对所述输入参数的第一数据标识;
计算结果生成子模块,用于采用所述第一数据标识进行计算,生成与所述输入参数对应的计算结果。
可选地,所述输入参数至少包括目标对象、与所述目标对象对应的初始特征信息以及所述SDK的身份密钥;所述设备信息至少包括设备地址以及网络地址,所述编码信息生成子模块具体用于:
获取所述功能模块的功能信息;
对所述初始特征信息、所述设备地址、所述网络地址、所述身份密钥以及所述功能信息进行拼接,生成第二数据标识;
采用所述第一加密密钥对所述第二数据标识进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端;
其中,所述服务端用于根据所述设备地址、所述网络地址、所述身份密钥以及所述功能信息对所述SDK鉴权成功后,并根据所述初始特征信息,生成针对所述目标对象的第二编码信息。
可选地,所述第一数据标识至少包括鉴权结果标识以及与所述初始特征信息对应的目标特征信息,所述计算结果生成子模块具体用于:
若所述鉴权结果标识指示所述SDK鉴权成功,则采用所述目标特征信息对所述目标对象进行处理,生成与所述输入参数对应的计算结果。
本申请实施例还公开了一种数据的处理装置,应用于服务端,所述装置包括:
编码信息获取模块,用于获取SDK发送的第一编码信息,所述第一编码信息至少包括输入参数以及设备信息;
编码信息生成模块,用于根据所述输入参数与所述设备信息对所述SDK进行鉴权,生成针对所述输入参数的第二编码信息;
编码信息发送模块,用于将所述第二编码信息发送至所述SDK,所述SDK用于根据所述第二编码信息进行计算,生成针对所述输入参数的计算结果。
可选地,所述输入参数至少包括所述SDK的身份密钥、与所述输入参数对应的功能信息以及与目标对象对应的初始特征信息,所述编码信息生成模块包括:
鉴权结果生成子模块,用于将所述身份密钥、所述功能信息以及所述设备信息与预设的SDK管理表单进行匹配,生成针对所述SDK的鉴权结果;
结果标识生成子模块,用于若所述鉴权结果为所述SDK合法,则生成针对所述初始特征信息的鉴权结果标识;
编码信息确定子模块,用于采用所述初始特征信息与所述鉴权结果标识,确定针对所述输入参数的第二编码信息。
可选地,所述鉴权结果生成子模块具体用于:
获取针对所述第一编码信息的第二解密密钥;
通过所述第二解密密钥对所述第一编码信息进行解密,获得第一数据标识,所述第一数据标识至少包括所述SDK的身份密钥、与所述输入参数对应的功能信息、所述初始特征信息以及所述SDK所属设备的设备地址与网络地址;
将所述身份密钥、所述功能信息、所述设备地址以及所述网络地址与预设SDK管理表单进行匹配,生成针对所述SDK的鉴权结果。
可选地,所述编码信息确定子模块具体用于:
对所述初始特征信息进行编码,生成目标特征信息;
将所述鉴权结果标识与所述目标特征信息进行拼接,生成针对所述目标对象的第一数据标识;
获取针对所述第一数据标识的第二加密密钥;
通过所述第二加密密钥对所述第一数据标识进行加密,生成针对所述目标对象的第二编码信息。
可选地,所述鉴权结果生成子模块具体用于:
通过所述身份密钥从预设SDK管理表单中查询所述SDK的权限信息;
若所述权限信息表征所述SDK具有使用所述功能信息对应功能的权限,且所述SDK管理表单存在所述SDK对应的设备地址和网络地址,则生成用于表征所述SDK合法的鉴权结果。
可选地,还包括:
权限信息更新模块,用于响应于检测到将所述第二编码信息发送至所述SDK,更新所述SDK管理表单中所述SDK对应的权限信息;
其中,所述权限信息至少包括所述SDK的剩余使用次数、剩余使用时间中的一种。
本申请实施例还公开了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一种计算机可读存储介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本申请实施例所述的方法。
本申请实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本申请实施例所述的方法。
本申请实施例还公开了一种软件产品,包括计算机程序/指令,其中,当所述计算机程序/指令被执行时,实现执行如本申请实施例所述的方法。
本申请实施例包括以下优点:
在本申请实施例中,SDK可以与服务端进行通信,当SDK响应于检测到针对预设的功能模块的调用操作时,可以获取所属设备的设备信息以及与功能模块对应的输入参数,接着根据输入参数与设备信息生成第一编码信息,并将该第一编码信息发送至服务端,服务端可以根据设备信息与输入参数对SDK进行鉴权,实现对SDK的身份验证,然后返回针对输入参数的第二编码信息,SDK根据第二编码信息进行计算,以生成对应的计算结果,从而通过SDK与服务端之间的数据交互,在通过输入参数与设备信息实现对SDK有效鉴权的情况下,使得SDK需要基于服务端返回的信息进行计算,有效抵抗了逆向分析,并且由于所传输的数据经过编码可以抵抗回放攻击,有效保证了SDK与服务端之间的数据传输安全性。
附图说明
图1是本申请实施例中提供的一种数据的处理方法的步骤流程图;
图2是本申请实施例中提供的SDK的示意图;
图3是本申请实施例中提供的一种数据的处理方法的步骤流程图;
图4是本申请实施例中提供的服务端的示意图;
图5是本申请实施例中提供的数据通信示意图;
图6是本申请实施例中提供的一种数据的处理装置的结构框图;
图7是本申请实施例中提供的一种数据的处理装置的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
作为一种示例,SDK具备开发人员可以使用的全部功能,尤其是SDK本身是开源免费的情况,使用的人越多,SDK的知名度越高,市场占有率越高,SDK的开发者能够从中受益,比如安卓开发套件NDK。但是存在一些特殊情形,比如SDK为付费购买的场景,这样就需要对SDK进行授权管理。由于数字资产易于复制,如果不对此类SDK进行授权管理,那么会有无数盗版的SDK在网络上传播,对SDK的开发者造成难以估量的损失。而在对SDK进行权限控制的过程中,相关技术仍然无法保证SDK被逆向分析,也无法抵抗回放攻击。因此,需要一种更加安全的SDK方案。
对此,本申请实施例的核心构思之一在于对SDK的计算进行拆分,保留大部分的数据计算在SDK侧,将小部分数据计算移至服务端侧,使得SDK的相关功能被调用时,SDK可以获取对应的输入参数以及所属设备的设备信息,并对两者进行编码生成第一编码信息,并发送至服务端,服务端根据设备信息与输入参数对SDK进行鉴权,判断SDK的身份是否合法,并在确定身份合法后,生成第二编码信息,在完成对SDK身份验证的同时,完成属于服务端的小部分数据计算,然后服务端可以将第二编码信息返回SDK,由SDK根据第二编码信息完成相应的数据计算,从而通过SDK与服务端之间的数据交互,在通过输入参数与设备信息实现对SDK有效鉴权的情况下,使得SDK需要基于服务端返回的信息进行计算,有效抵抗了逆向分析,并且由于所传输的数据经过编码可以抵抗回放攻击,有效保证了SDK与服务端之间的数据传输安全性。
需要说明的是,在本申请实施例中,以SDK运行于终端设备为例进行示例性说明,终端设备可以包括手机、PDA(Personal Digital Assistant,个人数字助理)、膝上型计算机、掌上电脑、智能穿戴设备(如智能手环、智能眼镜、智能头箍等)等等,则当使用者调用SDK相应的功能时,SDK可以与服务端进行数据通信以实现相应的功能。可以理解的是,SDK还可以运行于服务端,如运行于服务器等,本申请对此不作限制。
具体地,参照图1,示出了本申请实施例中提供的一种数据的处理方法的步骤流程图,应用于SDK,具体可以包括如下步骤:
步骤101,响应针对预设功能模块的调用操作,获取所述SDK所属设备的设备信息,以及与所述功能模块对应的输入参数;
在本申请实施例中,SDK可以为软件开发工具包,例如软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。其中,SDK可以实现不同的功能,例如,图像水印嵌入、从图像中检测人脸的位置、基于深度学习的图像分类等等。
可选地,对于常规SDK,其将所有的数据计算均配置于SDK中,而在本申请实施例中,可以对SDK的数据计算进行拆分,将易于计算、计算量小的部分放置于服务端,将高计算量的部分放置于SDK,缺少任意的计算部分均无法调用SDK相应的功能,从而基于SDK与服务端之间的数据通信,可以有效抵抗逆向分析与回放攻击。
在一种示例中,参照图2,示出了本申请实施例中提供的SDK的示意图,对于一个SDK可以提供不同的功能模块,每一个功能模块可以用于执行不同的功能,如图像水印嵌入、从图像中检测人脸的位置、基于深度学习的图像分类等等,并且,对一个独立的功能模块,还可以将其划分为多个单元。具体地,一个功能模块可以包括入参编码单元、通信单元、解码单元以及计算单元,其中,入参即输入参数,入参编码单元可以将所获取的输入参数、SDK授权信息以及设备信息等进行编码,作用是提供服务端判断这些参数是否合法,该SDK使用者是否有权限使用相应功能,以及供服务端进行本地计算,进而实现服务端对SDK的鉴权;通信单元可以为一可选单元,在SDK包含通信单元的情况下,SDK可以通过该通信单元与服务端进行通信,包括向服务端发送编码信息,以及接收服务端发送的编码信息等,在SDK不包含通信单元的情况下,则需要SDK外部调用程序承担与服务端之间的通信工作;解码单元可以对服务端传递回来的编码信息进行解码,获取SDK本地计算所需的数据;计算单元可以根据解码单元解码得到数据进行后续的计算,并得到对应的计算结果,对于计算单元,可以将其设置为无法独立完成整体的数据计算,需要依赖于服务端的返回结果才能得到正确结果,实现SDK功能的调用,因此,可以将其设计为需要高计算量、大量数据、耗时较久的计算单元。
在具体实现中,使用SDK之前,SDK的使用者需要在服务端中进行权限注册,以便开启SDK的相应功能权限,服务端中可以在数据库中记录SDK的部署情况,例如SDK所在的终端设备的设备地址、设备标识、网络地址、权限信息等等。注册成功后,服务端可以为SDK提供一个使用权限的身份密钥key,仅供该SDK使用,从而保证身份密钥与SDK之间的唯一性。
当终端设备的使用者调用SDK相应功能时,SDK可以响应于针对功能模块的调用操作,获取SDK所属设备的设备信息,以及与功能模块对应的输入参数。其中,设备信息可以用于表征SDK所在设备的设备标识信息,如设备的设备地址、网络地址、设备标识等等;输入参数可以为使用者调用功能模块时输入的参数,调用不同功能模块可以输入不同的参数,也可以输入相同的参数。例如,当调用SDK的图像识别功能以及图像分类功能时,则输入参数可以包括需要输入的图像,该图像可以相同;当调用SDK的图像识别功能以及图像嵌入水印功能时,则输入参数可以包括相同的图像,同时,对于图像嵌入水印功能,输入参数还可以包括需要嵌入的水印参数等,本申请对此不作限制。
步骤102,根据所述输入参数与所述设备信息,生成第一编码信息,并将所述第一编码信息发送至服务端,所述服务端用于根据所述第一编码信息对所述SDK进行鉴权,并返回针对所述输入参数的第二编码信息;
在本申请实施例中,SDK可以通过入参编码单元对输入参数与设备信息进行编码,生成第一编码信息,并通过通信单元将第一编码信息发送至服务端,由服务端根据第一编码信息对SDK进行鉴权,并返回针对输入参数的第二编码信息,从而通过SDK与服务端之间的数据交互,以实现在对SDK进行鉴权的同时,防止逆向分析、回放攻击。
可选地,为了保证SDK与服务端之间数据传输的安全性,SDK可以通过入参编码单元对所获取的参数进行加密,并通过通信单元将加密后的编码信息发送至服务端。具体地,SDK可以通过入参编码单元获取针对输入参数与设备信息的第一加密密钥,然后采用该加密密钥对输入参数与设备信息进行加密,生成对应的第一编码信息,并通过通信单元将该第一编码信息发送至服务端。例如,对于第一加密密钥,可以获取当前时间信息,以及预设参数,然后采用当前时间信息和/或预设参数,生成针对输入参数与设备信息的第一加密密钥,其中,预设参数可以为预设的密钥,则可以将当前时间作为随机种子,生成随机数作为加密密钥;也可以采用当前时间与预设的密钥生成加密密钥;还可以直接将预设的密钥作为加密密钥等,本申请对此不作限制。
在一种示例中,入参编码单元所获取的输入参数可以包括目标对象、与目标对象对应的初始特征信息以及SDK的身份密钥,设备信息至少可以包括设备地址以及网络地址等,则SDK可以通过入参编码单元获取被调用的功能模块的功能信息(功能信息可以用于表示SDK能够执行的功能),并对初始特征信息、设备地址、网络地址、身份密钥以及功能信息进行拼接,生成第二数据标识,接着采用第一加密密钥对第二数据标识进行加密,生成第一编码信息,并通过通信单元将第一编码信息发送至服务端。其中,目标对象可以为需要进行数据计算的对象,其与所调用的功能模块关联,SDK不同的功能可以对应不同的目标对象,并且,初始特征信息也与功能信息关联,SDK不同的功能可以对应不同的初始特征信息,例如,当所调用的为SDK的图像水印嵌入功能,则目标对象为图像,初始特征信息可以为需要嵌入的水印参数;当所调用的为SDK的图像分类功能,则目标对象可以为图像,初始特征信息可以为该图像的MD5值;当所调用的为SDK的音频分类功能,则目标对象可以为音频,初始特征信息可以为该音频的MD5值等等。
此外,第二数据标识可以为初始特征信息、设备地址、网络地址、身份密钥以及功能信息等拼接而成的字符串,则入参编码单元可以采用由当前时间确定的加密密钥对字符串进行加密,得到第一编码信息,然后通过通信单元将第一编码信息发送至服务端。
服务端接收到第一编码信息后,可以根据设备地址、网络地址、身份密钥以及功能信息对SDK鉴权成功后,并根据初始特征信息,生成针对目标对象的第二编码信息,并将第二编码信息返回SDK,以便SDK进行后续的计算。
步骤103,根据所述第二编码信息进行计算,生成与所述输入参数对应的计算结果。
在具体实现中,SDK可以通过解码单元获取针对第二编码信息的第一解密密钥,并采用第一解密密钥对第二编码信息进行解密,获得针对输入参数的数据标识,然后通过计算单元采用第一数据标识进行计算,生成与输入参数对应的计算结果,从而对SDK与服务端之间传输的数据进行动态加密,使得加解密过程无法破解,一旦无法进行解码,则SDK与服务端可以停止后续工作,进而有效抵抗了回放攻击,保证SDK使用的安全性。具体地,第一数据标识至少可以包括鉴权结果标识以及与初始特征信息对应的目标特征信息,若鉴权结果标识指示SDK鉴权成功,则SDK可以采用目标特征信息对目标对象进行处理,生成与输入参数对应的计算结果。
其中,服务端在得到针对目标对象的初始特征信息后,可以对该初始特征信息进行编码,生成目标特征信息,实现服务端的前置计算,完成配置于服务端的计算量,接着服务端可以将用于表征SDK验权成功的鉴权结果标识与目标特征信息进行拼接,生成针对目标对象的第一数据标识,并获取针对第一数据标识的第二加密密钥,对第一数据标识进行加密,生成第二编码信息,然后将第二编码信息返回SDK,以便SDK进行后续的计算。可选地,对于第二加密密钥,其可以由当前时间信息、预设参数、第二数据标识中的一者或至少两者的组合生成的密钥,预设参数可以为预设的密钥等,本申请对此不作限制。
可选地,对于目标特征信息,其可以为服务端根据SDK发送的初始特征信息,进行前置计算得到的计算结果,通过对SDK的数据计算的拆分,并由服务端完成相应部分的前置计算,并由SDK根据服务端前置计算的计算结果,完成剩余大部分的计算,在保证SDK功能计算完整性的情况下,通过SDK与服务端之间的分工协作,有效抵抗了恶意的逆向分析,保证了SDK使用的安全性。
在本申请实施例中,SDK可以与服务端进行通信,当SDK响应于检测到针对预设的功能模块的调用操作时,可以获取所属设备的设备信息以及与功能模块对应的输入参数,接着根据输入参数与设备信息生成第一编码信息,并将该第一编码信息发送至服务端,服务端可以根据设备信息与输入参数对SDK进行鉴权,实现对SDK的身份验证,然后返回针对输入参数的第二编码信息,SDK根据第二编码信息进行计算,以生成对应的计算结果,从而通过SDK与服务端之间的数据交互,在通过输入参数与设备信息实现对SDK有效鉴权的情况下,使得SDK需要基于服务端返回的信息进行计算,有效抵抗了逆向分析,并且由于所传输的数据经过编码可以抵抗回放攻击,有效保证了SDK与服务端之间的数据传输安全性。
参照图3,示出了本申请实施例中提供的一种数据的处理方法的步骤流程图,应用于服务端,具体可以包括如下步骤:
步骤301,获取SDK发送的第一编码信息,所述第一编码信息至少包括输入参数以及设备信息;
在本申请实施例中,服务端可以用于对SDK进行权限管理、身份验证以及数据记录等等,每一个SDK在使用之前均需要先在服务端进行注册,并由服务端根据注册结果下发对应的身份密钥,以便SDK根据自身对应的身份密钥执行相应的功能。其中,服务端可以包括服务器、远程管理终端等。
可选地,对于常规SDK,其将所有的数据计算均配置于SDK中,而在本申请实施例中,可以对SDK的数据计算进行拆分,将易于计算、计算量小的部分放置于服务端,将高计算量的部分放置于SDK,缺少任意的计算部分均无法调用SDK相应的功能,从而基于SDK与服务端之间的数据通信,可以有效抵抗逆向分析与回放攻击。
在一种示例中,参照图4,示出了本申请实施例中提供的服务端的示意图,对于服务端,其可以基于SDK的功能模块进行配置,针对SDK不同的功能模块,在服务端中配置对应的功能模块,实现功能调用的对应关系,例如,SDK包括功能模块①、功能模块②以及功能模块③等,则服务端中针对SDK的功能模块,可以配置有与功能模块①对应的功能模块A,与功能模块②对应的功能模块B,以及与功能模块③对应的功能模块C等。同时,在一个独立功能模块下可以划分为多个不同的单元。具体地,一个功能模块可以包括信息接收单元、信息解码单元、信息验权单元、数据记录单元、计算单元、信息编码单元、信息返回单元等。其中,信息接收单元可以用于接收SDK发送的编码信息;信息解码单元可以用于针对SDK的编码信息进行解码,获取有效的信息;信息验权单元可以用于针对解码所得到的有效信息与本地存储的权限数据库(例如SDK管理表单等)进行比对,并结合判断SDK是否有权限进行后续操作,并且对设备信息等进行合法性校验;数据记录单元可以用于对解码信息进行记录,并根据此记录计算调用量,以用于了解统计方法的调用情况,也可以用于对SDK的权限信息进行记录、更新,如记录、更新SDK的剩余使用次数、剩余使用时间等等;计算单元可以用于在判定SDK有权使用,且设备信息等合法的情况下,在服务端本地进行相应的前置计算,对于前置计算,可以将SDK中依赖于前置计算所得到的计算结果以及计算量较小但具有重要作用的运算配置于服务端;信息编码单元可以用于对前置计算的计算结果和授权当次调用的信息进行编码;信息返回单元可以将信息编码单元的编码结果返回至SDK,以便SDK根据所返回的信息完成后续的计算,实现SDK相应功能的调用。
在具体实现中,在使用SDK之前,SDK的使用者需要在服务端中进行权限注册,以便开启SDK的相应功能权限,服务端中可以在数据库中记录SDK的部署情况,例如SDK所在的终端设备的设备地址、设备标识、网络地址、权限信息等等。注册成功后,服务端可以为SDK提供一个使用权限的身份密钥key,仅供该SDK使用,从而保证身份密钥与SDK之间的唯一性。
当终端设备的使用者调用SDK相应功能时,SDK可以响应于针对功能模块的调用操作,获取SDK所属设备的设备信息,以及与功能模块对应的输入参数,并对设备信息与输入参数等进行编码,生成第一编码信息,并发送至服务端,从而服务端可以通过信息接收单元获取SDK发送的第一编码信息。其中,设备信息可以用于表征SDK所在设备的设备标识信息,如设备的设备地址、网络地址、设备标识等等;输入参数可以为使用者调用功能模块时输入的参数,调用不同功能模块可以输入不同的参数,也可以输入相同的参数。例如,当调用SDK的图像识别功能以及图像分类功能时,则输入参数可以包括需要输入的图像,该图像可以相同;当调用SDK的图像识别功能以及图像嵌入水印功能时,则输入参数可以包括相同的图像,同时,对于图像嵌入水印功能,输入参数还可以包括需要嵌入的水印参数等,本申请对此不作限制。
步骤302,根据所述输入参数与所述设备信息对所述SDK进行鉴权,生成针对所述输入参数的第二编码信息;
在具体实现中,SDK发送的输入参数至少可以包括SDK的身份密钥、与输入参数对应的功能信息以及与目标对象对应的初始特征信息,则服务端可以将身份密钥、功能信息以及设备信息与预设的SDK管理表单进行匹配,生成针对SDK的鉴权结果,若鉴权结果为SDK合法,则生成针对初始特征信息的鉴权结果标识,然后采用初始特征信息与鉴权结果标识,确定针对输入参数的第二编码信息。
可选地,SDK管理表单中可以包括不同SDK所对应的信息,如下表1所示:
SDK 身份密钥 功能信息 设备信息 权限信息
SDK① KeyⅠ 图像嵌入水印 设备信息A 权限信息a
SDK① KeyⅠ 图像分类 设备信息A 权限信息a
SDK① KeyⅠ 图像识别 设备信息A 权限信息a
SDK② KeyⅡ 图像分类 设备信息B 权限信息b
SDK② KeyⅡ 图像识别 设备信息B 权限信息b
SDK③ KeyⅢ 图像嵌入水印 设备信息C 权限信息c
…… …… …… ……
表1
其中,权限信息可以包括SDK的剩余使用次数、剩余使用时间等等,其可以为使用者付费购买的使用权限,例如,SDK①使用图像嵌入水印的功能剩余使用次数为10次,使用图像分类的剩余使用次数为5次,使用图像识别的剩余使用次数为15次等等,对于剩余使用时间,与剩余使用次数相似,在此不再赘述。通过在服务端对应的数据库中存储针对不同SDK的管理表单,可以有效地对SDK的权限进行管理,对SDK的合法性进行验证,以及SDK信息的更新维护等。
在一种示例中,服务端可以通过信息解码单元获取针对第一编码信息的第二解密密钥,并通过第二解密密钥对第一编码信息进行解密,获得第一数据标识,第一数据标识至少包括SDK的身份密钥、与输入参数对应的功能信息、初始特征信息以及SDK所属设备的设备地址与网络地址,然后将身份密钥、功能信息、设备地址以及网络地址与预设SDK管理表单进行匹配,生成针对SDK的鉴权结果。可选地,对于第二解密密钥,可以获取当前时间信息,以及预设参数,然后采用当前时间信息和/或预设参数,生成针对输入参数与设备信息的第二解密密钥,其中,预设参数可以为预设的密钥,则可以将当前时间作为随机种子,生成随机数作为解密密钥;也可以采用当前时间与预设的密钥生成解密密钥;还可以直接将预设的密钥作为解密密钥等,本申请对此不作限制。
具体地,服务端可以通过信息验证单元基于身份密钥从预设SDK管理表单中查询SDK的权限信息,若权限信息表征SDK具有使用功能信息对应功能的权限,且SDK管理表单存在SDK对应的设备地址和网络地址,则生成用于表征SDK合法的鉴权结果;若权限信息表征SDK不具使用功能信息对应的权限,或使用权限已经用完,或SDK管理表单中所记录的设备信息不匹配,则生成用于表征SDK不合法的验证失败信息。
若鉴权结果为SDK合法,则服务端可以通过计算单元对初始特征信息进行编码,生成目标特征信息,并将鉴权结果标识与目标特征信息进行拼接,生成针对目标对象的第一数据标识,然后通过信息编码单元获取针对第一数据标识的第二加密密钥,接着通过第二加密密钥对第一数据标识进行加密,生成针对目标对象的第二编码信息;若鉴权结果为SDK不合法,包括SDK的使用权限已经用完、设备信息不匹配等,服务端可以通过信息验权单元生成针对SDK的验证失败结果,并将该验证失败结果返回SDK,告知使用者,SDK验权失败的原因,若为非法使用者,则可以有效保证SDK使用的安全性,避免数据泄露;若为正常使用者,则可以提醒其对验权失败的原因进行处理,保证SDK的正常使用。可选地,对于第二加密密钥,其可以由当前时间信息、初始特征信息、部分或全部第二数据标识中的一者或至少两者的组合生成的密钥,本申请对此不作限制。
其中,目标对象可以为SDK需要进行数据计算的对象,其与所调用的功能模块关联,SDK不同的功能可以对应不同的目标对象,并且,初始特征信息也与功能信息关联,SDK不同的功能可以对应不同的初始特征信息,例如,当所调用的为SDK的图像水印嵌入功能,则目标对象为图像,初始特征信息可以为需要嵌入的水印参数;当所调用的为SDK的图像分类功能,则目标对象可以为图像,初始特征信息可以为该图像的MD5值;当所调用的为SDK的音频分类功能,则目标对象可以为音频,初始特征信息可以为该音频的MD5值等等。
需要说明的是,服务端在得到针对目标对象的初始特征信息后,可以对该初始特征信息进行编码,生成目标特征信息,实现服务端的前置计算,完成配置于服务端的计算量,接着服务端可以将用于表征SDK验权成功的鉴权结果标识与目标特征信息进行拼接,生成针对目标对象的第一数据标识,并确定针对第一数据标识的加密密钥,对第一数据标识进行加密,生成第二编码信息,然后将第二编码信息返回SDK,以便SDK进行后续的计算。
对于目标特征信息,其可以为服务端根据SDK发送的初始特征信息,进行前置计算得到的计算结果,通过对SDK的数据计算的拆分,并由服务端完成相应部分的前置计算,并由SDK根据服务端前置计算的计算结果,完成剩余大部分的计算,在保证SDK功能计算完整性的情况下,通过SDK与服务端之间的分工协作,有效抵抗了恶意的逆向分析,保证了SDK使用的安全性。
可选地,第三时间信息可以为信息解码单元对第一编码信息进行解码时所对应的时间;第四时间信息可以为信息编码单元对鉴权结果标识与目标特征信息进行编码时所对应的时间。此外,第一数据标识可以为鉴权结果标识与目标特征信息拼接而成的字符串,则信息编码单元可以在计算单元对初始特征信息进行编码得到目标特征信息后,将目标特征信息与鉴权结果标识进行拼接,得到相应的字符串后,采用由当前时间确定的加密密钥对字符串进行加密,得到第二编码信息,然后通过信息返回单元将第二编码信息发送至SDK,以便SDK根据第二编码信息完成后续的计算。
步骤303,将所述第二编码信息发送至所述SDK,所述SDK用于根据所述第二编码信息进行计算,生成针对所述输入参数的计算结果。
在具体实现中,当服务端生成第二编码信息后,可以通过信息返回单元将第二编码信息发送至SDK。SDK在接收到第二编码信息后,可以通过解码单元获取针对第二编码信息的解密密钥,并采用解密密钥对第二编码信息进行解密,获得针对输入参数的数据标识,然后通过计算单元采用第一数据标识进行计算,生成与输入参数对应的计算结果,从而对SDK与服务端之间传输的数据进行动态加密,使得加解密过程无法破解,一旦无法进行解码,则SDK与服务端可以停止后续工作,进而有效抵抗了回放攻击,保证SDK使用的安全性。具体地,第一数据标识至少可以包括鉴权结果标识以及与初始特征信息对应的目标特征信息,若鉴权结果标识指示SDK鉴权成功,则SDK可以采用目标特征信息对目标对象进行处理,生成与输入参数对应的计算结果。
此外,服务端可以通过数据记录单元响应于检测到将第二编码信息发送至SDK,更新SDK管理表单中SDK对应的权限信息,其中,权限信息至少包括SDK的剩余使用次数、剩余使用时间中的一种。例如,假设SDK使用图像嵌入水印的功能剩余使用次数为10次,使用图像分类的剩余使用次数为5次,使用图像识别的剩余使用次数为15次等等,则使用者每使用一次SDK相应的功能,则服务端可以对其相应功能所对应的剩余使用次数进行减一,以实现对SDK的权限信息的管理。
需要说明的是,在本申请实施例中,以对SDK的设备地址、网络地址等进行鉴权为例进行示例性说明,可以理解的是,在SDK管理表单中还可以包括SDK所属设备的其他信息,并通过这些信息对SDK进行身份验证,本申请对此不作限制。
在本申请实施例中,SDK可以与服务端进行通信,服务端可以获取SDK发送的第一编码信息,第一编码信息至少包括输入参数以及设备信息,接着根据输入参数与设备信息对SDK进行鉴权,实现对SDK的身份验证,并生成针对输入参数的第二编码信息,然后将第二编码信息发送至SDK,SDK用于根据第二编码信息进行计算,生成针对输入参数的计算结果,从而通过SDK与服务端之间的数据交互,在通过输入参数与设备信息实现对SDK有效鉴权的情况下,使得SDK需要基于服务端返回的信息进行计算,有效抵抗了逆向分析,并且由于所传输的数据经过编码可以抵抗回放攻击,有效保证了SDK与服务端之间的数据传输安全性。
为了使本领域技术人员能够更好地理解本申请实施例的技术方案,下面结合SDK与服务端之间的数据通信,通过一些示例进行说明。
参照图5,示出了本申请实施例中提供的数据通信示意图,其中,在使用SDK之前,SDK的使用者需要在服务端中进行权限注册,以便开启SDK的相应功能权限,服务端中可以在数据库中记录SDK的部署情况。SDK功能的调用过程可以包括:
1、SDK响应于调用功能模块的调用操作,通过入参编码单元获取输入参数,并针对该输入参数进行信息编码,生成编码MSG1;
2、SDK通过通信单元将MSG1发送至服务端;
3、服务端通过信息接收单元接收MSG1;
4、服务端通过信息解码单元对MSG1解码,获取SDK传递来的信息,即输入参数,以及SDK所属设备的设备信息、权限信息等;
5、服务端通过信息验权单元查库验证该SDK用户是否有使用本模块的权限,若有权限,则进行下一步;
6、服务端通过计算单元根据MSG1解码得到的入参信息,进行服务端的前置计算,得到前置信息MSG2;
7、服务端通过信息编码单元将MSG2进行编码,得到MSG3;
8、服务端通过信息返回单元将MSG3传递给SDK;
9、SDK通过通信单元接收到MSG3;
10、SDK通过信息解码单元对MSG3进行解码;
11、SDK通过计算单元根据解码得到的前置信息,在SDK本地进行后续计算,得到正确调用的结果。
从而通过SDK与服务端之间的数据交互,在通过输入参数与设备信息实现对SDK有效鉴权的情况下,使得SDK需要基于服务端返回的信息进行计算,有效抵抗了逆向分析,并且由于所传输的数据经过编码可以抵抗回放攻击,有效保证了SDK与服务端之间的数据传输安全性。
在一种示例中,以调用SDK的图像水印嵌入功能为例,具体地,在使用SDK之前,SDK的使用者需要在服务端进行权限注册,开启SDK的图像水印嵌入(watermark_embed)能力权限,服务端在数据库中记录SDK的部署情况,即部署的计算机Mac地址,计算机本机名称,使用的网络IP地址,总体使用次数(假设SDK使用者购买次数为10次)。注册后,服务端提供给SDK一个使用权限密钥Key,仅供此SDK使用。
(1)SDK的使用者调用SDK的图像水印嵌入能力,输入参数为一张彩色图像、嵌入信息和密钥key,嵌入信息为“ABCDEFGH”,然后SDK获取部署机器的Mac地址,假设为“0800200A8C6D”,SDK获取部署机器的网络IP地址“10.23.11.3”。假设密钥key为“ppzXDHgas756HHgdshb”。将上述信息结合在一起,组成一个新的字符串“ABCDEFGH;0800200A8C6D;10.23.11.3;ppzXDHgas756HHgdshb;watermark_embed”。将当前时间(精确到分钟)作为伪随机数种子,生成随机数作为加密密钥,对上述字符串进行加密,得到编码信息MSG1为“hhzooawnHasdMyqw8236GSl023jhBSBBsq”;
(2)SDK将MSG1传递给服务端;
(3)服务端接收到MSG1,将当前时间(精确到分钟)作为伪随机数种子,生成随机数,用于解密,将MSG1解密,得到合并的字符串:“ABCDEFGH;0800200A8C6D;10.23.11.3;ppzXDHgas756HHgdshb;watermark_embed“,将此条信息保存,可以用于调用请求的回顾、追溯;
(4)服务端根据key信息,查询表格可知该SDK具有图像水印嵌入(watermark_embed)能力的使用权限,剩余10次使用次数,部署的机器与网络也是合法的;
(5)服务端将嵌入信息“ABCDEFGH”编码成待嵌入信息“UBNBSDYUYSIAD”,生成一个返回字符串MSG2“r;UBNBSDYUYSIAD”,其中“r”表示SDK验权成功。
(6)服务端将当前时间(精确到分钟)作为伪随机数种子,生成随机数作为加密密钥,对MSG2进行加密,得到加密信息MSG3为“ofnsdyqHGDshd846HDl2”;
(7)服务端将MSG3传递给SDK,然后服务端后台计费系统将使用次数减1,剩余9次使用次数;
(8)SDK将当前时间(精确到分钟)作为伪随机数种子,生成随机数作为解密密钥,对MSG3进行解密,得到信息“r;UBNBSDYUYSIAD”;根据信息“r”,SDK获取到执行后续计算的指令,将编码信息“UBNBSDYUYSIAD”嵌入到图像中,得到含水印图像。
在另一种示例中,以调用SDK从图像中检测人脸的位置为例,具体地,在使用SDK之前,SDK的使用者需要在服务端进行权限注册,开启SDK的检测人脸的位置能力权限,服务端在数据库中记录SDK的部署情况,即部署的计算机Mac地址,计算机本机名称,使用的网络IP地址。注册后,服务端提供给SDK一个使用权限密钥Key,仅供此SDK使用。
(1)SDK的使用者调用SDK的人脸位置计算能力,输入参数为一张彩色图像和密钥key,SDK首先计算彩色图像的MD5值,假设得到输入彩色图像的MD5值为“603F52D844017E83CA267751FEE5B61B”,然后SDK获取部署机器的Mac地址,假设为“0800200A8C6D”,SDK获取部署机器的网络IP地址“10.23.11.3”。假设密钥key为“ppzXDHgas756HHgdshb”。然后SDK将彩色图像做灰度降采样处理,并且对灰度降采样图像做Base64编码,为“YmluYXJ5AHN0cmluZw==”。将上述信息结合在一起,组成一个新的字符串“603F52D844017E83CA267751FEE5B61B;0800200A8C6D;10.23.11.3;ppzXDHgas756HHgdshb;YmluYXJ5AHN0cmluZw==;face_detect”。将当前时间(精确到分钟)作为伪随机数种子,生成随机数作为加密密钥,对上述字符串进行加密,得到编码信息MSG1为“hhzooawnHasdMyqw8236GSl023jhBSBBsq”;
(2)SDK将MSG1传递给服务端;
(3)服务端接收到MSG1,将当前时间(精确到分钟)作为伪随机数种子,生成随机数,用于解密,将MSG1解密,得到合并的字符串:“603F52D844017E83CA267751FEE5B61B;0800200A8C6D;10.23.11.3;ppzXDHgas756HHgdshb;YmluYXJ5AHN0cmluZw==;face_detect”,将此条信息保存,可以用于调用请求的回顾、追溯,文件MD5可以用于嵌入信息的回溯;
(4)服务端根据key信息,请求使用模块为人脸检测定位(face_detect),查询表格可知该SDK具有人脸检测能力的使用权限,部署的机器与网络也是合法的;
(5)服务端将Base64编码恢复成图像,然后对该图像进行轮廓计算,将轮廓图转化成Base64编码“5oiR5piv5LiA5Liq5YW1”,生成一个返回字符串MSG2“r;5oiR5piv5LiA5Liq5YW1”,其中“r”表示SDK验权成功。
(6)服务端将当前时间(精确到分钟)作为伪随机数种子,生成随机数作为加密密钥,对MSG2进行加密,得到加密信息MSG3为“ofnsdyqHGDshd846HDl2”;
(7)服务端将MSG3传递给SDK;
(8)SDK将当前时间(精确到分钟)作为伪随机数种子,生成随机数作为解密密钥,对MSG3进行解密,得到信息“r;5oiR5piv5LiA5Liq5YW1”;根据信息“r”,SDK获取到执行后续计算的指令,将Base64编码“5oiR5piv5LiA5Liq5YW1”转化成轮廓图像,在轮廓图像的辅助下,SDK计算得到彩色图像中人脸的位置。
在另一种示例中,以调用SDK基于深度学习的图像分类(image_classification)的功能模块为例,具体地,在使用SDK之前,SDK的使用者需要在服务端进行权限注册,开启SDK的图像分类能力权限,服务端在数据库中记录SDK的部署情况,即部署的计算机Mac地址,计算机本机名称,使用的网络IP地址。注册后,服务端提供给SDK一个使用权限密钥Key,仅供此SDK使用。
(1)SDK的使用者调用SDK的图像分类能力,输入参数为一张彩色图像和密钥key,SDK首先计算彩色图像的MD5值,假设得到输入彩色图像的MD5值为“603F52D844017E83CA267751FEE5B61B”,然后SDK获取部署机器的Mac地址,假设为“0800200A8C6D”,SDK获取部署机器的网络IP地址“10.23.11.3”。假设密钥key为“ppzXDHgas756HHgdshb”。然后SDK将彩色图像做灰度降采样处理,并且对灰度降采样图像做Base64编码,为“YmluYXJ5AHN0cmluZw==”。将上述信息结合在一起,组成一个新的字符串“603F52D844017E83CA267751FEE5B61B;0800200A8C6D;10.23.11.3;ppzXDHgas756HHgdshb;YmluYXJ5AHN0cmluZw==;image_classification”。将当前时间(精确到分钟)作为伪随机数种子,生成随机数作为加密密钥,对上述字符串进行加密,得到编码信息MSG1为“hhzooawnHasdMyqw8236GSl023jhBSBBsq”;
(2)SDK将MSG1传递给服务端;
(3)服务端接收到MSG1,将当前时间(精确到分钟)作为伪随机数种子,生成随机数,用于解密,将MSG1解密,得到合并的字符串:“603F52D844017E83CA267751FEE5B61B;0800200A8C6D;10.23.11.3;ppzXDHgas756HHgdshb;YmluYXJ5AHN0cmluZw==;image_classification”,将此条信息保存,可以用于调用请求的回顾、追溯,文件MD5可以用于嵌入信息的回溯;
(4)服务端根据key信息,请求使用模块为图像分类(image_classification),查询表格可知该SDK具有人脸检测能力的使用权限,部署的机器与网络也是合法的;
(5)服务端将Base64编码恢复成图像,然后对该图像进行初步特征点提取,提取的特征点信息为“5oiR5piv5LiA5Liq5YW1”,生成一个返回字符串MSG2“r;5oiR5piv5LiA5Liq5YW1”,其中“r”表示SDK验权成功。
(6)服务端将当前时间(精确到分钟)作为伪随机数种子,生成随机数作为加密密钥,对MSG2进行加密,得到加密信息MSG3为“ofnsdyqHGDshd846HDl2”;
(7)服务端将MSG3传递给SDK;
(8)SDK将当前时间(精确到分钟)作为伪随机数种子,生成随机数作为解密密钥,对MSG3进行解密,得到信息“r;5oiR5piv5LiA5Liq5YW1”;根据信息“r”,SDK获取到执行后续计算的指令,将初步的特征点信息“5oiR5piv5LiA5Liq5YW1”与彩色图像输入到神经网络中,计算得到分类结果。
需要说明的是,在上述示例中,仅以时间信息生成加密密钥、解密密钥,可以理解的是,对密钥的生成,还可以通过时间信息与预设密钥,直接采用预设密钥,时间信息与其他参数等进行生成,本申请实施例对此不作限制。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图6,示出了本申请实施例中提供的一种数据的处理装置的结构框图,应用于SDK,具体可以包括如下模块:
信息获取模块601,用于响应针对预设功能模块的调用操作,获取所述SDK所属设备的设备信息,以及与所述功能模块对应的输入参数;
编码信息生成模块602,用于根据所述输入参数与所述设备信息,生成第一编码信息,并将所述第一编码信息发送至服务端,所述服务端用于根据所述第一编码信息对所述SDK进行鉴权,并返回针对所述输入参数的第二编码信息;
计算结果生成模块603,用于根据所述第二编码信息进行计算,生成与所述输入参数对应的计算结果。
在本申请的一种可选实施例中,所述编码信息生成模块602包括:
加密密钥确定子模块,用于获取针对所述输入参数与所述设备信息的第一加密密钥;
编码信息生成子模块,用于采用所述第一加密密钥对所述输入参数与所述设备信息进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端。
在本申请的一种可选实施例中,所述计算结果生成模块603包括:
解密密钥确定子模块,用于获取针对所述第二编码信息的第一解密密钥;
数据标识生成子模块,用于采用所述第一解密密钥对所述第二编码信息进行解密,获得针对所述输入参数的第一数据标识;
计算结果生成子模块,用于采用所述第一数据标识进行计算,生成与所述输入参数对应的计算结果。
在本申请的一种可选实施例中,所述输入参数至少包括目标对象、与所述目标对象对应的初始特征信息以及所述SDK的身份密钥;所述设备信息至少包括设备地址以及网络地址,所述编码信息生成子模块具体用于:
获取所述功能模块的功能信息;
对所述初始特征信息、所述设备地址、所述网络地址、所述身份密钥以及所述功能信息进行拼接,生成第二数据标识;
采用所述第一加密密钥对所述第二数据标识进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端;
其中,所述服务端用于根据所述设备地址、所述网络地址、所述身份密钥以及所述功能信息对所述SDK鉴权成功后,并根据所述初始特征信息,生成针对所述目标对象的第二编码信息。
在本申请的一种可选实施例中,所述第一数据标识至少包括鉴权结果标识以及与所述初始特征信息对应的目标特征信息,所述计算结果生成子模块具体用于:
若所述鉴权结果标识指示所述SDK鉴权成功,则采用所述目标特征信息对所述目标对象进行处理,生成与所述输入参数对应的计算结果。
参照图7,示出了本申请实施例中提供的一种数据的处理装置的结构框图,应用于服务端,具体可以包括如下模块:
编码信息获取模块701,用于获取SDK发送的第一编码信息,所述第一编码信息至少包括输入参数以及设备信息;
编码信息生成模块702,用于根据所述输入参数与所述设备信息对所述SDK进行鉴权,生成针对所述输入参数的第二编码信息;
编码信息发送模块703,用于将所述第二编码信息发送至所述SDK,所述SDK用于根据所述第二编码信息进行计算,生成针对所述输入参数的计算结果。
在本申请的一种可选实施例中,所述输入参数至少包括所述SDK的身份密钥、与所述输入参数对应的功能信息以及与目标对象对应的初始特征信息,所述编码信息生成模块702包括:
鉴权结果生成子模块,用于将所述身份密钥、所述功能信息以及所述设备信息与预设的SDK管理表单进行匹配,生成针对所述SDK的鉴权结果;
结果标识生成子模块,用于若所述鉴权结果为所述SDK合法,则生成针对所述初始特征信息的鉴权结果标识;
编码信息确定子模块,用于采用所述初始特征信息与所述鉴权结果标识,确定针对所述输入参数的第二编码信息。
在本申请的一种可选实施例中,所述鉴权结果生成子模块具体用于:
获取针对所述第一编码信息的第二解密密钥;
通过所述第二解密密钥对所述第一编码信息进行解密,获得第一数据标识,所述第一数据标识至少包括所述SDK的身份密钥、与所述输入参数对应的功能信息、所述初始特征信息以及所述SDK所属设备的设备地址与网络地址;
将所述身份密钥、所述功能信息、所述设备地址以及所述网络地址与预设SDK管理表单进行匹配,生成针对所述SDK的鉴权结果。
在本申请的一种可选实施例中,所述编码信息确定子模块具体用于:
对所述初始特征信息进行编码,生成目标特征信息;
将所述鉴权结果标识与所述目标特征信息进行拼接,生成针对所述目标对象的第一数据标识;
获取针对所述第一数据标识的第二加密密钥;
通过所述第二加密密钥对所述第一数据标识进行加密,生成针对所述目标对象的第二编码信息。
在本申请的一种可选实施例中,所述鉴权结果生成子模块具体用于:
通过所述身份密钥从预设SDK管理表单中查询所述SDK的权限信息;
若所述权限信息表征所述SDK具有使用所述功能信息对应功能的权限,且所述SDK管理表单存在所述SDK对应的设备地址和网络地址,则生成用于表征所述SDK合法的鉴权结果。
在本申请的一种可选实施例中,还包括:
权限信息更新模块,用于响应于检测到将所述第二编码信息发送至所述SDK,更新所述SDK管理表单中所述SDK对应的权限信息;
其中,所述权限信息至少包括所述SDK的剩余使用次数、剩余使用时间中的一种。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还提供了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一种计算机可读存储介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本申请实施例所述的方法。
本申请实施例还提供了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本申请实施例所述的方法。
本申请实施例还提供了一种软件产品,包括计算机程序/指令,其中,当所述计算机程序/指令被执行时,实现执行如本申请实施例所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的机器可读介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种数据的处理方法和一种数据的处理装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种数据的处理方法,其特征在于,应用于SDK,所述方法包括:
响应针对预设功能模块的调用操作,获取所述SDK所属设备的设备信息,以及与所述功能模块对应的输入参数;
根据所述输入参数与所述设备信息,生成第一编码信息,并将所述第一编码信息发送至服务端,所述服务端用于根据所述第一编码信息对所述SDK进行鉴权,并返回针对所述输入参数的第二编码信息;
根据所述第二编码信息进行计算,生成与所述输入参数对应的计算结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述输入参数与所述设备信息,生成第一编码信息,并将所述第一编码信息发送至服务端,包括:
获取针对所述输入参数与所述设备信息的第一加密密钥;
采用所述第一加密密钥对所述输入参数与所述设备信息进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第二编码信息进行计算,生成与所述输入参数对应的计算结果,包括:
获取针对所述第二编码信息的第一解密密钥;
采用所述第一解密密钥对所述第二编码信息进行解密,获得针对所述输入参数的第一数据标识;
采用所述第一数据标识进行计算,生成与所述输入参数对应的计算结果。
4.根据权利要求2所述的方法,其特征在于,所述输入参数至少包括目标对象、与所述目标对象对应的初始特征信息以及所述SDK的身份密钥;所述设备信息至少包括设备地址以及网络地址,所述采用所述第一加密密钥对所述输入参数与所述设备信息进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端,包括:
获取所述功能模块的功能信息;
对所述初始特征信息、所述设备地址、所述网络地址、所述身份密钥以及所述功能信息进行拼接,生成第二数据标识;
采用所述第一加密密钥对所述第二数据标识进行加密,生成第一编码信息,并将所述第一编码信息发送至所述服务端;
其中,所述服务端用于根据所述设备地址、所述网络地址、所述身份密钥以及所述功能信息对所述SDK鉴权成功后,并根据所述初始特征信息,生成针对所述目标对象的第二编码信息。
5.根据权利要求3所述的方法,其特征在于,所述第一数据标识至少包括鉴权结果标识以及与所述初始特征信息对应的目标特征信息,所述采用所述第一数据标识进行计算,生成与所述输入参数对应的计算结果,包括:
若所述鉴权结果标识指示所述SDK鉴权成功,则采用所述目标特征信息对所述目标对象进行处理,生成与所述输入参数对应的计算结果。
6.一种数据的处理方法,其特征在于,应用于服务端,所述方法包括:
获取SDK发送的第一编码信息,所述第一编码信息至少包括输入参数以及设备信息;
根据所述输入参数与所述设备信息对所述SDK进行鉴权,生成针对所述输入参数的第二编码信息;
将所述第二编码信息发送至所述SDK,所述SDK用于根据所述第二编码信息进行计算,生成针对所述输入参数的计算结果。
7.根据权利要求6所述的方法,其特征在于,所述输入参数至少包括所述SDK的身份密钥、与所述输入参数对应的功能信息以及与目标对象对应的初始特征信息,所述根据所述输入参数与所述设备信息对所述SDK进行鉴权,生成针对所述输入参数的第二编码信息,包括:
将所述身份密钥、所述功能信息以及所述设备信息与预设的SDK管理表单进行匹配,生成针对所述SDK的鉴权结果;
若所述鉴权结果为所述SDK合法,则生成针对所述初始特征信息的鉴权结果标识;
采用所述初始特征信息与所述鉴权结果标识,确定针对所述输入参数的第二编码信息。
8.根据权利要求7所述的方法,其特征在于,所述将所述身份密钥、所述功能信息以及所述设备信息与预设的SDK管理表单进行匹配,生成针对所述SDK的鉴权结果,包括:
获取针对所述第一编码信息的第二解密密钥;
通过所述第二解密密钥对所述第一编码信息进行解密,获得第一数据标识,所述第一数据标识至少包括所述SDK的身份密钥、与所述输入参数对应的功能信息、所述初始特征信息以及所述SDK所属设备的设备地址与网络地址;
将所述身份密钥、所述功能信息、所述设备地址以及所述网络地址与预设SDK管理表单进行匹配,生成针对所述SDK的鉴权结果。
9.根据权利要求7或8所述的方法,其特征在于,所述采用所述初始特征信息与所述鉴权结果标识,确定针对所述输入参数的第二编码信息,包括:
对所述初始特征信息进行编码,生成目标特征信息;
将所述鉴权结果标识与所述目标特征信息进行拼接,生成针对所述目标对象的第一数据标识;
获取针对所述第一数据标识的第二加密密钥;
通过所述第二加密密钥对所述第一数据标识进行加密,生成针对所述目标对象的第二编码信息。
10.根据权利要求8所述的方法,其特征在于,所述将所述身份密钥、所述功能信息、所述设备地址以及所述网络地址与预设SDK管理表单进行匹配,生成针对所述SDK的鉴权结果,包括:
通过所述身份密钥从预设SDK管理表单中查询所述SDK的权限信息;
若所述权限信息表征所述SDK具有使用所述功能信息对应功能的权限,且所述SDK管理表单存在所述SDK对应的设备地址和网络地址,则生成用于表征所述SDK合法的鉴权结果。
11.根据权利要求10所述的方法,其特征在于,还包括:
响应于检测到将所述第二编码信息发送至所述SDK,更新所述SDK管理表单中所述SDK对应的权限信息;
其中,所述权限信息至少包括所述SDK的剩余使用次数、剩余使用时间中的一种。
12.一种数据的处理装置,其特征在于,应用于SDK,所述装置包括:
信息获取模块,用于响应针对预设功能模块的调用操作,获取所述SDK所属设备的设备信息,以及与所述功能模块对应的输入参数;
编码信息生成模块,用于根据所述输入参数与所述设备信息,生成第一编码信息,并将所述第一编码信息发送至服务端,所述服务端用于根据所述第一编码信息对所述SDK进行鉴权,并返回针对所述输入参数的第二编码信息;
计算结果生成模块,用于根据所述第二编码信息进行计算,生成与所述输入参数对应的计算结果。
13.一种数据的处理装置,其特征在于,应用于服务端,所述装置包括:
编码信息获取模块,用于获取SDK发送的第一编码信息,所述第一编码信息至少包括输入参数以及设备信息;
编码信息生成模块,用于根据所述输入参数与所述设备信息对所述SDK进行鉴权,生成针对所述输入参数的第二编码信息;
编码信息发送模块,用于将所述第二编码信息发送至所述SDK,所述SDK用于根据所述第二编码信息进行计算,生成针对所述输入参数的计算结果。
14.一种软件产品,包括计算机程序/指令,其中,当所述计算机程序/指令被执行时,实现执行如权利要求1-5或6-11中任一项所述的方法。
CN202110656376.8A 2021-06-11 2021-06-11 数据的处理方法、装置、电子设备及存储介质 Pending CN115470499A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110656376.8A CN115470499A (zh) 2021-06-11 2021-06-11 数据的处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110656376.8A CN115470499A (zh) 2021-06-11 2021-06-11 数据的处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115470499A true CN115470499A (zh) 2022-12-13

Family

ID=84363448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110656376.8A Pending CN115470499A (zh) 2021-06-11 2021-06-11 数据的处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115470499A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116455559A (zh) * 2023-06-15 2023-07-18 杭州海康威视数字技术股份有限公司 软硬协同高速密码设备实现方法、装置及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116455559A (zh) * 2023-06-15 2023-07-18 杭州海康威视数字技术股份有限公司 软硬协同高速密码设备实现方法、装置及电子设备
CN116455559B (zh) * 2023-06-15 2023-08-25 杭州海康威视数字技术股份有限公司 软硬协同高速密码设备实现方法、装置及电子设备

Similar Documents

Publication Publication Date Title
EP3132368B1 (en) Method and apparatus of verifying usability of biological characteristic image
CN106571951B (zh) 审计日志获取方法、系统及装置
CN110990827A (zh) 一种身份信息验证方法、服务器及存储介质
TW201741922A (zh) 一種基於生物特徵的安全認證方法及裝置
CN102694794B (zh) 一种用于安卓应用程序的场景信息保护方法
CN107145769B (zh) 一种数字版权管理drm方法、设备及系统
KR102137122B1 (ko) 보안 체크 방법, 장치, 단말기 및 서버
CN113221128B (zh) 账号和密码的存储方法及注册管理系统
CN111538784A (zh) 一种基于区块链的数字资产交易方法、装置及存储介质
KR20160139885A (ko) 생체 정보 인식과 키 분할 방식을 이용한 공인인증 시스템 및 그 방법, 그 방법을 수행하는 프로그램이 기록된 기록매체
CN111143822A (zh) 一种应用系统访问方法及装置
EP3443501B1 (en) Account access
CN115242553A (zh) 一种支持安全多方计算的数据交换方法及系统
CN115470499A (zh) 数据的处理方法、装置、电子设备及存储介质
WO2020173455A1 (zh) 投影仪授权使用方法
US9386017B2 (en) Authentication device, system and method
CN115002141B (zh) 基于区块链的文件存储方法及装置
CN113127818A (zh) 一种基于区块链的数据授权方法、装置及可读存储介质
CN111083100A (zh) 基于消息推送增强Linux操作系统登录安全性的方法和系统
CN108933766B (zh) 一种提高设备id安全性的方法和客户端
CN115225286A (zh) 应用访问鉴权方法及装置
KR101282504B1 (ko) 네트워크 환경에서 소프트웨어 사용 권한 인증 방법
KR20200137126A (ko) 생체 정보 등록 장치 및 방법, 생체 인증 장치 및 방법
KR101490638B1 (ko) 스마트 카드 인증 방법, 이를 실행하는 서버 및 이를 실행하는 시스템
CN111835713B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240301

Address after: 51 Belarusian Pasha Road, Singapore, Lai Zan Da Building 1 # 03-06, Postal Code 189554

Applicant after: Alibaba Innovation Co.

Country or region after: Singapore

Address before: Room 01, 45th Floor, AXA Building, 8 Shanton Road, Singapore

Applicant before: Alibaba Singapore Holdings Ltd.

Country or region before: Singapore