一种离线账单生成方法及装置转让专利

申请号 : CN202110831756.0

文献号 : CN113298526B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐登伟辛知万小飞崔显军吴超朱丙营

申请人 : 支付宝(杭州)信息技术有限公司

摘要 :

本说明书实施例提供一种离线账单生成方法及装置,所述方法包括:终端设备包含可信执行环境TEE以及基于加密硬件的安全元件,终端设备在检测到离线场景下的目标账户产生交易的情况下,在TEE中获得交易对应的基础交易信息和目标账户的身份标识信息;将基础交易信息和身份标识信息发送至安全元件;在安全元件中,利用所存储的第一私钥对基础交易信息和身份标识信息签名,得到第一签名;在TEE中,对基础交易信息、身份标识信息以及第一签名进行组合,生成交易对应的离线账单,并存储离线账单。

权利要求 :

1.一种离线账单生成方法,应用于终端设备,所述终端设备包含可信执行环境TEE、基于加密硬件的安全元件以及普通执行环境REE,所述方法包括:在检测到离线场景下的目标账户产生交易的情况下,在所述TEE中,从所述REE中运行的支付相关应用,获得基础交易信息;从所述TEE的安全存储区域中,获得身份标识信息;所述身份标识信息为表征所述目标账户的身份的信息,所述目标账户是所述支付相关应用的主账户下开立的离线硬件钱包的账户;

将所述基础交易信息和所述身份标识信息发送至所述安全元件;

在所述安全元件中,利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名;

在所述TEE中,对所述基础交易信息、所述身份标识信息以及所述第一签名进行组合,生成所述交易对应的离线账单,并存储所述离线账单。

2.根据权利要求1所述的方法,其中,所述基础交易信息包括如下信息中的至少一个:交易金额、交易ID、交易类型、交易币种、交易时间、目标账户昵称以及与所述目标账户产生交易的另一账户的昵称。

3.根据权利要求1所述的方法,其中,所述身份标识信息包括如下信息中的至少一个:所述目标账户的ID、所述目标账户所属运营机构的ID以及所述目标账户所属主账户的ID。

4.根据权利要求1所述的方法,其中,在得到第一签名之后,所述方法还包括:在所述安全元件中,基于所述基础交易信息,更新所述目标账户在所述交易发生后的账户余额。

5.根据权利要求1或4所述的方法,其中,所述基础交易信息包括所述交易的交易金额和交易类型;

在所述安全元件中,利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名,包括:在所述交易类型为支付类型的情况下,在所述安全元件中,判断所存储的账户余额是否不小于所述交易金额;

若判断结果为是,则利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名。

6.根据权利要求5所述的方法,还包括:

若判断所述账户余额小于所述交易金额,输出提示余额不足信息。

7.根据权利要求1‑4任一项所述的方法,还包括:

在检测到所述终端设备处于联网状态的情况下,通过所述TEE同步所述离线账单至服务器。

8.根据权利要求7所述的方法,其中,所述在检测到所述终端设备处于联网状态的情况下,通过所述TEE同步所述离线账单至服务器,包括:在检测到所述终端处于联网状态的情况下,显示账单同步提示信息;

在检测到针对所述账单同步提示信息的选中操作时,通过所述TEE同步所述离线账单至服务器。

9.根据权利要求7所述的方法,还包括:

在所述TEE中,利用随机生成的对称密钥对所述离线账单加密,得到加密后的离线账单;

在所述TEE中,利用预置的服务器公钥加密所述对称密钥;

基于加密后的对称密钥以及所述加密后的离线账单,生成离线账单同步报文;

所述通过所述TEE同步所述离线账单至服务器,包括:通过所述TEE,发送所述离线账单同步报文至服务器,以使所述服务器利用服务器私钥、所述第一私钥对应的第一公钥以及所述离线账单同步报文,确定所述目标账户对应的最新余额。

10.一种离线账单生成装置,应用于终端设备,所述终端设备包含可信执行环境TEE、基于加密硬件的安全元件以及普通执行环境REE,所述装置包括:信息获得模块,配置为在检测到离线场景下的目标账户产生交易的情况下,在所述TEE中,从所述REE中运行的支付相关应用,获得基础交易信息;从所述TEE的安全存储区域中,获得身份标识信息;所述身份标识信息为表征所述目标账户的身份的信息,所述目标账户是所述支付相关应用的主账户下开立的离线硬件钱包的账户;

信息发送模块,配置为将所述基础交易信息和所述身份标识信息发送至所述安全元件;

签名模块,配置为在所述安全元件中,利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名;

生成存储模块,配置为在所述TEE中,对所述基础交易信息、所述身份标识信息以及所述第一签名进行组合,生成所述交易对应的离线账单,并存储所述离线账单。

11.根据权利要求10所述的装置,其中,所述基础交易信息包括如下信息中的至少一个:交易金额、交易ID、交易类型、交易币种、交易时间、目标账户昵称以及与所述目标账户产生交易的另一账户的昵称。

12.根据权利要求10所述的装置,其中,所述身份标识信息包括如下信息中的至少一个:所述目标账户的ID、所述目标账户所属运营机构的ID以及所述目标账户所属主账户的ID。

13.根据权利要求10所述的装置,其中,所述装置还包括:更新模块,配置为在得到第一签名之后,在所述安全元件中,基于所述基础交易信息,更新所述目标账户在所述交易发生后的账户余额。

14.根据权利要求10或13所述的装置,其中,所述基础交易信息包括所述交易的交易金额和交易类型;

所述签名模块,包括:

判断单元,配置为在所述交易类型为支付类型的情况下,在所述安全元件中,判断所存储的账户余额是否不小于所述交易金额;

签名单元,配置为若判断结果为是,则利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名。

15.根据权利要求14所述的装置,所述签名模块,还包括:提示信息输出单元,配置为若判断所述账户余额小于所述交易金额,输出提示余额不足信息。

16.根据权利要求10‑13任一项所述的装置,还包括:同步模块,配置为在检测到所述终端设备处于联网状态的情况下,通过所述TEE同步所述离线账单至服务器。

17.根据权利要求16所述的装置,其中,所述同步模块,具体配置为在检测到所述终端处于联网状态的情况下,显示账单同步提示信息;

在检测到针对所述账单同步提示信息的选中操作时,通过所述TEE同步所述离线账单至服务器。

18.根据权利要求16所述的装置,还包括:

第一加密模块,配置为在所述TEE中,利用随机生成的对称密钥对所述离线账单加密,得到加密后的离线账单;

第二加密模块,配置为在所述TEE中,利用预置的服务器公钥加密所述对称密钥;

报文生成模块,配置为基于加密后的对称密钥以及所述加密后的离线账单,生成离线账单同步报文;

所述同步模块,具体配置为通过所述TEE,发送所述离线账单同步报文至服务器,以使所述服务器利用服务器私钥、所述第一私钥对应的第一公钥以及所述离线账单同步报文,确定所述目标账户对应的最新余额。

19.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1‑9任一项所述的方法。

说明书 :

一种离线账单生成方法及装置

技术领域

[0001] 本说明书涉及电子支付安全技术领域,尤其涉及一种离线账单生成方法及装置。

背景技术

[0002] 离线支付越来越受到各方机构的重视和关注, 其中,离线支付即不需要网络就能支付,包括单离线支付和双离线支付。单离线指收款方离线或付款方离线,双离线指收款方及付款方均离线。不同于在线的电子支付中所有的账单都在服务端实时生成,进而直接保存于服务端,离线支付的账单,首先在离线方所在设备本地生成,并在离线方所在设备处于联网状态时再将所存储的账单同步到相应的服务器。也就是说,在离线方所在设备处于联网状态之前,离线支付所生成的账单需要保存在离线方所在设备本地。相应的,在离线方所在设备处于联网状态之前,账单在离线方所在设备的安全管理尤为需要注意。
[0003] 目前,针对离线支付,一般使用纯SE(Secure Element,安全元件)方案完成离线账单的生成与管理,即账单在离线方所在设备的SE内生成并保存,且基于设备的SE进行后续的账单管理。
[0004] 在上述方案中,SE的存储空间有限,不能存储过多的离线账单,在设备离线交易较多的情况下,离线账单的存储、管理和同步都会受到限制。

发明内容

[0005] 本说明书实施例提供了一种离线账单生成方法及装置,通过根据本说明书实施例的技术方案,实现对离线账单的更优的存储、管理和同步。
[0006] 在本说明书第一方面,提供一种离线账单生成方法,应用于终端设备,所述终端设备包含可信执行环境TEE以及基于加密硬件的安全元件,所述方法包括:
[0007] 在检测到离线场景下的目标账户产生交易的情况下,在所述TEE中获得所述交易对应的基础交易信息和所述目标账户的身份标识信息;
[0008] 将所述基础交易信息和所述身份标识信息发送至所述安全元件;
[0009] 在所述安全元件中,利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名;
[0010] 在所述TEE中,对所述基础交易信息、所述身份标识信息以及所述第一签名进行组合,生成所述交易对应的离线账单,并存储所述离线账单。
[0011] 在一种实现方式中,所述终端设备还包含普通执行环境REE,
[0012] 在所述TEE中获得所述交易对应的基础交易信息和所述目标账户的身份标识信息,包括:
[0013] 从所述REE中运行的支付相关应用,获得所述基础交易信息;
[0014] 从所述TEE的安全存储区域中,获得所述身份标识信息。
[0015] 在一种实现方式中,所述基础交易信息包括如下信息中的至少一个:
[0016] 交易金额、交易ID、交易类型、交易币种、交易时间、目标账户昵称以及与所述目标账户产生交易的另一账户的昵称。
[0017] 在一种实现方式中,所述身份标识信息包括如下信息中的至少一个:
[0018] 所述目标账户的ID、所述目标账户所属运营机构的ID以及所述目标账户所属主账户的ID。
[0019] 在一种实现方式中,在得到第一签名之后,所述方法还包括:
[0020] 在所述安全元件中,基于所述基础交易信息,更新所述目标账户在所述交易发生后的账户余额。
[0021] 在一种实现方式中,所述基础交易信息包括所述交易的交易金额和交易类型;
[0022] 在所述安全元件中,利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名,包括:
[0023] 在所述交易类型为支付类型的情况下,在所述安全元件中,判断所存储的账户余额是否不小于所述交易金额;
[0024] 若判断结果为是,则利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名。
[0025] 在一种实现方式中,还包括:
[0026] 若判断所述账户余额小于所述交易金额,输出提示余额不足信息。
[0027] 在一种实现方式中,还包括:
[0028] 在检测到所述终端设备处于联网状态的情况下,通过所述TEE同步所述离线账单至服务器。
[0029] 在一种实现方式中,所述在检测到所述终端设备处于联网状态的情况下,通过所述TEE同步所述离线账单至服务器,包括:
[0030] 在检测到所述终端处于联网状态的情况下,显示账单同步提示信息;
[0031] 在检测到针对所述账单同步提示信息的选中操作时,通过所述TEE同步所述离线账单至服务器。
[0032] 在一种实现方式中,还包括:
[0033] 在所述TEE中,利用随机生成的对称密钥对所述离线账单加密,得到加密后的离线账单;
[0034] 在所述TEE中,利用预置的服务器公钥加密所述对称密钥;
[0035] 基于加密后的对称密钥以及所述加密后的离线账单,生成离线账单同步报文;
[0036] 所述通过所述TEE同步所述离线账单至服务器,包括:
[0037] 通过所述TEE,发送所述离线账单同步报文至服务器,以使所述服务器利用服务器私钥、所述第一私钥对应的第一公钥以及所述离线账单同步报文,确定所述目标账户对应的最新余额。
[0038] 在本说明书第二方面,提供一种离线账单生成装置,应用于终端设备,所述终端设备包含可信执行环境TEE以及基于加密硬件的安全元件,所述装置包括:
[0039] 信息获得模块,配置为在检测到离线场景下的目标账户产生交易的情况下,在所述TEE中获得所述交易对应的基础交易信息和所述目标账户的身份标识信息;
[0040] 信息发送模块,配置为将所述基础交易信息和所述身份标识信息发送至所述安全元件;
[0041] 签名模块,配置为在所述安全元件中,利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名;
[0042] 生成存储模块,配置为在所述TEE中,对所述基础交易信息、所述身份标识信息以及所述第一签名进行组合,生成所述交易对应的离线账单,并存储所述离线账单。
[0043] 在一种实现方式中,所述终端设备还包含普通执行环境REE,
[0044] 所述信息获得模块,具体配置为从所述REE中运行的支付相关应用,获得所述基础交易信息;
[0045] 从所述TEE的安全存储区域中,获得所述身份标识信息。
[0046] 在一种实现方式中,所述基础交易信息包括如下信息中的至少一个:
[0047] 交易金额、交易ID、交易类型、交易币种、交易时间、目标账户昵称以及与所述目标账户产生交易的另一账户的昵称。
[0048] 在一种实现方式中,所述身份标识信息包括如下信息中的至少一个:
[0049] 所述目标账户的ID、所述目标账户所属运营机构的ID以及所述目标账户所属主账户的ID。
[0050] 在一种实现方式中,所述装置还包括:
[0051] 更新模块,配置为在得到第一签名之后,在所述安全元件中,基于所述基础交易信息,更新所述目标账户在所述交易发生后的账户余额。
[0052] 在一种实现方式中,所述基础交易信息包括所述交易的交易金额和交易类型;
[0053] 所述签名模块,包括:
[0054] 判断单元,配置为在所述交易类型为支付类型的情况下,在所述安全元件中,判断所存储的账户余额是否不小于所述交易金额;
[0055] 签名单元,配置为若判断结果为是,则利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名。
[0056] 在一种实现方式中,所述签名模块,还包括:
[0057] 提示信息输出单元,配置为若判断所述账户余额小于所述交易金额,输出提示余额不足信息。
[0058] 在一种实现方式中,还包括:
[0059] 同步模块,配置为在检测到所述终端设备处于联网状态的情况下,通过所述TEE同步所述离线账单至服务器。
[0060] 在一种实现方式中,所述同步模块,具体配置为在检测到所述终端处于联网状态的情况下,显示账单同步提示信息;
[0061] 在检测到针对所述账单同步提示信息的选中操作时,通过所述TEE同步所述离线账单至服务器。
[0062] 在一种实现方式中,还包括:
[0063] 第一加密模块,配置为在所述TEE中,利用随机生成的对称密钥对所述离线账单加密,得到加密后的离线账单;
[0064] 第二加密模块,配置为在所述TEE中,利用预置的服务器公钥加密所述对称密钥;
[0065] 报文生成模块,配置为基于加密后的对称密钥以及所述加密后的离线账单,生成离线账单同步报文;
[0066] 所述同步模块,具体配置为通过所述TEE,发送所述离线账单同步报文至服务器,以使所述服务器利用服务器私钥、所述第一私钥对应的第一公钥以及所述离线账单同步报文,确定所述目标账户对应的最新余额。
[0067] 在本说明书第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书一个或多个实施例所提供的所述离线账单生成方法。
[0068] 在本说明书第四方面,提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书一个或多个实施例所提供的所述离线账单生成方法。
[0069] 根据本说明书实施例所提供的一种离线账单生成方法及装置,终端设备预先设置不同安全级别的数据环境,包括可信执行环境TEE以及基于加密硬件的安全元件,将所需安全级别极高的第一私钥存储于安全元件中,并在其中完成签名。在安全级别较高且数据处理速度快且存储空间相对(相比于安全元件)较大的TEE中实现对离线账单的组装和生成存储,以利用不同安全级别的数据环境实现对离线账单的组装、签名以及生成存储,充分利用各不同安全级别的数据环境的能力和特点,实现离线账单生成管理过程的安全、效率及普适度的统一。实现对离线账单的更优的存储、管理和同步。

附图说明

[0070] 为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0071] 图1A为本说明书披露的终端设备的框架示意图;
[0072] 图1B为本说明书提供的离线账单生成过程中数据流向的一种示例图;
[0073] 图2为本说明书实施例提供的离线账单生成方法的一种流程示意图;
[0074] 图3为本说明书实施例提供的离线账单生成方法的另一种流程示意图;
[0075] 图4为本说明书实施例提供的离线账单生成方法的另一种流程示意图;
[0076] 图5为本说明书实施例提供的离线账单生成装置的一种示意性框图。

具体实施方式

[0077] 下面将结合附图详细描述本说明书实施例的技术方案。
[0078] 本说明书实施例披露一种离线账单生成方法及装置,下面对离线账单生成的应用场景和发明构思进行介绍,具体如下:
[0079] 账户在其所在设备处于离线状态时产生交易的情况下,需要首先在设备本地生成离线账单,并将离线账单存储于设备本地。后续的,在设备处于联网状态下,将设备处于离线状态时期所生成的离线账单,同步至相应的服务器,以使服务器基于该离线账单对目标账户进行资产划拨,更新余额。其中,账户可以是收款方的账户也可以是付款方的账户。
[0080] 由于账户所在设备处于离线状态期间,离线账单一直存储于设备本地,需要本地存在足够的存储空间用以存储离线账单。并且考虑到避免账户出现双花的情况,则离线账单在设备本地的安全存储尤为重要。
[0081] 鉴于此,本说明书实施例提供了一种离线账单生成方法,应用于终端设备。鉴于离线账单生成所使用信息的安全级别的不同,如图1A所示,终端设备可以包含可信执行环境TEE(Trusted Execution Environment)、基于加密硬件的安全元件以及普通执行环境REE(Rich Execution Environment),用以支持不同安全级别的数据的存储以及不同安全级别的离线账单生成过程步骤的执行。
[0082] 其中,可信执行环境TEE (Trusted Execution Environment),是终端设备的数字处理器例如CPU上的一块区域。这块区域的作用是给数据和代码的执行提供一个更安全的空间,并保证它们的机密性和完整性。其通过创建一个独立运行的小型操作系统,实现安全存储、安全计算等涉及安全、隐私的数据处理。
[0083] 基于加密硬件的安全元件可以包括但不限于SE(Secure Element)安全元件,其通常以芯片形式提供,在其中具有加密/解密逻辑电路,从而防止外部恶意解析攻击,保护数据安全。需要说明的是,安全元件是基于硬件对数据进行加密保护的环境,因此具有比TEE更高的安全级别。
[0084] 普通执行环境REE的安全级别相对较低,支付相关应用运行于REE。其中,该支付相关应用为目标账户产生交易所依赖的应用。
[0085] 终端设备在处于离线状态下,检测到目标账户产生交易的情况下,在TEE中,获得交易对应的基础交易信息和目标账户的身份标识信息;将基础交易信息和身份标识信息内部发送至安全级别最高的安全元件;在安全元件中,利用所存储的第一私钥,对基础交易信息和身份标识信息签名,得到第一签名,将第一签名发送至TEE;在算力较强且存储空间较大的TEE中对基础交易信息、身份标识信息以及第一签名进行组合,生成交易对应的离线账单,并存储离线账单。如图1B所示,为离线账单生成过程中数据流向的一种示例图。
[0086] 一种实现中,基础交易信息包括交易的基本信息,例如可以包括如下信息中的至少一个:交易金额、交易ID、交易类型、交易币种、交易时间、交易双方的信息例如目标账户昵称以及与目标账户产生交易的另一账户的昵称。交易金额为本次交易的变动金额。交易ID为该交易的标识,具有唯一性。交易类型包括但不限于支付、收款和退款等。交易币种可以包括但不限于人民币、美元、欧元等。目标账户昵称具有唯一性,可以唯一确定出目标账户,通过目标账户昵称和与目标账户产生交易的另一账户的昵称可以明确交易双方的身份。
[0087] 一种实现中,身份标识信息可以包括如下信息中的至少一个:目标账户的ID、目标账户所属运营机构的ID以及目标账户所属主账户的ID。在一种情况中,可以称目标账户为离线账户,用于在终端设备处于离线状态进行交易。目标账户可以是在主账户下开立的一个离线账号。其中,一个主账户可以包括多个离线账户,不同离线账户可以属于不同运营机构。运营机构为开立离线账户的机构。
[0088] 一种实施例中,考虑到不同信息的安全级别不同,例如基础交易信息,其为交易的基本信息,安全级别一般,可以存储于在REE中运行的支付相关应用对应的存储区域内。对于身份标识信息而言,其表征目标账户的身份信息,涉及目标账户的隐私信息,且其相对于账户资产而言重要性相对较高,相应的,身份标识信息的安全级别较高。为了保证身份标识信息不易被篡改,身份标识信息可以存储于安全级别较高的TEE中。对于目标账户的余额以及用于签名的密钥等涉及账户资产及加密的信息,为安全级别更高的信息,相应的,该类信息可以存储于安全级别更高的安全元件内,以防止该类信息被篡改盗用。
[0089] 相应的,如图1B所示,终端设备在TEE中,从REE中运行的支付相关应用,获得基础交易信息,并在TEE的安全存储区域中,获得身份标识信息。
[0090] 本实施例中,将所需安全级别更高的第一私钥存储于安全元件中,并在其中完成安全级别更高的对基础交易信息和身份标识信息签名的步骤;且在安全级别较高且数据处理速度快且存储空间相对(相较于安全元件)较大的TEE中实现对离线账单的组装和生成存储,以利用不同安全级别的数据环境实现对离线账单的组装、签名以及生成存储,充分利用各不同安全级别的数据环境的能力和特点,实现离线账单生成管理过程的安全、效率及普适度的统一,进而实现对离线账单的更优的存储、管理和同步。
[0091] 可以理解的,TEE安全性高,且存储空间相对较大,可以安全存储大量的离线账单,保证离线账单不易被篡改,避免目标账户离线交易较多、生成的离线账单较多时,出现存储空间不足的情况。并且TEE的数据传输量较大、算力较强,在后续终端设备联网状态下,同步离线账单时同步效率较高。
[0092] 下面结合具体实施例,对本说明书提供的离线账单生成方法进行详细阐述。
[0093] 图2示出了本说明书提供的离线账单生成方法的一种流程示意图。该方法应用于终端设备,该终端设备可以是任一具有数据计算、处理和存储的设备,例如可以为手机、平板电脑、智能手表和支付卡等。本说明书一个实施例中,该终端设备包含可信执行环境TEE以及基于加密硬件的安全元件,所述方法包括:
[0094] S210:在检测到离线场景下的目标账户产生交易的情况下,在TEE中获得交易对应的基础交易信息和目标账户的身份标识信息。
[0095] 终端设备在处于离线状态即未联网的状态下,在检测到目标账户产生交易的情况下,在TEE中获得交易对应的基础交易信息和目标账户的身份标识信息。其中,目标账户可以是付款方账户,也可以是收款方账户。
[0096] 基础交易信息包括交易的基本信息,例如可以包括如下信息中的至少一个:交易金额、交易ID、交易类型、交易币种、交易时间、交易双方的信息例如目标账户昵称以及与目标账户产生交易的另一账户的昵称。交易金额为本次交易的变动金额。交易ID为该交易的标识,具有唯一性。交易类型包括但不限于支付、收款、存款和退款等。交易币种可以包括但不限于人民币、美元、欧元等。目标账户昵称具有唯一性,可以唯一确定出目标账户。
[0097] 身份标识信息为表征目标账户的身份的信息,可以包括如下信息中的至少一个:目标账户的ID、目标账户所属运营机构的ID以及目标账户所属主账户的ID。在一种情况中,目标账户可以是在主账户下开立的任意一个离线钱包的账号,可以称目标账户为离线账户,可以用于在终端设备处于离线状态下进行交易。其中,一个主账户可以包括多个离线账户,不同离线账户可以属于不同运营机构。运营机构为开立离线账户的机构。一种实施例中,主账户可以指支付宝钱包账户,目标账户可以指支付宝钱包下开立的任一硬件钱包的账户。
[0098] 在一种实现方式中,考虑到不同信息的安全级别不同,可以基于不同信息的安全级别,在不同安全级别的环境中存储相应信息。相应的,终端设备还包含普通执行环境REE。基础交易信息,为交易的基本信息,安全级别一般,可以存储于在REE中运行的支付相关应用对应的存储区域内。身份标识信息,表征目标账户的身份信息,涉及目标账户的隐私信息,且其相对于账户资产而言重要性相对较高,相应的,身份标识信息的安全级别较高,为了保证身份标识信息不易被篡改,身份标识信息可以存储于安全级别较高TEE中。相应的,在步骤S210,在检测到离线场景下的目标账户产生交易的情况下,在TEE中,从REE中运行的支付相关应用,获得基础交易信息,并在TEE的安全存储区域中,获得身份标识信息。
[0099] 其中,支付相关应用可以指该交易产生所依赖的应用。若主账户指支付宝钱包账户,相应的,该支付相关应用可以为支付宝钱包应用。
[0100] S220:将基础交易信息和身份标识信息发送至安全元件。
[0101] 终端设备获得交易对应的基础交易信息和身份标识信息之后,从TEE将基础交易信息和身份标识信息发送至安全元件,其中,该发送为终端设备的内部发送。一种实现中,该安全元件可以是SE。在一种情况中,该安全元件可以是终端设备的内置安全元件,也可以是终端设备的外置安全元件,例如:终端设备为手机的情况下,外置的安全元件可以是Sim卡支持的安全元件。
[0102] S230:在安全元件中,利用所存储的第一私钥对基础交易信息和身份标识信息签名,得到第一签名。
[0103] 安全元件可以存储目标账户的余额以及用于签名的密钥等涉及账户资产及加密的安全级别更高的信息。该类信息存储于安全级别更高的安全元件内,可以防止该类信息被篡改盗用。本步骤中,在安全元件中,利用预设哈希算法,对基础交易信息和身份标识信息进行哈希值计算,得到基础交易信息和身份标识信息对应的哈希值,进而利用安全元件中存储的第一私钥,对该哈希值加密,得到第一签名。
[0104] 一种实施例中,该第一私钥及其对应的第一公钥可以为开立该目标账户时生成的。该生成过程可以是:在开立目标账户时,按照预设公私钥对生成算法,基于预置的设备公私钥对以及目标账户所属主账户的ID,生成第一公私钥对,该第一公私钥对包括第一私钥及其对应的第一公钥。该预设公私钥对生成算法可以是国密算法。该预置的设备公私钥对可以是在首次启动该支付相关应用时生成,并存储于TEE或安全元件中。
[0105] 后续的,生成第一公私钥对之后,可以将第一私钥存储于终端设备的安全元件中,将第一公钥存储于终端设备的安全元件或者TEE中。在一种实施例中,还可以将第一公钥发布于网络。
[0106] S240:在TEE中,对基础交易信息、身份标识信息以及第一签名进行组合,生成交易对应的离线账单,并存储离线账单。
[0107] 在安全元件中签名得到第一签名之后,从安全元件将第一签名发送至TEE,在TEE中,对基础交易信息、身份标识信息以及第一签名进行组合,生成交易对应的离线账单。一种实施方式中,可以是按照预设组合格式,对基础交易信息、身份标识信息以及第一签名进行组合,该预设组合格式中包括各类型信息的前后组合顺序,基于各类型信息的前后组合顺序,依次对基础交易信息、身份标识信息以及第一签名进行组合,得到交易对应的离线账单。
[0108] 举例而言,预设组合格式中包括的各类型信息的前后组合顺序,可以是:交易金额、交易ID、交易类型、交易币种、交易时间、目标账户昵称、与目标账户产生交易的另一账户的昵称、目标账户的ID、目标账户所属运营机构的ID、目标账户所属主账户的ID以及第一签名,则在TEE中,按照上述顺序依次对基础交易信息、身份标识信息以及第一签名进行排序组合。上述过程作为对基础交易信息、身份标识信息以及第一签名进行组合的示例,并不具有限定含义。
[0109] 得到离线账单后,在TEE中存储该离线账单。具体的可以是在TEE的安全存储区域,存储该离线账单。
[0110] 本实施例中,将所需安全级别更高的第一私钥存储于安全元件中,并在其中完成安全级别更高的对基础交易信息和身份标识信息进行签名的步骤;在安全级别次高且数据处理速度快且存储空间相对(相比于安全元件)较大的TEE中,实现对离线账单的组装和生成存储,以利用不同安全级别的数据环境实现对离线账单的组装、签名以及生成存储,充分利用各不同安全级别的数据环境的能力和特点,实现离线账单生成管理过程的安全、效率及普适度的统一,实现对离线账单的更优的存储、管理和同步。可以理解的,TEE安全性高,且存储空间相比于安全元件来说要大很多,可以安全存储大量的离线账单,保证离线账单安全可信不被篡改的同时,避免目标账户离线交易较多、生成的离线账单较多时,出现存储空间不足的情况。
[0111] 在本说明书的另一实施例中,如图3所示,所述方法可以包括如下步骤:
[0112] S310:在检测到离线场景下的目标账户产生交易的情况下,在TEE中获得交易对应的基础交易信息和目标账户的身份标识信息。
[0113] S320:将基础交易信息和身份标识信息发送至安全元件。
[0114] S330:在安全元件中,利用所存储的第一私钥对基础交易信息和身份标识信息签名,得到第一签名。
[0115] S340:在安全元件中,基于基础交易信息,更新目标账户在交易发生后的账户余额。
[0116] S350:在TEE中,对基础交易信息、身份标识信息以及第一签名进行组合,生成交易对应的离线账单,并存储离线账单。
[0117] 其中,S310与图2中所示的S210相同,S320与图2中所示的S220相同,S330与图2中所示的S230相同,S350与图2中所示的S240相同,在此不再赘述。
[0118] 本实施例中,为了避免目标账户余额被篡改,将目标账户的余额存储于安全元件中。在得到第一签名之后,则可以认为该交易可以实施,相应的,在安全元件中,基于基础交易信息中交易金额和交易类型,更新目标账户在交易发生后的账户余额。其中,若交易类型表征为支付类型,则可以是利用安全元件当前所存储的余额减去交易金额,得到金额差值;将该金额差值作为目标账户在交易发生后的账户余额,即将安全元件中存储的余额更新为该金额差值。若交易类型表征为收款类型,则可以是利用安全元件当前所存储的余额加上交易金额,得到金额和值;将该金额和值作为目标账户在交易发生后的账户余额,即将安全元件中存储的余额更新为该金额和值。
[0119] 将目标账户的账户余额存储于安全元件中可以有效避免其被篡改,在一定程度上可以避免目标账户出现双花的情况。在一种情况中,在该交易的交易类型为支付类型的情况下,可能出现该次交易所支付的交易金额超过目标账户当前的账户余额的情况。在该类情况下,为了避免出现目标账户欠款的情况,在本说明书的另一实施例中,基础交易信息包括交易的交易金额和交易类型;在S230,可以包括如下步骤11‑12:
[0120] 11:在交易类型为支付类型的情况下,在安全元件中,判断所存储的账户余额是否不小于交易金额。
[0121] 12:若判断结果为是,则利用所存储的第一私钥对基础交易信息和身份标识信息签名,得到第一签名。
[0122] 本实施例中,可以首先判断交易的交易类型是否为支付类型。在确定交易类型为支付类型的情况下,在安全元件中,进行签名之前,可以先在安全元件中,判断安全元件当前所存储的账户余额是否不小于交易金额。若判断安全元件当前所存储的账户余额不小于交易金额,则利用所存储的第一私钥对基础交易信息和身份标识信息签名,得到第一签名。
[0123] 上述判断交易的交易类型是否为支付类型的步骤可以在TEE中执行也可以在安全元件中执行,这都是可以的。
[0124] 在本说明书的另一实施例中,S230,还可以包括如下步骤13:
[0125] 13:若判断账户余额小于交易金额,输出提示余额不足信息。本实施例中,在判断账户余额小于交易金额的情况下,安全元件可以不继续执行对基础交易信息和身份标识信息签名的步骤,直接输出提示余额不足信息,以提示用户其目标账户的余额不足,更换其他支付方式或更换其他账户进行离线支付。
[0126] 在一种实现中,在TEE中存储离线账单的基础上,终端设备可以提供离线账单查询功能。具体的,在一个实施例中,终端设备可以在支付相关应用的管理界面显示查询离线账单的信息。在终端设备检测到针对查询离线账单的信息的选中操作时,通过支付相关应用基于TEE接口,从TEE查询离线账单,并在支付相关应用的相关界面显示查询到的离线账单。
[0127] 在终端设备处于离线状态的情况下,目标账户每次离线交易所生成的离线账单,存储于终端设备的TEE内,以防止离线账单被篡改。目标账户进行交易时,其对应的账户余额会相应变动。为了资产安全,则需要对目标账户的进行交易后的账户余额进行核实以及确认,而账户余额的核实以及确认需要在相应的用于管理账户相关信息的服务器处进行。在本说明书的另一实施例中,在图2所示流程的基础上,如图4所示,还可以包括如下步骤S250:在检测到终端设备处于联网状态的情况下,通过TEE同步离线账单至服务器。
[0128] 其中,终端设备处于联网状态时,其所连接的网络类型可以是无线局域网络也可以是蜂窝移动网络,这都是可以的。本说明书实施例并不对终端设备处于联网状态的情况下,所连接网络的类型进行限定。
[0129] 一种实现方式中,在检测到终端设备处于联网状态的情况下,终端设备可以直接通过TEE,自动将终端设备在最近一次处于离线状态期间所生成的所有离线账单,发送至服务器,实现离线账单的同步。
[0130] 另一种实现方式中,目标账户所有者可以在终端设备处于联网状态的情况下,手动同步离线账单。相应的,在检测到终端设备处于联网状态的情况下,终端设备显示账单同步提示信息;在检测到针对账单同步提示信息的选中操作时,通过TEE同步离线账单至服务器。本实施方式中,在检测到针对账单同步提示信息的选中操作时,终端设备可以检索TEE中所有未被同步的离线账单,进而通过TEE将所有未被同步的离线账单发送至服务器。
[0131] 在一种实现中,在检测到终端设备处于联网状态的情况下,终端设备在支付相关应用的管理界面显示账单同步提示信息。一种情况下,该账单同步提示信息可以是文字形式的信息,同时显示供目标账户持有者选择是否进行同步的选择按键。在检测到目标账户持有者针对进行同步的选择按键的触发操作时,则认为检测到针对账单同步提示信息的选中操作。进而,终端设备确定TEE中所有未被同步的离线账单,进而通过TEE将所有未被同步的离线账单发送至服务器。在一种情况中,终端设备处于联网状态下,该选择按键可以是高亮显示,终端设备处于离线状态下,该选择按键可以是置灰显示。
[0132] 在TEE将离线账单同步至服务器后,服务器可以基于所接收的各离线账单中的交易类型以及交易金额,以及服务器本地存储的目标账号的当前的账户余额,确定出目标账户进行各离线账单对应的交易后的最新余额。
[0133] 其中,该服务器为管理目标账户的相关信息例如账户余额的服务器。在一种实现中,该服务器可以为开立该目标账户的运营机构的服务器。
[0134] 在离线账单同步过程中,为了避免出现离线账单被拦截,进而被篡改,导致目标账户的资产出现损失的问题的发生,可以对待同步的离线账单进行加密,并将加密后的离线账单发送至服务器;服务器可以对加密后的离线账单解密,得到离线账单,进而基于离线账单更新目标账户对应的账户余额,从而确保资产安全。相应的,在本说明书的另一实施例中,在通过TEE同步离线账单之前,所述方法还可以包括如下步骤21‑23:
[0135] 21:在TEE中,利用随机生成的对称密钥key对离线账单m加密,得到加密后的离线账单E1ke(y m)。一种实现中,可以首先在TEE中,利用密钥随机生成算法,随机生成对称密钥key,进而利用该对称密钥key,采用加密算法E1对离线账单m加密,得到加密后的离线账单E1ke(y m)。其中,该密钥随机生成算法可以是目前任一可随机生成对称密钥的算法。该离线账单包括TEE中当前待同步的一个或多个离线账单。该加密算法E1为对称加密算法。
[0136] 22:在TEE中,利用预置的服务器公钥S‑Pk加密对称密钥key,得到加密后的对称密钥E2S‑p(k key)。其中,该预置的服务器公钥S‑Pk可以由终端设备与服务器预先约定并存储于TEE中。可以理解,此处的加密算法E2为非对称加密算法。
[0137] 23:基于加密后的对称密钥E2S‑p(k key)以及加密后的离线账单E1ke(y m),生成离线账单同步报文。本步骤中,获得加密后的对称密钥E2S‑p(k key)以及加密后的离线账单E1key(m)之后,可以基于预设报文格式,利用加密后的对称密钥E2S‑p(k key)以及加密后的离线账单E1ke(y m),组装离线账单同步报文。该预设报文格式可以是终端设备与服务器之间的通信协议相关的报文格式。
[0138] 相应的,在步骤S250,通过TEE,发送离线账单同步报文至服务器,以使服务器利用服务器私钥、第一私钥对应的第一公钥以及离线账单同步报文,确定目标账户对应的最新余额。
[0139] 终端设备通过TEE,发送离线账单同步报文至服务器。服务器对离线账单同步报文进行解析,得到加密后的对称密钥E2S‑p(k key)以及加密后的离线账单E1ke(y m)。然后,服务器利用其本地安全存储的、与前述公开的服务器公钥S‑Pk对应的服务器私钥S‑Sk,采用E2对应的解密算法解密加密后的对称密钥E2S‑p(k key),可以得到对称密钥key;进而,利用对称密钥key,采用E1对应的解密算法解密加密后的离线账单E1ke(y m),从而还原出离线账单m的明文。接着,可以利用离线账单中的交易类型和交易金额,确定目标账户对应的最新余额。
[0140] 上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
[0141] 相应于上述方法实施例,本说明书实施例提供了一种离线账单生成装置500,应用于终端设备,所述终端设备包含可信执行环境TEE以及基于加密硬件的安全元件,其示意性框图如图5所示,包括:
[0142] 信息获得模块510,配置为在检测到离线场景下的目标账户产生交易的情况下,在所述TEE中获得所述交易对应的基础交易信息和所述目标账户的身份标识信息;
[0143] 信息发送模块520,配置为将所述基础交易信息和所述身份标识信息发送至所述安全元件;
[0144] 签名模块530,配置为在所述安全元件中,利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名;
[0145] 生成存储模块540,配置为在所述TEE中,对所述基础交易信息、所述身份标识信息以及所述第一签名进行组合,生成所述交易对应的离线账单,并存储所述离线账单。
[0146] 在一种实现方式中,所述终端设备还包含普通执行环境REE,
[0147] 所述信息获得模块510,具体配置为从所述REE中运行的支付相关应用,获得所述基础交易信息;
[0148] 从所述TEE的安全存储区域中,获得所述身份标识信息。
[0149] 在一种实现方式中,所述基础交易信息包括如下信息中的至少一个:
[0150] 交易金额、交易ID、交易类型、交易币种、交易时间、目标账户昵称以及与所述目标账户产生交易的另一账户的昵称。
[0151] 在一种实现方式中,所述身份标识信息包括如下信息中的至少一个:
[0152] 所述目标账户的ID、所述目标账户所属运营机构的ID以及所述目标账户所属主账户的ID。
[0153] 在一种实现方式中,所述装置还包括:
[0154] 更新模块(图中未示出),配置为在得到第一签名之后,在所述安全元件中,基于所述基础交易信息,更新所述目标账户在所述交易发生后的账户余额。
[0155] 在一种实现方式中,所述基础交易信息包括所述交易的交易金额和交易类型;
[0156] 所述签名模块530,包括:判断单元(图中未示出),配置为在所述交易类型为支付类型的情况下,在所述安全元件中,判断所存储的账户余额是否不小于所述交易金额;
[0157] 签名单元(图中未示出),配置为若判断结果为是,则利用所存储的第一私钥对所述基础交易信息和所述身份标识信息签名,得到第一签名。
[0158] 在一种实现方式中,所述签名模块430,还包括:
[0159] 提示信息输出单元(图中未示出),配置为若判断所述账户余额小于所述交易金额,输出提示余额不足信息。
[0160] 在一种实现方式中,还包括:同步模块(图中未示出),配置为在检测到所述终端设备处于联网状态的情况下,通过所述TEE同步所述离线账单至服务器。
[0161] 在一种实现方式中,所述同步模块,具体配置为在检测到所述终端处于联网状态的情况下,显示账单同步提示信息;
[0162] 在检测到针对所述账单同步提示信息的选中操作时,通过所述TEE同步所述离线账单至服务器。
[0163] 在一种实现方式中,还包括:第一加密模块(图中未示出),配置为在所述TEE中,利用随机生成的对称密钥对所述离线账单加密,得到加密后的离线账单;
[0164] 第二加密模块(图中未示出),配置为在所述TEE中,利用预置的服务器公钥加密所述对称密钥;
[0165] 报文生成模块(图中未示出),配置为基于加密后的对称密钥以及所述加密后的离线账单,生成离线账单同步报文;
[0166] 所述同步模块,具体配置为通过所述TEE,发送所述离线账单同步报文至服务器,以使所述服务器利用服务器私钥、所述第一私钥对应的第一公钥以及所述离线账单同步报文,确定所述目标账户对应的最新余额。
[0167] 上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
[0168] 本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书所提供的所述离线账单生成方法。
[0169] 本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书所提供的所述离线账单生成方法。
[0170] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
[0171] 本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0172] 以上所述的具体实施方式,对本说明书实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本说明书实施例的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。