CN107665299A - 一种终端指纹生成方法及装置 - Google Patents
一种终端指纹生成方法及装置 Download PDFInfo
- Publication number
- CN107665299A CN107665299A CN201610606463.1A CN201610606463A CN107665299A CN 107665299 A CN107665299 A CN 107665299A CN 201610606463 A CN201610606463 A CN 201610606463A CN 107665299 A CN107665299 A CN 107665299A
- Authority
- CN
- China
- Prior art keywords
- terminal
- generation
- fingerprint
- image
- fingerprints
- 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
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Abstract
本发明实施例提供一种终端指纹生成方法及装置,通过获取能够唯一识别终端的硬件标识信息,然后基于终端的图像显示特性和终端的硬件标识信息生成指纹图像,最终根据指纹图像的像素生成终端指纹。由于硬件标识信息本身就具有唯一标识终端的作用,因此基于硬件标识信息生成的指纹图像存在重复的可能性很小;同时,在生成指纹图像的时候,不同的终端具有不同的图像显示特性,因此生成的指纹图像在像素上存在极大的差别,故基于指纹图像的像素生成的终端指纹也具有唯一性,其他终端在生成的假冒终端指纹很难模仿,在保证终端指纹唯一标识作用的同时,提高了终端指纹的安全性。
Description
技术领域
本发明涉及移动通讯领域,尤其涉及一种终端指纹生成方法及装置。
背景技术
终端标识如同人的居民身份证号码,可以唯一标识一个终端。对于一个移动终端有对应的一个终端标识,比如手机有IMEI(International Mobile Equipment Identity,国际移动终端标识)码或MAC地址(物理地址或者硬件地址)。但在移动通信领域,就像人的身份证可能被不法分子伪造一样,这些终端标识也很容易被假冒,从而对一些移动应用,如移动支付等造成安全隐患。因此需要使用不易假冒且易于区分的标识对终端进行身份识别。对于人,可以使用人的生物属性,如指纹、虹膜等来唯一识别一个人,个人的指纹具有唯一性,且不易假冒,现在指纹识别已有广泛的应用,比如公司考勤、公安追查疑犯等。同人一样,终端也可以有终端指纹。
目前提出的终端指纹的生成方案包括这样几种:
第一种,根据终端的硬件信息生成,例如IMEI码或MAC地址就是根据终端硬件生成的一种比较简单的终端指纹。
第二种,苹果公司为其售出的每一台移动终端设备如iPhone手机,都提供了一个UDID(Unique Device Identifier,唯一终端标识)码作为终端标识,一台移动终端只有一个唯一的UDID码,而且几乎不会被假冒,因此,UDID很受移动广告商和游戏网络运营商的青睐,因为,他们可以根据苹果移动终端设备的UDID码来确定用户的喜好,以及精确统计某一款产品的下载量。但UDID的生成涉及跟踪用户,侵犯了用户的隐私,因此,目前UDID已被禁用。
第三种,还是由苹果公司设计的UDID码的替代——OpenUDID码,OpenUDID码是由手机中第一个带有OpenUDID SDK包的手机应用生成,如果完全删除该带有OpenUDID SDK包的手机应用(比如恢复系统等),那么手机的OpenUDID码将会被重新生成,而且再次生成的OpenUDID码与之前的值不同,因为,将手机中原本带有OpenUDID SDK包的手机应用的相关数据完全删除后,这一台手机就相当于新终端。也就是说,这种完全根据终端中的软件信息来生成终端指纹的方式也是不可行的,因为,移动终端设备中的应用是可能被随时移除的,而一旦该应用被移除之后,再次生成的终端指纹将会与之前的不同,这样终端指纹就无法起到唯一标识移动终端设备的作用,即起不到设备指纹应有的作用。
综上,需要提出一种新的终端指纹的生成方案,用以保证生成的终端指纹能够唯一标识一台移动终端设备的同时还能够有效防止被假冒。
发明内容
本发明实施例提供的一种终端指纹生成及维护方法和装置,主要解决的技术问题是:用以保证生成的终端指纹能够唯一标识一台终端的同时还能够有效防止降低被假冒的风险。
为解决上述技术问题,本发明实施例提供一种终端指纹生成方法,包括:
获取终端的硬件标识信息,所述硬件标识信息用于唯一识别所述终端;
基于所述终端的图像显示特性和所述硬件标识信息生成指纹图像;
根据所述指纹图像的像素生成终端指纹。
本发明实施例还提供一种终端指纹生成装置,包括:
信息获取模块,用于获取终端的硬件标识信息,所述硬件标识信息用于唯一识别所述终端;
图像生成模块,用于基于所述终端的图像显示特性和所述硬件标识信息生成指纹图像;
指纹生成模块,用于根据所述指纹图像的像素生成终端指纹。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行前述的任一项的终端指纹生成方法。
本发明的有益效果是:
根据本发明实施例提供的终端指纹生成方法、装置以及计算机存储介质,通过获取能够唯一识别终端的硬件标识信息,然后基于终端的图像显示特性和终端的硬件标识信息生成指纹图像,最后根据指纹图像的像素生成终端指纹;由于硬件标识信息本身就具有唯一标识终端的作用,因此基于硬件标识信息生成的指纹图像存在重复的可能性很小;同时,在生成指纹图像的时候,由于不同的终端的图像显示特性不同,所以生成的指纹图像在像素上存在极大的差别,故基于该指纹图像的像素生成的终端指纹也具有唯一性,而且由于终端指纹的生成至少利用了该终端硬件中具有唯一标识作用的信息和软件中具有唯一标识作用的信息,其他终端在生成的假冒终端指纹很难模仿,在保证终端指纹唯一标识作用的同时,提高了终端指纹的安全性。
附图说明
图1为本发明实施例一提供的终端指纹生成方法的一种流程图;
图2为本发明实施例一中根据指纹图像生成终端指纹的一种流程图;
图3为本发明实施例二提供的终端指纹生成方法的一种流程图;
图4为本发明实施例二中生成指纹图像的一种流程图;
图5为本发明实施例三提供的终端指纹生成装置的一种结构示意图;
图6为本发明实施例四提供的终端指纹生成装置的一种结构示意图。
具体实施方式
下面通过具体施方式结合附图对本发明实施例作进一步详细说明。
实施例一:
为了解决现有技术中单独根据终端的硬件信息或者单独根据终端的软件信息生成终端指纹造成终端指纹容易被假冒或者是终端指纹的唯一识别作用不足的问题,本实施例提供一种终端指纹生成及维护方法。为了使本领域技术人员能够明白本实施例提供的终端指纹生成及维护方法的优越性和细节,下面将结合附图对其进行说明,首先,请参见图1:
S102、获取终端的硬件标识信息。
本实施例中的硬件终端标识可以用于唯一识别终端,硬件终端标识可以是IMEI码或MAC地址中的至少一种,也就是说,在本实施例中,获取的硬件终端标识可以是单独的IMEI码或者是单独的MAC地址中的一个,也可以是IMEI码和MAC地址的结合。
IMEI码的中文释义是移动终端国际身份码,其又称为“串号”,是区别移动终端的标志,储存在移动终端的EEPROM(俗称“码片”)里,可用于监控被窃或无效的移动终端。IMEI码的总长为15位:前6位数是TAC(Type Approval Code,型号核准号码)码,一般代表机型;紧接着TAC码的2位数是FAC(Final Assembly Code,最后装配号)代表这移动终端设备的产地;临近FAC码的6位数是串号,一般代表终端的生产顺序号;最后的1位数是SP码(即备用码),顾名思义用来做备用的,其号码由厂家做设置。
MAC地址,可译为媒体访问控制,或称为物理地址、硬件地址等,用来定义网络终端的位置。在OSI(Open System Interconnection,开放式系统互联)模型中,第二层数据链路层负责MAC地址。因此一个主机会有一个MAC地址,MAC地址是网卡决定的,是固定不变的。
S104、基于终端的图像显示特性和硬件标识信息生成指纹图像。
生成指纹图像的时候,可以使用HTML5中的帆布指纹生成函数,即Canvas元素进行绘制操作。由于不同终端的像素分辨率不同,同时,不同终端中Web浏览器使用了不同的图形处理引擎、不同的图片导出选项、不同的默认压缩级别等;而从像素级别上看,不同操作系统使用了不同的设置和算法来进行抗锯齿和子像素渲染操作,因此,即使是在不同的操作系统上做相同的绘图操作,生成的指纹图像在终端上显示时,呈现的像素是不同的。在本实施例中,由于终端的像素分辨率、终端浏览器中关于图像处理的各种设置选项,以及不同终端操作系统在进行抗锯齿和子像素渲染的时使用的算法等的不同最终都会导致生成指纹图像的不同,因此,可以将这些参数归纳为终端的图像显示特性。
生成指纹图像的时候,可以调用终端中相应的软硬件来进行,硬件包括GPU(Graphic Processing Unit,图形处理器),GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统),图形的处理变得越来越重要,需要一个专门的图形的核心处理器。GPU是显卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。在软件方面使用到的工具可以为图形库,图形库是一个用于在显示器上渲染计算机图形的程序库,它通常提供一组经过优化的函数来执行常见的渲染任务。常见的图形库如OpenGL(Open Graphics Library,开放图形库),是一个功能强大、调用方便的底层图形库,提供了专业的图形程序接口,是个与硬件无关的软件接口,在行业领域中最为广泛使用。OpenGL专门针对手机终端、PDA和游戏主机等嵌入式终端提供了OpenGL ES(OpenGL for Embedded Systems,嵌入式专用开放图形库),是OpenGL的子集。在本实施例中,可以控制移动终端设备将获取的硬件标识信息作为输入OpenGL ES提供的图形程序接口的输入,生成对应的指纹图像。
指纹图像的显示效果将由终端设备的图像显示特性确定,其中终端的分辨率、终端Web浏览器的抗锯齿特性、图像渲染特性等都会决定该指纹图像在该终端设备上的显示效果。
在本实施例中,生成的指纹图像是RGB图像,但是本领域技术人员可以明白的是,指纹图像还可以是二值图或者灰度图。生成的指纹图像的格式可以是BMP、JPEG、TIFF、RAW、PNG等中的任意一种。
S106、根据指纹图像的像素生成终端指纹。
本实施例中,根据指纹图像来生成终端指纹的原理在于根据终端的硬件标识和终端的图像显示特性为不同终端生成的指纹图像在像素上是不同的,因此,将这些像素的转换成对应的字符或者字符串后形成的终端指纹也应当是具有唯一性的。
下面对本实施例一种示例中提供的根据指纹图像的像素生成终端指纹的流程进行介绍,请参考图2:
S202、提取指纹图像中各像素的像素值。
在提取各像素的像素值的时候,一并记录该像素在指纹图像中的位置,以类似于这样的像素表达式——“{X偏移,Y偏移,RGB}”来记录各个像素点及对应的像素值。
在该像素值表达式中,X偏移和Y偏移分别表达了像素点距离图像原点的距离,图像原点可以由用户预设,或者是根据终端系统的默认值来确定。
在本实施例中,由于生成的指纹图像是RGB色彩模式的,而RGB是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,因此,每一个像素点的像素值是通过三个值共同表征的,例如“森林绿”这一种颜色值通过“34、139、34”这三个值来表示的,其表征的含义是R=34、G=139、B=34。由于上述像素表达式中“RGB”只有一个值,因此,在本实施例中,需要将表征红、绿、蓝三个颜色的值转换成一个值,从而便于参与后续计算,在本实施例中,提供一种转换方式,在对RGB图像的像素值进行转换的时候根据以下公式进行:
转换后的RGB值=Red+256*Green+65536*Blue;
例如,
转换后“森林绿”的RGB值=34+256*139+65536*34=2263842。
S204、将各像素及其像素值排列拼接形成图像像素数据。
假定一幅指纹图像当中包括四个像素点,对这四个像素点进行逐行提取之后,获取的像素表达式分别为{X1,Y1,RGB1}、{X2,Y2,RGB2}、{X3,Y3,RGB3}和{X4,Y4,RGB4},值的注意的是,本实施例中所说的逐行提取是从左至右、从上至下依次进行提取。
得到各个像素点的像素表达式之后,将像素表达式排列拼接形成图像像素数据,在上述示例当中,得到的图像像素数据应当为“X1Y1RGB1X2Y2RGB2X3Y3RGB3X4Y4RGB4”
S206、对图像像素数据进行哈希转换生成终端指纹。
在本实施例中,之所以使用哈希算法进行转换主要是因为哈希算法在对一组数据进行运算的到运算结果之后,是不能根据运算结果逆推得到原本参与哈希运算的数据的。基于哈希算法的这种特点,能够防止不法分子根据得到的终端指纹逆推得到生成终端指纹的具体细节,然后对用户的终端指纹进行伪造,从而对用户的财产等造成安全隐患。
在得到终端指纹之后,可以将终端指纹保存在终端本地。同时,在移动支付、终端鉴权等方面,终端需要通过自己的终端指纹与服务器进行交互够让服务器对终端的身份进行确认,因此,在服务器侧也应当存储终端最新版本的终端指纹。故,在终端指纹生成之后,可以将终端指纹同步到服务器侧,让服务器侧对终端指纹进行存储,当服务器需要对终端的身份进行识别的时候,可以直接从其本地提取终端指纹与终端提供的终端指纹进行匹配验证,从而确定终端的身份信息。
本实施例提供的终端指纹生成方法,利用了终端硬件信息中具有唯一性的硬件标识信息和终端图像显示特性生成指纹图像,由于该指纹图像在像素层面上具有唯一性,因此,根据指纹图像的像素生成的终端指纹也同样具有唯一性,在保证终端指纹唯一性同时,因为各个终端具有不同的图像显示特性,还能保证终端指纹的安全性,能够有效防止终端指纹被伪造或者假冒。另外,本实施例的一些实例当中,在根据指纹图像生成终端指纹的时候,会利用哈希算法进行,而哈希算法能够防止不法分子根据得到的终端指纹逆推得到生成终端指纹的具体细节,可以进一步保证终端指纹的安全性。
实施例二:
本实施例还是提供一种终端指纹生成方法,该方法与实施例一提供的终端指纹生成方法原理基本相同,但是在部分细节上做了优化,下面将对这种终端指纹生成方法进行说明,请参考图3:
S302、获取用户输入的指纹生成参数。
指纹生成参数是用户输入的,这个参数可以是用户随机输入的数据。为了保证后续生成终端指纹的安全性,在本实施例中,可以为指纹生成参数设置一些限定条件,然后根据限定条件对用户的输入进行检验,例如,可以强制要求指纹生成参数的长度大于预设值,或者要求用户输入的数据必须同时包含数字和字母,当然也可以要求用户输入的指纹生成参数不能是具有简单规律的数据,如“123456”这种“懒人密码”。当检测到用户输入的指纹生成参数不符合限定条件的要求时,可以向用户提出告警,例如通过终端的显示屏输出表征输入错误的文字或者图像信息,或者是根据终端的音频输出接口输出相应的提示音,以便用户根据这些告警信息重新进行输入,直至输入的指纹生成参数符合要求为止。
S304、获取终端的硬件标识信息。
本实施例中获取的硬件标识信息还是为IMEI码、MAC地址等可以对终端进行唯一标识的信息中的至少一种。对于IMEI码、MAC地址的介绍这里不再赘述,请直接参考前面的介绍。
可以理解的是,在本实施例中,获取终端的硬件标识信息的过程和用户输入的指纹生成参数的过程之间没有严格的时序限定,可以先获取用户输入的指纹生成参数,也可以先获取终端的硬件标识信息。
S306、根据终端的图像显示特性和硬件标识信息以及指纹生成参数生成指纹图像。
下面结合图4对本实施例中生成指纹图像的过程进行介绍:
S402、根据硬件标识信息和指纹生成参数生成校验码。
生成校验码的过程可以参考实施例一中生成图像像素数据的过程一样,将硬件标识信息和指纹生成参数按照某种顺序进行排序后将两组数据进行拼接形成对应的校验码。当然本领域技术人员可以理解的是,在本实施例中生成校验码的方式还包括多种,例如将硬件标识信息和指纹生成参数根据某种算法计算得到一个数值,该数值即作为校验码。
S404、根据硬件标识信息和指纹生成参数以及校验码生成图像生成参数。
生成图像生成参数的过程与生成校验码的过程类似,可以采用排列后将数据进行拼接的方式,也可以采用其他算法进行,只不过在生成图像生成参数的时候,输入的参数是三个而非两个了。
在本实施例中,之所以不直接根据用户输入的指纹生成参数和硬件标识信息生成指纹图像,而是先根据指纹生成参数和硬件标识信息计算得到校验码,然后又基于计算结果得到图像生成参数,即根据指纹生成参数、硬件标识信息以及计算得到的校验码确定出图像生成参数,最后生成指纹图像的时候是根据图像生成参数进行的,这样的做法主要希望通过中间的多次计算加强指纹图像的安全性。
S406、调用帆布指纹生成函数基于终端的图像显示特性根据图像生成参数生成并显示指纹图像。
该过程可以直接调用HTML5中的Canvas函数进行,HTML5是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言,其中包括众多基于SVG、Canvas、WebGL及CSS3的3D功能,当需要使用Canvas时,直接调用其中的相关函数即可实现。
将根据硬件标识信息、指纹生成参数以及校验码生成图像生成参数作为帆布指纹生成函数的输入生成指纹图像,然后基于终端的图像显示特性对指纹图像进行显示。由于不同的图像显示特性将会决定出不同的图像显示效果,也就是说,即使是同样一幅图像,在具有不同图像显示特性的终端上进行显示时,在像素层面上将会呈现不同的显示效果。
S308、根据指纹图像的像素生成终端指纹。
根据指纹图像的像素生成终端指纹的过程在实施例一中已经做了比较详细的介绍,这里不再赘述。
S310、对终端进行监测,当确定终端满足预设条件时,重新为终端生成终端指纹。
一般说来,人成年后,如果指纹没有遭遇特别的损坏,则其一般不会有什么变化,也就是说,人的生理指纹具有非常高的稳定性。但终端指纹却有所不同,因为终端指纹是根据终端的硬件信息和软件信息共同生成的,而硬件会随着时间逐步老化,软件也会逐步更新和升级,因而虽然终端指纹在一段时间内会比较稳定,但从长时间来看,终端指纹会发生改变。所以,必须有相应的终端指纹更新机制,完成新老终端指纹的替换,对此,本实施例提出一种终端指纹的更新机制——对终端进行监测,当确定终端满足预设条件时,重新为终端生成终端指纹。
在本实施例中,触发重新生成终端指纹的情况至少有这样两种:
第一种,监测到终端与图像显示特性相关的软件和/或与图像显示特性相关的硬件发生更新。与图像显示特性相关的软件包括终端中的Web浏览器等,与图像显示特性相关的硬件包括终端显示屏等。当终端的显示屏进行了更换,显示屏的分辨率率发生了变化,或者是终端使用的Web浏览器的版本变化了,例如浏览器升级了,都需要重新为终端生成一个新的终端指纹,以替换旧版本的终端指纹。
第二种,监测到用户向终端输入了终端指纹更新请求。终端指纹使用的时间越长,被假冒的可能性就越大,因此,用户在使用一个终端指纹一段时间之后,处于安全性的考虑,可能会主动提出需要更新中的指纹,因此,在接收到用户请求的情况下,也可以对终端指纹进行重新生成。
可以理解的是,在本实施例中,当重新生成终端指纹后,依然需要将其同步到服务器侧。
本发明实施例提供的终端指纹生成方法,在实施例一的基础上,在生成终端指纹的时候,结合了用户输入的指纹生成参数,由于用户输入的指纹生成参数具有随机性,因此,能够进一步保证终端指纹的唯一性与安全性。同时,本实施例提供的终端指纹生成方法还实时监测终端中与终端指纹生成相关的软、硬件信息的更新情况和用户对更新终端指纹的需求,在需要重新生成终端指纹的时候,重新执行生成工作,能够有效保证终端指纹的安全性。
实施例三:
本实施例提供一种终端指纹生成装置,请参考图5:
终端指纹生成装置50包括信息获取模块502、图像生成模块504和指纹生成模块506。
信息获取模块502用于获取终端的硬件标识信息。本实施例中信息获取模块502获取的硬件终端标识可以用于唯一识别终端,硬件终端标识可以是IMEI码或MAC地址中的至少一种,也就是说,在本实施例中,获取的硬件终端标识可以是单独的IMEI码或者是单独的MAC地址中的一个,也可以是IMEI码和MAC地址的结合。
IMEI码的中文释义是移动终端国际身份码,其又称为“串号”,是区别移动终端的标志,储存在移动终端的EEPROM(俗称“码片”)里,可用于监控被窃或无效的移动终端。IMEI码的总长为15位:前6位数是TAC(Type Approval Code,型号核准号码)码,一般代表机型;紧接着TAC码的2位数是FAC(Final Assembly Code,最后装配号)代表这移动终端设备的产地;临近FAC码的6位数是串号,一般代表终端的生产顺序号;最后的1位数是SP码(即备用码),顾名思义用来做备用的,其号码由厂家做设置。
MAC地址,可译为媒体访问控制,或称为物理地址、硬件地址等,用来定义网络终端的位置。在OSI(Open System Interconnection,开放式系统互联)模型中,第二层数据链路层负责MAC地址。因此一个主机会有一个MAC地址,MAC地址是网卡决定的,是固定不变的。
图像生成模块504用于基于终端的图像显示特性和硬件标识信息生成指纹图像。图像生成模块504生成指纹图像的时候,可以使用HTML5中的帆布指纹生成函数,即Canvas元素进行绘制操作。由于不同终端的像素分辨率不同,同时,不同终端中Web浏览器使用了不同的图形处理引擎、不同的图片导出选项、不同的默认压缩级别等;而从像素级别上看,不同操作系统使用了不同的设置和算法来进行抗锯齿和子像素渲染操作,因此,即使是在不同的操作系统上做相同的绘图操作,图像生成模块504生成的指纹图像在终端上显示时,呈现的像素是不同的。在本实施例中,由于终端的像素分辨率、终端浏览器中关于图像处理的各种设置选项,以及不同终端操作系统在进行抗锯齿和子像素渲染的时使用的算法等的不同最终都会导致生成指纹图像的不同,因此,可以将这些参数归纳为终端的图像显示特性。
图像生成模块504生成指纹图像的时候,可以调用终端中相应的软硬件来进行,硬件包括GPU,GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统),图形的处理变得越来越重要,需要一个专门的图形的核心处理器。GPU是显卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。在软件方面图像生成模块504使用到的工具可以为图形库,图形库是一个用于在显示器上渲染计算机图形的程序库,它通常提供一组经过优化的函数来执行常见的渲染任务。常见的图形库如OpenGL,是一个功能强大、调用方便的底层图形库,提供了专业的图形程序接口,是个与硬件无关的软件接口,在行业领域中最为广泛使用。OpenGL专门针对手机终端、PDA和游戏主机等嵌入式终端提供了OpenGL ES,是OpenGL的子集。在本实施例中,图像生成模块504可以将获取的硬件标识信息作为输入OpenGL ES提供的图形程序接口的输入,生成对应的指纹图像。
指纹图像的显示效果将由终端设备的图像显示特性确定,其中终端的分辨率、终端Web浏览器的抗锯齿特性、图像渲染特性等都会决定该指纹图像在该终端设备上的显示效果。
在本实施例中,图像生成模块504生成的指纹图像是RGB图像,但是本领域技术人员可以明白的是,指纹图像还可以是二值图或者灰度图。图像生成模块504生成的指纹图像的格式可以是BMP、JPEG、TIFF、RAW、PNG等中的任意一种。
指纹生成模块506用于根据指纹图像的像素生成终端指纹。本实施例中,根据指纹图像来生成终端指纹的原理在于根据终端的硬件标识和终端的图像显示特性为不同终端生成的指纹图像在像素上是不同的,因此,将这些像素的转换成对应的字符或者字符串后形成的终端指纹也应当是具有唯一性的。
指纹生成模块506用于提取指纹图像中各像素的像素值,并将各像素及其像素值排列拼接形成图像像素数据,以及对图像像素数据进行哈希转换生成终端指纹。
指纹生成模块506在提取各像素的像素值的时候,一并记录该像素在指纹图像中的位置,以类似于这样的像素表达式——“{X偏移,Y偏移,RGB}”来记录各个像素点及对应的像素值。
在该像素值表达式中,X偏移和Y偏移分别表达了像素点距离图像原点的距离,图像原点可以由用户预设,或者是根据终端系统的默认值来确定。
在本实施例中,由于生成的指纹图像是RGB色彩模式的,而RGB是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,因此,每一个像素点的像素值是通过三个值共同表征的,例如“森林绿”这一种颜色值通过“34、139、34”这三个值来表示的,其表征的含义是R=34、G=139、B=34。由于上述像素表达式中“RGB”只有一个值,因此,在本实施例中,指纹生成模块506需要将表征红、绿、蓝三个颜色的值转换成一个值,从而便于参与后续计算,在本实施例中,提供一种转换方式,在指纹生成模块506对RGB图像的像素值进行转换的时候根据以下公式进行:
转换后的RGB值=Red+256*Green+65536*Blue;
例如,
转换后“森林绿”的RGB值=34+256*139+65536*34=2263842。
假定一幅指纹图像当中包括四个像素点,指纹生成模块506对这四个像素点进行逐行提取之后,获取的像素表达式分别为{X1,Y1,RGB1}、{X2,Y2,RGB2}、{X3,Y3,RGB3}和{X4,Y4,RGB4},值的注意的是,本实施例中所说的逐行提取是从左至右、从上至下依次进行提取。
得到各个像素点的像素表达式之后,指纹生成模块506将像素表达式排列拼接形成图像像素数据,在上述示例当中,得到的图像像素数据应当为“X1Y1RGB1X2Y2RGB2X3Y3RGB3X4Y4RGB4”
在本实施例中,之所以使用哈希算法进行转换主要是因为哈希算法在对一组数据进行运算的到运算结果之后,是不能根据运算结果逆推得到原本参与哈希运算的数据的。基于哈希算法的这种特点,能够防止不法分子根据得到的终端指纹逆推得到生成终端指纹的具体细节,然后对用户的终端指纹进行伪造,从而对用户的财产等造成安全隐患。
指纹生成模块506在得到终端指纹之后,可以将终端指纹保存在终端本地。同时,在移动支付、终端鉴权等方面,终端需要通过自己的终端指纹与服务器进行交互够让服务器对终端的身份进行确认,因此,在服务器侧也应当存储终端最新版本的终端指纹。故,在终端指纹生成之后,指纹生成模块506还可以将终端指纹同步到服务器侧,让服务器侧对终端指纹进行存储,当服务器需要对终端的身份进行识别的时候,可以直接从其本地提取终端指纹与终端提供的终端指纹进行匹配验证,从而确定终端的身份信息。
本实施例提供的终端指纹生成装置50,利用了终端硬件信息中具有唯一性的硬件标识信息和终端图像显示特性生成指纹图像,由于该指纹图像在像素层面上具有唯一性,因此,根据指纹图像的像素生成的终端指纹也同样具有唯一性,在保证终端指纹唯一性同时,因为各个终端具有不同的图像显示特性,还能保证终端指纹的安全性,能够有效防止终端指纹被伪造或者假冒。另外,本实施例的一些实例当中,在根据指纹图像生成终端指纹的时候,会利用哈希算法进行,而哈希算法能够防止不法分子根据得到的终端指纹逆推得到生成终端指纹的具体细节,可以进一步保证终端指纹的安全性。
实施例四:
本实施例提供另一种终端指纹生成装置,该终端指纹生成装置同样包括信息获取模块、图像生成模块和指纹生成模块。但是该装置中信息获取模块除了用于获取用于唯一识别终端的硬件标识信息以外,还用于获取用户输入的指纹生成参数。而图像生成模块生成指纹图像的时候,除了会根据终端的图像显示特性和硬件标识信息以外,还会结合信息获取模块获取到的用户输入的指纹生成参数进行。
指纹生成参数是用户输入的,这个参数可以是用户随机输入的数据。为了保证后续生成终端指纹的安全性,在本实施例中,可以为指纹生成参数设置一些限定条件,然后根据限定条件对用户的输入进行检验,例如,可以强制要求指纹生成参数的长度大于预设值,或者要求用户输入的数据必须同时包含数字和字母,当然也可以要求用户输入的指纹生成参数不能是具有简单规律的数据,如“123456”这种“懒人密码”。当检测到用户输入的指纹生成参数不符合限定条件的要求时,可以向用户提出告警,例如通过终端的显示屏输出表征输入错误的文字或者图像信息,或者是根据终端的音频输出接口输出相应的提示音,以便用户根据这些告警信息重新进行输入,直至输入的指纹生成参数符合要求为止。
图像生成模块生成指纹图像的时候,不直接根据用户输入的指纹生成参数和硬件标识信息生成指纹图像,而是先根据指纹生成参数和硬件标识信息计算得到校验码,然后又基于计算结果得到图像生成参数,即根据指纹生成参数、硬件标识信息以及计算得到的校验码确定出图像生成参数,最后生成指纹图像的时候是根据图像生成参数进行的,这样的做法主要希望通过中间的多次计算加强指纹图像的安全性。
一般说来,人成年后,如果指纹没有遭遇特别的损坏,则其一般不会有什么变化,也就是说,人的生理指纹具有非常高的稳定性。但终端指纹却有所不同,因为终端指纹是根据终端的硬件信息和软件信息共同生成的,而硬件会随着时间逐步老化,软件也会逐步更新和升级,因而虽然终端指纹在一段时间内会比较稳定,但从长时间来看,终端指纹会发生改变。所以,必须有相应的终端指纹更新机制,完成新老终端指纹的替换,对此,本实施例提出一种终端指纹的更新机制——对终端进行监测,当确定终端满足预设条件时,重新为终端生成终端指纹。因此,如图6,在本实施例一种示例中提出的另一种终端指纹生成装置中,终端指纹生成装置50包括信息获取模块502、图像生成模块504、指纹生成模块506以外,还包括监测更新模块508。监测更新模块508监测到需要对重新生成终端指纹的情况主要有这样两种:
第一种,监测更新模块508监测到终端与图像显示特性相关的软件和/或与图像显示特性相关的硬件发生更新。与图像显示特性相关的软件包括终端中的Web浏览器等,与图像显示特性相关的硬件包括终端显示屏等。当终端的显示屏进行了更换,显示屏的分辨率率发生了变化,或者是终端使用的Web浏览器的版本变化了,例如浏览器升级了,都需要重新为终端生成一个新的终端指纹,以替换旧版本的终端指纹。
第二种,监测更新模块508监测到用户向终端输入了终端指纹更新请求。终端指纹使用的时间越长,被假冒的可能性就越大,因此,用户在使用一个终端指纹一段时间之后,处于安全性的考虑,可能会主动提出需要更新中的指纹,因此,在接收到用户请求的情况下,也可以对终端指纹进行重新生成。
可以理解的是,在本实施例中,当重新生成终端指纹后,依然需要将其同步到服务器侧。
本实施例和实施例三中提供的终端指纹生成装置50可以部署在终端上,这里所说的终端可以是手机、平板电脑、PDA等。信息获取模块的功能可以由控制器实现;在需要获取用户输入的指纹生成参数的时候,可以由终端的输入单元与控制器共同实现信息获取模块的功能。生成指纹图像和生成终端指纹的工作也可以由控制器来实现,控制器还可以用来实现监测更新模块的功能。
另外,本实施例中终端指纹生成装置50需要将生成的终端指纹同步到服务器侧,在这里可以利用终端,如手机的通信单元与服务器实现通信,将终端指纹传输到服务器中。
本发明实施例提供的终端指纹生成装置,在实施例三的基础上,在生成终端指纹的时候,结合了用户输入的指纹生成参数,由于用户输入的指纹生成参数具有随机性,因此,能够进一步保证终端指纹的唯一性与安全性。同时,本实施例提供的终端指纹生成装置还实时监测终端中与终端指纹生成相关的软、硬件信息的更新情况和用户对更新终端指纹的需求,在需要重新生成终端指纹的时候,重新执行生成工作,能够有效保证终端指纹的安全性。
显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种终端指纹生成方法,包括:
获取终端的硬件标识信息,所述硬件标识信息用于唯一识别所述终端;
基于所述终端的图像显示特性和所述硬件标识信息生成指纹图像;
根据所述指纹图像的像素生成终端指纹。
2.如权利要求1所述的终端指纹生成方法,其特征在于,所述硬件标识信息包括所述终端的国际移动终端标识码或媒体访问控制地址中的至少一个。
3.如权利要求1所述的终端指纹生成方法,其特征在于,所述根据所述指纹图像生成终端指纹之后还包括:
对所述终端进行监测,当确定所述终端满足预设条件时,重新为所述终端生成终端指纹。
4.如权利要求3所述的终端指纹生成方法,其特征在于,所述预设条件包括以下两种中的至少一种:
监测到所述终端与图像显示特性相关的软件和/或与图像显示特性相关的硬件发生更新;
监测到用户向所述终端输入了终端指纹更新请求。
5.如权利要求1-4任一项所述的终端指纹生成方法,其特征在于,所述根据所述指纹图像的像素生成终端指纹包括:
提取所述指纹图像中各像素的像素值;
将各所述像素及其像素值排列拼接形成图像像素数据;
对所述图像像素数据进行哈希转换生成终端指纹。
6.如权利要求1-4任一项所述的终端指纹生成方法,其特征在于,所述控制所述终端基于所述硬件标识信息生成指纹图像之前还包括:
获取用户输入的指纹生成参数;
所述基于所述终端的图像显示特性和所述硬件标识信息生成指纹图像包括:
基于所述硬件标识信息和所述指纹生成参数生成图像生成参数;
将所述图像生成参数作为帆布指纹生成函数的输入生成指纹图像,所述图像显示特性确定所述指纹图像在像素层面上的显示效果。
7.如权利要求6所述的终端指纹生成方法,其特征在于,所述基于所述硬件标识信息和所述指纹生成参数生成图像生成参数包括:
根据所述硬件标识信息和所述指纹生成参数生成校验码;
根据所述硬件标识信息和所述指纹生成参数以及所述校验码生成图像生成参数。
8.一种终端指纹生成装置,其特征在于,包括:
信息获取模块,用于获取终端的硬件标识信息,所述硬件标识信息用于唯一识别所述终端;
图像生成模块,用于基于所述终端的图像显示特性和所述硬件标识信息生成指纹图像;
指纹生成模块,用于根据所述指纹图像的像素生成终端指纹。
9.如权利要求8所述的终端指纹生成装置,其特征在于,所述指纹生成模块用于提取所述指纹图像中各像素的像素值,并将各所述像素及其像素值排列拼接形成图像像素数据,以及用于对所述图像像素数据进行哈希转换生成终端指纹。
10.如权利要求8或9所述的终端指纹生成装置,其特征在于,所述信息获取模块还用于获取用户输入的指纹生成参数;
所述图像生成模块用于基于所述硬件标识信息和所述指纹生成参数生成图像生成参数;并将所述图像生成参数作为帆布指纹生成函数的输入生成指纹图像,所述图像显示特性确定所述指纹图像在像素层面上的显示效果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610606463.1A CN107665299A (zh) | 2016-07-28 | 2016-07-28 | 一种终端指纹生成方法及装置 |
PCT/CN2017/094981 WO2018019298A1 (zh) | 2016-07-28 | 2017-07-28 | 一种终端指纹生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610606463.1A CN107665299A (zh) | 2016-07-28 | 2016-07-28 | 一种终端指纹生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107665299A true CN107665299A (zh) | 2018-02-06 |
Family
ID=61015808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610606463.1A Pending CN107665299A (zh) | 2016-07-28 | 2016-07-28 | 一种终端指纹生成方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107665299A (zh) |
WO (1) | WO2018019298A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108449627A (zh) * | 2018-03-16 | 2018-08-24 | 北京视觉世界科技有限公司 | 视频处理、视频来源的识别方法、装置、设备和介质 |
CN109657447A (zh) * | 2018-11-28 | 2019-04-19 | 腾讯科技(深圳)有限公司 | 一种设备指纹生成方法及装置 |
CN110851883A (zh) * | 2019-10-29 | 2020-02-28 | 武汉极意网络科技有限公司 | 基于图片绘制的设备指纹生成方法及装置 |
CN111246382A (zh) * | 2020-03-26 | 2020-06-05 | 嘉兴嘉赛信息技术有限公司 | 一种通过硬件指纹检测智能手机是否为受控设备的方法 |
CN111666596A (zh) * | 2020-07-10 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、设备及介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11816193B2 (en) * | 2020-04-20 | 2023-11-14 | Cisco Technology, Inc. | Secure automated issue detection |
CN111770080A (zh) * | 2020-06-28 | 2020-10-13 | 深圳前海微众银行股份有限公司 | 一种设备指纹的恢复方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102891751B (zh) * | 2011-07-21 | 2016-06-22 | 中国移动通信集团公司 | 从指纹图像生成业务密码的方法和设备 |
CN104660605B (zh) * | 2015-03-05 | 2018-03-23 | 北京安普诺信息技术有限公司 | 一种多因子身份验证方法及其系统 |
CN105653911A (zh) * | 2016-01-06 | 2016-06-08 | 上海斐讯数据通信技术有限公司 | 基于二维码的解锁方法及解锁系统 |
-
2016
- 2016-07-28 CN CN201610606463.1A patent/CN107665299A/zh active Pending
-
2017
- 2017-07-28 WO PCT/CN2017/094981 patent/WO2018019298A1/zh active Application Filing
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108449627A (zh) * | 2018-03-16 | 2018-08-24 | 北京视觉世界科技有限公司 | 视频处理、视频来源的识别方法、装置、设备和介质 |
CN108449627B (zh) * | 2018-03-16 | 2021-08-10 | 北京视觉世界科技有限公司 | 视频处理、视频来源的识别方法、装置、设备和介质 |
CN109657447A (zh) * | 2018-11-28 | 2019-04-19 | 腾讯科技(深圳)有限公司 | 一种设备指纹生成方法及装置 |
CN109657447B (zh) * | 2018-11-28 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 一种设备指纹生成方法及装置 |
CN110851883A (zh) * | 2019-10-29 | 2020-02-28 | 武汉极意网络科技有限公司 | 基于图片绘制的设备指纹生成方法及装置 |
CN111246382A (zh) * | 2020-03-26 | 2020-06-05 | 嘉兴嘉赛信息技术有限公司 | 一种通过硬件指纹检测智能手机是否为受控设备的方法 |
CN111246382B (zh) * | 2020-03-26 | 2021-02-09 | 嘉兴嘉赛信息技术有限公司 | 一种通过硬件指纹检测智能手机是否为受控设备的方法 |
CN111666596A (zh) * | 2020-07-10 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018019298A1 (zh) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665299A (zh) | 一种终端指纹生成方法及装置 | |
US20230021161A1 (en) | Virtual image generation method and apparatus, electronic device and storage medium | |
CN108229343A (zh) | 目标对象关键点检测方法、深度学习神经网络及装置 | |
CN108062780A (zh) | 图像压缩方法和装置 | |
CN107633218A (zh) | 用于生成图像的方法和装置 | |
CN111275784B (zh) | 生成图像的方法和装置 | |
CN107679466A (zh) | 信息输出方法和装置 | |
CN109522902A (zh) | 空-时特征表示的提取 | |
CN108257033A (zh) | 一种保单分析方法、装置、终端设备及存储介质 | |
CN107301091A (zh) | 资源分配方法和装置 | |
CN111327607A (zh) | 一种基于大数据的安全威胁情报管理方法、系统、存储介质及终端 | |
CN112465819A (zh) | 图像异常区域检测方法、装置、电子设备及存储介质 | |
CN111813399A (zh) | 基于机器学习的审核规则处理方法、装置及计算机设备 | |
CN106954094A (zh) | 弹幕信息的处理方法、装置及服务终端 | |
JP7282474B2 (ja) | 暗号化マスク確定方法、暗号化マスク確定装置、電子機器、記憶媒体およびコンピュータプログラム | |
CN113221767B (zh) | 训练活体人脸识别模型、识别活体人脸的方法及相关装置 | |
CN110162957B (zh) | 智能设备的鉴权方法和装置、存储介质、电子装置 | |
CN114154392A (zh) | 基于区块链和联邦学习的模型共建方法、装置及设备 | |
CN107402878A (zh) | 测试方法和装置 | |
CN116798129A (zh) | 一种活体检测方法、装置、存储介质及电子设备 | |
CN116129534A (zh) | 一种图像活体检测方法、装置、存储介质及电子设备 | |
CN110851883B (zh) | 基于图片绘制的设备指纹生成方法及装置 | |
CN114004206A (zh) | 一种表单生成方法、装置、计算机设备和存储介质 | |
CN113887408A (zh) | 活化人脸视频的检测方法、装置、设备及存储介质 | |
CN106340108A (zh) | 一种基于用户终端的彩票选号方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180206 |