本发明属于信息安全领域,尤其涉及一种用于移动设备安全认证的系统及方法。
背景技术:
现实世界的交易奉行一手交钱、一手交货的原则,交易双方有众多手段可以辨别对手方的真实性和诚信情况。虚拟世界的交易(非面对面交易,CNP)最大的问题是难以确认交易发起者的身份,交易双方不能确认对方位置、性别、长相,甚至是否存在都无法确认。这样的环境为欺诈行为提供了沃土,滋生了繁荣的欺诈市场。传统的反欺诈手段一般是通过账户、银行卡、手机、IP等纬度进行交易者的身份确认,但是这些纬度要么难以真实确认一名交易者,要么易于被篡改,反欺诈效果有限。
因此需要解决如下的技术问题,为每一台设备分配一个唯一的编号,作为设备的唯一标识。通过该标识,反欺诈者可以观察到客户交易环境的变化和交易行为的变化,即使欺诈者变更账户、银行卡、手机等信息,能够提高反欺诈的能力。
技术实现要素:
本发明的目的在于针对现有技术的不足,提供一种用于移动设备安全认证的系统及方法。
本发明的目的是通过以下技术方案来实现的:一种用于移动设备安全认证的系统,该系统包括:
前端采集SDK模块:该模块采集当前设备信息,加密采集信息,向设备指纹服务模块发送服务请求,所述服务请求包括加密信息、原始采集信息;
设备指纹持久化模块:与设备指纹服务模块相连,提供数据查询,数据持久化存储功能;所述的数据查询包括,查询该模块中是否存在匹配的设备信息;
设备指纹服务模块:接收前端采集SDK模块的请求,识别前端采集SDK模块的类型,校验请求内容,查询或生成原始设备指纹码,加密原始设备指纹码后将其返回给请求的前端采集SDK模块;所述的校验请求内容具体为:将请求内容中原始采集信息,利用加密算法加密,得出密文,将密文与请求内容中携带的密文进行比对,验证请求信息的真实性与安全性;所述的查询或生成原始设备指纹码具体为:在设备指纹持久化模块中查询原始采集信息是否存在,若不存在,则通过通用唯一识别码(UUID)生成固定位数的原始设备指纹码并将原始设备指纹码与原始采集信息存储于设备指纹持久化模块中;若存在,则获取其对应原始设备指纹码;所述的加密原始设备指纹码具体为:将固定位数的原始设备指纹码、商户要求的参数、对应的奇偶校验值拼接后得到新的字段,为密文设备指纹码;
设备指纹验证模块:校验设备指纹服务模块生成的密文设备指纹码是否合法,具体为:校验密文设备指纹码长度是否正常,使用加密算法将密文设备指纹码还原成原始设备指纹码、商户要求的参数、对应的奇偶校验值,再通过原始设备指纹码、商户要求的参数获取奇偶校验值,与密文设备指纹码中的奇偶校验值进行比对,从而判断密文设备指纹码是否合法。
进一步地,所述前端采集SDK模块包括前端采集SDK Web模块、前端采集SDK iOS模块和前端采集SDK Android模块;
前端采集SDK Web模块:该模块加载js文件,采集当前浏览器设备信息,加密采集信息,发送加密信息及原始采集信息至设备指纹服务模块;其中,采集当前浏览器设备信息是指调用系统接口,直接获取设备信息;加密采集信息是指利用加密算法将原始采集信息加密;所述的浏览器设备信息,包括浏览器唯一标识符evercookies、浏览器标签canvas等其他信息;
前端采集SDK iOS模块:该模块以静态库形式嵌入应用中,采集当前设备上的非敏感软硬件信息,加密采集信息,发送加密信息及原始采集信息至设备指纹服务模块;所述的以静态库形式嵌入应用中,用户可以通过此静态库的头文件调用相应API,获取设备指纹码;所述的非敏感软硬件信息包括iOS设备的广告标识符、iOS设备的Vindor标识符等;所述的加密采集信息是指利用加密算法将原始采集信息加密;
前端采集SDK Android模块:该模块通过JAR包形式在应用内嵌入SDK,以自发主动的方式采集当前设备上的非敏感软硬件信息,加密采集信息,发送加密信息及原始采集信息至设备指纹服务模块;所述的非敏感软硬件信息包括设备的Mac地址、蓝牙地址、国际移动设备身份码(IMEI)等信息;所述的加密采集信息是指利用加密算法将原始采集信息加密。
进一步地,所述固定位数的原始设备指纹码为32位的字符串。
进一步地,所述加密算法为哈希算法。
进一步地,所述商户要求的参数为原始设备指纹码的过期时间。
进一步地,所述前端采集SDK模块向设备指纹服务模块发送的服务请求中,还包括商家对应的编号;其中商家对应的编号已先存储于设备指纹持久化模块中,用于辨别请求来源。
一种用于移动设备安全认证的方法,该方法包括以下步骤:
(1)通过前端采集SDK模块,采集设备上的非敏感软硬件信息,加密原始设备信息,再将密文及原始设备信息发送至设备指纹服务模块;
(2)通过设备指纹服务模块,验证请求来源,对请求内容进行校验;
(3)通过设备指纹服务模块,将前端采集SDK模块采集的设备信息在设备指纹持久化模块中执行查询及存储操作,使用通用唯一识别码(UUID)生成固定位数的原始设备指纹码,将原始设备指纹码、原始设备指纹码的过期时间及对应的奇偶校验值加密得到密文设备指纹码,并将密文设备指纹码返回给前端SDK采集模块;
(4)通过设备指纹持久化模块,执行对步骤2获得的设备信息的查询及存储操作,具体包括查询是否存在设备信息,存储设备信息;
(5)通过设备指纹验证模块,执行从步骤2获得的密文设备指纹码;具体包括对密文设备指纹码进行长度校验、过期时间校验、字符串合法校验;其中长度校验是指校验原始设备指纹字符串长度是否符合标准;其中过期时间校验是指校验原始设备指纹码在当前时间是否过期;字符串合法校验是指密文设备指纹码中携带奇偶校验位,可用于校验密文设备指纹码是否被篡改。
进一步地,所述的步骤1中,所述发送方式具体为发送POST请求,其中POST请求格式是JSON格式。
进一步地,所述的步骤1中,所述加密方法为哈希加密算法。
进一步地,所述的步骤3中,所述加密方法为哈希加密算法。
本发明的有益效果是:本发明提供的移动设备安全认证的系统及方法,可以有效为设备提供唯一的设备指纹码,用于区别其他设备;通过给原始设备指纹码添加加密、校验过程,排查设备指纹码是否非法,是否被篡改等情况;能够有效保护原始设备指纹,提高设备指纹码的安全性及准确性。
附图说明
图1为本发明系统结构框图;
图2为本发明方法流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明通过抓取交易者发起交易的设备环境信息,通过逻辑运算,为每一台设备分配一个唯一的编号,作为设备的唯一标识。其唯一性与每个人的指纹相同,以下简称为“设备指纹”。
如图1所示,本发明提供的一种移动设备安全认证的系统,包括:
前端采集SDK模块:该模块采集当前设备信息,加密采集信息,向设备指纹服务模块发送服务请求,所述服务请求包括加密信息、原始采集信息;具体包括前端采集SDK Web模块、前端采集SDK iOS模块和前端采集SDK Android模块;
前端采集SDK Web模块:该模块加载js文件,采集当前浏览器设备信息,加密采集信息,发送加密信息及原始采集信息至设备指纹服务模块;其中,采集当前浏览器设备信息是指调用系统接口,直接获取设备信息;加密采集信息是指利用加密算法将原始采集信息加密;所述的浏览器设备信息,包括浏览器唯一标识符evercookies、浏览器标签canvas等其他信息;
前端采集SDK iOS模块:该模块以静态库形式嵌入应用中,采集当前设备上的非敏感软硬件信息,加密采集信息,发送加密信息及原始采集信息至设备指纹服务模块;所述的以静态库形式嵌入应用中,用户可以通过此静态库的头文件调用相应API,获取设备指纹码;所述的非敏感软硬件信息包括iOS设备的广告标识符、iOS设备的Vindor标识符等;所述的加密采集信息是指利用加密算法将原始采集信息加密;
前端采集SDK Android模块:该模块通过JAR包形式在应用内嵌入SDK,以自发主动的方式采集当前设备上的非敏感软硬件信息,加密采集信息,发送加密信息及原始采集信息至设备指纹服务模块;所述的非敏感软硬件信息包括设备的Mac地址、蓝牙地址、国际移动设备身份码(IMEI)等信息;所述的加密采集信息是指利用加密算法将原始采集信息加密。
设备指纹持久化模块:与设备指纹服务模块相连,提供数据查询,数据持久化存储功能;所述的数据查询包括,查询该模块中是否存在匹配的设备信息;所述数据持久化存储功能是指存储原始采集信息。
设备指纹服务模块:接收前端采集SDK模块的请求,识别前端采集SDK模块的类型,校验请求内容,查询或生成原始设备指纹码,加密原始设备指纹码后将其返回给请求的前端采集SDK模块;所述的识别请求来源具体为:识别来源是android端、iOS端还是PC端;所述的校验请求内容具体为:将请求内容中原始采集信息,利用加密算法加密,得出密文,将密文与请求内容中携带的密文进行比对,验证请求信息的真实性与安全性;所述的查询或生成原始设备指纹码具体为:在设备指纹持久化模块中查询原始采集信息是否存在,若不存在,则通过通用唯一识别码(UUID)生成固定位数的原始设备指纹码并将原始设备指纹码与原始采集信息存储于设备指纹持久化模块中,原始设备指纹码可采用32位的字符串;若存在,则获取其对应原始设备指纹码;其中通用唯一识别码(UUID)指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的;所述的加密原始设备指纹码具体为:将固定位数的原始设备指纹码、商户要求的参数、对应的奇偶校验值拼接后得到新的字段,为密文设备指纹码;所述商户要求的参数可设置为原始设备指纹码的过期时间。
设备指纹验证模块:校验设备指纹服务模块生成的密文设备指纹码是否合法,具体为:校验密文设备指纹码长度是否正常,使用加密算法将密文设备指纹码还原成原始设备指纹码、商户要求的参数、对应的奇偶校验值,再通过原始设备指纹码、商户要求的参数获取奇偶校验值,与密文设备指纹码中的奇偶校验值进行比对,从而判断密文设备指纹码是否合法。
如图2所示,本发明提供的一种移动设备安全认证的方法,包括以下步骤:
(1)通过前端采集SDK模块,采集设备上的非敏感软硬件信息,加密原始设备信息,再将密文及原始设备信息发送至设备指纹服务模块;发送方式可采用发送POST请求,POST请求格式是JSON格式。
(2)通过设备指纹服务模块,验证请求来源,对请求内容进行校验;
(3)通过设备指纹服务模块,将前端采集SDK模块采集的设备信息在设备指纹持久化模块中执行查询及存储操作,使用通用唯一识别码(UUID)生成固定位数的原始设备指纹码,将原始设备指纹码、原始设备指纹码的过期时间及对应的奇偶校验值加密得到密文设备指纹码,并将密文设备指纹码返回给前端SDK采集模块;
(4)通过设备指纹持久化模块,执行对步骤2获得的设备信息的查询及存储操作,具体包括查询是否存在设备信息,存储设备信息;
(5)通过设备指纹验证模块,执行从步骤2获得的密文设备指纹码;具体包括对密文设备指纹码进行长度校验、过期时间校验、字符串合法校验;其中长度校验是指校验原始设备指纹字符串长度是否符合标准;其中过期时间校验是指校验原始设备指纹码在当前时间是否过期;字符串合法校验是指密文设备指纹码中携带奇偶校验位,可用于校验密文设备指纹码是否被篡改。
本发明中所有的加密方法均可采用哈希加密算法。通过给原始设备指纹码添加加密、校验过程,排查设备指纹码是否非法,是否被篡改等情况;能够有效保护原始设备指纹,提高设备指纹码的安全性及准确性。