一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法及装置与流程

2022-06-05 07:21:56 来源:中国专利 TAG:


1.本发明涉及网络安全技术领域,尤其涉及一种数据传输方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.目前,智能卡的运用极为广泛,由于智能卡同时具备存储与运算能力,可以完成密钥的存储和解密运算工作。因此在植入密钥后,智能卡的安全性要远高于磁条卡、传统ic卡、id卡等设备。
4.智能卡中的密钥是由卡商植入,针对每张智能卡设置的密钥也不同,银行后台可以根据卡号匹配对应密钥与智能卡进行数据传输。但是,在卡商的系统安全受到威胁时,智能卡的密钥也可能被泄露,导致银行后台系统与智能卡进行数据传输时的数据安全受到威胁,传输数据容易遭到泄露;另外,智能卡和银行后台服务器之间进行数据传输时,需要通过终端设备提供互联网接入环境,如果终端设备本身(手机,智能pos机,pc机等)存在木马、后门等情况,即使传输的数据进行了加密,也无法保证数据安全,因此,在数据传输过程中还存在通信渠道的各种威胁。


技术实现要素:

5.本发明实施例提供一种数据传输方法,用以避免因卡商的系统安全受到威胁而导致智能卡的密钥被泄露,以及避免数据传输过程中通信渠道的各种安全威胁,保障银行后台系统与智能卡进行数据传输时的数据安全,该方法应用于智能卡,该方法包括:
6.向银行后台服务器发送更新通信主密钥zmk请求;
7.接收银行后台服务器根据所述更新zmk请求反馈的多个心跳包信息,所述多个心跳包信息为银行后台服务器调用硬件加密机生成第一随机数,利用第一随机数生成的多个心跳包信息;
8.根据多个心跳包信息生成第二随机数;
9.以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;
10.将智能卡公钥发送至银行后台服务器,以使银行后台服务器调用硬件加密机生成zmk明文,利用智能卡公钥对zmk明文加密,生成zmk密文;
11.接收银行后台服务器发送的zmk密文;
12.利用智能卡私钥对zmk密文进行解密,得到zmk明文;
13.使用zmk明文作为主密钥与银行后台服务器进行数据传输。
14.本发明实施例还提供一种数据传输方法,用以避免因卡商的系统安全受到威胁而导致智能卡的密钥被泄露,以及避免数据传输过程中通信渠道的各种安全威胁,保障银行后台系统与智能卡进行数据传输时的数据安全,该方法应用于银行后台服务器,该方法包
括:
15.在接收到智能卡发送的更新通信主密钥zmk请求的情况下,调用硬件加密机生成第一随机数;
16.利用第一随机数生成多个心跳包信息;
17.将多个心跳包信息发送至智能卡,以使智能卡根据多个心跳包信息生成第二随机数;以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;
18.接收智能卡发送的智能卡公钥;
19.调用硬件加密机生成zmk明文;
20.利用智能卡公钥对zmk明文加密,生成zmk密文;
21.将zmk密文发送至智能卡,以使智能卡利用智能卡私钥对zmk密文进行解密,得到zmk明文;
22.使用zmk明文作为主密钥与智能卡进行数据传输。
23.本发明实施例还提供一种数据传输装置,用以避免因卡商的系统安全受到威胁而导致智能卡的密钥被泄露,以及避免数据传输过程中通信渠道的各种安全威胁,保障银行后台系统与智能卡进行数据传输时的数据安全,该装置应用于智能卡,该装置包括:
24.第一发送模块,用于向银行后台服务器发送更新通信主密钥zmk请求;
25.第二接收模块,用于接收银行后台服务器根据所述更新zmk请求反馈的多个心跳包信息,所述多个心跳包信息为银行后台服务器调用硬件加密机生成第一随机数,利用第一随机数生成的多个心跳包信息;
26.随机数生成模块,用于根据多个心跳包信息生成第二随机数;
27.密钥生成模块,用于以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;
28.第一发送模块,用于将智能卡公钥发送至银行后台服务器,以使银行后台服务器调用硬件加密机生成zmk明文,利用智能卡公钥对zmk明文加密,生成zmk密文;
29.第二接收模块,用于接收银行后台服务器发送的zmk密文;
30.解密模块,用于利用智能卡私钥对zmk密文进行解密,得到zmk明文;
31.数据传输模块,用于使用zmk明文作为主密钥与银行后台服务器进行数据传输。
32.本发明实施例还提供一种数据传输装置,用以避免因卡商的系统安全受到威胁而导致智能卡的密钥被泄露,以及避免数据传输过程中通信渠道的各种安全威胁,保障银行后台系统与智能卡进行数据传输时的数据安全,该装置应用于银行后台服务器,该装置包括:
33.随机数生成模块,用于在接收到智能卡发送的更新通信主密钥zmk请求的情况下,调用硬件加密机生成第一随机数;
34.心跳包生成模块,用于利用第一随机数生成多个心跳包信息;
35.第一发送模块,用于将多个心跳包信息发送至智能卡,以使智能卡根据多个心跳包信息生成第二随机数,以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;
36.接收模块,用于接收智能卡发送的智能卡公钥;
37.密钥生成模块,用于调用硬件加密机生成zmk明文;
38.加密模块,用于利用智能卡公钥对zmk明文加密,生成zmk密文;
39.第二发送模块,用于将zmk密文发送至智能卡,以使智能卡利用智能卡私钥对zmk密文进行解密,得到zmk明文;
40.数据传输模块,用于使用zmk明文作为主密钥与智能卡进行数据传输。
41.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据传输方法。
42.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法。
43.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法。
44.本发明实施例中,智能卡向银行后台服务器发送更新通信主密钥zmk请求;接收银行后台服务器根据所述更新zmk请求反馈的多个心跳包信息,所述多个心跳包信息为银行后台服务器调用硬件加密机生成第一随机数,利用第一随机数生成的多个心跳包信息;根据多个心跳包信息生成第二随机数;以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;将智能卡公钥发送至银行后台服务器,以使银行后台服务器调用硬件加密机生成zmk明文,利用智能卡公钥对zmk明文加密,生成zmk密文;接收银行后台服务器发送的zmk密文;利用智能卡私钥对zmk密文进行解密,得到zmk明文;使用zmk明文作为主密钥与银行后台服务器进行数据传输。与现有的智能卡由卡商植入密钥的技术方案相比,用于数据传输的zmk密钥由银行后台服务器的硬件加密机生成,安全性极高;而且,在密钥同步过程中,智能卡利用银行后台服务器提供的心跳包信息生成的第二随机数,根据第二随机数建立非对称密钥,由非对称密钥中的公钥对银行后台服务器生成的zmk明文进行加密传输,由于智能卡实际获取心跳包的时间是无法探测和重放的,因此,可以避免数据传输过程中通信渠道的各种安全威胁,从而可以确保密钥同步过程的安全性,避免通信主密钥泄露,从而可以保障银行后台与智能卡进行数据传输时的数据安全。
45.本发明实施例中,银行后台服务器在接收到智能卡发送的更新通信主密钥zmk请求的情况下,调用硬件加密机生成第一随机数;利用第一随机数生成多个心跳包信息;将多个心跳包信息发送至智能卡,以使智能卡根据多个心跳包信息生成第二随机数;以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;接收智能卡发送的智能卡公钥;调用硬件加密机生成zmk明文;利用智能卡公钥对zmk明文加密,生成zmk密文;将zmk密文发送至智能卡,以使智能卡利用智能卡私钥对zmk密文进行解密,得到zmk明文;使用zmk明文作为主密钥与智能卡进行数据传输。与现有的智能卡由卡商植入密钥的技术方案相比,用于数据传输的zmk密钥由银行后台服务器的硬件加密机生成,安全性极高;而且,在密钥同步过程中,智能卡利用银行后台服务器提供的心跳包信息生成的第二随机数,根据第二随机数建立非对称密钥,由非对称密钥中的公钥对银行后台服务器生成的zmk明文进行加密传输,由于智能卡实际获取心跳包的时间是无法探测和重放的,因此,可以避免数据传输过程中通信渠道的各种安全威胁,从而可以确保密钥同步过程的安全性,避免通信主密钥泄露,从而可以保障银行后台与智能卡进行数据传输时的数据安
全。
附图说明
46.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
47.图1为本发明实施例中提供的一种应用于智能卡的数据传输方法的流程图;
48.图2为本发明实施例中的客户持智能卡通过终端设备的互联网与银行数据中心建立通信连接的示例图;
49.图3为本发明实施例中提供的又一种应用于智能卡的数据传输方法的流程图;
50.图4为本发明实施例中提供的又一种应用于智能卡的数据传输方法的流程图;
51.图5为本发明实施例中提供的又一种应用于智能卡的数据传输方法的流程图;
52.图6为本发明实施例中提供的又一种应用于智能卡的数据传输方法的流程图;
53.图7为本发明实施例中提供的一种应用于银行后台服务器的数据传输方法的流程图;
54.图8为本发明实施例中提供的一种应用于智能卡的数据传输装置的示意图;
55.图9为本发明实施例中提供的一种应用于银行后台服务器的数据传输装置的示意图。
具体实施方式
56.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
57.在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本技术的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
58.经研究发现,智能卡可以采用内置的密钥对输入数据进行计算后输出,然后判断输出数据是否正确。由于每次数据不同,且内置密钥无法被访问,所以在安全性上要远高于磁条卡、传统ic卡、id卡等设备,但是,智能卡的运用又引入了新的问题,即智能卡中的密钥必须通过可信赖的渠道写入,且必须确保密钥不被泄露,才能满足其保密性,否则一切安全功能均无从谈起。
59.针对上述问题,本发明实施例提供了一种数据传输方法及装置,用以保障智能卡密钥写入过程的安全性,避免因密钥被泄露而导致数据传输过程的安全受到威胁。
60.如图1所示,为本发明实施例提供的一种应用于智能卡的数据传输方法的流程图,
该方法包括以下步骤:
61.步骤101,向银行后台服务器发送更新通信主密钥zmk请求;
62.步骤102,接收银行后台服务器根据所述更新zmk请求反馈的多个心跳包信息,所述多个心跳包信息为银行后台服务器调用硬件加密机生成第一随机数,利用第一随机数生成的多个心跳包信息;
63.步骤103,根据多个心跳包信息生成第二随机数;
64.步骤104,以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;
65.步骤105,将智能卡公钥发送至银行后台服务器,以使银行后台服务器调用硬件加密机生成zmk明文,利用智能卡公钥对zmk明文加密,生成zmk密文;
66.步骤106,接收银行后台服务器发送的zmk密文;
67.步骤107,利用智能卡私钥对zmk密文进行解密,得到zmk明文;
68.步骤108,使用zmk明文作为主密钥与银行后台服务器进行数据传输。
69.与现有的智能卡由卡商植入密钥的技术方案相比,本发明实施例中,用于数据传输的zmk密钥由银行后台服务器的硬件加密机生成,安全性极高;而且,在zmk密钥同步过程中,智能卡利用银行后台服务器提供的心跳包信息生成的第二随机数,根据第二随机数建立非对称密钥,由非对称密钥中的公钥对银行后台服务器生成的zmk明文进行加密传输,由于智能卡实际获取心跳包的时间是无法探测和重放的,因此,可以避免数据传输过程中通信渠道的各种安全威胁,从而可以确保密钥同步过程的安全性,避免通信主密钥泄露,从而可以保障银行后台与智能卡进行数据传输时的数据安全。
70.本发明实施例中的智能卡是指:由在塑料卡片中内嵌含有处理器、存储器和输入输出接口的ic卡芯片制成的,用于完成特定功能的卡设备。智能卡的应用具有多种形式,在本发明实施例中,可以是具备安全加密功能的sim卡、nfc银行卡等。
71.另外,需要说明的是,智能卡无法直接连接互联网,在智能卡和银行后台服务器之间进行数据传输时,需要通过终端设备提供互联网接入环境。终端设备可以为pos、atm、智能柜台、商户收款机、手机等。例如,图2为客户持智能卡通过终端设备的互联网与银行数据中心建立通信连接的示例图。
72.本发明实施例中,上述步骤101至上述步骤107,是在进行数据传输之前,智能卡与银行后台服务器同步通信主密钥zmk的步骤。在同步zmk之后,zmk存储在智能卡的内置芯片中,无法被直接访问,仅能参与加解密计算处理。
73.这样,本发明实施例中通过银行后台服务器生成通信主密钥,并将通信主密钥同步至智能卡,客户不需要前往银行柜台办理智能卡的初始化业务,仅通过终端设备的互联网连接银行后台服务器即可完成;且在智能卡的有效期满之后,客户也不需要更换智能卡,仅通过定期同步新的通信主密钥zmk即可,从而节省了智能卡的使用成本和银行的运营成本,同时提高了客户体验。
74.本发明实施例中,智能卡与银行后台服务器同步通信主密钥zmk之后,可以使用通信主密钥进行通信。具体的,智能卡在与银行后台服务器进行数据传输时,可以作为发送方,也可以作为接收方。在智能卡为发送方时,银行后台服务器为接收方;在智能卡为接收方时,银行后台服务器为发送方。
75.本发明实施例中,在智能卡作为发送方时,如图3所示,上述步骤108具体可以包括:
76.步骤301,在智能卡作为发送方的情况下,生成第三随机数;
77.步骤302,利用第三随机数和zmk明文生成第一工作密钥zpk;
78.步骤303,使用第一zpk对第一待传输数据进行加密,生成第一数据密文;
79.步骤304,将第三随机数和第一数据密文发送至银行后台服务器,以使银行后台服务器利用第三随机数和zmk明文生成第一zpk,利用第一zpk对第一数据密文进行解密。
80.本发明实施例中,在智能卡作为发送方时,且需要连续多次发送不同的数据时,上述步骤304之后,如图4所示,还可以包括:
81.步骤401,在预设时长内传输第二待传输数据时,通过预设密钥算法修改第三随机数;
82.步骤402,利用修改后的第三随机数和zmk明文生成第二zpk;
83.步骤403,利用第二zpk对第二待传输数据进行加密,生成第二数据密文;
84.步骤404,将第二数据密文发送至银行后台服务器,以使银行后台服务器执行如下操作:通过与智能卡相同的预设密钥算法修改第三随机数,利用修改后的第三随机数和zmk明文生成第二zpk,利用第二zpk对第二数据密文进行解密。
85.本发明实施例中,在智能卡作为接收方时,如图5所示,上述步骤108具体可以包括:
86.步骤501,在智能卡作为接收方的情况下,接收银行后台服务器发送的第四随机数和第三数据密文,所述第三数据密文是银行后台服务器利用第四随机数和zmk明文生成的第三zpk,利用第三zpk对第三待传输数据进行加密得到的;
87.步骤502,利用第四随机数和zmk明文生成第三zpk;
88.步骤503,利用第三zpk对第三数据密文进行解密。
89.本发明实施例中,在智能卡作为接收方时,且连续多次接收到银行后台服务器发送的不同的数据密文时,上述步骤503之后,如图6所示,还可以包括:
90.步骤601,在预设时长内接收到银行后台服务器发送的第四数据密文时,通过与银行后台服务器相同的预设密钥算法修改第四随机数,所述第四数据密文是银行后台服务器利用修改后的第四随机数和zmk明文生成的第四zpk,利用第四zpk对第四待传输数据进行加密得到的;
91.步骤602,利用修改后的第四随机数和zmk明文生成第四zpk;
92.步骤603,利用第四zpk对第四数据密文进行解密。
93.本发明实施例中,在智能卡在与银行后台服务器进行数据传输时,由于加密数据的zpk是由发送方的随机数和zmk生成,即使中间渠道即使截获了数据,也无法破解,排除一切中间渠道的安全威胁,使得数据的安全性得到了保障。
94.另外,在智能卡在与银行后台服务器进行连续数据传输(即可以理解为在预设时长内传输不同的数据)时,不需要多次发送随机数至接收方,只需要发送方和接收方通过相同的密钥算法修改第一次数据传输时发送的随机数,利用修改后的随机数和zmk生成zpk,进而可以使得每次传输数据都使用不同的密钥加密,从而可以增加破解密钥的困难度,提高数据的安全性,同时,也提高了数据处理的效率。
95.本发明实施例还提供的一种应用于银行后台服务器的数据传输方法,如图7所示,该方法可以包括以下步骤:
96.步骤701,在接收到智能卡发送的更新通信主密钥zmk请求的情况下,调用硬件加密机生成第一随机数;
97.步骤702,利用第一随机数生成多个心跳包信息;
98.步骤703,将多个心跳包信息发送至智能卡,以使智能卡根据多个心跳包信息生成第二随机数,以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;
99.步骤704,接收智能卡发送的智能卡公钥;
100.步骤705,调用硬件加密机生成zmk明文;
101.步骤706,利用智能卡公钥对zmk明文加密,生成zmk密文;
102.步骤707,将zmk密文发送至智能卡,以使智能卡利用智能卡私钥对zmk密文进行解密,得到zmk明文;
103.步骤708,使用zmk明文作为主密钥与智能卡进行数据传输。
104.与现有的智能卡由卡商植入密钥的技术方案相比,本发明实施例中,用于数据传输的zmk密钥由银行后台服务器的硬件加密机生成,安全性极高;而且,在密钥同步过程中,智能卡利用银行后台服务器提供的心跳包信息生成的第二随机数,根据第二随机数建立非对称密钥,由非对称密钥中的公钥对银行后台服务器生成的zmk明文进行加密传输,由于智能卡实际获取心跳包的时间是无法探测和重放的,因此,可以避免数据传输过程中通信渠道的各种安全威胁,从而可以确保密钥同步过程的安全性,避免通信主密钥泄露,从而可以保障银行后台与智能卡进行数据传输时的数据安全。
105.本发明实施例中,上述步骤702,具体可以包括:
106.利用分组算法,将第一随机数拆分为多个第一子随机数;
107.利用每一第一子随机数生成一个心跳包信息;
108.上述步骤702,具体可以包括:
109.利用分组算法,将第一随机数拆分为多个第二子随机数;
110.利用哈希算法,对多个第二子随机数进行散列;
111.将散列后的第二子随机数作为发送多个心跳包信息的时间间隔,依次将多个心跳包信息发送至智能卡。
112.本发明实施例中,第一随机数为通过硬件加密机产生的随机数,可视为近似真随机数,或者难以破解的随机数;而且,银行后台服务器通过将第一随机数拆分成若干条心跳包返回给智能卡,发送心跳包的时间间隔通过哈希算法散列,使得计算得到的时间间隔各不相同,且无法被逆推,同时,由于随机发生与网络状况等各种因素原因,智能卡收到心跳包的时间间隔数据完全无法破解或探测,且相差0.01毫秒时结果会完全不同,因此,安全性极高。
113.本发明实施例中,银行后台服务器在与智能卡进行数据传输时,可以作为发送方,也可以作为接收方。具体地,在银行后台服务器为发送方时,智能卡为接收方;在银行后台服务器为接收方时,智能卡为发送方。
114.本发明实施例中,在银行后台服务器作为接收方时,上述步骤708,具体可以包括:
115.在银行后台服务器作为接收方的情况下,接收智能卡发送的第三随机数和第一数据密文,所述第一数据密文是智能卡利用第三随机数和zmk明文生成的第一工作密钥zpk,利用第一zpk对第一待传输数据进行加密得到的;
116.利用第三随机数和zmk明文生成第一zpk;
117.利用第一zpk对第一数据密文进行解密。
118.本发明实施例中,在银行后台服务器作为接收方时,且连续多次接收到智能卡发送的不同的数据密文时,利用第一zpk对第一数据密文进行解密之后,还可以包括:
119.在预设时长内接收到智能卡发送的第二数据密文时,通过与智能卡相同的预设密钥算法修改第三随机数,所述第二数据密文是智能卡利用修改后的第三随机数和zmk明文生成的第二zpk,利用第二zpk对第二待传输数据进行加密得到的;
120.利用修改后的第三随机数和zmk明文生成第二zpk;
121.利用第二zpk对第二数据密文进行解密。
122.本发明实施例中,在银行后台服务器作为发送方时,上述步骤708,具体可以包括:
123.在银行后台服务器作为发送方的情况下,生成第四随机数;
124.利用第四随机数和zmk明文生成第三zpk;
125.利用第三zpk对第三待传输数据进行加密,生成第三数据密文;
126.将第四随机数和第三数据密文发送至智能卡,以使智能卡利用第四随机数和zmk明文生成第三zpk,利用第三zpk对第三数据密文进行解密。
127.本发明实施例中,在银行后台服务器作为发送方时,且需要连续多次发送不同的数据时,将第四随机数和第三数据密文发送至智能卡之后,还包括:
128.在预设时长内传输第四待传输数据时,通过预设密钥算法修改第四随机数;
129.利用修改后的第四随机数和zmk明文生成第四zpk;
130.利用第四zpk对第四待传输数据进行加密,生成第四数据密文;
131.将第四数据密文发送至智能卡,以使智能卡执行如下操作:通过与银行后台服务器相同的预设密钥算法修改第四随机数,利用修改后的第四随机数和zmk明文生成第四zpk,利用第四zpk对第四数据密文进行解密。
132.本发明实施例中,在智能卡在与银行后台服务器进行数据传输时,由于加密数据的zpk是由发送方的随机数和zmk生成,即使中间渠道即使截获了数据,也无法破解,排除一切中间渠道的安全威胁,使得数据的安全性得到了保障。
133.另外,在智能卡在与银行后台服务器进行连续数据传输(可以理解为在预设时长内传输不同的数据)时,不需要多次发送随机数至接收方,只需要发送方和接收方通过相同的密钥算法修改第一次数据传输时发送的随机数,利用修改后的随机数和zmk生成zpk,进而可以使得每次传输数据都使用不同的密钥加密,从而可以增加破解密钥的困难度,提高数据的安全性,同时,也提高了数据处理的效率。
134.下面对图1、图3至图7所述的数据传输方法进行详细的说明。
135.一建立通信连接
136.智能卡插入终端设备读卡器,通过终端设备的互联网,与银行后台服务器建立通信连接。
137.二同步通信主密钥zmk
138.1.智能卡向银行后台服务器发送更新通信主密钥zmk请求。
139.此处,zmk为对称密钥。
140.2.银行后台服务器接收更新zmk请求,调用硬件加密机生成第一随机数。
141.此处,第一随机数通过硬件加密机产生,可视为近似真随机数,或者难以破解的随机数,安全性极高。
142.3.银行后台服务器利用第一随机数生成多个心跳包信息,将多个心跳包信息发送至智能卡。
143.具体的,银行后台服务器利用分组算法,将第一随机数拆分为多个第一子随机数;利用每一第一子随机数生成一个心跳包信息;利用分组算法,将第一随机数拆分为多个第二子随机数;利用哈希算法,对多个第二子随机数进行散列;将散列后的第二子随机数作为发送多个心跳包信息的时间间隔,依次将多个心跳包信息发送至智能卡。
144.此处,心跳包数量不定,一般可以为8-160个;发送心跳包的时间间隔各不相同,通常可以为几十到几百毫秒。最终的时间间隔以智能卡收到并处理时间为准,通常可以精确到0.1~0.01毫秒,外界无法感知,计算时通过哈希算法对时间间隔数据进行散列,以确保无法被逆推,且相差0.01毫秒时结果会完全不同,因此,无法被中间渠道探测或破解。
145.4.智能卡根据多个心跳包信息生成第二随机数;以第二随机数作为随机数种子,生成非对称密钥,非对称密钥包括智能卡公钥和智能卡私钥。
146.此处,银行后台服务器利用心跳包的形式协助智能卡产生较为可靠的随机数,智能卡通过该随机数建立临时通信的非对称密钥,该密钥不容易被破解,更加安全可靠。
147.5.智能卡将智能卡公钥发送至银行后台服务器。
148.此处,智能卡公钥是以明文的形式发送至银行后台服务器的。
149.6.银行后台服务器接收到智能卡公钥后,调用硬件加密机生成zmk明文,利用智能卡公钥对zmk明文加密,生成zmk密文,将zmk密文发送至智能卡。
150.此处,银行后台服务器得到zmk明文后,将zmk明文通过本地密钥加密后留存。
151.7.智能卡接收到zmk密文,利用智能卡私钥对zmk密文进行解密,得到zmk明文,可以使用zmk明文作为主密钥与银行后台服务器进行数据传输。
152.此处,智能卡应满足安全芯片规范,zmk存储在芯片中无法被直接访问,仅能参与加解密计算处理。
153.三通信过程
154.通信过程可以分为仅传输一次数据;或连续多次传输不同的数据。而且,为提升智能卡的处理效率,通讯过程中均为对称加密。
155.智能卡为发送方,银行后台服务器为接收方时的数据传输步骤:
156.1.智能卡生成第三随机数;利用第三随机数和zmk明文生成第一工作密钥zpk。
157.此处,生成第一zpk为通过分组算法计算得到。每次传输数据时,随机数均不相同,因此,生成的zpk也不相同。也就是说,可以确保每次通信采用不同密钥,提高数据传输的安全性。
158.2.智能卡使用第一zpk对第一待传输数据进行加密,生成第一数据密文;将第三随机数和第一数据密文发送至银行后台服务器。
159.3.银行后台服务器接收智能卡发送的第三随机数和第一数据密文,利用第三随机
数和zmk明文生成第一zpk,利用第一zpk对第一数据密文进行解密。
160.此处,银行后台服务器通过与智能卡相同的分组算法生成第一zpk。
161.4.智能卡在预设时长内传输第二待传输数据时(即连续多次传输不同的数据),通过预设密钥算法修改第三随机数;利用修改后的第三随机数和zmk明文生成第二zpk;利用第二zpk对第二待传输数据进行加密,生成第二数据密文;将第二数据密文发送至银行后台服务器。
162.此处,预设密钥算法可以为sm4/cbc加密算法,该算法中需预置初始向量iv,加密时按照block长度进行(sm4算法中block长度为16字节),每个block块数据的加密结果作为下一个block块数据的初始向量。在此规范下智能卡如在一个业务周期内传送多个数据报文,那每个报文的初始向量无需另行指定,而是采用上一报文中最后一个block的结果即可。如此,可以使得每一次数据传输所使用的加密数据的密钥均不相同,保障了数据的安全。
163.需要说明的是,若智能卡不是在预设时长内传输数据,则需要智能卡重新生成随机数,以及根据新生成的随机数和zmk生成zpk,并将随机数和数据密文一起发送至银行后台服务器。
164.5.银行后台服务器在接收到智能卡发送的第二数据密文时,通过与智能卡相同的预设密钥算法修改第三随机数,利用修改后的第三随机数和zmk明文生成第二zpk,利用第二zpk对第二数据密文进行解密。
165.银行后台服务器为发送方,智能卡为接收方时的数据传输步骤:
166.1.银行后台服务器生成第四随机数;利用第四随机数和zmk明文生成第三zpk。
167.2.银行后台服务器利用第三zpk对第三待传输数据进行加密,生成第三数据密文;将第四随机数和第三数据密文发送至智能卡。
168.3.智能卡接收银行后台服务器发送的第四随机数和第三数据密文,利用第四随机数和zmk明文生成第三zpk,利用第三zpk对第三数据密文进行解密。
169.4.银行后台服务器在预设时长内传输第四待传输数据时,通过预设密钥算法修改第四随机数;利用修改后的第四随机数和zmk明文生成第四zpk;利用第四zpk对第四待传输数据进行加密,生成第四数据密文;将第四数据密文发送至智能卡。
170.5.智能卡接收第四数据密文,通过与银行后台服务器相同的预设密钥算法修改第四随机数,利用修改后的第四随机数和zmk明文生成第四zpk,利用第四zpk对第四数据密文进行解密。
171.本发明实施例中,智能卡可以为sim卡,sim卡可以通过手机连接银行后台服务器。作为一个示例,下面详细说明sim卡与银行后台服务器的数据传输过程。
172.一建立通信连接
173.sim卡通过手机的互联网,与银行后台服务器建立通信连接。
174.二准备过程
175.1.sim卡通过手机app向银行后台服务器发送更新(或同步)zmk请求。
176.2.银行后台服务器接收更新zmk请求,调用硬件加密机生成随机数rs。利用rs生成多个心跳包信息,将多个心跳包信息发送至sim卡。
177.具体的,银行后台服务器利用分组算法,将rs拆分为多个第一子随机数;利用每一
第一子随机数生成一个心跳包信息;再次利用分组算法,将rs拆分为多个第二子随机数;利用哈希算法,对多个第二子随机数进行散列;将散列后的第二子随机数作为发送多个心跳包信息的时间间隔,依次将多个心跳包信息发送至sim卡。
178.3.sim卡根据多个心跳包信息生成第二随机数;以第二随机数作为随机数种子,生成非对称密钥,非对称密钥包括sim卡公钥和sim卡私钥。将sim卡公钥发送至银行后台服务器。
179.4.银行后台服务器接收到sim卡公钥后,调用硬件加密机生成zmk明文,以及对应的mac校验值,利用sim卡公钥对zmk明文和mac校验值加密之后发送至sim卡。由于数据加密且具备mac校验值,故即使从手机端截获数据,也无法完成破解和篡改。
180.5.银行后台服务器通过硬件加密机再次生成随机数,通过zmk加密传输至sim卡。
181.6.sim卡将银行后台服务器通过硬件加密机再次生成随机数作为随机数种子,生成一对随机非对称密钥,私钥作为数字签名使用,并将公钥封装为p10证书请求后,发送至银行后台服务器。
182.7.银行后台服务器对p10请求完成签发证书后,将该证书后台保存,同时通过加密方式回传至sim卡。
183.zmk和签名私钥均保存于sim卡的安全域中,无法被读取。
184.三使用过程(数据传输加解密):
185.1.sim卡内部生成随机zpk,并使用随机zpk对数据明文加密,生成数据密文。
186.2.sim卡使用zmk加密zpk,生成zpk密文。
187.3.sim卡将数据密文和zpk密文发送至银行后台服务器。
188.4.银行后台服务器采用zmk解密zpk密文,得到zpk明文;采用zpk明文解密数据密文,得到原始数据。
189.以上加解密过程双向可用,数据独立保密性强,在手机端被截获后无法实现解密。
190.四使用过程(数字签名):
191.1.在使用手机app时,每进行一笔交易时,sim卡均会生成一条数字签名,与交易绑定。
192.2.银行后台服务器采用数字证书验证签名,即可识别客户身份。
193.需要说明的是,本发明实施提供的数据传输方法,还可以应用于u盾与银行后台服务器的数据传输过程。
194.本发明实施例中,存在以下有益效果:
195.1.智能卡与银行后台直接加密通信,排除一切中间渠道的安全威胁,甚至卡商都无法破解,各终端设备仅提供通信链路,无法影响通信内容。
196.2.密钥同步主要安全机制依赖于银行的硬件加密机,其他硬件只起辅助作用,安全性很高。
197.3.使用成本低,与其他方案相比,几乎没有额外的硬件投入。客户的卡片无需到期更换,仅定期同步新的通信主密钥zmk即可。
198.4.避免了客户必须通过柜台实现卡片初始化操作,节省了银行的运营成本,同时提高了客户体验。
199.5.安全通道建立以后,整个运营过程均采用对称加密算法,使卡片处理效率达到
最大化。
200.本发明实施例中还提供了一种数据传输装置,如下面的实施例所述。由于该装置解决问题的原理与数据传输方法相似,因此该装置的实施可以参见数据传输方法的实施,重复之处不再赘述。
201.如图8所示,为本发明实施例提供的一种应用于智能卡的数据传输装置的示意图,所述装置包括:
202.第一发送模块801,用于向银行后台服务器发送更新通信主密钥zmk请求;
203.第二接收模块802,用于接收银行后台服务器根据所述更新zmk请求反馈的多个心跳包信息,所述多个心跳包信息为银行后台服务器调用硬件加密机生成第一随机数,利用第一随机数生成的多个心跳包信息;
204.随机数生成模块803,用于根据多个心跳包信息生成第二随机数;
205.密钥生成模块804,用于以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;
206.第一发送模块805,用于将智能卡公钥发送至银行后台服务器,以使银行后台服务器调用硬件加密机生成zmk明文,利用智能卡公钥对zmk明文加密,生成zmk密文;
207.第二接收模块806,用于接收银行后台服务器发送的zmk密文;
208.解密模块807,用于利用智能卡私钥对zmk密文进行解密,得到zmk明文;
209.数据传输模块808,用于使用zmk明文作为主密钥与银行后台服务器进行数据传输。
210.本发明实施例中,数据传输模块808,具体用于:
211.在智能卡作为发送方的情况下,生成第三随机数;
212.利用第三随机数和zmk明文生成第一工作密钥zpk;
213.使用第一zpk对第一待传输数据进行加密,生成第一数据密文;
214.将第三随机数和第一数据密文发送至银行后台服务器,以使银行后台服务器利用第三随机数和zmk明文生成第一zpk,利用第一zpk对第一数据密文进行解密。
215.本发明实施例中,数据传输模块808,具体还用于:
216.在预设时长内传输第二待传输数据时,通过预设密钥算法修改第三随机数;
217.利用修改后的第三随机数和zmk明文生成第二zpk;
218.利用第二zpk对第二待传输数据进行加密,生成第二数据密文;
219.将第二数据密文发送至银行后台服务器,以使银行后台服务器执行如下操作:通过与智能卡相同的预设密钥算法修改第三随机数,利用修改后的第三随机数和zmk明文生成第二zpk,利用第二zpk对第二数据密文进行解密。
220.本发明实施例中,数据传输模块808,具体还用于:
221.在智能卡作为接收方的情况下,接收银行后台服务器发送的第四随机数和第三数据密文,所述第三数据密文是银行后台服务器利用第四随机数和zmk明文生成的第三zpk,利用第三zpk对第三待传输数据进行加密得到的;
222.利用第四随机数和zmk明文生成第三zpk;
223.利用第三zpk对第三数据密文进行解密。
224.本发明实施例中,数据传输模块808,具体还用于:
225.在接收到银行后台服务器发送的第四数据密文时,通过与银行后台服务器相同的预设密钥算法修改第四随机数,所述第四数据密文是银行后台服务器利用修改后的第四随机数和zmk明文生成的第四zpk,利用第四zpk对第四待传输数据进行加密得到的;
226.利用修改后的第四随机数和zmk明文生成第四zpk;
227.利用第四zpk对第四数据密文进行解密。
228.如图9所示,为本发明实施例提供的一种应用于银行后台服务器的数据传输装置的示意图,所述装置包括:
229.随机数生成模块901,用于在接收到智能卡发送的更新通信主密钥zmk请求的情况下,调用硬件加密机生成第一随机数;
230.心跳包生成模块902,用于利用第一随机数生成多个心跳包信息;
231.第一发送模块903,用于将多个心跳包信息发送至智能卡,以使智能卡根据多个心跳包信息生成第二随机数,以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;
232.接收模块904,用于接收智能卡发送的智能卡公钥;
233.密钥生成模块905,用于调用硬件加密机生成zmk明文;
234.加密模块906,用于利用智能卡公钥对zmk明文加密,生成zmk密文;
235.第二发送模块907,用于将zmk密文发送至智能卡,以使智能卡利用智能卡私钥对zmk密文进行解密,得到zmk明文;
236.数据传输模块908,用于使用zmk明文作为主密钥与智能卡进行数据传输。
237.本发明实施例中,心跳包生成模块902,具体用于:
238.利用分组算法,将第一随机数拆分为多个第一子随机数;
239.利用每一第一子随机数生成一个心跳包信息;
240.第一发送模块903,具体用于:
241.利用分组算法,将第一随机数拆分为多个第二子随机数;
242.利用哈希算法,对多个第二子随机数进行散列;
243.将散列后的第二子随机数作为发送多个心跳包信息的时间间隔,依次将多个心跳包信息发送至智能卡。
244.本发明实施例中,数据传输模块908,具体用于:
245.在银行后台服务器作为接收方的情况下,接收智能卡发送的第三随机数和第一数据密文,所述第一数据密文是智能卡利用第三随机数和zmk明文生成的第一工作密钥zpk,利用第一zpk对第一待传输数据进行加密得到的;
246.利用第三随机数和zmk明文生成第一zpk;
247.利用第一zpk对第一数据密文进行解密。
248.本发明实施例中,数据传输模块908,具体还用于:
249.在接收到智能卡发送的第二数据密文时,通过与智能卡相同的预设密钥算法修改第三随机数,所述第二数据密文是智能卡利用修改后的第三随机数和zmk明文生成的第二zpk,利用第二zpk对第二待传输数据进行加密得到的;
250.利用修改后的第三随机数和zmk明文生成第二zpk;
251.利用第二zpk对第二数据密文进行解密。
252.本发明实施例中,数据传输模块908,具体还用于:
253.在银行后台服务器作为发送方的情况下,生成第四随机数;
254.利用第四随机数和zmk明文生成第三zpk;
255.利用第三zpk对第三待传输数据进行加密,生成第三数据密文;
256.将第四随机数和第三数据密文发送至智能卡,以使智能卡利用第四随机数和zmk明文生成第三zpk,利用第三zpk对第三数据密文进行解密。
257.本发明实施例中,数据传输模块908,具体还用于:
258.在预设时长内传输第四待传输数据时,通过预设密钥算法修改第四随机数;
259.利用修改后的第四随机数和zmk明文生成第四zpk;
260.利用第四zpk对第四待传输数据进行加密,生成第四数据密文;
261.将第四数据密文发送至智能卡,以使智能卡执行如下操作:通过与银行后台服务器相同的预设密钥算法修改第四随机数,利用修改后的第四随机数和zmk明文生成第四zpk,利用第四zpk对第四数据密文进行解密。
262.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据传输方法。
263.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法。
264.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法。
265.本发明实施例中,智能卡向银行后台服务器发送更新通信主密钥zmk请求;接收银行后台服务器根据所述更新zmk请求反馈的多个心跳包信息,所述多个心跳包信息为银行后台服务器调用硬件加密机生成第一随机数,利用第一随机数生成的多个心跳包信息;根据多个心跳包信息生成第二随机数;以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;将智能卡公钥发送至银行后台服务器,以使银行后台服务器调用硬件加密机生成zmk明文,利用智能卡公钥对zmk明文加密,生成zmk密文;接收银行后台服务器发送的zmk密文;利用智能卡私钥对zmk密文进行解密,得到zmk明文;使用zmk明文作为主密钥与银行后台服务器进行数据传输。与现有的智能卡由卡商植入密钥的技术方案相比,用于数据传输的zmk密钥由银行后台服务器的硬件加密机生成,安全性极高;而且,在密钥同步过程中,智能卡利用银行后台服务器提供的心跳包信息生成的第二随机数,根据第二随机数建立非对称密钥,由非对称密钥中的公钥对银行后台服务器生成的zmk明文进行加密传输,由于智能卡实际获取心跳包的时间是无法探测和重放的,因此,可以避免数据传输过程中通信渠道的各种安全威胁,从而可以确保密钥同步过程的安全性,避免通信主密钥泄露,从而可以保障银行后台与智能卡进行数据传输时的数据安全。
266.本发明实施例中,银行后台服务器在接收到智能卡发送的更新通信主密钥zmk请求的情况下,调用硬件加密机生成第一随机数;利用第一随机数生成多个心跳包信息;将多个心跳包信息发送至智能卡,以使智能卡根据多个心跳包信息生成第二随机数;以第二随机数作为随机数种子,生成非对称密钥,所述非对称密钥包括智能卡公钥和智能卡私钥;接收智能卡发送的智能卡公钥;调用硬件加密机生成zmk明文;利用智能卡公钥对zmk明文加
密,生成zmk密文;将zmk密文发送至智能卡,以使智能卡利用智能卡私钥对zmk密文进行解密,得到zmk明文;使用zmk明文作为主密钥与智能卡进行数据传输。与现有的智能卡由卡商植入密钥的技术方案相比,用于数据传输的zmk密钥由银行后台服务器的硬件加密机生成,安全性极高;而且,在密钥同步过程中,智能卡利用银行后台服务器提供的心跳包信息生成的第二随机数,根据第二随机数建立非对称密钥,由非对称密钥中的公钥对银行后台服务器生成的zmk明文进行加密传输,由于智能卡实际获取心跳包的时间是无法探测和重放的,因此,可以避免数据传输过程中通信渠道的各种安全威胁,从而可以确保密钥同步过程的安全性,避免通信主密钥泄露,从而可以保障银行后台与智能卡进行数据传输时的数据安全。
267.本发明实施例中,第一随机数为通过硬件加密机产生的随机数,可视为近似真随机数,或者难以破解的随机数;而且,银行后台服务器通过将第一随机数拆分成若干条心跳包返回给智能卡,发送心跳包的时间间隔通过哈希算法散列,使得计算得到的时间间隔各不相同,且无法被逆推,因此,由于随机发生与网络状况等各种因素原因,智能卡收到心跳包的时间间隔数据完全无法破解或探测,且相差0.01毫秒时结果会完全不同,因此,安全性极高。
268.本发明实施例中,在智能卡在与银行后台服务器进行数据传输时,由于加密数据的zpk是由发送方的随机数和zmk生成,即使中间渠道即使截获了数据,也无法破解,排除一切中间渠道的安全威胁,使得数据的安全性得到了保障。
269.另外,在智能卡在与银行后台服务器进行连续数据传输(即可以理解为在预设时长内传输不同的数据)时,不需要多次发送随机数至接收方,只需要发送方和接收方通过相同的密钥算法修改第一次数据传输时发送的随机数,利用修改后的随机数和zmk生成zpk,进而可以使得每次传输数据都使用不同的密钥加密,从而可以增加破解密钥的困难度,提高数据的安全性,同时,也提高了数据处理的效率。
270.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
271.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
272.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
273.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
274.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献