CN115080975A - 一种数据传输方法和装置 - Google Patents
一种数据传输方法和装置 Download PDFInfo
- Publication number
- CN115080975A CN115080975A CN202110265228.3A CN202110265228A CN115080975A CN 115080975 A CN115080975 A CN 115080975A CN 202110265228 A CN202110265228 A CN 202110265228A CN 115080975 A CN115080975 A CN 115080975A
- Authority
- CN
- China
- Prior art keywords
- detection module
- data
- user
- terminal device
- control server
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种数据传输方法和装置,该方法应用于一种终端设备,所述终端设备包括操作系统运行区域和安全运行区域,所述方法包括:操作系统运行区域中的第一检测模块当接收到一次性事务ID时,在所述终端设备的显示界面弹出会话窗,指示用户对终端设备执行竖直、放平、晃动或双击操作的第一操作;第一检测模块向所述安全运行区域中的第二检测模块发送第一信号,并启动第二检测模块的检测功能,响应于所述用户的第一操作,获取用户执行第一操作所产生的第一数据;当所述第一数据满足预设条件时,通过第一检测模块发送所述第一数据给风险控制服务器。本方法,仅通过对手机的简单第一操作即可完成验证,极大地降低了用户心智负担。
Description
技术领域
本申请涉及通信领域,尤其是涉及一种数据传输方法和装置。
背景技术
万维网(World Wide Web,WEB)互联网的繁荣催生了大量的自动化攻击软件的诞生。在互联网灰色产业利益的驱使之下,互联网自动化攻击行为不仅消耗了大量的计算资源、通讯资源和营销资源,还肆意地盗取和泄露普通用户个人敏感信息。比如用户在使用帐号密码登录,或申请短信验证码,发送邮件或参与营销抢购等活动的场景下,都需要防止自动化机器人的恶意攻击和竞争,通常的做法是使用人机验证技术,比如采用基于图像、语音识别的验证码来阻止网络攻击。
其中,具有代表性的验证码有谷歌的九宫格验证码。其主要的思路是使用机器难以识别、但是用户可以识别的图片或者语音片段,展示或者播放给用户进行审视,引导用户对图像的内容进行理解和识别,并在界面上进行作答,从而来完成验证。以图片验证码为例,给出的九宫格的验证码,即要求用户在九张图片中,找出其他含有汽车的街景照片,且需要回答正确才能通过验证。
虽然,这种验证方式能够有效防止攻击者模拟用户在终端上的操作,提高网络系统安全性,但是需要用户来识别图片、文字、或语音验证码等信息,会非常耗费心智,对于普通用户并不友好,对于视力较弱或者听觉较弱的人士作答则更加艰难,从互联网上众多帖子下的留言和抱怨评论可以看出,用户对此类人机验证方式的不满意和无奈。
发明内容
本申请实施例提供了一种数据传输方法和装置,主要用于解决在移动终端设备上的人机验证问题,能够大幅度降低用户验证的心智负担。具体地,本申请公开了以下技术方案:
第一方面,本申请提供了一种数据传输方法,该方法可应用于一种终端设备,所述终端设备包括操作系统运行区域和安全运行区域,所述操作系统运行区域与所述安全运行区域相隔离,所述操作系统运行区域中包括第一检测模块,所述安全运行区域中包括第二检测模块,所述方法包括:
所述第一检测模块当接收到风险控制服务器发送的一次性事务ID时,在所述终端设备的显示界面弹出会话窗,并且,向所述第二检测模块发送第一信号,所述第一信号用于启动所述第二检测模块的检测功能;所述会话窗用于指示用户对所述终端设备执行第一操作,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作;
所述第二检测模块启动所述检测功能,响应于所述用户的第一操作,获取用户执行所述第一操作所产生的第一数据;以及检测当所述第一数据满足预设条件时,向所述第一检测模块发送所述第一数据。
所述第一检测模块接收所述第一数据,并向所述风险控制服务器发送所述第一数据。
可选的,所述安全运行区域为可信执行环境TEE OS。
可选的,所述第一检测模块为检测CA,所述第二检测模块为检测TA。
本实施例提供的方法,将风险控制系统与安全运行区域TEE相结合,利用运行在安全运行区域中的第二检测模块的功能,获取用户对终端设备执行的竖直、放平、晃动、双击等操作,即可完成对用户操作的验证,避免了用户在线对复杂的验证码,比如九宫格进行识别、挑选等,本方法极大地降低了用户心智负担,仅通过对手机的简单操作即可完成验证。
结合第一方面,在第一方面的一种可能的实现方式中,所述方法还包括:
所述第二检测模块绑定所述第一数据和所述一次性事务ID得到第二数据,使用所述终端设备的私钥对所述第二数据进行签名,得到第一签名值;以及向所述第一检测模块发送所述第二数据和所述第一签名值;
所述第一检测模块将所述第二数据和所述第一签名值封装成第三数据,并向所述风险控制服务器发送所述第三数据。
本实现方式中,利用第二检测模块,通过该第二检测模块来获取传感器采集的第一数据,并且将该第一数据绑定、签名加密之后发送给终端设备的富操作系统,由于签名加密后的数据(即data 3)在终端设备的各个层之间、以及在终端设备与云端设备之间传输的过程都不能被解密和篡改,所以保证了对加密后的数据传输的安全性,使得攻击者无法脱离硬件完成对业务系统的攻击,安全性更高。
结合第一方面,在第一方面的另一种可能的实现方式中,所述方法还包括:所述第二检测模块向所述第一检测模块发送所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥;所述第一检测模块接收所述第二检测模块发送的所述证书链后,向所述风险控制服务器发送所述证书链。
结合第一方面,在第一方面的又一种可能的实现方式中,所述方法还包括:所述第一检测模块接收所述风险控制服务器对所述三数据进行验证后,得到的第一验证结果;所述第一检测模块在所述第一验证结果指示用户验证“通过”的情况下,关闭所述会话窗。
结合第一方面,在第一方面的又一种可能的实现方式中,所述操作系统运行区域中还包括虚假用户检测模块,所述第一检测模块接收所述一次性事务ID之前,还包括:
所述虚假用户检测模块向所述第一检测模块发送请求消息,所述请求消息用于申请对用户的真实性进行检验;并且,在接收所述请求消息后向所述第一检测模块发送第一检测请求;
所述第一检测模块接收所述第一检测请求后,验证第一应用的合法性;当对所述第一应用的验证为“合法”时,所述第一检测模块向所述风险控制服务器发送第二检测请求;
所述第一检测模块接收所述风险控制服务器发送的所述一次性事务ID,包括:所述第一检测模块接收所述风险控制服务器根据所述第二检测请求生成的所述一次性事务ID。
本实现方式中,通过验证第一应用身份的合法性,当第一应用身份合法性通过时,才允许访问和启动第二检测模块的检测功能,从而进一步地增加了访问的安全性。
结合第一方面,在第一方面的又一种可能的实现方式中,所述第二检测模块向所述第一检测模块发送所述第一数据,包括:所述第二检测模块利用应用程序接口API向所述第一检测模块发送所述第一数据。
结合第一方面,在第一方面的又一种可能的实现方式中,获取用户执行所述第一操作所产生的第一数据之前,还包括:所述第二检测模块获得集成所述第一检测模块的安卓应用程序包APK的包名;判断如果所述APK的包名在第二检测模块的至少一个APK包名的白名单中,则启动所述终端设备的传感器。所述终端设备的传感器用于采集用户第一操作产生的数据。
结合第一方面,在第一方面的又一种可能的实现方式中,所述方法还包括:所述第一检测模块向所述虚假用户检测模块发送所述第一验证结果和所述一次性事务ID;
所述虚假用户检测模块根据所述第一验证结果判断用户的第一操作是否“通过”验证,如果是,则向业务应用服务器发送业务操作请求,并且接收所述业务应用服务器发送的根据所述业务操作请求反馈的操作结果;所述业务操作请求中包括所述一次性事务ID。
结合第一方面,在第一方面的又一种可能的实现方式中,所述第二检测模块检测所述第一数据满足所述预设条件,包括:
当所述第一数据中的重力加速度在y轴方向上的分量gy与自由落体加速度g的差值在预设范围内时,所述第一数据满足所述预设条件;
或者,当所述第一数据中的重力加速度在z轴方向上的分量gz与自由落体加速度g的差值在预设范围内,所述第一数据满足所述预设条件;
或者,当终端设备的加速度在x轴、y轴和z轴方向上的分量ax、ay、az中,存在任意一个轴的加速度分量满足至少4次方向相反且幅度大于预设值的变化,则确认第一数据满足所述预设条件;
或者,当所述第一数据中的用户在显示屏幕上连续两次点击的时间间隔,和,用户在所述显示屏幕上连续两次点击区域的两个像素值之差,均小于预设值时,则确定所述第一数据满足预设条件。
其中,所述重力加速度在y轴方向上的分量gy以及在z轴方向上的分量gz可由重力传感器测量和采集;所述终端设备的加速度在x轴、y轴和z轴方向上的分量ax、ay、az可由线性加速度传感器采集。
第二方面,本申请还提供一种数据传输方法,应用于风险控制服务器,所述方法包括:
所述风险控制服务器向终端设备的第一检测模块发送一次性事务ID;接收所述第一检测模块根据所述一次性事务ID,启动所述终端设备的第二检测模块的检测功能后,输出的第一数据或第三数据。
其中,所述终端设备的第一检测模块运行在操作系统运行区域,所述第二检测模块运行在安全运行区域,所述操作系统运行区域与所述安全运行区域相隔离,所述第一数据为用户对所述终端设备执行第一操作所产生的数据,所述第三数据为第二数据和第一签名值经过封装后生成,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作。
结合第二方面,在第二方面的一种可能的实现方式中,当所述终端设备接收所述第三数据时,还包括:
所述风险控制服务器接收所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥;校验所述终端设备的证书链的合法性,当所述证书链合法时,所述风险控制服务器利用所述证书链对所述第三数据进行验签,得到第一验证结果;并向所述第一检测模块发送所述第一验证结果。
结合第二方面,在第二方面的一种可能的实现方式中,所述方法还包括:所述风险控制服务器接收所述业务应用服务器发送的业务操作请求,所述业务操作请求中包括所述一次性事务ID;根据所述一次性事务ID查询与所述一次性事务ID对应的value值,并生成第二验证结果,所述value值包括验证“通过”或“不通过”,以及向所述业务应用服务器发送所述第二验证结果。
结合第二方面,在第二方面的另一种可能的实现方式中,所述方法还包括:所述风险控制服务器销毁所述一次性事务ID和所述第二验证结果。
第三方面,本申请还提供一种终端设备,包括操作系统运行区域和安全运行区域,所述操作系统运行区域与所述安全运行区域相隔离,所述操作系统运行区域中包括第一检测模块,所述安全运行区域中包括第二检测模块,其中,
所述第一检测模块,用于当接收到风险控制服务器发送的一次性事务ID时,在所述终端设备的显示界面弹出会话窗,以及向所述第二检测模块发送第一信号;所述会话窗用于指示用户对所述终端设备执行第一操作,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作,所述第一信号用于启动所述第二检测模块的检测功能;
所述第二检测模块,用于启动所述检测功能,响应于所述用户的第一操作,获取用户执行所述第一操作所产生的第一数据,当所述第一数据满足预设条件时,向所述第一检测模块发送所述第一数据;
所述第一检测模块,还用于接收所述第一数据,并向所述风险控制服务器发送所述第一数据。
结合第三方面,在第三方面的一种可能的实现方式中,第二检测模块还用于绑定所述第一数据和所述一次性事务ID得到第二数据,使用所述终端设备的私钥对所述第二数据进行签名,得到第一签名值,向所述第一检测模块发送所述第二数据和所述第一签名值;所述第一检测模块,还用于将所述第二数据和所述第一签名值封装成第三数据,并向所述风险控制服务器发送所述第三数据。
结合第三方面,在第三方面的另一种可能的实现方式中,第二检测模块还用于向所述第一检测模块发送所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥;所述第一检测模块,还用于接收所述第二检测模块发送的所述证书链后,向所述风险控制服务器发送所述证书链。
结合第三方面,在第三方面的又一种可能的实现方式中,所述第一检测模块,还用于接收所述风险控制服务器对所述三数据进行验证后,得到的第一验证结果,以及在所述第一验证结果指示用户验证“通过”的情况下,关闭所述会话窗。
结合第三方面,在第三方面的又一种可能的实现方式中,所述操作系统运行区域中还包括虚假用户检测模块,所述第一检测模块接收所述一次性事务ID之前,所述虚假用户检测模块,用于向所述第一检测模块发送请求消息,所述请求消息用于申请对用户的真实性进行检验;在接收所述请求消息后,向所述第一检测模块发送第一检测请求;所述第一检测模块,还用于接收所述第一检测请求后,验证第一应用的合法性;当对所述第一应用的验证为“合法”时,向所述风险控制服务器发送第二检测请求,接收所述风险控制服务器根据所述第二检测请求生成的所述一次性事务ID。
结合第三方面,在第三方面的又一种可能的实现方式中,所述第一检测模块,还用于在利用应用程序接口API向所述第一检测模块发送所述第一数据。
结合第三方面,在第三方面的又一种可能的实现方式中,所述第二检测模块,还用于在获取用户执行所述第一操作所产生的第一数据之前,获得集成所述第一检测模块的安卓应用程序包APK的包名;判断如果所述APK的包名在第二检测模块的至少一个APK包名的白名单中,则启动所述终端设备的传感器。
结合第三方面,在第三方面的又一种可能的实现方式中,所述第一检测模块,还用于向所述虚假用户检测模块发送所述第一验证结果和所述一次性事务ID;
所述虚假用户检测模块,还用于根据所述第一验证结果判断用户的第一操作是否“通过”验证,如果是,则向业务应用服务器发送业务操作请求,所述业务操作请求中包括所述一次性事务ID;另外,还用于接收所述业务应用服务器发送的根据所述业务操作请求反馈的操作结果。
结合第三方面,在第三方面的又一种可能的实现方式中,还用于在所述第一数据满足以下任意一种条件时,确定所述第一数据满足所述预设条件:
当所述第一数据中的重力加速度在y轴方向上的分量gy与自由落体加速度g的差值在预设范围内时,
或者,当所述第一数据中的重力加速度在z轴方向上的分量gz与自由落体加速度g的差值在预设范围内;
或者,当终端设备的加速度在x轴、y轴和z轴方向上的分量ax、ay、az中,存在任意一个轴的加速度分量满足至少4次方向相反且幅度大于预设值的变化;
或者,当所述第一数据中的用户在显示屏幕上连续两次点击的时间间隔,和,用户在所述显示屏幕上连续两次点击区域的两个像素值之差,均小于预设值时。
第四方面,本申请还提供一种服务器,包括:发送单元,用于向终端设备的第一检测模块发送一次性事务ID;接收单元,用于接收所述第一检测模块根据所述一次性事务ID,启动所述终端设备的第二检测模块的检测功能后,输出的第一数据或第三数据;
其中,所述终端设备的第一检测模块运行在操作系统运行区域,所述第二检测模块运行在安全运行区域,所述操作系统运行区域与所述安全运行区域相隔离,所述第一数据为用户对所述终端设备执行第一操作所产生的数据,所述第三数据为第二数据和第一签名值经过封装后生成,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作。
结合第四方面,在第四方面的一种可能的实现方式中,还包括处理单元,
所述接收单元,还用于接收所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥;
所述处理单元,用于校验所述终端设备的证书链的合法性,当所述证书链合法时,利用所述证书链对所述第三数据和第一签名值进行验签,得到所述第一验证结果;
所述发送单元,还用于向所述终端设备发送所述第一验证结果。
结合第四方面,在第四方面的另一种可能的实现方式中,所述接收单元,还用于接收所述业务应用服务器发送的业务操作请求,所述业务操作请求中包括所述一次性事务ID;
所述处理单元,还用于根据所述一次性事务ID查询与所述一次性事务ID对应的value值,并生成第二验证结果,所述value值包括验证“通过”或“不通过”;
所述发送单元,还用于向所述业务应用服务器发送所述第二验证结果。
结合第四方面,在第四方面的又一种可能的实现方式中,所述处理单元,还用于销毁所述一次性事务ID和所述第二验证结果。
第五方面,本申请还提供一种数据传输系统,包括:终端设备和风险控制服务器,
所述终端设备包括如前述第三方面以及第三方面任意一种实施方式中的装置;所述风险控制服务器包括如前述第四方面以及第四方面任意一种实施方式中的装置。
另外,在另一种可能的实施方式中,所述系统中还包括:业务应用服务器,
所述业务应用服务器,用于接收所述终端设备发送的业务操作请求,所述业务操作请求中包含所述一次性事务ID;将所述风险控制服务器发送所述一次性事务ID;接收所述风险控制服务器反馈的第二验证结果,以及当所述第二验证结果与所述第一验证结果相同时,执行业务操作得到操作结果,并且向所述终端设备发送所述操作结果。
第六方面,本申请还提供一种数据传输装置,该装置包括至少一个处理器和接口电路,其中,所述接口电路,用于为所述至少一个处理器提供指令和/或数据;所述至少一个处理器,用于执行所述指令,以实现前述第一方面及第一方面各种实现方式中的方法。
另外,所述至少一个处理器还通过执行所述指令实现前述第二方面及第二方面各种实现方式中的方法。
可选的,所述装置中还包括存储器,所述存储器用于存储所述指令,和/或,数据。
可选的,所述至少一个处理器和所述接口电路可以集成在一个处理芯片或者芯片电路中。
可选的,所述装置为一种终端设备,所述终端设备包括但不限于手机、PC、平板电脑。
可选的,所述装置为一种网络设备,所述网络设备包括但不限于服务器、控制器。比如业务应用服务器,风险控制服务器。
第七方面,本申请还提供了一种计算机可读存储介质,该存储介质中存储有指令,使得当指令在计算机或处理器上运行时,可以用于执行前述第一方面以及第一方面各种实现方式中的方法,和,前述第二方面以及第二方面各种实现方式中的方法。
另外,本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,当该指令被计算机或处理器执行时,可实现前述第一方面以及第一方面各种实现方式中的方法,和,前述第二方面以及第二方面各种实现方式中的方法。
需要说明的是,上述第二方面至第七方面的各种实现方式的技术方案所对应的有益效果与前述第一方面以及第一方面的各种实现方式的有益效果相同,具体参见上述第一方面以及第一方面的各种实现方式中的有益效果描述,不再赘述。
附图说明
图1为本申请实施例提供的一种人机交互过程中不同应用场景的示意图;
图2为本申请实施例提供的一种通信系统的结构示意图;
图3为本申请实施例提供的一种终端设备的结构示意图;
图4为本申请实施例提供的一种数据传输方法的信令流程图;
图5为本申请实施例提供的另一种数据传输方法的信令流程图;
图6a为本申请实施例提供的一种会话窗提示用户执行第一操作的示意图;
图6b为本申请实施例提供的另一种会话窗提示用户执行第一操作的示意图;
图7为本申请实施例提供的又一种数据传输方法的信令流程图;
图8为本申请实施例提供的又一种数据传输方法的信令流程图;
图9为本申请实施例提供的一种传感器的坐标系统的示意图;
图10a为本申请实施例提供的一种数据传输装置的结构示意图;
图10b为本申请实施例提供的另一种数据传输装置的结构示意图;
图11为本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面结合附图对本申请实施例中的技术方案作进一步详细的说明。在对本申请实施例的技术方案说明之前,首先结合附图对本申请实施例的应用场景进行说明。
本实施例的技术方案可应用于人机验证的技术领域,包括人机交互过程中的各种应用场景,比如图1所示,包括但不限于用户注册、登录、重置密码和在提交订单之前的抢购等。
例如,在“用户注册”场景中,业务服务供应商或者云服务供应商,例如开发者或APP所有者为了防止用户的恶意注册,用户在没有验证码时可能会任意注册大量垃圾账号,此时在注册入口的提交界面,可以启动本实施例的用户校验流程,从而防止自动化测试软件恶意攻击。
又例如,在“登录”场景中,攻击者可利用从不法渠道上获得的大量用户信息,比如旧的用户名和密钥,不断地尝试登录某一应用,从而导致该应用被试验成功,获得登录的可能性增大。此外,本实施例的技术方案还可以在交互过程中,根据业务需要,在检测到可能存在自动化测试工具恶意攻击的情况下,启动本实施例的技术方案。
本实施例的技术方案在上述各种应用场景中作为前置的人机验证方法,用于防止业务应用被自动攻击和登录,意在提高业务应用抗风险能力。
其中,本实施例的技术方案可应用于一种华为移动服务(Huawei MobileServices,HMS)环境中。所谓HMS可理解为是华为云服务的合集,其中包含华为帐号、应用内支付、华为推送服务、华为云盘服务、华为广告服务、消息服务、付费下载服务、快应用等服务。HMS以及HMS应用程序集成了华为的芯片、设备和云计算能力,并形成了一套用于集成开发环境(Integrated Development Environment,IDE)开发和测试的HMS核心服务(HMSCore)、工具和平台,并结合第三方应用一起为全球用户提供功能服务。
参见图2,为本实施例提供的一种通信系统的结构示意图。该系统中包括终端侧和云端侧,且终端侧与云端侧之间通过无线网络,比如WLAN或WiFi等。其中,在终端侧包含至少一个终端设备10,进一步地,所述终端设备可以是一种便携式设备,比如智能手机、平板电脑、个人计算机(personal computer,PC)、可折叠终端、具备无线通讯功能的可穿戴设备(例如智能手表或手环)、用户设备(user device)或用户设备(user equipment,UE)、以及增强现实(augmented reality,AR)或者虚拟现实(virtual reality,VR)设备、耳机等。本实施例对终端设备的具体设备形态不做限定。另外,上述各种终端设备中搭载安卓(Android)操作系统和/或兼容安卓的系统。
所述云端侧包含至少一个服务器,比如风险控制服务器20、业务应用服务器30等。可选的,还可以包括其他网络设备,比如交换机等,本实施例对此不予限制。
下面对本实施例提供的终端设备的结构进行介绍。
图3所示,为上述任意一种终端设备的软件架构图。其中终端设备的软件架构是一种分层结构,层与层之间通过软件接口连接。在一些实施例中,Android系统按照层从上至下的顺序,可划分为应用程序层,应用程序框架层,操作系统层,内核层(或称硬件层)。
其中,应用程序层中包括一系列应用程序包,比如相机,日历,地图,以及通话应用、导航,短信息等。每个应用程序包对应一个APK(Android application package,Android应用程序包)。同时,开发者可以利用Java语言设计和编写这些应用程序,使得这些应用程序之间平等、友好共处。
应用程序框架层是Android应用开发的基础,它为应用程序层的应用程序提供应用程序接口(application programming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。例如应用程序框架层可以包括窗口管理器(Window Manager)、内容提供器、电话管理器、资源管理器(AssetManager)、通知管理器(Notification Manager)等。
操作系统库中包括多个功能模块。例如:窗口管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
内核层,或称硬件平台层(Hardware Platform)是硬件和软件之间的层。比如在Linux Kernel中至少包含显示驱动(Display Driver)、音频驱动、CPU、网卡,以及摄像头驱动(Camera Driver),USB驱动,传感器驱动等。
应用程序层和应用程序框架层运行在虚拟机(Dalvik Virtual)中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。应用程序框架层以下的操作系统层和内核层等可称为底层系统。底层系统中包括用于提供显示服务的底层显示系统,例如,底层显示系统包括内核层中的显示驱动以及操作系统库中的窗口管理器等。
本实施例在应用程序框架层中,开放虚假用户检测能力,基于风险控制服务器评估用户终端的风险等级,对于存在风险的用户,在终端设备的安全检测工具包(Kit)中,提供虚假用户检测的能力,该能力用于为终端设备提供用户基于可信执行环境(TrustedExecution Environment,TEE)的检测手段,从而为用户带来良好的体验和较高的安全性,同时化解对HMS应用的自动化攻击风险。
图3所示,终端设备10中包括富操作系统(Rich Operating System,Rich OS)11和安全运行区域(TEE OS)12。其中,富操作系统为Android操作系统,用于提供Android系统运行环境;TEE OS用于提供可信执行环境TEE,且富操作系统11与安全运行区域12互相隔离,各自具有独立的运行系统。
其中,在富操作系统11的应用程序层中包括至少一个应用APP,比如第一应用APP,该第一应用APP中包括虚假用户检测模块,该虚假用户检测模块用于为提供业务的移动端应用集成,提供验证发起的功能,以及验证完成的回调等。该虚假用户检测模块可通过软件开发工具包(Software Development Kit,SDK)配置。
在富操作系统11的应用程序框架层中包括虚假用户服务模块,该虚假用户服务模块具备检测客户端应用(Client Application,CA)的功能。可选的,所述虚假用户服务模块中包括第一检测模块。进一步地,所述第一检测模块为检测CA或检测CA功能单元。
在所述应用程序框架层中还提供访问安全运行区域12的API接口,使得所述第一检测模块可以建立与安全运行区域12之间的传输通道,即“通道3”。在安全运行区域12中包括TEE应用层和TEE核心层,其中,TEE应用层中包括第二检测模块,所述第二检测模块用于为终端设备提供检测可信应用(Trusted Application,TA)功能。
可选的,所述第二检测模块为检测TA,或检测TA功能单元。
TEE核心层(TEE Kernel)用于调用硬件安全资源(Hardware Secure Resources),在该硬件安全资源中包含安全存储区(Secure Storage),所述安全存储区用于存储密钥(keys)、传感器采集的数据等信息。另外,安全存储区中的数据不可被富操作系统11随意更改。
进一步地,上述各个模块的功能通过下表1概括,如表1所示,
表1、模块功能列表
此外,图3中还示出了各个模块之间传输的通道。具体地,终端侧的应用程序层与框架层之间的可通过“通道1”传输,该通道1为应用程序接口(API)。类似的,前述第一检测模块与第二检测模块之间的传输“通道3”也是由API接口实现。
终端设备10与云端的风险控制服务器20之间的传输通道,即“通道2”,和终端设备10与业务应用服务器30之间的传输通道,即“通道4”,均可以采用无线移动通信传输,比如WLAN、蓝牙(Bluetooth)、WiFi等。类似的,业务应用服务器30和风险控制服务器20之间的传输通道,即“通道5”也可以采用上述任意一种无线通信传输。
可选的,上述通道2、通道4和通道5的无线通信传输可采用安全超文本传输协议(Secure Hypertext Transfer Protocol,HTTPS),所述HTTPS包括但不限于HTTPS,HTTPover SSL,HTTP Secure等。
下面对本实施例提供的技术方案进行详细地介绍。
本实施例提供了一种数据传输方法,运用终端侧可信执行环境的数据源,简化人机交互验证操作,大幅度降低地用户心智负担,同时保证数据传输的安全性。具体地,如图4所示,应用于上述终端设备的结构,所述数据传输方法包括以下步骤:
S1:终端设备向风险控制服务器发起检测请求,该检测请求用于向所述风险控制服务器申请一次性事务ID(Identity document)。具体地,如图5所示,步骤S1包括:
S101:第一应用向虚假用户检测模块发送一个请求消息。所述请求消息用于申请对用户的真实性进行检验,以及请求并调用虚假用户服务模块的功能。
在上述图1所示的任一场景中,当检测到用户登录/注册等交互过程中可能存在高风险、被自动化测试工具恶意攻击的情况下,执行步骤S101。
可选的,所述虚假用户检测模块为应用层中的一个SDK,该SDK至少具备以下功能:提供业务的移动端应用集成、提供验证发起的功能,以及验证完成的回调等。
S102:虚假用户检测模块接收所述请求消息后,向第一检测模块发送第一检测请求。
具体地,所述虚假用户检测模块接收第一应用发送的第一请求消息之后,利用“通道1”向虚假用户服务模块中的第一检测模块发送该第一检测请求。
可选的,所述第一检测模块为检测CA。
S103:第一检测模块接收所述虚假用户检测模块发送的第一检测请求后,先验证第一应用的合法性。
一种可能的实现方式是,第一检测模块通过应用程序框架层鉴权第一应用APP的合法性,具体包括:第一应用APP将第一应用的相关信息发送给第一检测模块,所述第一应用的相关信息包括:第一应用的包名、第一应用证书的指纹和第一应用的功能标识等。所述第一应用的相关信息在应用市场中具有唯一性,当第一应用在应用市场上上架时,可由应用市场为第一应用分配第一应用的相关信息。该第一应用的相关信息可由开发者对第一应用的APK做签发时设置。
在第一应用调用第一检测模块的检测功能时,向第一检测模块发送上述第一应用的相关信息,对应的,第一检测模块接收该第一应用的相关信息后,判断其中包含的第一应用的包名、证书的指纹和第一应用的功能标识是否合法。当验证第一应用APP的身份合法时,执行步骤104。
本实现方式中通过验证第一应用的合法性,并只允许合法的应用发起检测请求,从而排除和过滤掉一部分篡改签名的应用,避免非法应用发起检测攻击。
S104:当对第一应用APP的身份验证为“合法”时,所述第一检测模块向风险控制服务器发送第二检测请求。
所述第二检测请求用于向风险控制服务器申请一次性事务ID。具体地,第一检测模块按照HTTPS协议规范发送所述第二检测请求。
返回到图4,所述方法还包括:
S2:风险控制服务器接收所述检测请求(对应S104中的第二检测请求)后生成一次性事务ID。
风险控制服务器按照预设算法生成一次性事务ID。其中,所述一次性事务ID可以为一个长度不少于32字节的随机字符串,该随机字符串中可以包含数字、字母、符号等。且该一次性事务ID仅具有一次使用时效,避免被二次使用和被推测出来。
S3:风险控制服务器向所述终端设备发送所述一次性事务ID。
具体地,风险控制服务器将所述一次性事务ID发送给所述终端设备的第一检测模块,对应地,所述第一检测模块接收风险控制服务器发送的一次性事务ID。
S4:第一检测模块接收所述一次性事务ID后,在终端设备的显示界面上弹出一个会话窗。
其中,所述会话窗用于指示用户对所述终端设备执行第一操作,所述第一操作包括用户对所述终端设备执行竖直、放平、晃动或双击等操作。
在一示例中,如图6a所示,用户在手机号注册过程中,当终端设备的第一检测模块接收到所述一次性事务ID时,在显示界面上弹出会话窗1。其中,会话窗1中提示用户执行“请将手机抬起并保持竖直”的第一操作,并展示示范该操作的图画。在又一示例中,如图6b所示,该终端设备的显示界面上弹出会话窗2,其中,会话窗2中提示用户执行“请左右晃动手机”的第一操作,并展示示范该操作的图画。
应理解,会话窗中还可以提示用户执行其他操作,比如在显示屏上画圆圈、画“8”字等,本实施例对上述第一操作的执行动作不予限制,但是这些操作不包括查找字母、汉字、识别图片等耗费心智的操作。
S5:第一检测模块向第二检测模块发送第一信号(或第一指令),所述第一信号用于启动并调用第二检测模块的检测功能。
所述第二检测模块为运行在安全运行区域12中的一个运行程序,比如检测TA。具体地,第一检测模块通过应用程序框架层提供的TEE用户接口(TEE ClientAPI)向第二检测模块发送所述第一信号。
S6:第二检测模块当接收第一检测模块发送的第一信号时启动检测功能,响应于所述用户的第一操作,获取用户执行所述第一操作所产生的第一数据(data 1)。
具体地,第二检测模块接收所述第一信号后,该第一信号用于初始化TEE应用层中的第二检测模块的状态,开启第二检测模块的检测功能,使其处于监听终端设备的传感器数据的状态,等待用户按照会话窗的提示执行第一操作。当用户在根据S4中的会话窗的提示执行完第一操作后,会产生用户操作数据,即data 1并由至少一个传感器采集和存储在前述的安全存储区(Secure Storage)。第二检测模块从该安全存储区中获取所述data 1。
可选的,在S6中接收所述data 1之前,还包括:第二检测模块获得集成所述第一检测模块的安卓应用程序包APK的包名;判断所述APK的包名是否在第二检测模块的至少一个APK包名的白名单中,如果是,则说明所述第一检测模块的身份合格,允许调用第二检测模块的检测功能,此时启动所述终端设备的传感器,利用所述传感器获取所述data 1。
所述终端设备的传感器包括:加速度传感器、陀螺仪传感器、压力传感器等。
S7:第二检测模块检测所述data 1是否满足预设条件,当data 1满足所述预设条件时,向所述第一检测模块发送所述data 1。
具体地,第二检测模块利用前述“通道3”向所述第一检测模块传输所述data 1。对应的,第一检测模块接收所述data 1。
其中,S7中判断上述第一操作产生的data 1是否满足预设条件的具体过程将在本实施例后面进行说明。另外,如果data 1不满足所述预设条件,则获取用户数据失败,返回上一步S6,重新等待用户执行第一操作所产生的第一数据。
S8:第一检测模块接收所述data 1后向所述风险控制服务器发送data 1。
本实施例提供的方法,将风险控制系统与安全运行区域TEE相结合,利用运行在安全运行区域中的第二检测模块的功能,获取用户对终端设备执行的竖直、放平、晃动、双击等操作,即可完成对用户操作的验证,避免了用户在线对复杂的验证码,比如九宫格进行识别、挑选等,本方法极大地降低了用户心智负担,仅通过对手机的简单操作即可完成验证。
另外,获取的用户数据data 1是从安全运行环境TEE中的安全存储区获得的,由于安全存储区不允许被终端设备的富操作系统的应用访问,所以保证了数据存储的安全性。
在另一种可能的实施方式中,如图7所示,步骤S1至S6与前述实施例的方法流程均相同,上述步骤S7中,第二检测模块检测所述data 1是否满足预设条件时,还包括:
S7’:第二检测模块检测当所述data 1满足所述预设条件时,对所述data 1进行签名得到第二数据(data 2)和第一签名值。
具体地,包括:第二检测模块绑定所述data 1和所述一次性事务ID得到第二数据(data 2),然后,使用终端设备的私钥对所述data 2进行签名得到第一签名值。
其中,所述终端设备的私钥与公钥为一对非对称密钥,所述终端设备的私钥由设备出厂时设置,所述终端设备的公钥可以是终端设备的证书链,终端设备的证书链中包括设备证书、设备CA证书、根证书等,且所述证书链可根据不同终端设备的证书体系来确定,本实施例对此不予限制。
本实施例中的步骤S7’签名可采用“数字签名”方法。所谓数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它使用公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。
签名过程包括:发送数据时,发送方(终端设备)用一个哈希函数从报文文本(data1)中生成报文摘要,然后用发送方的私钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名(即所述第一签名值)和报文(data 1)一起发送给接收方。本实施例中所述接收方为风险控制服务器。
S8’:第二检测模块向第一检测模块发送所述data 2和所述第一签名值。对应地,第一检测模块利用接口API接收所述data 2和所述第一签名值。
可选的,在上述签名的过程中,还包括:第二检测模块对所述第一应用的包名、应用证书的指纹、第一应用的唯一标识等信息进行签名,并且,将这些签名后得到的签名值发送给第一检测模块。
另外,第二检测模块还向所述第一检测模块发送所述终端设备的证书链。
S9:第一检测模块对从所述第二检测模块接收的数据进行封装得到第三数据(data 3)。
一种可能的实施方式是,待封装的数据包括所述data 2和所述第一签名值。或者,另一种可能的实施方式是,所述待封装的数据除了所述data 2和第一签名值之外,还包括终端设备的证书链,和/或所述第一应用标识等信息。
S10:第一检测模块向风险控制服务器发送所述data 3,用于请求所述风险控制服务器对用户的第一操作进行验证。
对应的,风险控制服务器接收所述第一检测模块发送的所述data 3。
S11:风险控制服务器对所述data 3进行验证,得到第一验证结果。具体地,步骤S11包括:
S11-1:风险控制服务器校验所述终端设备的证书链的合法性。具体地,根据所述终端设备的证书链有效期确定所述证书链是否合法,其中所述证书链可以是3级证书链。
S11-2:当所述证书链合法时,风险控制服务器利用所述证书链对所述data 3和所述第一签名值进行验签,得到第一验证结果,所述第一验证结果包括“通过”和“不通过”。
具体地,风险控制服务器在接收到data 3后,首先对data 3进行反序列化处理得到data 2和第一签名值(两个字段),然后使用与发送方(终端设备)一样的哈希函数对所述data 2进行哈希计算。并计算出第一摘要值,然后再利用终端设备的证书链(公钥)来对报文附加的数字签名(即所述第一签名值)进行解密,得到第二摘要值,比较前述计算出的第一摘要值和第二摘要值是否相同,如果二者相同,则能够确认该终端用户的验签“通过”;如果两个摘要不相同,则确认该终端用户的验签“不通过”。
本示例中,风险控制服务器对所述data 2进行解密后得到的第一摘要值中包括:一次性事务ID、以及终端用户“通过”或“不通过”的第一验证结果)。
可选的,如果S11-1中校验所述证书链不合法/无效,则确定虚假用户服务模块的身份不合法,终止流程。
可选的,方法还包括:存储所述第一验证结果,以及所述data 2、一次性事务ID。
可选的,方法还包括:风险控制服务器设置缓存时效,例如缓存时效为5分钟,超过缓存时效则删除第一验证结果、一次性事务ID和data 2。
S12:风险控制服务器向所述终端设备发送所述第一验证结果。
具体地,所述风险控制服务器向所述终端设备的第一检测模块发送所述第一验证结果。对应地,所述第一检测模块接收到该第一验证结果。
S13:如果所述第一验证结果指示用户验证“通过”,则所述第一检测模块关闭前述会话窗,所述会话窗为前述步骤S4中弹出的会话窗。或者,关闭等待用户执行所述第一操作的显示界面。
另外,还包括:如果验证结果为“不通过”,则第一检测模块在终端设备的显示界面上显示用户操作“不通过”或“不合格”,并且流程终止。
S14:第一检测模块向应用程序层中的所述虚假用户检测模块发送所述第一验证结果。
此外,所述第一检测模块还向所述虚假用户检测模块发送所述一次性事务ID,和/或所述第一应用的相关信息,比如第一应用的功能标识。
对应地,所述虚假用户检测模块接收所述第一验证结果,以及所述一次性事务ID,和/或第一应用的功能标识,并根据所述第一验证结果确定风险控制服务器对用户的验签工作已经完成,以及确定该用户第一操作的验签工作是否通过。
本方法,利用安全运行区域TEE OS运行第二检测模块,通过该第二检测模块来获取传感器采集的用户操作产生的用户数据(即data 1),并且将该用户数据绑定、签名加密之后发送给终端设备的富操作系统,由于签名加密后的数据(即data 3)在终端设备的各个层之间、以及在终端设备与云端设备之间传输的过程都不能被解密和篡改,所以保证了对加密后的数据传输的安全性,使得攻击者无法脱离硬件完成对虚假用户的攻击,相比于传统图片和语音验证码等容易受到AI攻击的验证方式,本实施例提供的采用“数字签名”的验证方法,并结合了终端设备的软硬件,提升了抗破解能力,以及不需要对用户数据进行大量收集和持久跟踪,保护了用户的隐私。
另外,上述方法还包括:所述风险控制服务器建立所述第一验证结果与一次性事务ID之间的映射关系map<key,value>,其中,key为一次性事务ID,第一验证结果为value值。本实施例中,建立所述映射关系为<一次性事务ID,通过>。可选的,如果在上述S11中第一验证结果为“不通过”,则所述映射关系变为<一次性事务ID,不通过>。
根据上述建立的映射关系,在本实施例中还提供了对用户操作的二次校验流程,该流程可利用业务应用服务器实现。具体地,如图8所示,包括以下方法步骤:
S15:所述虚假用户检测模块接收第一检测模块发送的所述第一验证结果和所述一次性事务ID后,判断对用户操作的验证是否通过。
S16:如果所述验证结果为“通过”,则所述虚假用户检测模块向业务应用服务器发送业务操作请求。其中,所述业务操作请求用于发起业务应用服务器的二次校验流程,且所述业务操作请求中包括所述一次性事务ID。
另外,在所述业务操作请求中还包括:用户名和登录密码。比如在前述“登录”操作过程中,终端设备向业务应用服务器发送用户名、登录密码和一次性事务ID。
对应的,所述业务应用服务器接收来自虚假用户检测模块的所述业务操作请求,该业务操作请求可通过前述“通道4”传输。
S17:业务应用服务器接收所述业务操作请求后,将该业务操作请求发送给所述风险控制服务器。具体地,业务应用服务器通过前述“通道5”向风险控制服务器发送所述业务操作请求。
S18:风险控制服务器接收所述业务操作请求后,根据所述业务操作请求中包含的一次性事务ID,在映射关系中查询与该一次性事务ID对应的值(value),并获得第二验证结果。
其中,所述映射关系为风险控制服务器记录value值与一次性事务ID(key)之间的对应关系,即map<key,value>,其中,key为一次性事务ID,所述value值包括“通过”或“不通过”。所述第二验证结果可能与前述第一验证结果相同,也可能不相同。当风险控制服务器检测该一次性事务ID存在风险,或者已经被使用过,则确定所述value值为“不通过”。
本实施例中,假设根据所述映射关系查找所述一次性事务ID对应的value值为“通过”。则所述第二验证结果与前述S11中的第一验证结果相同。
S19:风险控制服务器向所述业务应用服务器发送所述第二验证结果。
S20:业务应用服务器接收所述风险控制服务器发送的所述第二验证结果,根据所述第二验证结果执行相应的业务操作,得到操作结果。
具体地,业务应用服务器根据所述第二验证结果确定终端用户刚才被一次性事务ID标识的第一操作是否验证通过,如果通过了,则业务应用服务器才会将终端设备发送的用户名和密码提交给自己的业务数据库做校验;如果验证不通过,则存在被欺骗,进而被撞库的风险。此时不允许访问并执行该业务操作。
其中,所述执行相应的业务操作包括注册、登录、重置密码和抢购等提交(submit)操作,且这些操作都是被检测系统保护的业务操作。
S21:业务应用服务器向所述虚假用户检测模块发送所述操作结果,该操作结果用于指示虚假用户检测模块继续执行与用户之间的交互流程。比如指示用户允许登录,并执行登录后的操作,诸如浏览、购物等。
另外,在上述S19之后还包括:风险控制服务器删除或销毁所述第二验证结果,从而避免在服务器侧长期记录用户的检验结果,比如一次性事务ID、是否通过的检验记录,本方法将检测过程中涉及的所有交互信息都可以在短时间内删除,从而避免长期存储用户相关数据(data 1至data 3),降低了这些记录的数据被攻击者窃取或攻击的可能性。
本方法通过业务应用服务器对终端设备获得的第一验证结果进行二次验证,从而增加了系统的安全性,防止一次性事务ID被重复使用和获取授权。
需要说明的是,上述业务应用服务器和风险控制服务器可以集成为一个服务器,并且该集成的服务器可用于执行前述业务应用服务器和风险控制服务器的全部方法步骤。
下面对前述步骤S7中,第二检测模块检测所述data 1是否满足预设条件进行详细介绍。
首先定义终端设备的传感器坐标系统,通常地,传感器框架使用标准的3轴坐标系统来表达,分别是x轴、y轴和z轴。对于大多数传感器,坐标系统是相对于设备被保持在默认方向时的设备的屏幕来定义的。如图9所示,当终端设备被保持在默认方向时,定义:x轴为沿着屏幕水平方向向右,y轴为从屏幕下边缘开始沿着屏幕的顶端垂直向上,z轴为是指向屏幕面板的外部。其中,在该坐标系统中,背对着屏幕的z轴坐标是负值。
并且坐标系统可以被下列传感器使用:加速度传感器、重力传感器、线性加速传感器等。
所述第一操作包括用户对终端设备执行的竖直、放平、晃动或双击等操作,具体地,在S7中,第二检测模块检测所述data 1是否是上述第一操作包括以下情形。
示例一
用户执行的第一操作为前述会话窗1中提示用户执行“请将手机抬起并保持竖直”的操作,该第一操作产生的数据为data 1,则前述S7包括:
S7-1:第二检测模块从安全存储区域获取重力传感器所采集的data 1。
所述data 1包含三个分量,分别是重力加速度在x轴、y轴和z轴方向上的分量。当终端设备处于竖直状态时,重力传感器采集的在y轴方向上的重力加速度分量表示为gy,且gy接近一个重力加速度g;其中,g又称自由落体加速度,为一常量,g约等于9.8m/s2(米每平方秒)。
S7-2:判断在y轴方向上的重力加速度分量gy与自由落体加速度g的差值是否在预设范围内。比如,所述预设范围为小于等于0.3m/s2。
S7-3:如果是,则确定所述data 1满足所述预设条件;否则,不满足所述预设条件。
例如,如果两个重力加速度的差的绝对值满足|gy-g|≤0.3,则确定data 1满足所述预设条件。如果|gy-g|>0.3,则不满足所述预设条件。此时,在会话窗1中保持提示内容不变,可等待用户自行点击取消该操作,或者在一定时长内,终端设备仍未接收到用户正确的第一操作时,取消本次提示操作的行为。
示例二
当所述第一操作为提示用户在会话窗中执行“请将手机放置平放且保持”的操作时,
上述S7-1中获取的data 1包括重力加速度在x轴、y轴和z轴方向上的分量。当终端设备处于竖直状态时,在z轴方向上的重力加速度分量表示为gz,且gz接近一个重力加速度g;
上述S7-2中具体包括:判断在z轴方向上的重力加速度分量gz与自由落体加速度g的差值是否在预设范围内。比如差的绝对值是否小于等于0.3m/s2。
上述S7-3:如果是,则确定data 1满足预设条件;否则,不满足所述预设条件。
例如,如果|gz-g|≤0.3,则确定用户的第一操作满足所述预设条件,否则不满足所述预设条件。此时,在会话窗中保持提示内容不变,可等待用户自行点击取消该操作,或者在一定时长内,终端设备仍未接收到用户正确的第一操作时,取消本次提示操作的行为。
示例三
当所述第一操作为提示用户在“会话窗2”中执行“请左右晃动手机”的操作时,所述data 1包括终端设备的加速度在x轴、y轴和z轴方向上的分量ax、ay、az中。判断在这3个轴方向的任意一个轴的加速度分量ax、ay、az中,如果这三个轴向上的任意一个轴的加速度分量满足至少4次方向相反且幅度大于预设值的变化,则确认该终端设备被用户执行了晃动操作。其中,所述每个轴的加速度分量方向发生反转变化可通过加速度传感器,比如线性加速度传感器在“Sense”应用软件上表示。如果不满足至少4次方向上的反转,则确定该data1不满足所述预设条件。
比如在任一轴方向上的加速度分量ax、ay或az变化超过4次,且幅度大于15m/s2,则认为用户执行了左右晃动手机的操作。
示例四
当所述第一操作为用户对终端设备执行的双击操作时,所述data 1包括:用户在显示屏幕上连续两次点击的时间间隔,和,用户在显示屏幕上连续两次点击区域的两个像素值,比如第一像素值和第二像素值。判断所述时间间隔是否小于预设值,以及所述第一像素值与所述第二像素值之差是否不超过预设像素值,如果均为是,则确定所述data 1满足预设条件;否则,不满足所述预设条件。
比如,检测用户对终端设备两次连续的点击动作,通过监听显示屏幕的点击事件获得所述时间间隔和两个像素值,如果所述时间间隔小于300毫秒(ms),且所述像素值之差不超过30个像素,则认为用户执行了双击操作。
需要说明的是,对于用户执行其他操作所产生的data 1,也可以利用各种传感器采集不同的用户数据,并判断各个数据是否满足预设条件,进而判断出data 1是否符合预设条件,即判断出用户在终端设备上执行的操作是否是按照会话窗的提示做的正常操作。
本方法运用了端侧可信硬件的数据源,通过显示界面提示用户执行竖直、放平、晃动、双击等操作,使得这些操作相比于传统的识别图片、文字、或语音验证码而言极大地简化了交互操作,使交互变得简单,用户心智负担大幅度降低。
下面介绍与上述方法实施例对应的装置实施例。
图10a为本申请实施例提供的一种数据传输装置的结构示意图。所述装置可以一种终端设备,或者,还可以是位于所述服务器中的部件,例如芯片。并且,该装置可以实现前述实施例中的终端设备的所有功能,并执行前述实施例中的一种数据传输方法。
其中,该装置包括富操作系统11和安全运行区域12,所述富操作系统11为终端设备的操作系统,比如安卓系统,所述安全运行区域12为TEE安全应用环境。且富操作系统11与安全运行区域12相隔离。具体地,富操作系统11中包括第一应用1101,虚假用户服务模块1102,进一步地,该第一应用1101中包括虚假用户检测模块,虚假用户服务模块1102包括第一检测模块。在安全运行区域12的TEE应用层中包括第二检测模块1201。
第一检测模块,用于当接收到风险控制服务器发送的一次性事务ID时,在所述终端设备的显示界面弹出会话窗,以及向所述第二检测模块发送第一信号;所述会话窗用于指示用户对所述终端设备执行第一操作,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作,所述第一信号用于启动所述第二检测模块的检测功能。
第二检测模块,用于启动所述检测功能,响应于所述用户的第一操作,获取用户执行所述第一操作所产生的第一数据,当所述第一数据满足预设条件时,向所述第一检测模块发送所述第一数据。
第一检测模块还用于接收所述第一数据,并向所述风险控制服务器发送所述第一数据。
可选的,在本实施例的一种可能的实施方式中,第二检测模块还用于绑定所述第一数据和所述一次性事务ID得到第二数据,使用所述终端设备的私钥对所述第二数据进行签名,得到第一签名值,向所述第一检测模块发送所述第二数据和所述第一签名值。第一检测模块,还用于将所述第二数据和所述第一签名值封装成第三数据,并向所述风险控制服务器发送所述第三数据。
可选的,在本实施例的另一种可能的实施方式中,所述第二检测模块,还用于向所述第一检测模块发送所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥;所述第一检测模块,还用于接收所述第二检测模块发送的所述证书链后,向所述风险控制服务器发送所述证书链。
可选的,在本实施例的又一种可能的实施方式中,所述第一检测模块,还用于接收所述风险控制服务器对所述三数据进行验证后,得到的第一验证结果,以及在所述第一验证结果指示用户验证“通过”的情况下,关闭所述会话窗。
可选的,在本实施例的又一种可能的实施方式中,所述操作系统运行区域中还包括虚假用户检测模块,所述第一检测模块接收所述一次性事务ID之前,
所述虚假用户检测模块,用于向所述第一检测模块发送请求消息,所述请求消息用于申请对用户的真实性进行检验;在接收所述请求消息后,向所述第一检测模块发送第一检测请求。
所述第一检测模块,还用于接收所述第一检测请求后,验证第一应用的合法性;当对所述第一应用的验证为“合法”时,向所述风险控制服务器发送第二检测请求,接收所述风险控制服务器根据所述第二检测请求生成的所述一次性事务ID。
可选的,所述第一检测模块还用于在利用应用程序接口API向所述第一检测模块发送所述第一数据。
可选的,在本实施例的又一种可能的实施方式中,所述第二检测模块,还用于在获取用户执行所述第一操作所产生的第一数据之前,获得集成所述第一检测模块的安卓应用程序包APK的包名;判断如果所述APK的包名在第二检测模块的至少一个APK包名的白名单中,则启动所述终端设备的传感器。
可选的,在本实施例的又一种可能的实施方式中,所述第一检测模块,还用于向所述虚假用户检测模块发送所述第一验证结果和所述一次性事务ID。
所述虚假用户检测模块,还用于根据所述第一验证结果判断用户的第一操作是否“通过”验证,如果是,则向业务应用服务器发送业务操作请求,所述业务操作请求中包括所述一次性事务ID。
所述虚假用户检测模块,还用于接收所述业务应用服务器发送的根据所述业务操作请求反馈的操作结果。
可选的,在本实施例的又一种可能的实施方式中,所述第二检测模块,还用于在所述第一数据满足以下任意一种条件时,确定所述第一数据满足所述预设条件:
当所述第一数据中的重力加速度在y轴方向上的分量gy与自由落体加速度g的差值在预设范围内时,
或者,当所述第一数据中的重力加速度在z轴方向上的分量gz与自由落体加速度g的差值在预设范围内;
或者,当终端设备的加速度在x轴、y轴和z轴方向上的分量ax、ay、az中,存在任意一个轴的加速度分量满足至少4次方向相反且幅度大于预设值的变化;
或者,当所述第一数据中的用户在显示屏幕上连续两次点击的时间间隔,和,用户在所述显示屏幕上连续两次点击区域的两个像素值之差,均小于预设值时。
另外,本实施例还提供另一种数据传输装置,如图10b所示,该装置包含前述实施例中的风险控制服务器,用于实现前述风险控制服务器的功能。其中,所述装置包括接收单元1301、处理单元1302、发送单元1303,另外,该装置还可以包括其他单元和模块,比如存储单元等。
进一步地,发送单元1303,用于向终端设备的第一检测模块发送一次性事务ID;接收单元1301,用于接收所述第一检测模块根据所述一次性事务ID,启动所述终端设备的第二检测模块的检测功能后,输出的第一数据或第三数据。
其中,所述终端设备的第一检测模块运行在操作系统运行区域,所述第二检测模块运行在安全运行区域,所述操作系统运行区域与所述安全运行区域相隔离,所述第一数据为用户对所述终端设备执行第一操作所产生的数据,所述第三数据为第二数据和第一签名值经过封装后生成,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作。
可选的,在本实施例的一种可能的实施方式中,接收单元1301,还用于接收所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥。处理单元1302,用于校验所述终端设备的证书链的合法性,当所述证书链合法时,利用所述证书链对所述第三数据和第一签名值进行验签,得到所述第一验证结果;发送单元1303,还用于向所述终端设备发送所述第一验证结果。
可选的,在本实施例的另一种可能的实施方式中,接收单元1301还用于接收所述业务应用服务器发送的业务操作请求,所述业务操作请求中包括所述一次性事务ID;处理单元1302,还用于根据所述一次性事务ID查询与所述一次性事务ID对应的value值,并生成第二验证结果,所述value值包括验证“通过”或“不通过”;发送单元1303还用于向所述业务应用服务器发送所述第二验证结果。
可选的,在本实施例的又一种可能的实施方式中,处理单元1302还用于销毁所述一次性事务ID和所述第二验证结果。
需要说明的是,图10b所示的数据传输装置还可以是一种业务应用服务器,用于实现前述业务应用服务器的方法和步骤。
另外,在一种硬件实现中,本实施例还提供了一种终端设备,图10示出了终端设备的结构示意图。该终端设备可以包括处理器110和存储器120,此外,还包括:USB接口130,电源管理模块140,电池141,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,加速度传感器180C,重力传感器180D,触摸传感器180E,另外,传感器模块180中还可以包括指纹传感器,温度传感器,环境光传感器等。
可以理解的是,本发明实施例示意的结构并不构成对通信装置的具体限定。在本申请另一些实施例中,通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用,避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
其中,USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,MicroUSB接口,USB Type C接口等。USB接口130可以用于连接充电器为通信装置充电,也可以用于通信装置与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
电源管理模块140用于连接电池141与处理器110。电源管理模块140为处理器110,存储器120,显示屏194,摄像头193和无线通信模块160等供电。在一些实施例中,电源管理模块140可以设置于处理器110中。
终端设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。通信装置中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块150可以提供应用在通信装置上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。
无线通信模块160可以提供应用在通信装置上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multipleaccess,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(longterm evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigationsatellite system,GLONASS),北斗卫星导航系统(beidou navigation satellitesystem,BDS)。
显示屏194用于显示会话窗、显示界面、图像等。在一些实施例中,终端设备可以包括1个或N个显示屏,N为大于1的正整数。
终端设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。其中,ISP用于处理摄像头193反馈的数据。
存储器120可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器120可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,比如富操作系统和TEE安全存储区域,每个操作系统或区域可用于运行至少一个功能模块,比如第一检测模块、第二检测模块等。存储数据区包括安全存储区(Secure Storage),用于存储传感器模块采集的用户数据,即第一数据。此外,还包括其他存储区,用于存储所述第二数据、第一签名值、第三数据等。
进一步地,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器120的指令,和/或存储在设置于处理器中的存储器的指令,执行通信装置的各种功能应用以及数据处理。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。陀螺仪传感器180B可以用于确定终端设备的运动姿态,比如测量终端设备的旋转角度。加速度传感器180C可检测终端设备在各个方向上(一般为三轴)加速度的大小。其中,加速度传感器180C中还包括线性加速度传感器,用于获得终端设备的线性加速度。重力传感器180D,用于测量终端设备在x轴、y轴和z轴方向上的加速度分量。当终端设备处于晃动、平移、静止状态时,重力传感器180D可以检测出重力加速度分量的大小及方向,进而确定出终端设备姿态,水平状态、竖直状态、晃动状态。触摸传感器180E,也称“触控器件”。触摸传感器180E可以设置于显示屏194,由触摸传感器180E与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180E用于检测作用于其上或附近的触摸操作,比如双击操作。
按键191包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和通信装置的接触和分离。
在本实施例中,当所述终端设备作为一种数据传输装置时,可以实现前述实施例中图4、图5、图7和图8所示的方法步骤,并且前述图10a所示装置中,虚假用户检测模块1101的功能可以由移动通信模块150、无线通信模块160、处理器110等部件来实现;虚假用户服务模块1102和第二检测模块1201所要实现的功能则可以由处理器110实现;所述存储单元的功能可以由存储器120实现。
在一种可能的实施方式中,利用图11所示的终端设备,例如智能手机时,利用安全运行区域TEE运行第二检测模块,通过该第二检测模块来获取传感器采集的用户操作产生的用户数据(即data 1),并且将该用户数据绑定、签名加密之后发送给终端设备的富操作系统,由于签名加密后的数据(即data 3)在终端设备的各个层之间、以及在终端设备与云端设备之间传输的过程都不能被解密和篡改,所以保证了对加密后的数据传输的安全性,使得攻击者无法脱离硬件完成对业务系统的攻击,相比于传统图片和语音验证码等容易受到AI攻击的验证方式,本实施例的技术方案结合了终端设备的软硬件,提升了抗破解能力,以及不需要对用户数据进行大量收集和持久跟踪,保护了用户的隐私。
此外,本申请实施例还提供了一种数据传输系统,该系统包括至少一个终端设备和服务器,所述终端设备的结构可以与前述图11所示的装置结构相同,也可以不相同。所述服务器包括风险控制服务器和业务应用服务器,所述服务器用于实现各自的功能,使得该数据传输系统实现前述实施例中的数据传方法。
此外,本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的数据传输方法的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体ROM或随机存储记忆体RAM等。
在上述实施例中,可以全部或部分通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令,例如配对指令、传输指令,在计算机加载和执行所述计算机程序指令时,全部或部分地产生按照本申请上述各个实施例所述方法流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
此外,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (30)
1.一种数据传输方法,其特征在于,应用于一种终端设备,所述终端设备包括操作系统运行区域和安全运行区域,所述操作系统运行区域与所述安全运行区域相隔离,所述操作系统运行区域中包括第一检测模块,所述安全运行区域中包括第二检测模块,所述方法包括:
所述第一检测模块当接收到风险控制服务器发送的一次性事务ID时,在所述终端设备的显示界面弹出会话窗,所述会话窗用于指示用户对所述终端设备执行第一操作,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作;
所述第一检测模块向所述第二检测模块发送第一信号,所述第一信号用于启动所述第二检测模块的检测功能;
所述第二检测模块启动所述检测功能,响应于所述用户的第一操作,获取用户执行所述第一操作所产生的第一数据;
所述第二检测模块检测当所述第一数据满足预设条件时,向所述第一检测模块发送所述第一数据;
所述第一检测模块接收所述第一数据,并向所述风险控制服务器发送所述第一数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二检测模块绑定所述第一数据和所述一次性事务ID得到第二数据,使用所述终端设备的私钥对所述第二数据进行签名,得到第一签名值;
所述第二检测模块向所述第一检测模块发送所述第二数据和所述第一签名值;
所述第一检测模块将所述第二数据和所述第一签名值封装成第三数据,并向所述风险控制服务器发送所述第三数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第二检测模块向所述第一检测模块发送所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥;
所述第一检测模块接收所述第二检测模块发送的所述证书链后,向所述风险控制服务器发送所述证书链。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
所述第一检测模块接收所述风险控制服务器对所述三数据进行验证后,得到的第一验证结果;
所述第一检测模块在所述第一验证结果指示用户验证“通过”的情况下,关闭所述会话窗。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述操作系统运行区域中还包括虚假用户检测模块,所述第一检测模块接收所述一次性事务ID之前,还包括:
所述虚假用户检测模块向所述第一检测模块发送请求消息,所述请求消息用于申请对用户的真实性进行检验;
所述虚假用户检测模块接收所述请求消息后,向所述第一检测模块发送第一检测请求;
所述第一检测模块接收所述第一检测请求后,验证第一应用的合法性;
当对所述第一应用的验证为“合法”时,所述第一检测模块向所述风险控制服务器发送第二检测请求;
所述第一检测模块接收所述风险控制服务器发送的所述一次性事务ID,包括:
所述第一检测模块接收所述风险控制服务器根据所述第二检测请求生成的所述一次性事务ID。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第二检测模块向所述第一检测模块发送所述第一数据,包括:
所述第二检测模块利用应用程序接口API向所述第一检测模块发送所述第一数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,获取用户执行所述第一操作所产生的第一数据之前,还包括:
所述第二检测模块获得集成所述第一检测模块的安卓应用程序包APK的包名;
判断如果所述APK的包名在第二检测模块的至少一个APK包名的白名单中,则启动所述终端设备的传感器。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一检测模块向所述虚假用户检测模块发送所述第一验证结果和所述一次性事务ID;
所述虚假用户检测模块根据所述第一验证结果判断用户的第一操作是否“通过”验证,如果是,则向业务应用服务器发送业务操作请求,所述业务操作请求中包括所述一次性事务ID;
所述虚假用户检测模块接收所述业务应用服务器发送的根据所述业务操作请求反馈的操作结果。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述第二检测模块检测所述第一数据满足所述预设条件,包括:
当所述第一数据中的重力加速度在y轴方向上的分量gy与自由落体加速度g的差值在预设范围内时,所述第一数据满足所述预设条件;
或者,当所述第一数据中的重力加速度在z轴方向上的分量gz与自由落体加速度g的差值在预设范围内,所述第一数据满足所述预设条件;
或者,当终端设备的加速度在x轴、y轴和z轴方向上的分量ax、ay、az中,存在任意一个轴的加速度分量满足至少4次方向相反且幅度大于预设值的变化,则确认第一数据满足所述预设条件;
或者,当所述第一数据中的用户在显示屏幕上连续两次点击的时间间隔,和,用户在所述显示屏幕上连续两次点击区域的两个像素值之差,均小于预设值时,则确定所述第一数据满足预设条件。
10.一种数据传输方法,其特征在于,应用于风险控制服务器,所述方法包括:
所述风险控制服务器向终端设备的第一检测模块发送一次性事务ID;
所述风险控制服务器接收所述第一检测模块根据所述一次性事务ID,启动所述终端设备的第二检测模块的检测功能后,输出的第一数据或第三数据;
其中,所述终端设备的第一检测模块运行在操作系统运行区域,所述第二检测模块运行在安全运行区域,所述操作系统运行区域与所述安全运行区域相隔离,所述第一数据为用户对所述终端设备执行第一操作所产生的数据,所述第三数据为第二数据和第一签名值经过封装后生成,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作。
11.根据权利要求10所述的方法,其特征在于,当所述终端设备接收所述第三数据时,还包括:
所述风险控制服务器接收所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥;
所述风险控制服务器校验所述终端设备的证书链的合法性;
当所述证书链合法时,所述风险控制服务器利用所述证书链对所述第三数据进行验签,得到第一验证结果;
所述风险控制服务器向所述第一检测模块发送所述第一验证结果。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
所述风险控制服务器接收所述业务应用服务器发送的业务操作请求,所述业务操作请求中包括所述一次性事务ID;
所述风险控制服务器根据所述一次性事务ID查询与所述一次性事务ID对应的value值,并生成第二验证结果,所述value值包括验证“通过”或“不通过”;
所述风险控制服务器向所述业务应用服务器发送所述第二验证结果。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述风险控制服务器销毁所述一次性事务ID和所述第二验证结果。
14.一种终端设备,其特征在于,包括操作系统运行区域和安全运行区域,所述操作系统运行区域与所述安全运行区域相隔离,所述操作系统运行区域中包括第一检测模块,所述安全运行区域中包括第二检测模块,其中,
所述第一检测模块,用于当接收到风险控制服务器发送的一次性事务ID时,在所述终端设备的显示界面弹出会话窗,以及向所述第二检测模块发送第一信号;所述会话窗用于指示用户对所述终端设备执行第一操作,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作,所述第一信号用于启动所述第二检测模块的检测功能;
所述第二检测模块,用于启动所述检测功能,响应于所述用户的第一操作,获取用户执行所述第一操作所产生的第一数据,当所述第一数据满足预设条件时,向所述第一检测模块发送所述第一数据;
所述第一检测模块,还用于接收所述第一数据,并向所述风险控制服务器发送所述第一数据。
15.根据权利要求14所述的终端设备,其特征在于,
所述第二检测模块,还用于绑定所述第一数据和所述一次性事务ID得到第二数据,使用所述终端设备的私钥对所述第二数据进行签名,得到第一签名值,向所述第一检测模块发送所述第二数据和所述第一签名值;
所述第一检测模块,还用于将所述第二数据和所述第一签名值封装成第三数据,并向所述风险控制服务器发送所述第三数据。
16.根据权利要求15所述的终端设备,其特征在于,
所述第二检测模块,还用于向所述第一检测模块发送所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥;
所述第一检测模块,还用于接收所述第二检测模块发送的所述证书链后,向所述风险控制服务器发送所述证书链。
17.根据权利要求15或16所述的终端设备,其特征在于,
所述第一检测模块,还用于接收所述风险控制服务器对所述三数据进行验证后,得到的第一验证结果,以及在所述第一验证结果指示用户验证“通过”的情况下,关闭所述会话窗。
18.根据权利要求14-17任一项所述的终端设备,其特征在于,所述操作系统运行区域中还包括虚假用户检测模块,所述第一检测模块接收所述一次性事务ID之前,
所述虚假用户检测模块,用于向所述第一检测模块发送请求消息,所述请求消息用于申请对用户的真实性进行检验;在接收所述请求消息后,向所述第一检测模块发送第一检测请求;
所述第一检测模块,还用于接收所述第一检测请求后,验证第一应用的合法性;当对所述第一应用的验证为“合法”时,向所述风险控制服务器发送第二检测请求,接收所述风险控制服务器根据所述第二检测请求生成的所述一次性事务ID。
19.根据权利要求14-18任一项所述的终端设备,其特征在于,
所述第一检测模块,还用于在利用应用程序接口API向所述第一检测模块发送所述第一数据。
20.根据权利要求14-19任一项所述的终端设备,其特征在于,
所述第二检测模块,还用于在获取用户执行所述第一操作所产生的第一数据之前,获得集成所述第一检测模块的安卓应用程序包APK的包名;判断如果所述APK的包名在第二检测模块的至少一个APK包名的白名单中,则启动所述终端设备的传感器。
21.根据权利要求20所述的终端设备,其特征在于,
所述第一检测模块,还用于向所述虚假用户检测模块发送所述第一验证结果和所述一次性事务ID;
所述虚假用户检测模块,还用于根据所述第一验证结果判断用户的第一操作是否“通过”验证,如果是,则向业务应用服务器发送业务操作请求,所述业务操作请求中包括所述一次性事务ID;
所述虚假用户检测模块,还用于接收所述业务应用服务器发送的根据所述业务操作请求反馈的操作结果。
22.根据权利要求14-21任一项所述的终端设备,所述第二检测模块,还用于在所述第一数据满足以下任意一种条件时,确定所述第一数据满足所述预设条件:
当所述第一数据中的重力加速度在y轴方向上的分量gy与自由落体加速度g的差值在预设范围内时,
或者,当所述第一数据中的重力加速度在z轴方向上的分量gz与自由落体加速度g的差值在预设范围内;
或者,当终端设备的加速度在x轴、y轴和z轴方向上的分量ax、ay、az中,存在任意一个轴的加速度分量满足至少4次方向相反且幅度大于预设值的变化;
或者,当所述第一数据中的用户在显示屏幕上连续两次点击的时间间隔,和,用户在所述显示屏幕上连续两次点击区域的两个像素值之差,均小于预设值时。
23.一种服务器,其特征在于,包括:
发送单元,用于向终端设备的第一检测模块发送一次性事务ID;
接收单元,用于接收所述第一检测模块根据所述一次性事务ID,启动所述终端设备的第二检测模块的检测功能后,输出的第一数据或第三数据;
其中,所述终端设备的第一检测模块运行在操作系统运行区域,所述第二检测模块运行在安全运行区域,所述操作系统运行区域与所述安全运行区域相隔离,所述第一数据为用户对所述终端设备执行第一操作所产生的数据,所述第三数据为第二数据和第一签名值经过封装后生成,所述第一操作包括对所述终端设备执行竖直、放平、晃动或双击操作。
24.根据权利要求23所述的服务器,其特征在于,还包括处理单元,
所述接收单元,还用于接收所述终端设备的证书链,所述终端设备的证书链与所述终端设备的私钥是一对非对称密钥;
所述处理单元,用于校验所述终端设备的证书链的合法性,当所述证书链合法时,利用所述证书链对所述第三数据和第一签名值进行验签,得到所述第一验证结果;
所述发送单元,还用于向所述终端设备发送所述第一验证结果。
25.根据权利要求23或24所述的服务器,其特征在于,
所述接收单元,还用于接收所述业务应用服务器发送的业务操作请求,所述业务操作请求中包括所述一次性事务ID;
所述处理单元,还用于根据所述一次性事务ID查询与所述一次性事务ID对应的value值,并生成第二验证结果,所述value值包括验证“通过”或“不通过”;
所述发送单元,还用于向所述业务应用服务器发送所述第二验证结果。
26.根据权利要求25所述的服务器,其特征在于,所述处理单元,还用于销毁所述一次性事务ID和所述第二验证结果。
27.一种数据传输系统,其特征在于,所述系统包括:终端设备和风险控制服务器,
所述终端设备包括如权利要求14至22中任一项所述的装置;
所述风险控制服务器包括如权利要求23至26中任一项所述的装置。
28.根据权利要求27所述的系统,其特征在于,还包括业务应用服务器,
所述业务应用服务器用于接收所述终端设备发送的业务操作请求,所述业务操作请求中包含所述一次性事务ID;
所述业务应用服务器将所述风险控制服务器发送所述一次性事务ID;
所述业务应用服务器接收所述风险控制服务器反馈的第二验证结果;
当所述第二验证结果与所述第一验证结果相同时,执行业务操作得到操作结果;
所述业务应用服务器向所述终端设备发送所述操作结果。
29.一种通信装置,其特征在于,包括至少一个处理器和接口电路,
所述接口电路,用于为所述至少一个处理器提供指令和/或数据;
所述至少一个处理器,用于执行所述指令,以实现如权利要求1至9中任一项,或者如权利要求10至13中任一项所述的方法。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序指令,当所述计算机程序指令被运行时,实现如权利要求1至9中任一项,或者,如权利要求10至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110265228.3A CN115080975A (zh) | 2021-03-11 | 2021-03-11 | 一种数据传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110265228.3A CN115080975A (zh) | 2021-03-11 | 2021-03-11 | 一种数据传输方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115080975A true CN115080975A (zh) | 2022-09-20 |
Family
ID=83241749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110265228.3A Pending CN115080975A (zh) | 2021-03-11 | 2021-03-11 | 一种数据传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080975A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118470647A (zh) * | 2024-07-09 | 2024-08-09 | 宁波永耀电力投资集团有限公司 | 一种基于数字孪生技术的电力监控方法及系统 |
-
2021
- 2021-03-11 CN CN202110265228.3A patent/CN115080975A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118470647A (zh) * | 2024-07-09 | 2024-08-09 | 宁波永耀电力投资集团有限公司 | 一种基于数字孪生技术的电力监控方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11910197B2 (en) | Service processing method and device | |
US20230029683A1 (en) | Authentication Method, Medium, and Electronic Device | |
CN111046365A (zh) | 人脸图像传输方法、数值转移方法、装置及电子设备 | |
WO2020238728A1 (zh) | 智能终端的登录方法及电子设备 | |
CN108965250B (zh) | 一种数字证书安装方法及系统 | |
CN108475304B (zh) | 一种关联应用程序和生物特征的方法、装置以及移动终端 | |
EP4030680A1 (en) | Application processing method and related product | |
WO2020124579A1 (zh) | 一种验证用户身份的方法及电子设备 | |
EP3764258B1 (en) | Constructing common trusted application for a plurality of applications | |
WO2022022422A1 (zh) | 一种权限管理方法及终端设备 | |
CN114595437B (zh) | 访问控制方法、电子设备及计算机可读存储介质 | |
CN115080975A (zh) | 一种数据传输方法和装置 | |
CN114692119A (zh) | 校验应用的方法和电子设备 | |
CN116049867B (zh) | 反诈方法、图形界面和相关装置 | |
CN115017495B (zh) | 定时校验方法、电子设备和可读存储介质 | |
CN115146253A (zh) | 一种移动App登录方法、移动设备及系统 | |
CN111447612A (zh) | 用于安全验证的移动终端和服务器端 | |
CN116029716A (zh) | 一种远程支付方法、电子设备及系统 | |
WO2020133477A1 (zh) | 数据显示方法 | |
CN117852565B (zh) | Nfc卡片生成方法、系统、装置、电子设备及服务器 | |
WO2024046418A1 (zh) | 一种数据保护方法及电子设备 | |
CN116049826B (zh) | 基于tpm的数据保护方法、电子设备及存储介质 | |
US20240233933A1 (en) | Contact tracing method and related device | |
CN118378306A (zh) | 一种数据处理方法、系统及电子设备 | |
CN118709205A (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 |