提供应用服务的方法、 无线应用协议网关及系统 技术领域
本发明涉及通信技术领域, 特别涉及一种提供服务应用的方法、 无线应用协议网关及系统。 背景技术
随着无线通信技术的发展, 无线终端如手机, 所实现的功能也越来越强大。 手机应用是运行于手机上 的应用软件, 这些应用软件通过手机底层扩展出来的 API (Appl ication Programming Interface, 应用程 序编程接口), 实现手机上的各种功能。 通常, 这种手机应用存在两种方式: 离线应用和在线应用。 离线应 用在应用启动后, 不再需要网络支撑, 在手机端独立运行; 在线应用需要进行网络交互, 脱离网络环境无 法独立运行。
在现有的在线应用中, 用户手机通过无线网络与 WAPGW ( Wireless Appl ication Protocol Gateway, 无线应用协议网关)连接, 再由无线应用协议网关接入 Internet , 其中, 无线应用协议网关只能进行简单 的管理操作, 如: 目标服务屏蔽等, 而且, 一些在线应用可以通过切换接入点, 绕开无线应用协议网关, 直接访问 Interneto
现有技术中至少存在如下问题: 无线应用协议网关仅为无线终端的应用接入提供了网络通道, 应用服 务器在接入应用时安全性非常差。 目前应用服务器对用户手机的鉴权也只是使用简单的密码验证, 安全性 不强, 而且用户每次接入服务都要输入密码, 使用不方便, 用户体验差。
发明内容
本发明实施例提供一种接入应用的方法、 无线应用协议网关和系统, 能够在无线应用协议网关对手机 用户及应用进行鉴权认证, 减轻了应用服务器鉴权负担, 提供了较强的安全保证, 而且方便用户使用, 提 高用户体验。
本发明实施例提供一种提供应用服务的方法, 包括:
步骤 A .将用户指纹信息注册到无线应用协议网关, 具体包括:
A1 .在用户手机触摸屏上输入指纹, 根据所述用户指纹, 用户手机生成所述用户的第一指纹数据, 将 所述第一指纹数据通过加密通道发送给无线应用协议网关;
A2.无线应用协议网关通过加密通道从应用服务器获取所述用户的加密指纹模板以及该加密指纹模 板对应的加密密钥 KEY, 将所述加密指纹模板保存在无线应用协议网关本地, 所述加密密钥 KEY是由应用 服务器随机生成, 其长度为 128位; 所述加密指纹模板是由所述应用服务器利用所述加密密钥 KEY对用户 指纹模板加密后生成;
A3.无线应用协议网关根据所述第一指纹数据以及所述加密密钥, 生成安全鉴权数据, 将安全鉴权
数据存储在本地;
步骤 B. 在用户手机上输入所要获取的应用服务信息, 在用户手机触摸屏上输入指纹;
步骤 C. 用户手机采集所述用户指纹, 生成所述用户的第二指纹数据, 将所述第二指纹
数据携带在应用服务获取请求中通过加密通道发送给无线应用协议网关;
步骤 D. 无线应用协议网关接收来自所述用户手机的携带第二指纹数据的应用服务获取请求, 从所述 应用获取请求中提取所述第二指纹数据;
步骤 E.无线应用协议网关根据所述用户手机的信息, 获取存储在本地的所述安全鉴权数据; 步骤 F.无线应用协议网关根据所述第二指纹数据和所述安全鉴权数据, 获取所述加密密钥 KEY; 步骤 G. 所述无线应用协议网关得到的加密密钥 KEY, 对所述加密指纹模板进行解密, 得到所述用户的 指纹模板;
步骤 H.所述无线应用协议网关将获取到的所述第二指纹数据和步骤 G得到的所述用户指纹模板进行比 对, 当比对结果为两者匹配时, 确定所述用户身份鉴权通过, 将所述应用服务获取请求发送给所述应用服 务器;
步骤 I. 所述应用服务器接收用户手机的应用服务请求, 根据所述应用服务请求, 将所请求的应用服 务发送给所述无线应用协议网关;
步骤 J. 所述无线应用协议网关将所述应用服务提供给所述用户手机。
本发明实施例还提供一种无线应用协议网关, 包括:
接收模块, 用于接收用户手机生成第一指纹数据
存储模块, 用于存储保存通过加密通道从应用服务器获取所述用户的加密指纹模板以及该加密指纹模 板对应的加密密钥 KEY, 所述加密密钥 KEY是由应用服务器随机生成, 其长度为 128位; 所述加密指纹模 板是由所述应用服务器利用所述加密密钥 KEY对用户指纹模板加密后生成;
安全鉴权数据模块, 用于根据所述第一指纹数据以及所述加密密钥, 生成安全鉴权数据 VL; 其中安全 鉴权数据模块将所述加密密钥 KEY分成互不重叠的 8段,每段 16位,分别为 s。, Sl,…, s7,令 a。=s。, =Sl,…, ¾=s7, 将 a。、 ai、 ¾、 a3、 ¾、 a5、 ¾、 ¾联成一个 128位的数串 KEYC, 使得 KEYC=a。a "¾, 计算数串 KEYC 的循环冗余校验码 CRC-16的值 C,C是一个 16位校验值, 令 a8=C mod (p), 其中 p为素数 65537; 在获取到 所述用户第一指纹数据中细节点平面坐标的集合 F= { ( , y。), ( , yi) , …, (x»-u y«) }后, 其中, ( ¾, y,) 分别为细节点所在位置的平面坐标, i=0, l, , N-l ; 且 N为所述细节点的总数; 将每个细节点平面坐标分 别映射到 [0, 255]中, 将映射后的平面坐标串联在一起构成数据 ι¾, 得到集合M= {m。, m„ …, m«} ; 将每 个¾作为 16位的随机数产生器的种子, i=0, '", N- 1 ; 顺序产生 8个随机数 r„,ri2,'", ri8, 得到向量 i, 进而 i (!¾) = [ 。 u„… 8] = [ι¾ r„— ri8] ; 最后将每个 i 代入所述加密函数 f (u), 计算相应的加密函数值
f(Ul), 得到由所述 M和其中元素对应的加密函数值构成的所述用户加密指纹数据的集合 G, 使得 G=((m。, f ( ))), (nu, f ( (!¾))),…, (m»— nh— ))),其中 f(u)是 9个变量的加密函数, f(u) = aTumod(p)
+... a7u7+a mod(p), 其中, a= [a。 … a8]T, u=[u。 "'u8], mod表示求模运算; 然后 生成干扰集合 C= ((c。, (Cl, (!),…, (c„, d„)), 其中 M为集合 C的元素个数, 和4都是随机数, 和!¾的距离大于预设的阈值, j=0, …, M-1; 且 4≠ΐ( ); 最后将所述集合 G和所述集合 C中的元素随 机混合, 生成安全鉴权数据 VL, 使得 VL={ (v。, w„), (Vl, ···, (v,,-!, w™-!) },其中 (Vi, 表示 所述集合 G和所述集合 C中的元素, j=0, …, M-1; 将所述安全鉴权数据存储在存储模块并将所述加密密 钥销毁;
确认模块, 用于在收到用户手机根据用户应用服务信息发送的应用服务获取请求和第二指纹数据, 根 据所述应用服务获取请求, 获取存储在存储模块的安全鉴权数据, 并根据所述第二指纹数据和所述安全鉴 权数据, 计算所述加密密钥 KEY, 计算步骤具体包括:
F1.从所述第二指纹数据中提取出细节点集合 Q,其中 Q={( 。, y y , …, y。》'-u) }, N'是 Q中细节点的总数, N'不等于所述第一指纹数据细节点的总数 N, 将所述第二指纹数据细节点的平面坐 标 x^B y jfc射到 [0, 255]中,其中 k=0,l,2 , N*-l;
F2.从所述安全鉴权数据 VL中取出 v。, Vl, …, vM-„ 将 ν。, ν,, …, ¥„„分别分拆成两个 8位的 数作为平面坐标, 可以得到一个集合 R {(X。, y (xrl, , , Yv ;
F3.如果集合 Q中某个细节点 A和集合 Re中某个细节点 B的距离小于一个预设阈值, 则确定 A和 B 是一对匹配点, 把 B对应的 (v,w) 添加到匹配点集合 Rs中; 得到 9个点的集合 Rs={(v。, wo) , {v„ w,) , …,
(ν8, ;
F4. 利用集合 Rs的元素恢复加密密钥 KEY:
对每个 VieRs, 使用与所述随机数发生器相同的 16位随机数发生器, 以 Vi为种子, 顺序产生 8个随机 ri2, ―, ri8;
根据向量 = [u10 u„ ... u18] = [v, r„ ... ri8]以及 对应的加密函数值 生成的线性方程组:
8) mod (p)
= (ad。 。+a … +a +a )mod(p) = (a +a ··· +a mod(p)
求解出 a , 使得 ad T=U— 1 w mod(p)
其中 u= = [wo Wi… w8]T,ad = [ad。 adi… ad8] T,
将 。, adl, ···, ad7串联成数串 KEY, 得到加密密钥 KEY;
解密模块, 用于根据加密密钥 KEY, 对所述加密指纹模板进行解密, 得到所述用户的解密指纹模板; 将获取到的所述第二指纹数据和用户的解密指纹模板进行比对, 当比对结果为两者匹配时, 确定所述用户 身份鉴权通过, 将所述应用服务获取请求发送给所述应用服务器;
发送模块, 用于在应用服务器接收用户手机的应用服务请求后, 将应用服务器根据所述应用服务请求 发送的应用服务提供给所述用户手机。
本发明实施例还提供一种网络系统, 包括: 用户手机、 网关和应用服务器; 其中, 用户手机用于向网 关发送用户的第一指纹数据;
网关包括: 接收模块、 存储模块、 确认模块、 解密模块和发送模块; 其中,
接收模块, 用于接收用户手机生成第一指纹数据;
存储模块, 用于存储保存通过加密通道从应用服务器获取所述用户的加密指纹模板以及该加密指纹模 板对应的加密密钥 KEY, 所述加密密钥 KEY是由应用服务器随机生成, 其长度为 128位; 所述加密指纹模 板是由所述应用服务器利用所述加密密钥 KEY对用户指纹模板加密后生成;
安全鉴权数据模块, 用于根据所述第一指纹数据以及所述加密密钥, 生成安全鉴权数据 VL; 其中安全 鉴权数据模块将所述加密密钥 KEY分成互不重叠的 8段,每段 16位,分别为 s。, Sl,…, s7,令 a。=s。, =Sl,…, ¾=s7, 将 a。、 ai, ¾、 、 ¾、 a5、 a6、 ¾联成一个 128位的数串 KEYC, 使得 KEYC=a。a " , 计算数串 KEYC 的循环冗余校验码 CRC-16的值 C,C是一个 16位校验值, 令 a8=C mod(p), 其中 p为素数 65537; 在获取到 所述用户第一指纹数据中细节点平面坐标的集合 F={( , y。), ( , yi) , …, (x»-u y«)}后, 其中, (¾, y,) 分别为细节点所在位置的平面坐标, i=0,l, , N-1; 且 N为所述细节点的总数; 将每个细节点平面坐标分 别映射到 [0, 255]中, 将映射后的平面坐标串联在一起构成数据 ι¾, 得到集合M={m。, m„ …, mj; 将每 个 ¾作为 16位的随机数产生器的种子, i=0,'", N- 1; 顺序产生 8个随机数 , ,···, r18, 得到向量 i, 进而 = [ t。u„… ui8] = [ i¾ r„ — n8]; 最后将每个 i 代入所述加密函数 f(u), 计算相应的加密函数 值 f (ιϋ,得到由所述 M和其中元素对应的加密函数值构成的所述用户加密指纹数据的集合 G,使得 G=((m。, f ( ))), (m„ f (Ul(mi) )), ···,(m»— n fdiN— nh— ))),其中 f(u)是 9个变量的加密函数, f (u) = aTumod(p) = (aoU„+aiUi +... a7u7+a8U8) mod(p), 其中, a= [a。 ai … a8]T, u=[u。 Ui"'u8], mod表示求模运算; 然后 生成干扰集合 C= ((c。, d。),(Cl, (!),…, (c„, d„)), 其中 M为集合 C的元素个数, ^和 4都是随机数, 和!¾的距离大于预设的阈值, j=0, …, M-1; 且 4≠ΐ( ); 最后将所述集合 G和所述集合 C中的元素随
机混合, 生成安全鉴权数据 VL, 使得 VL={ (v。, w„), (Vl, ···, (v,,-!, w™-!) },其中 (Vi, Wj) 表示 所述集合 G和所述集合 C中的元素, j=0, …, M-1; 将所述安全鉴权数据存储在存储模块并将所述加密密 钥销毁;
确认模块: 用于在收到用户手机根据用户应用服务信息发送的应用服务获取请求和第二指纹数据, 根 据所述应用服务获取请求, 获取存储在存储模块的安全鉴权数据, 并根据所述第二指纹数据和所述安全鉴 权数据, 计算所述加密密钥 KEY, 计算步骤具体包括:
F1.从所述第二指纹数据中提取出细节点集合 Q, 其中 Q={( 。, y。。),0¾, yj, …, ya(»*-i) ) } , Ν'是 Q中细节点的总数, N'不等于所述第一指纹数据细节点的总数 N, 将所述第二指纹数据细节点的平面坐 标 x^By jfc射到 [0, 255]中,其中 k=0,l,2 , N*-l;
F2.从所述安全鉴权数据 VL中取出 v。, Vl, …, vM-u 将 v。, Vl, …, ¾„分别分拆成两个 8位的数作 为平面坐标, 可以得到一个集合 ¾;={(Χ。, yrt),(Xri, yri), …, (x ,
F3.如果集合 Q中某个细节点 Α和集合 Re中某个细节点 B的距离小于一个预设阈值,则确定 A和 B是一 对匹配点,把 B对应的(v,w)添加到匹配点集合 Rs中;得到 9个点的集合 Rs={(v。,W), {v„ w,) , ···, (ν8, w8) };
F4. 利用集合 Rs的元素恢复加密密钥 KEY:
对每个 VieRs,使用与所述随机数发生器相同的 16位随机数发生器, 以 Vi为种子,顺序产生 8个随机数 r„, ? … ;
根据向量 = [u10 u„ ... u18] = [v, r„ ... ri8]以及 uri对应的加密函数值 Wi生成的线性方程组:
Wo = (adoUo, o+adiUo, i + … + 7u。 。 )mod(p)
Wi = (ad。Ui,。+adiUi, ι+ … + 7Ui + 8Ui )mod(p) w8 = (adoU8, o +adiUdi+ … +ad7u +ad8u8, 8) mod (p)
求解出 T, 使得 =ΐΓ w mod(p) 其中 U L L L 将 ad。, adl, ···, ad7串联成数串 KEY, 得到加密密钥 KEY; 解密模块: 用于根据加密密钥 KEY, 对所述加 密指纹模板进行解密, 得到所述用户的解密指纹模板; 将获取到的所述第二指纹数据和用户的解密指纹模 板进行比对, 当比对结果为两者匹配时, 确定所述用户身份鉴权通过, 将所述应用服务获取请求发送给所 述应用服务器; 发送模块, 用于在应用服务器接收用户手机的应用服务请求后, 将应用服务器根据所述应 用服务请求发送的应用服务提供给所述用户手机。
本发明实施例的提供应用服务的方法, 无线应用协议网关及系统, 根据所接收的用户手机的应用服务请求, 对所述用户进行鉴权, 当所述用户鉴权通过时, 将所述应用服务请求向应用服务器发送, 以便所述应用服 务器根据所述应用服务请求向所述用户手机提供应用服务, 通过由无线应用协议网关对用户手机进行鉴权 操作, 应用服务器不需要再对该用户手机进行鉴权, 从而可以减少应用服务器的工作负担; 另外, 用户将 第一指纹数据注册到无线应用协议网关, 无线应用协议网关获取所述用户的加密指纹模板以及该加密指纹 模板对应的加密密钥 KEY, 无线应用协议网关利用第一指纹数据对加密密钥生成安全鉴权数据, 使加密密 钥被隐藏, 使得加密密钥的保护更加严密; 鉴权时, 利用用户的第二指纹数据对安全鉴权数据进行解密获 得加密密钥, 利用加密密钥对加密指纹模板进行解密得到指纹模板, 使得鉴权过程更加安全可靠。 而且, 只需用户在手机触摸屏上输入指纹, 提高用户体验。
附图说明
图 1为本发明实施例一提供的方法流程图;
图 2为本发明实施例三提供的无线应用协议网关结构示意图;
图 3为本发明实施例四提供的网络系统结构示意图。
具体实施方式
为使本发明技术方案的优点更加清楚, 下面结合附图和实施例对本发明作详细说明。
实施例一
本实施例提供一种提供应用服务的方法, 如图 1所示, 该方法包括:
步骤 101. 用户将用户指纹信息注册到无线应用协议网关, 具体包括:
用户在用户手机触摸屏上输入指纹;
用户手机采集所述用户指纹, 生成所述用户的第一指纹数据, 将所述第一指纹数据通过加密通道发送 给无线应用协议网关;
无线应用协议网关通过加密通道从应用服务器获取所述用户的加密指纹模板以及该加密指纹模板对 应的加密密钥 KEY, 将所述加密指纹模板保存在无线应用协议网关本地, 所述加密密钥 KEY是由应用服务 器随机生成, 其长度为 128位; 所述加密指纹模板是由所述应用服务器利用所述加密密钥 KEY对用户指纹 模板加密后生成;
无线应用协议网关根据所述第一指纹数据以及所述加密密钥, 生成安全鉴权数据, 具体包括: 无线应用协议网关生成 9个变量的加密函数:
f (u) = aTu mod (p) = ( u。+¾Ui +. . . ¾U7+¾u8) mod (p),
其中 a= [a。 ai … a8] T, u= [u。 Ui"'u8], mod表示求模运算;
将所述加密密钥 KEY分成互不重叠的 8段, 每段 16位, 分别为 s。, Sl, …, s7, 令 a。=s。, ai=Sl, …,
¾=s7, 将 a。- 联成一个 128位的数串 KEYC=a。a "¾, 计算数串 KEYC的循环冗余校验码 CR016值 C, C是 一个 16位校验值, 令 =C mod (p), 其中 p为最接近 216-1而大于 216-1的素数 65537;
获取所述用户的第一指纹数据中细节点平面坐标的集合 F={( , y。), ( , y , …, (χ y»->)}, 其 中 ,^(1=0, , N-l)分别为细节点所在位置的平面坐标, N为所述细节点的总数, 将每个细节点平面坐标 分别映射到 [0, 255]中,将映射后的平面坐标串联在一起 [ |yj构成 16位的数据 ι¾,得到集合 M= {m。, ,…, m ;
将每个 mi(i=0,…, N-1)作为 16位的随机数产生器的种子, 顺序产生 8个随机数 r„, ,···, ri8, 得到 向量 : (!¾) = 。 … ui8] = ;
将每个 i 代入所述加密函数 f (u), 计算相应的加密函数值 f , 得到由所述 M和其中元素对应的加 密函数值构成的所述用户加密指纹数据的集合 G: G=((n¾, f(u。(m。))), (m f(Ul(mi) )), ···, (m„, f (u (m ;
生成干扰集合 C= ((c。, d。),(Cl, d,),-, (c„, d„)), 其中 M为集合 C的元素个数, Ci和 di (i=0, ···, M-l) 都是随机数, Ci和 距离大于预设的阈值, 且 di≠ffc);
将所述集合 G和所述集合 C中的元素随机混合, 生成安全鉴权数据 VL={ (v。, wo), (Vl, w,), ···, (vM -u w,,-,) },其中 (Vi, w,) (i=0, ···, M-l) 表示所述集合 G和所述集合 C中的元素;
将安全鉴权数据存储在本地;
无线应用协议网关将所述加密密钥销毁, 以确保加密密钥不会泄漏。
步骤 103. 用户在用户手机输入所要获取的应用服务信息, 在用户手机触摸屏上输入指纹; 步骤 105.用户手机采集所述用户指纹, 生成用户的第二指纹数据, 将所述第二指纹数据携带在应用服 务获取请求中通过加密通道发送给无线应用协议网关;
步骤 107. 无线应用协议网关接收来自所述用户手机的携带第
指纹数据的应用服务获取请求, 从所述应用获取请求中提取所述第二指纹数据;
步骤 109.无线应用协议网关根据所述用户手机的信息 (比如手机号码等), 获取存储在本地的安全鉴 权数据;
步骤 111.无线应用协议网关根据所述第二指纹数据和所述安全鉴权数据, 获取所述加密密钥 KEY, 具 体包括:
从所述第二指纹数据中提取出细节点集合 Q={( 。, y。。),( , yal), …, (χ*%, ya» ) }, N'是 Q中细 节点的总数, N'不等于所述第一指纹数据细节点的总数 N, 将所述第二指纹数据细节点的平面坐标 和 y,(i=0, N'-l)映射到 [0, 255]中;
从所述安全鉴权数据 VL中取出 v。, Vl, …, ¾„, 将 v。, Vl, …, 分别分拆成两个 8位的数作为
平面坐标, 可以得到一个集合 。, 。),( , ), …, ( ;
用 Q中的元素去定位 中属于真实用户指纹信息的元素, 如果集合 Q中某个细节点 A和集合 ¾中某 个细节点 B的距离小于一个预设阈值, 则确定 A和 B是一对匹配点, 可以把 B对应的 (v,w)添加到匹配点 集合 中, 即:
for all 0^i< N* ((xai, yai) eQ) and j<V+M ( (Xlj, yvi) eR„)
if D ( (xai, yai) , (xvj, yvi) ) T then (vj, e RG
其中 T是一个阈值, D((xQi,yQi),(X j,yri)) 表示两个点之间的距离。
根据上述算法, 可以得到 9个点的集合 ¾={(v。, wo), {Vl,w), …, (v8,w8)}, Rs中的元素来自真实用 户指纹。 接着利用集合 的元素来恢复加密密钥 KEY。 对每个 VieRs, 使用与所述随机数发生器相同的 16 位随机数发生器, 以 Vi为种子, 顺序产生 8个随机数 r„, ri2, …, ri8。 这样对每个 VieRs, 就会得到一个 向量 以及其对应的加密函数值 wi:
=f (uvi) =ad T mod (p) = (ad。 。 + ... +ad7u mod (p)
得到一个方程组:
ad7 u。 。 mod (p)
, : a +a mod (p)
+a mod(p) 令 U L L L w8]T,ad = [ad。adl … ad8] 1,上述方程组可以简化为:
w = U ad T mod(p) (3)
由于作为种子的 v。, ···, v8并不相同, 所以随机矩阵 U每一行都是不相关的, 即行列式 |U|≠0, 这可 以保证 U可逆, 从而从 (3)中求解出 aT:
ad T=U— 1 w mod (p) (4)
因为(v。, w„), ···, (v8, w8)是 G中的元素, 所以就有 ad T=aT。
将 ¾。, adl, …, ad7串联成一个数串 KEY, KEY= KEY, 就恢复了加密密钥 KEY;
步骤 113.所述无线应用协议网关根据得到的加密密钥 KEY, 对所述加密指纹模板进行解密, 得到所述 用户的指纹模板;
步骤 115.所述无线应用协议网关将获取到的所述第二指纹数据和所述用户指纹模板进行比对, 当比对 结果为两者匹配时, 确定所述用户身份鉴权通过, 将所述应用服务获取请求发送给应用服务器;
步骤 117. 所述应用服务器根据所述应用服务请求, 将所请求的应用服务发送给所述无线应用协议网 关;
步骤 119. 所述无线应用协议网关将所述向应用服务提供给所述用户手机。
本发明实施例的提供应用服务的方法, 无线应用协议网关根据所接收的用户手机的应用服务请求, 对 所述用户进行鉴权, 当所述用户鉴权通过时, 将所述应用服务请求向应用服务器发送, 以便所述应用服务 器根据所述应用服务请求向所述用户手机提供应用服务, 通过由无线应用协议网关对用户手机进行鉴权操 作, 应用服务器不需要再对该用户手机进行鉴权, 从而可以减少应用服务器的工作负担; 另外, 用户将第 一指纹数据注册到无线应用协议网关, 无线应用协议网关获取所述用户的加密指纹模板以及该加密指纹模 板对应的加密密钥 KEY, 无线应用协议网关利用第一指纹数据对加密密钥生成安全鉴权数据, 使加密密钥 被隐藏, 使得加密密钥的保护更加严密; 鉴权时, 利用用户的第二指纹数据对安全鉴权数据进行解密获得 加密密钥, 利用加密密钥对加密指纹模板进行解密得到指纹模板, 使得鉴权过程更加安全可靠。 而且, 只 需用户在手机触摸屏上输入指纹, 提高用户体验。
实施例二
本实施例提供一种供应用服务的方法, 如图 2所示, 所述方法包括下列步骤:
S201、 应用服务器将应用发布在应用管理平台上。 其中, 应用管理平台将应用服务器发布的应用形 成应用列表, 以便用户进行査询和下载。 所述应用管理平台用于对应用进行管理操作, 包括应用的发布、 更新等, 并且对用户手机的信息进行管理, 包括用户手机的帐号、 帐户等信息。
S203、 无线应用协议网关接收用户手机通过软件平台发送的应用査询请求。
其中, 所述软件平台为用户手机的应用提供运行环境, 提供与操作系统之间的接口, 例如: XML (Extensible Markup Language,可扩展标记语言)解析、 JavaScript弓 I擎、 AJAX ( Asynchronous JavaScript and XML, 异步 JavaScript和 XML)调用引擎、 缓存处理、 图形库、 底层设备管理、 多媒体管理、 安全管理 等: 提供运营过程中必要的组件支撑, 对用户手机应用的运行环境进行管理: 对用户手机的应用进行管理, 负责远程加载、 删除、 更新应用。
S205、 无线应用协议网关向所述应用管理平台发送所述应用査询请求以获取应用列表。
进一步的, 当所述应用査询请求的消息格式不能被所述应用管理平台识别时, 无线应用协议网关首先 将所述应用査询请求转换为所述应用管理平台能够识别的格式. 然后向所述应用管理平台发送转换后的所 述应用査询请求以获取应用列表。
S207、 无线应用协议网关接收所述应用管理平台反馈的应用列表。
S209、 无线应用协议网关将所述应用管理平台反馈的应用列表通过软件平台发送给所述用户手机。
S211、 无线应用协议网关接收所述用户手机通过所述软件平台友送的应用下载请求。
S213、 无线应用协议网关将所述应用下载请求转发给所述应用管理平台, 以便所述应用管理平台将 应用发送给所述用户手机。
进一步的, 当所述应用下载请求的消息格式不能被所述应用管理平台识别时, 无线应用协议网关首 先将所述应用下载请求转换为所述应用管理平台能够识别的格式, 然后将转换后的所述应用下载请求转发 给所述应用管理平台。
S215、 无线应用协议网关接收所述应用管理平台发送的应用。
S217、 无线应用协议网关将所述应用管理平台发送的应用通过所述软件平台发送给所述用户手机。 其中, 所述软件平台对该应用进行管理。
S219、 无线应用协议网关接收用户手机通过软件平台发送的应用服务请求。
S221、 无线应用协议网关根据所述应用服务请求, 对所述用户手机进行鉴权。
具体地, 所述应用服务请求中包括所述用户手机的身份信息如: 号码、 IP地址等信息, 请求接入的 应用服务器的相关信息如: IP地址等信息, 以及所述应用的相关信息如: 应用的名称等信息。
所述无线应用协议网关依据自身的认证策略, 根据所述用户手机的身份信息以及请求接入的应用服 务器的相关信息, 判断所述用户手机是否是所述应用服务器的许可用户, 也就是说, 该应用服务器是否允 许为所述用户手机提供应用服务: 并根椐所述应用的相关信息判断所述应用服务器是否能够为所述用户手 机提供与该应用对应的应用服务。 当判断用户手机合法时, 该无线应用协议网关允许为所述用户手机提供 应用服务, 所述应用服务器能够为所述用户手机提供与该应用对应的应用服务。
S223、 当所述用户手机鉴权通过时, 无线应用协议网关将所述应用服务请求向应用服务器发送, 以便 所述应用服务器根据所述应用服务请求向所述用户手机提供应用服务: 进一步的, 当所述应用服务请 求的消息格式不能被所述应用服务器识别时无线应用协议网关首先将所述应用服务请求转换为所述应用服 务器能够识别的格式, 然后将转换后的所述应用服务请求向应用服务器发送。
S225、 应用服务器根据所述应用服务请求, 向所述用户手机提供应用服务。
本发明实施例提供应用服务的方法, 无线应用协议网关还能够对用户手机向应用管理平台或应用服 务器发送的请求消息进行格式转换, 从而可以在用户手机与不同的应用管理平台或应用服务器之间进行适 配, 提高了用户的体验质量。
实施例三
本实施例提供一种无线应用协议网关,如图 2所示,所述无线应用协议网关 30包括:接收模块 301, 存储模块 302, 安全鉴权数据模块 303, 确认模块 304, 解密模块 305, 发送模块 306。
其中接收模块 301, 用于接收用户手机生成第一指纹数据;
存储模块 302,用于存储保存通过加密通道从应用服务器获取所述用户的加密指纹模板以及该加密指 纹模板对应的加密密钥 KEY, 所述加密密钥 KEY是由应用服务器随机生成, 其长度为 128位; 所述加密指 纹模板是由所述应用服务器利用所述加密密钥 KEY对用户指纹模板加密后生成;
安全鉴权数据模块 303, 用于根据所述第一指纹数据以及所述加密密钥, 生成安全鉴权数据 VL; 其 中安全鉴权数据模块将所述加密密钥 KEY分成互不重叠的 8段,每段 16位,分别为 s Sl …, s7,令 a。=s ai=Sl, …, =s7, 将 a。、 ¾、 、 ¾、 ¾、 ¾、 ¾联成一个 128位的数串 KEYC, 使得 ΚΕΥ = ¾··· , 计算 数串 KEYC的循环冗余校验码 CRC-16的值 C C是一个 16位校验值, 令 ¾=C mod(p), 其中 p为素数 65537; 在获取到所述用户第一指纹数据中细节点平面坐标的集合 F={( y。), yi), …, (x»-u y«)}后, 其 中, ( ,y 分别为细节点所在位置的平面坐标, i=0 l, , N-l; 且 N为所述细节点的总数; 将每个细节点 平面坐标分别映射到 [0 255]中, 将映射后的平面坐标串联在一起构成数据 ι¾, 得到集合M={m m„ …, m„}; 将每个 ι¾作为 16位的随机数产生器的种子, ί=0 ··· N-l; 顺序产生 8个随机数 r„ ··· ri8, 得 到向量 t , 进而 = 丄… u18] = [ m, r„ - ri8]; 最后将每个 i 代入所述加密函数 f (u), 计算相应 的加密函数值 f 0 , 得到由所述 M和其中元素对应的加密函数值构成的所述用户加密指纹数据的集合 G 使得 G=((m f(u m。))), (m„ f (Ul (m )), ··· (m„, f (u„ (m„) ) ) ), 其中 f(u)是 9个变量的加密函数, f (u) = aTu mod (p) 。u。 +a8u8) mod(p), 其中, a= [a。 ··· a8]T u=[u。 "-u8] mod 表 示求模运算; 然后生成干扰集合 C= ((c d Cl d,), -, (c„ d„)), 其中 M为集合 C的元素个数, Cj 和 4都是随机数, 和!¾的距离大于预设的阈值, j=0 …, M-1; 且 φ≠ΐ( ); 最后将所述集合 G和所述 集合 C中的元素随机混合, 生成安全鉴权数据 VL, 使得 VL={ (v wo), (v„ w,), ··· (v™-,, w,,-,) },其 中 (Vi, Wj) 表示所述集合 G和所述集合 C中的元素, j=0 …, M-1; 将所述安全鉴权数据存储在存储模块 并将所述加密密钥销毁;
确认模块 304,用于在收到用户手机根据用户应用服务信息发送的应用服务获取请求和第二指纹数据, 根据所述应用服务获取请求, 获取存储在存储模块的安全鉴权数据, 并根据所述第二指纹数据和所述安全 鉴权数据, 计算所述加密密钥 KEY, 计算步骤具体包括:
F1.从所述第二指纹数据中提取出细节点集合 Q, 其中 Q={( y ¾ yj …, y N'是 Q中细节点的总数, N'不等于所述第一指纹数据细节点的总数 N, 将所述第二指纹数据细节点的平面坐 标 x^By jfc射到 [0 255]中,其中 k=0 l 2 N*-l;
F2.从所述安全鉴权数据 VL中取出 v。, Vl, …, Vm, 将 v。, Vl, …, ¥„„分别分拆成两个 8位的数 作为平面坐标, 可以得到一个集合 Rc ( ΐ, ), …, ;
F3.如果集合 Q中某个细节点 A和集合 Re中某个细节点 B的距离小于一个预设阈值,贝輔定 A和 B是
一对匹配点,把 B对应的(v,w)添加到匹配点集合 Rs中;得到 9个点的集合 Rs= { (v。,w。), {Vl,Wl), …, (v8, w8) }; F4. 利用集合 Rs的元素恢复加密密钥 KEY:
对每个 Vi e Rs, 使用与所述随机数发生器相同的 16位随机数发生器, 以 Vi为种子, 顺序产生 8个随 机数 i"
根据向量 = 以及 对应的加密函数值 生成的线性方程组:
Wo = (adoUo, o+adiUo, i + ··· +a +ad8Uo, 8) mod (p)
Wi = (ad。Ui,。+adiUi, i+ … +ad7Ui +a ) mod (p) w8 = (ad0u8,。 +3diUdi+ ··· +a mod (p)
求解出 a , 使得 ad T=U— 1 w mod (p) 其中 U L L L , w = [wo Wi ··· w8] T , ad = [ado adi ··· ad8] T,
、
将 ad。, adl, ···, ad7串联成数串 KEY, 得到加密密钥 KEY;
解密模块 305,用于根据加密密钥 KEY,对所述加密指纹模板进行解密,得到所述用户的解密指纹模板; 将获取到的所述第二指纹数据和用户的解密指纹模板进行比对, 当比对结果为两者匹配时, 确定所述用户 身份鉴权通过, 将所述应用服务获取请求发送给所述应用服务器;
发送模块 306, 用于在应用服务器接收用户手机的应用服务请求后, 将应用服务器根据所述应用服务 请求发送的应用服务提供给所述用户手机。
可选的, 所述解密模块 305还用于在: 当比对结果为两者不匹配时, 确定拒绝向所述用户提供应用服 务, 通过发送模块 306向所述用户手机发送拒绝提供应用服务的消息。
可选的,无线应用协议网关 30还通过发送模块 306向所述应用管理平台发送所述应用査询请求以获取 应用列表:
进一步的, 当所述应用査询请求的消息格式不能被所述应用管理平台识别时, 无线应用协议网关首先 将所述应用査询请求转换为所述应用管理平台能够识别的格式. 然后向所述应用管理平台发送转换后的所 述应用査询请求以获取应用列表。
可选的, 无线应用协议网关 30还通过接收模块 301接收所述应用管理平台反馈的应用列表, 将所述应 用管理平台反馈的应用列表通过软件平台发送给所述用户手机。
可选的,无线应用协议网关 30还通过接收模块 301接收所述用户手机通过所述软件平台友送的应用下 载请求, 并将所述应用下载请求转发给所述应用管理平台, 以便所述应用管理平台将应用发送给所述用户
手机。
进一步的, 当所述应用下载请求的消息格式不能被所述应用管理平台识别时, 无线应用协议网关 30 通过发送模块 306首先将所述应用下载请求转换为所述应用管理平台能够识别的格式, 然后将转换后的所 述应用下载请求转发给所述应用管理平台; 在接收所述应用管理平台发送的应用后, 无线应用协议网关 30 通过发送模块 306将所述应用管理平台发送的应用通过所述软件平台发送给所述用户手机。 其中, 所述软 件平台对该应用进行管理。
可选的, 无线应用协议网关 30通过接收模块 301接收用户手机通过软件平台发送的应用服务请求。根 据所述应用服务请求, 对所述用户手机进行鉴权。
具体地, 所述应用服务请求中包括所述用户手机的身份信息如: 号码、 IP地址等信息, 请求接入的 应用服务器的相关信息如: IP地址等信息, 以及所述应用的相关信息如: 应用的名称等信息。 依据无线应 用协议网关 30自身的认证策略, 根据所述用户手机的身份信息以及请求接入的应用服务器的相关信息, 判 断所述用户手机是否是所述应用服务器的许可用户, 也就是说, 该应用服务器是否允许为所述用户手机提 供应用服务: 并根椐所述应用的相关信息判断所述应用服务器是否能够为所述用户手机提供与该应用对应 的应用服务。 当判断用户手机合法时, 该无线应用协议网关 30允许为所述用户手机提供应用服务, 所述应 用服务器能够为所述用户手机提供与该应用对应的应用服务。
当所述用户手机鉴权通过时, 将所述应用服务请求向应用服务器发送, 以便所述应用服务器根据所述 应用服务请求向所述用户手机提供应用服务。
可选的, 确认模块 304通过软件平台接收用户手机发送的应用服务请求。
可选的,确认模块 304还用于接收所述用户手机通过软件平台发送的应用査询请求, 所述发送模块 306 还用于向应用管理平台发送所述应用査询请求以获取应用列表, 所述应用列表是应用服务器发布在所述应 用管理平台的。
可选的, 确认模块 304还用于将所述应用服务请求转换为所述应用服务器能够识别的格式; 所述发送 模块 306还用于向应用管理平台发送所述应用査询请求以获取应用列表, 所述应用列表是应用服务器发布 将转换后的所述应用服务请求向应用服务器发送。
本发明实施例的提供的无线应用协议网关根据所接收的用户手机的应用服务请求, 对所述用户进行鉴 权, 当所述用户鉴权通过时, 将所述应用服务请求向应用服务器发送, 以便所述应用服务器根据所述应用 服务请求向所述用户手机提供应用服务, 通过由无线应用协议网关对用户手机进行鉴权操作, 应用服务器 不需要再对该用户手机进行鉴权, 从而可以减少应用服务器的工作负担; 另外, 用户将第一指纹数据注册 到无线应用协议网关, 无线应用协议网关获取所述用户的加密指纹模板以及该加密指纹模板对应的加密密 钥 KEY, 无线应用协议网关利用第一指纹数据对加密密钥生成安全鉴权数据, 使加密密钥被隐藏, 使得加
密密钥的保护更加严密; 鉴权时, 利用用户的第二指纹数据对安全鉴权数据进行解密获得加密密钥, 利用 加密密钥对加密指纹模板进行解密得到指纹模板, 使得鉴权过程更加安全可靠。 而且, 只需用户在手机触 摸屏上输入指纹, 提高用户体验。
请参阅图 3, 本发明实施例还提供一种无线应用协议系统, 包括: 用户手机 410、 无线应用协议网关 420和应用服务器 430。 其中, 用户手机 410, 用于向网关 420发送用户的第一指纹数据。 网关 420包括: 接收模块 301, 存储模块 302, 安全鉴权数据模块 303, 确认模块 304, 解密模块 305以及发送模块 306。 其中接收模块 301, 用于接收用户手机生成第一指纹数据;
存储模块 302, 用于存储保存通过加密通道从应用服务器获取所述用户的加密指纹模板以及该加密 指纹模板对应的加密密钥 KEY, 所述加密密钥 KEY是由应用服务器随机生成, 其长度为 128位; 所述加密 指纹模板是由所述应用服务器利用所述加密密钥 KEY对用户指纹模板加密后生成;
安全鉴权数据模块 303, 用于根据所述第一指纹数据以及所述加密密钥, 生成安全鉴权数据 VL; 其中 安全鉴权数据模块将所述加密密钥 KEY分成互不重叠的 8段, 每段 16位, 分别为 s。, Sl, …, s7, 令 a。=s。, ai=Sl, …, =s7, 将 a。、 ¾、 、 ¾、 ¾、 ¾、 ¾联成一个 128位的数串 KEYC, 使得 ΚΕΥ = ¾··· , 计算 数串 KEYC的循环冗余校验码 CRC-16的值 C, C是一个 16位校验值, 令 ¾=C mod(p), 其中 p为素数 65537; 在获取到所述用户第一指纹数据中细节点平面坐标的集合 F={( , y。), , yi), …, (x»-u y«)}后, 其 中, ( ,y 分别为细节点所在位置的平面坐标, i=0,l, , N-l; 且 N为所述细节点的总数; 将每个细节点 平面坐标分别映射到 [0, 255]中, 将映射后的平面坐标串联在一起构成数据 ι¾, 得到集合M={m。, m„ …, m„}; 将每个 ι¾作为 16位的随机数产生器的种子, ί=0,···, N-l; 顺序产生 8个随机数 r„, ,···, ri8, 得 到向量 t , 进而 = 丄… u18] = [ m, r„ - ri8]; 最后将每个 i 代入所述加密函数 f (u), 计算相应 的加密函数值 f 0 , 得到由所述 M和其中元素对应的加密函数值构成的所述用户加密指纹数据的集合 G, 使得 G=((m。, f(u m。))), (m„ f (Ul (m )), ···, (m„, f (u„ (m„) ) ) ), 其中 f(u)是 9个变量的加密函数, f (u) = aTu mod (p) 。u。 +a8u8) mod(p), 其中, a= [a。 ··· a8]T, u=[u。 "-u8], mod表 示求模运算; 然后生成干扰集合 C= ((c。, d Cl, d,), -, (c„, d„)), 其中 M为集合 C的元素个数, Cj 和 4都是随机数, 和!¾的距离大于预设的阈值, j=0, …, M-1; 且 φ≠ΐ( ); 最后将所述集合 G和所述 集合 C中的元素随机混合, 生成安全鉴权数据 VL, 使得 VL={ (v。, wo), (v„ w,), ···, (v™-,, w,,-,) },其 中 (Vi, Wj) 表示所述集合 G和所述集合 C中的元素, j=0, …, M-1; 将所述安全鉴权数据存储在存储模块 并将所述加密密钥销毁;
确认模块 304, 用于在收到用户手机根据用户应用服务信息发送的应用服务获取请求和第二指纹数据, 根据所述应用服务获取请求, 获取存储在存储模块的安全鉴权数据, 并根据所述第二指纹数据和所述安全 鉴权数据, 计算所述加密密钥 KEY, 计算步骤具体包括:
Fl.从所述第二指纹数据中提取出细节点集合 Q,其中 Q={( 。, y。。), ¾, yal),…, y。》'-u) }, N'是 Q中细节点的总数, N'不等于所述第一指纹数据细节点的总数 N, 将所述第二指纹数据细节点的平面坐 标 x^B y jfc射到 [0, 255]中,其中 k=0,l,2 , N*-l;
F2.从所述安全鉴权数据 VL中取出 v。, Vl, …, vM-„ 将 ν。, ν,, …, ¥„„分别分拆成两个 8位的 数作为平面坐标, 可以得到一个集合 R {(X。, yrt),(Xri, Yvl), ···, Yv ;
F3.如果集合 Q中某个细节点 A和集合 Re中某个细节点 B的距离小于一个预设阈值, 贝輔定 A和 B是 一对匹配点,把 B对应的(v,w)添加到匹配点集合 Rs中;得到 9个点的集合 Rs={(v。,w。), {Vl,Wl), …, (v8, w8) };
F4. 利用集合 Rs的元素恢复加密密钥 KEY:
对每个 VieRs, 使用与所述随机数发生器相同的 16位随机数发生器, 以 Vi为种子, 顺序产生 8个 随机数 , , …,
根据向量 = 以及 对应的加密函数值 生成的线性方程组:
8) mod (p)
= (ad。 。+a … +a +a )mod(p) w8 = (a +a ··· +a mod(p)
求解出 a , 使得 ad T=U— 1 w mod( ) 其中 U = L L L w = [wo w8] T , ad = [ad。 adi … ad8] T,
、
将 。, adl, ···, ad7串联成数串 KEY, 得到加密密钥 KEY;
解密模块 305: 用于根据加密密钥 KEY, 对所述加密指纹模板进行解密, 得到所述用户的解密指纹模 板; 将获取到的所述第二指纹数据和用户的解密指纹模板进行比对, 当比对结果为两者匹配时, 确定所述 用户身份鉴权通过, 将所述应用服务获取请求发送给所述应用服务器;
发送模块 306, 用于在应用服务器接收用户手机的应用服务请求后, 将应用服务器根据所述应用服务 请求发送的应用服务提供给所述用户手机。
可选的, 所述解密模块 305还用于在: 当比对结果为两者不匹配时, 确定拒绝向所述用户提供应用服 务, 通过发送模块 306向所述用户手机发送拒绝提供应用服务的消息。
可选的,无线应用协议网关 30还通过发送模块 306向所述应用管理平台发送所述应用査询请求以获取 应用列表。
进一步的, 当所述应用査询请求的消息格式不能被所述应用管理平台识别时, 无线应用协议网关首先
将所述应用査询请求转换为所述应用管理平台能够识别的格式. 然后向所述应用管理平台发送转换后的所 述应用査询请求以获取应用列表。
可选的, 无线应用协议网关 30还通过接收模块 301接收所述应用管理平台反馈的应用列表, 将所述应 用管理平台反馈的应用列表通过软件平台发送给所述用户手机。
可选的,无线应用协议网关 30还通过接收模块 301接收所述用户手机通过所述软件平台友送的应用下 载请求, 并将所述应用下载请求转发给所述应用管理平台, 以便所述应用管理平台将应用发送给所述用户 手机。
进一步的, 当所述应用下载请求的消息格式不能被所述应用管理平台识别时, 无线应用协议网关 30 通过发送模块 306首先将所述应用下载请求转换为所述应用管理平台能够识别的格式, 然后将转换后的所 述应用下载请求转发给所述应用管理平台; 在接收所述应用管理平台发送的应用后, 无线应用协议网关 30 通过发送模块 306将所述应用管理平台发送的应用通过所述软件平台发送给所述用户手机。 其中, 所述软 件平台对该应用进行管理。
可选的, 无线应用协议网关 30通过接收模块 301接收用户手机通过软件平台发送的应用服务请求。根 据所述应用服务请求, 对所述用户手机进行鉴权。
具体地, 所述应用服务请求中包括所述用户手机的身份信息如: 号码、 IP地址等信息, 请求接入的 应用服务器的相关信息如: IP地址等信息, 以及所述应用的相关信息如: 应用的名称等信息。 依据无线应 用协议网关 30自身的认证策略, 根据所述用户手机的身份信息以及请求接入的应用服务器的相关信息, 判 断所述用户手机是否是所述应用服务器的许可用户, 也就是说, 该应用服务器是否允许为所述用户手机提 供应用服务; 并根椐所述应用的相关信息判断所述应用服务器是否能够为所述用户手机提供与该应用对应 的应用服务。 当判断用户手机合法时, 该无线应用协议网关 30允许为所述用户手机提供应用服务, 所述应 用服务器能够为所述用户手机提供与该应用对应的应用服务。
当所述用户手机鉴权通过时, 将所述应用服务请求向应用服务器发送, 以便所述应用服务器根据所述 应用服务请求向所述用户手机提供应用服务。
可选的, 确认模块 304通过软件平台接收用户手机发送的应用服务请求。
可选的,确认模块 304还用于接收所述用户手机通过软件平台发送的应用査询请求, 所述发送模块 306 还用于向应用管理平台发送所述应用査询请求以获取应用列表, 所述应用列表是应用服务器发布在所述应 用管理平台的。
可选的, 确认模块 304还用于将所述应用服务请求转换为所述应用服务器能够识别的格式; 所述发送 模块 306还用于向应用管理平台发送所述应用査询请求以获取应用列表, 所述应用列表是应用服务器发布 将转换后的所述应用服务请求向应用服务器发送。
本发明实施例的提供的无线应用协议网关根据所接收的用户手机的应用服务请求, 对所述用户进行鉴 权, 当所述用户鉴权通过时, 将所述应用服务请求向应用服务器发送, 以便所述应用服务器根据所述应用 服务请求向所述用户手机提供应用服务, 通过由无线应用协议网关对用户手机进行鉴权操作, 应用服务器 不需要再对该用户手机进行鉴权, 从而可以减少应用服务器的工作负担; 另外, 用户将第一指纹数据注册 到无线应用协议网关, 无线应用协议网关获取所述用户的加密指纹模板以及该加密指纹模板对应的加密密 钥 KEY, 无线应用协议网关利用第一指纹数据对加密密钥生成安全鉴权数据, 使加密密钥被隐藏, 使得加 密密钥的保护更加严密; 鉴权时, 利用用户的第二指纹数据对安全鉴权数据进行解密获得加密密钥, 利用 加密密钥对加密指纹模板进行解密得到指纹模板, 使得鉴权过程更加安全可靠。 而且, 只需用户在手机触 摸屏上输入指纹, 提高用户体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指 令相关的硬件来完成, 所述的程序可存储于一计算机可读取存储介质中, 该程序在执行时, 可包括如上述 各方法的实施例的流程。 其中, 所述的存储介质可为磁碟、 光盘、 只读存储记忆体 (Read-Only Memory ROM) 或随机存储记忆体(Random Access Memory, RAM)等。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限于此, 任何熟悉本技术领城的 技术人员在本发明揭露的技术范围内, 可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。 因 此, 本发明的保护范围应该以权利要求的保护范围为准。