一种基于图像签名的应用程序授权方法与流程

文档序号:17775458发布日期:2019-05-28 20:02阅读:173来源:国知局
一种基于图像签名的应用程序授权方法与流程

本发明涉及一种基于图像签名的应用程序授权方法,属于信息安全领域。



背景技术:

游戏软件是一种特殊的产品,为了防止软件的非法复制盗版,保护游戏开发商的利益,一般要对游戏客户端做授权认证。业界的认证方法中最常用的是序列号,即用户购买游戏软件的序列号字符串作为注册凭证,并把序列号输入游戏客户端注册页面。游戏内的验证模块会根据用户输入的序列号凭证a与从用户计算机硬件信息生成的验证凭证b做对比。当匹对结果为相同则注册通过,并运行注册成功后面的程序分支,比如解除各种软件限制;否则提示验证失败信息。传统序列号认证涉及两个凭证,一个在用户侧,一个在计算机侧。其中计算机侧的凭证一般由软件程序根据计算机硬件(如主板,网卡,硬盘)等参数而生成。这个过程在计算机内存中运行,很容易被工具破解。譬如通过反汇编和调试器跟踪来得到软件的注册码验证部分的汇编代码,然后通过逆向工程找出凭证b的生成程序,即根据用户计算机硬件信息生成的验证凭证b的代码。当获得该凭证的生成程序,用户可以在不购买序列号的情况下,利用截获的生成程序根据计算机硬件参数伪造出注册码,进而通过软件的认证,导致整个授权机制失效。另外有部分破解工具,可以在软件从用户计算机硬件信息计算出验证凭证b,并将与用户输入的注册凭证a做匹对的时候,直接从内存中截获凭证b的信息。由于凭证b跟计算机硬件信息相关且相对固定,截获该凭证意味着获得真实的注册码。另一方面,序列号认证还会有"一号多用"的情况,即购买一个序列号多次认证,甚至是把序列号公布到网上,让所有人都可以使用。

还有的授权认证通过向服务器端发送验证请求用于授权验证,由于验证在服务器端而不在本地计算机软件内,验证逻辑较传统方法在安全性上有所提升,但认证过程需要服务器的参与,负载较大;而且当用户当前的计算机不联网就无法认证。

因为传统的图像签名注重的是图像视觉特征,只要输入的图像内容相同,生成的图像签名就相同或相似,使得破解者容易仿造出具有相同签名的图像。



技术实现要素:

为解决上述问题,本发明的目的在于提供一种基于图像签名的应用程序授权方法,使用图像签名技术,基于图像内容提取出图像特征,再结合账号id,加密生成数字签名,即使破解者能够仿造出图像内容相同的图像,也无法通过验证;并且数字签名中的账号id防止了多个账号id共享授权的情况。

本发明解决其问题所采用的技术方案是:

一种基于图像签名的应用程序授权方法,包括授权请求过程和授权认证过程,其中,所述授权请求过程包括:

请求设备向授权服务器发送授权请求,所述授权请求包括登入应用程序的待授权账号id;

授权服务器接收授权请求后生成作为账号授权许可凭证的第一签名图像发送至请求设备,所述第一签名图像的数字签名包括经过加密的图像特征及待授权账号id;

所述授权认证过程在运行所述应用程序的设备上可离线或联网完成,包括:

应用程序接收登入认证请求,所述登入认证请求包括待认证账号id及其对应密码,以及待检测图像;

应用程序根据登入认证请求生成待认证签名,所述待认证签名包括待检测图像的图像特征及待认证账号id;

应用程序尝试解密出待检测图像的数字签名,若待检测图像包括数字签名,则将其与待认证签名比对;若匹配相似度大于预设值则许可授权,否则禁止授权;若待检测图像不包括数字签名,则禁止授权;其中解密密钥内置于应用程序中,且与授权服务器使用的加密密钥对应。

进一步,运行所述应用程序的设备与请求设备可统一或分离。

进一步,所述第一签名图像的生成过程包括:

新创建一图像文件或使用一现有的图像文件;

使用图像签名算法生成基于图像内容的图像特征;

使用非对称加密算法的私钥对图像特征和待授权账号id进行加密压缩,得到加密签名;

将加密签名写入图像文件的元信息存储区,得到第一签名图像。

进一步,所述新创建一图像文件或使用一现有的图像文件的步骤中图像文件的图像内容包括随机生成的序列号字符串。

进一步,所述使用图像签名算法生成基于图像内容的图像特征,包括:采用二维离散小波变换处理图像,把得到的小波低频系数作为图像特征。

进一步,采用二维离散小波变换处理图像之前还包括对图像的预处理,具体包括:

对序列号图像进行分割得到预设大小的互不重叠的序列号图像块;

将分割后的序列号图像块做轴对称变换,变换关系如下式所示:

p′(i,j)=p(i,j)-2x-1

式中,p(i,j)为图像块中空间位置(i,j)处的像素灰度值,p′(i,j)为图像块中空间位置(i,j)处变换后的像素灰度值,x为单点单色域的像素灰度值所占比特位数;

将序列号图像从rgb色域转换为ycbcr色域,转换关系如下式所示:

式中,y表示明亮度,也就是灰阶值,cr和cb分别表示色调与饱和度;cb反映的是rgb输入信号蓝色部分与rgb信号亮度值之间的差异;cr反映的是rgb输入信号红色部分与rgb信号亮度值之间的差异;

进一步,所述将得到的小波低频系数作为图像特征之前还包括对小波低频系数进行特征编码,具体包括:

将所有小波低频系数值转换为8位无符号二进制码;

截取每个8位无符号二进制码的比特位高位的前两位,生成二进制码序列,将该二进制码序列作为图像特征。

进一步,所述非对称加密算法采用rsa算法,加密密钥为存储于授权服务器的私钥,解密密钥为内置于应用程序中的公钥。

进一步,所述待认证签名中的图像特征采用二维离散小波变换对待检测图像的图像内容进行提取获得。

进一步,将待认证签名与从待检测图像解密出的数字签名进行比对,包括:

对比两者的签名构成,若签名构成相同则进一步对比每个构成部分,否则禁止授权。

进一步,其中对比每个构成部分包括:

首先对账号id进行精确匹配,若完全一致则进一步比对图像特征进行相似匹配,否则禁止授权;具体,图像特征通过如下公式进行相似匹配:

式中,flagi为第i位比特位的判断结果,flagi=1表示该比特位比对一致,flagi=0则表示该比特位比对不一致;refsi和recsi分别为待认证签名中的图像特征的第i位比特位与待检测图像解密出的数字签名中的图像特征的第i位比特位;

计算匹配相似度,具体如下:

式中,num()为频次统计函数,ratematch为匹配相似度;若匹配相似度大于预设值,则许可授权,否则禁止授权。

本发明的有益效果是:本发明采用的一种基于图像签名的应用程序授权方法,通过将授权认证的两个凭证统一到同一载体上,避免了两个凭证分离而被破解的情况,并且由于增加了加密签名,使得该序列号图像难以被仿造;加密签名包含了账号id,可以防止多账号id共享授权。

附图说明

图1是本发明实施例的方法的总流程框图;

图2是本发明实施例的对图像进行预处理的流程框图;

图3是本发明实施例的二维离散小波变换提取图像特征的流程框图;

图4是本发明实施例的二维离散小波变换计算小波系数的流程树图;

图5是本发明实施例的一阶小波变换后的子带示意图;

图6是本发明实施例的二阶小波变换后的子带示意图;

图7是本发明实施例的方法步骤s23中比对签名的流程框图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的基于图像签名的应用程序授权方法,适用于软件的正版授权认证。

参照图1,本发明的一种基于图像签名的应用程序授权方法,包括步骤s1、授权请求过程和步骤s2、授权认证过程,其中,授权请求过程包括:

s11、请求设备向授权服务器发送授权请求,授权请求包括登入应用程序的待授权账号id;

s12、授权服务器接收授权请求后生成作为账号授权许可凭证的第一签名图像发送至请求设备,第一签名图像的数字签名包括经过加密的图像特征及待授权账号id;

授权认证过程在运行应用程序的设备上可离线或联网完成,包括:

s21、应用程序接收登入认证请求,登入认证请求包括待认证账号id及其对应密码,以及待检测图像;

s22、应用程序根据登入认证请求生成待认证签名,待认证签名包括待检测图像的图像特征及待认证账号id;

s23、应用程序尝试解密出待检测图像的数字签名,若待检测图像包括数字签名,则将其与待认证签名比对;若匹配相似度大于预设值则许可授权,否则禁止授权;若待检测图像不包括数字签名,则禁止授权;其中解密密钥内置于应用程序中,且与授权服务器使用的加密密钥对应。

进一步,运行应用程序的设备与请求设备可统一或分离。用户请求授权时可通过手机或计算机等设备向授权方购买授权许可凭证的图像,该请求设备可以是运行应用程序的设备,也可以不是;用户向授权方购买授权许可凭证的图像时,需要提供待授权的账号id。

进一步,授权服务器生成第一签名图像的过程包括:

新创建一图像文件或使用一现有的图像文件;

使用图像签名算法生成基于图像内容的图像特征;

使用非对称加密算法的私钥对图像特征和待授权账号id进行加密压缩,得到加密签名;

将加密签名写入图像文件的元信息存储区,得到第一签名图像。

进一步,新创建一图像文件或使用一现有的图像文件的步骤中图像文件的图像内容包括随机生成的序列号字符串。这里为了迎合用户习惯,使用序列号字符串作为图像内容,其中构建序列号的方式和序列号构成规则都可根据需要进行变更,一种实施例中具体利用数学中的伪随机函数生成带有字母和数字的16位字符串,作为序列号。伪随机函数采用梅森旋转算法,该算法基于有限二进制字段上的矩阵线性递归函数,可在[0,2^k-1]的范围内生成离散型均匀分布的随机数(此处k=16)。生成的序列号字符串采用覆盖的方式嵌入图像背景中。

进一步,使用图像签名算法生成基于图像内容的图像特征,包括:采用二维离散小波变换处理图像,把得到的小波低频系数作为图像特征。

进一步,参照图2,采用二维离散小波变换处理图像之前还包括对图像的预处理,具体包括:

对图像进行分割得到预设大小的互不重叠的图像块;若每个图像块大小为m×m,图像的大小为n×n,则得到n2/m2个图像块,用pi表示第i个图像块。

将分割后的图像块做轴对称变换,变换关系如下式所示:

p′(i,j)=p(i,j)-2x-1

式中,p(i,j)为图像块中空间位置(i,j)处的像素灰度值,p′(i,j)为图像块中空间位置(i,j)处变换后的像素灰度值,x为单点单色域的像素灰度值所占比特位数;

将图像从rgb色域转换为ycbcr色域,转换关系如下式所示:

式中,y表示明亮度,也就是灰阶值,cr和cb分别表示色调与饱和度;cb反映的是rgb输入信号蓝色部分与rgb信号亮度值之间的差异;cr反映的是rgb输入信号红色部分与rgb信号亮度值之间的差异;这里将rgb色域转换为ycbcr色域,可以降低各颜色分量间的相关性,提高编码效率,这里采用的转换公式是可逆的,从而实现图像信息无损保真。

参照图3,二维离散小波变换处理过程包括:

构建尺度函数和与之对应的小波函数,并根据尺度函数构建低通滤波器,根据小波函数构建高通滤波器;

多分辨分析提出了尺度函数的四个基本要求,通过满足这些要求的尺度函数能够定义出与之相对的小波函数,常见的小波函数包括haar、meyer、morlet和duabechies等。

通过高通滤波器和低通滤波器实现对图像的子带编码;

具体的,如图4所示,图中x[]表示输入信号,g[]表示低通滤波器,h[]表示高通滤波器,m表示行,n表示列,↓q表示每q点采样抽取一点采样值的降采样,

1)对图像在水平方向分别分离出高、低频信号,分别如下式:

以及

2)对水平方向的高、低频信号分别进行垂直方向上的信号分解,得到四个信号子带,包括低频子带、垂直方向的高频子带、水平方向的高频子带和斜对角方向的高频子带,如图5所示,ll子带包含图像的低频信息,对应图像中色彩变化平缓部分;lh、hl、hh分别为垂直方向、水平方向、对角线方向的高频信息,对应图像中色彩变化剧烈部分,如物体轮廓处。各子带的信息表示依次如下式:

3)对低频子带重复1)-2)的信号分离操作,进一步分解出图像低频与高频信息,如图6所示,对图5所示的低频信息ll进行二阶小波变换后,进一步分解为ll2、lh2、hl2和hh2。

使用mallat算法实现二维离散小波变换,得到小波系数谱;

这里采用5/3提升式离散小波变换,其低通滤波器与高通滤波器分别为5抽头与3抽头,即生成一个小波系数涉及5个或3个上一层小波系数信息;具体的变换公式如下:

x′2i-1=si

x′2i=di

式中xi为输入信号,x′i为小波变换后的输出信号,为奇部分,为偶部分,τ为预测算子,ν为更新算子;经过小波变换后,可以获得一系列的小波系数,使用这些小波系数能有效表征图像,即图像与特征一一对应,图像的变化会带来特征的变化。

进一步,考虑到图像传输的过程中一般会经过压缩,为了换取高压缩比,一般的压缩方法会导致图像分辨率降低。为了让生成的图像特征具有一定的鲁棒性,特别是在分辨率降低情况下依然可以生成一致的图像特征,将得到的小波低频系数作为图像特征之前还包括对小波低频系数进行特征编码,具体包括:

将所有小波低频系数值转换为8位无符号二进制码;

截取每个8位无符号二进制码的比特位高位的前两位,生成二进制码序列,将该二进制码序列作为图像特征。

这里,因为得到的小波系数比特位高位区域在分辨率降低情况下具有很强的稳定性,甚至具备一定的抗形变能力,在图像的拉升和缩小变换中,该区域的变化很小,一种实施例中,假如一个小波系数值为74,用8位无符号比特位表示为01001010,截取高两位比特位01;采用zigzag扫描方式,依次扫描ll、lh、hl、hh子带,截取出所有小波系数对应的高两位比特位值,生成一个二进制序列,将其作为图像特征。

进一步,非对称加密算法采用rsa算法,加密密钥为存储于授权服务器的私钥,解密密钥为内置于应用程序中的公钥。加密签名可以根据需要选择加密算法,一种实施例中,选用比较可靠的rsa非对称加密算法,利用私钥进行加密,利用与私钥成对的公钥进行解密,私钥存储在授权服务器且不公开,因此破解者无法仿造出有效的第一签名图像。

进一步,待认证签名中的图像特征采用二维离散小波变换对待检测图像的图像内容进行提取获得。这里在应用程序侧提取待检测图像的图像特征时,所使用的图像提取方法与授权服务器生成第一签名图像时应用的图像提取方法相同,都是采用的二维离散小波变换的方法,不再赘述。

参照图7,进一步,将待认证签名与从待检测图像解密出的数字签名进行比对,包括:

对比两者的签名构成,若签名构成相同则进一步对比每个构成部分,否则禁止授权。

进一步,其中对比每个构成部分包括:

首先对账号id进行精确匹配,若完全一致则进一步比对图像特征进行相似匹配,否则禁止授权;具体,图像特征通过如下公式进行相似匹配:

式中,flagi为第i位比特位的判断结果,flagi=1表示该比特位比对一致,flagi=0则表示该比特位比对不一致;refsi和recsi分别为待认证签名中的图像特征的第i位比特位与待检测图像解密出的数字签名中的图像特征的第i位比特位;

计算匹配相似度,具体如下:

式中,num()为频次统计函数,ratematch为匹配相似度;若匹配相似度大于预设值,则许可授权,否则禁止授权。这里是为了保证图像验证具有一定的鲁棒性,因此对图像特征的匹配采用相似匹配。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1