2024年4月28日发(作者:)

步骤S8:服务器根据服务器证书、终端证书、终端数据、服务器数据、签

步骤S9:第一终端根据服务器证书、终端证书、终端数据、服务器数据、

签名值、第一加密数据、第一预设字符串和共享主密钥对第一完成消息进行

证,判断是否验证成功,是则执行步骤S10,否则通过第二终端向服

误信息,服务器断开与第二终端之间的连接,结束;

名值、第一加密数据、第一预设字符串和共享主密钥生成第一完成消息,通

第二终端向第一终端发送第一完成消息;

务器返回错

步骤S10:第一终端根据服务器证书、终端证书、终端数据、服务器数据、

签名值、第一加密数据、第二预设字符串和共享主密钥生成第二完成消息,

过第二终端向服务器发送第二完成消息,根据共享主密钥、第三预设

第一随机数和第二随机数生成第一字符串、

通信密钥;

步骤S11:服务器根据服务器证书、终端证书、终端数据、服务器数据、签

名值、第一加密数据、第二预设字符串和共享主密钥对第二完成消息进行验

判断是否验证成功,是则根据共享主密钥、第三预设字符串、第一随

二随机数生成第二通信密钥,执行步骤S12,否则服务器断开

结束;

证,

机数和第

与第二终端的连接,

步骤S12:服务器使用与服务器处理标识对应的处理机制和第二通信密钥对

具体地,明文指令由服务器生成,通信指令为服务器与第一终端通信过程

中的传输APDU的指令;

明文指令进行处理,得到通信指令,通过第二终端向第一终端发送通信指令;

步骤S13:第一终端根据第一通信密钥对通信指令进行验证,判断是否验证

成功,是则执行步骤S14,否则通过第二终端向服务器返回错误信息,服务

开与第二终端之间的连接,结束; 器断

步骤S14:第一终端使用终端处理标识对应的处理机制和第一通信密钥对通

信指令进行处理,得到明文指令,根据明文指令的内容执行相应操作,得到

文响应,使用终端处理标识对应的处理机制和第一通信密钥对明文响

理,得到通信响应,通过第二终端向服务器发送通信响应; 应进行处

步骤S15:服务器根据第二通信密钥对通信响应进行验证,判断是否验证成

功,是则使用与服务器处理标识对应的处理机制和第二通信密钥对通信响应

行处理,得到明文响应,结束;否则向第二终端返回错误信息,断开

端之间的连接,结束。 与第二终

实施例2

本发明的实施例2提供一种安全通信的方法,如图2至图4所示,包括:

当第二终端接收到与服务器进行通信的命令时,执行以下步骤:

步骤101:第二终端向服务器发送通信请求;

步骤102:服务器接收第二终端发送的通信请求,向第二终端发送第二获取

具体地,第二获取指令为获取第一终端的设备信息的指令;

指令;

步骤103:第二终端接收服务器发送的第二获取指令,向第一终端转发第二

步骤104:第一终端接收第二获取指令,获取自身的设备信息,向第二终端

步骤105:第二终端接收第一终端的设备信息,向服务器转发第一终端的设

步骤106:服务器接收第一终端的设备信息,根据第一终端的设备信息判断

具体地,若服务器已与第一终端建立安全通道,则开始与第一终端进行安

步骤107:服务器向第二终端发送第一获取指令;

具体地,第一获取指令为获取终端数据的指令;例如,第一获取指令为

步骤108:第二终端接收服务器发送的第一获取指令,向第一终端转发第一

步骤109:第一终端接收第一获取指令,获取自身的处理标识列表A1,生

成第一随机数r1,将第一随机数r1和处理标识列表A1进行拼接,得到终

据R1;

获取指令;

7E25000021;

全通信,执行步骤155;

是否已与第一终端建立安全通道,是则执行步骤155,否则执行步骤107;

备信息;

发送第一终端的设备信息;

获取指令;

端数

例如,处理标识列表A1为30,第一随机数r1为:

11DC7B0AC3578D887210559B3902ECC911913B2A46280E272C216A820EE52197

拼接后得到的终端数据R1为:

3011DC7B0AC3578D887210559B3902ECC911913B2A46280E272C216A820EE521

本实施例中,第一终端中的初始信息包括处理标识列表A1、认证中心证书

步骤110:第一终端向第二终端发送终端数据R1;

步骤111:第二终端接收第一终端发送的终端数据R1,向服务器转发终端

步骤112:服务器接收终端数据R1,根据终端数据R1获取处理标识列表A1;

步骤113:服务器根据处理标识列表A1,检查自身是否支持处理标识列表

A1中的标识信息对应的处理机制,是则根据处理标识列表A1中与服务器

处理机制对应的标识信息,设置服务器处理标识,执行步骤

端返回错误信息,断开与第二终端之间的连接,结束;

数据R1;

和终端证书;

97;

支持的

114;否则向第二终

步骤114:服务器生成第二随机数r2,将第二随机数r2和服务器处理标识

进行拼接,得到服务器数据R2;

例如,服务器处理标识为10,第二随机数r1为:

AD894DE7958D4EFC558FBC980C08B8ACF907A854D6312DFF670656D152661345

拼接后得到的服务器数据R2为:

10AD894DE7958D4EFC558FBC980C08B8ACF907A854D6312DFF670656D1526613

步骤115:服务器向第二终端发送包含服务器证书的第一验证指令,将第一

具体地,第一验证指令中包括服务器证书;

例如,服务器证书为:

30820160A451665778300D06092A864886F70D24

5465

305A

0A13

375

03081

9902819100C1ED75BD7BB937D8CD49935C770A414FA1ABE670E10B2E192

46D049121

727665723081AF300D06092A864886F70D819D0

D453B131

304C314A361302434E3BA06035504

7374301E170D35A170D3134323630

310B361302636E311533130C4665695469616E20

验证指令发送到第二终端;

45;

8094F4AD83D4181D63B9FABFD0B76DFACFABE442BA561FBBFA8E0C22

DBDFE86A2852FB3BB8F1241978AD5D07CD18599FD78E6A7687B21677FB

3D952BEE94FFED7757053952E029A8ABEAD1704253414EE4A79DC75BAA

30690A9304BA64DA6458A625BB;

39F5D0A1970E

800B72CF28

B6D9D6CD60

服务器将服务器证书分为三部分,通过三条第一验证指令将服务器证书发

7E26820160A451665778300D06092A864886F70D

569

5469616E2E170D35A170D31343034

3A; 3131

7E26000050203C304C314A361302434E3B130230

0B2;

31300A060355040A13D4530170603

24310B361302636E311533130C466

送到第二终端,三条第一验证指令分别为:

5504

7E260000B450003081AF300D06092A864886F70D819D00308199

02819100C1ED75BD7BB937D8CD49935C770A414FA1ABE670E10B2E19246

94F4AD83D4181D63B9FABFD0B76DFACFABE442BA561FBBFA8E0C2239

DFE86A2852FB3BB8F1241978AD5D07CD18599FD78E6A7687B21677FB800

952BEE94FFED7757053952E029A8ABEAD1704253414EE4A79DC75BAAB6

690A9304BA64DA6458A625BB;

D04912180

F5D0A1970EDB

B72CF283D

D9D6CD6030

步骤116:第二终端接收服务器发送的第一验证指令,向第一终端转发第一

步骤117:第一终端接收第一验证指令,从第一验证指令中获取服务器证书;

步骤118:第一终端使用自身保存的认证中心证书对服务器证书进行验证,

判断是否验证成功,是则根据服务器数据R2获取服务器处理标识,根据服

处理标识设置终端处理标识,向第二终端返回验证成功信息,执行步

则向第二终端返回错误信息,执行步骤119;

验证指令,将服务器的服务器证书转发到第一终端;

务器

骤121,否

步骤119:第二终端接收第一终端发送的错误信息,向服务器转发错误信息;

步骤120:服务器接收错误信息,断开与第二终端之间的连接,结束;

步骤121:第二终端接收第一终端发送的验证成功信息,向服务器转发验证

步骤122:服务器接收验证成功信息,向第二终端发送第三获取指令,将服

具体地,第三获取指令为获取签名值的指令,第三获取指令中包括服务器

例如,第三获取指令为:

7E28000042307DD88F411B6FBA303D7E6EB31AF03A2A653E03F4D0E3AA85CF0F

数据R2;

务器数据R2发送到第二终端;

成功信息;

E9B99E9F7E68107DD88F411B6FBA303D7E6EB31AF03A2A653E03F4D0E3

B99E9F7E68; AA85CF0FE9

步骤123:第二终端接收服务器发送的第三获取指令,向第一终端转发第三

步骤124:第一终端接收第三获取指令,从第三获取指令中获取服务器数据

步骤125:第一终端将终端数据R1和服务器数据R2进行拼接后得到待签名

数据R3,对待签名数据R3进行摘要运算得到第一摘要H1,使用终端证书

钥对第一摘要H1进行签名运算得到签名值S1;

R2;

获取指令,将服务器数据R2转发到第一终端;

的私

例如,终端数据R1为:

3011DC7B0AC3578D887210559B3902ECC911913B2A46280E272C216A820EE521

服务器数据R2为:

10AD894DE7958D4EFC558FBC980C08B8ACF907A854D6312DFF670656D1526613

签名值S1为:

08517400DEA883EB75A6AEDC80F3F44B16475540D87169ECF1C57828F297C722

51321A3EF6F3753CED18C9BE07F1A469DA46C54E29C677A19BF53A6EA6

2CC414256BAD31A0A674F198683665F572737EC95E0597F52135ED48EA48

43C3F5A23B

45;

97;

173EB9AA

990CA6148373B7B84D34785899C1989D37B5A612B69759F2B6D17AC49BD

101DAD6F256AAFE82997; D12489DCF

步骤126:第一终端向第二终端发送签名值S1;

步骤127:第二终端接收第一终端发送的签名值S1,向服务器转发签名值

步骤128:服务器接收签名值S1,向第二终端发送第四获取指令;

具体地,第四获取指令为获取第一加密数据的指令;

步骤129:第二终端接收服务器发送的第四获取指令,向第一终端转发第四

步骤130:第一终端接收第四获取指令,生成一个预设长度的第三随机数作

为共享主密钥M1,并且使用服务器证书中的公钥对共享主密钥M1进行加

第一加密数据E1;

获取指令;

S1;

密得到

具体地,本实施例中,预设长度为48字节;

例如,共享主密钥M1为:

6754A3E1546717BF4A13AB780471287DC01DC9EFABDC4D619A814BDFFA11C62

F

第一加密数据E1为:

0A25F2842C0570C6C009C;

09940909A5453319C377219A1BB00D3BB8B15E7EA1D44E27561CBF71E608373D

B92A8FF6EDB30FC1609641B10C2C0C535C3D89C694AF1A598C7AF9C18E

7F31EED7C8F7A124C31A7DCD179283EEF5255FC15A402546E1BE5D2DBD

7F18BEE4E3E200A175721C11141C2637C8B40B0D36B65761FB8941843A70

E71FA3780B87A1687E66;

884D3542D1

B258CB6930

EAB17B78

步骤131:第一终端向第二终端发送第一加密数据E1;

步骤132:第二终端接收第一终端发送的第一加密数据E1,向服务器转发

步骤133:服务器接收第一加密数据E1,向第二终端发送第五获取指令;

具体地,第五获取指令为获取终端证书的指令;例如,第五获取指令为

步骤134:第二终端接收服务器发送的第五获取指令,向第一终端转发第五

步骤135:第一终端接收第五获取指令,读取终端证书,向第二终端发送终

例如,终端证书为:

308201D830820141A451665240300D06092A864886F70D010105

961

6E2E170D35A170D330

B361302636E311533130C466569546

端证书;

获取指令;

7E23000000;

第一加密数据E1;

3630

01206

10105

0003819D9100E18549029FFBD846B7D434CD3525878C26AD2

8EF480874EBFB4AA1219E6C3AC691DDEFF39849AB80075DDDCCAFDE95

E4DBBA238995A0F1A3A245AEB4BFB8898D110F36591D0FE3273EA7159A

3C5969DE9826B92037A3CBF5DE622D711F0059BB6E5AED2F116E2E4FCA

A0148B9681FDF4B73F14D5FBE60A45BFD25E64E30D06092A

0D8181E344F33FDEBE52E1D0F74B79613196949

275FFF3994662A4751F94D2B165A4C5EF69F91215EBEE2731E770D4B256A

65426E0C79945A7F9954779B848607042A476E6ACA02F6ED333EE2232FDD

6926C24B1FB833174C9139FF6ED94073E26C4D1B14E0077AAAB248BCA76

C8A3;

477A22B

AE956FB1A81

B855B1DE98

ED669489F6

864886F7

0F2EB7

CB81E4CB

C0E96289

424C26166

将终端证书分为两部分,通过两条响应将终端证书发送到第二终端,两条

308201D830820141A451665240300D06092A864886F70D010105

961

6E2E170D35A170D330

B361302636E311533130C466569546

响应分别为:

0355040B130B43555572203081AF300D06092A864886F70D010

3334345A302D312B361302434E300A060355040A

3630

01206

10105

36591D0FE3273EA7159AB855B1DE983C5969DE9826B92037A3CBF5DE622D711F

E344F

33FDEBE52E1D0F74B796131969490F2EB7275FFF3994662A4751F94D2B165

9F91215EBEE2731E770D4B256ACB81E4CB65426E0C79945A7F9954779B84

476E6ACA02F6ED333EE2232FDDC0E962896926C24B1FB833174C9139FF6

6C4D1B14E0077AAAB248BCA76424C26166C8A39000;

A4C5EF6

8607042A

ED94073E2

步骤136:第二终端接收第一终端发送的终端证书,向服务器转发终端证书;

步骤137:服务器接收终端证书;

步骤138:服务器使用自身保存的认证中心证书对终端证书进行验证,判断

0059BB6E5AED2F116E2E4FCAED669489F6A0148B9681FDF4B73F14D5FB

5E64E30D06092A864886F70D8181

E60A45BFD2

0003819D9100E18549029FFBD846B7D434CD3525878C26AD2

8EF480874EBFB4AA1219E6C3AC691DDEFF39849AB80075DDDCCAFDE95

E4DBBA238995A0F1A3A245AEB4BFB8898D110F61DD;

477A22B

AE956FB1A81

0355040B130B43555572203081AF300D06092A864886F70D010

3334345A302D312B361302434E300A060355040A

是否验证成功,是则执行步骤139,否则向第二终端发送错误消息,断开与

终端的连接,结束; 第二

步骤139:服务器使用终端证书验证签名值S1,判断是否验证成功,是则

执行步骤140,否则向第二终端发送错误消息,断开与

第二终端的连接,结束;

具体地,服务器将终端数据R1和服务器数据R2进行拼接后得到验证数据

R4,对验证数据R4进行摘要运算得到第一验证摘要,使用终端证书中的公

签名值S1进行计算,得到第一摘要H1,判断第一验证摘要与第一摘

相同,是则验证成功,否则验证失败;

钥对

要H1是否

步骤140:服务器使用服务器证书的私钥对第一加密数据E1进行解密,得

步骤141:服务器对服务器证书、终端证书、终端数据R1、服务器数据R2、

签名值S1、第一加密数据E1、第一预设字符串和共享主密钥M1进行运算

第一完成消息F1;

到共享主密钥M1;

得到

具体地,得到第一完成消息F1的方法为:服务器对服务器证书进行摘要运

算得到第二摘要H2,对终端证书进行摘要运算得到第三摘要H3,将终端数

服务器数据R2、第二摘要H2、第三摘要H3、签名值S1和第

拼接后得到第一数据T1,对第一数据T1进行摘要运算

一预设字符串和第四摘要H4进行拼接后得到第

的第一部分对第二数据D1进行基于哈希

一完成消息F1;

据R1、

一加密数据E1进行

得到第四摘要H4,将第

二数据D1,使用共享主密钥M1

运算的消息认证码(HMAC)运算得到第

具体地,本实施例中,得到第一数据T1的方法为T1=R1|R2|H2|H3|S1|E1;

第一预设字符串为ASCII码“SERVER”;共享主密钥M1的第一部分为共享

钥M1前16个字节; 主密

例如,第二摘要H2为:7C4628C115FDE9B577380CA82C87C2F9843A5634;

第三摘要为H3:3534D4FDE0C239441F0FA4B9A402CDC09371B6A9;

第一数据T1为:

3011DC7B0AC3578D887210559B3902ECC911913B2A46280E272C216A820EE521

9710AD894DE7958D4EFC558FBC980C08B8ACF907A854D6312DFF670656

7C4628C115FDE9B577380CA82C87C2F9843A56343534D4FDE0C239441F0F

CDC09371B6A908517400DEA883EB75A6AEDC80F3F44B16475540D87169E

F297C72251321A3EF6F3753CED18C9BE07F1A469DA46C54E29C677A19BF

C3F5A23B2CC414256BAD31A0A674F198683665F572737EC95E0597F52135

173EB9AA990CA6148373B7B84D34785899C1989D37B5A612B69759F2B6D

12489DCF101DAD6F256AAFE8299709940909A5453319C377219A1BB00D3

A1D44E27561CBF71E608373DB92A8FF6EDB30FC1609641B10C2C0C535C3

1A598C7AF9C18E884D3542D17F31EED7C8F7A124C31A7DCD179283EEF5

2546E1BE5D2DBDB258CB69307F18BEE4E3E200A175721C11141C2637C8B

D152661345

A4B9A402

CF1C57828

53A6EA643

ED48EA48

17AC49BDD

BB8B15E7E

D89C694AF

255FC15A40

40B0D36B6

第二数据T1为:

5761FB8941843A70EAB17B78E71FA3780B87A1687E66;

5345564552FEE5BC7580DE1FEE59F9D3E354A7C82A34195074;

共享主密钥M1为:

6754A3E1546717BF4A13AB780471287DC01DC9EFABDC4D619A814BDFFA11C62

F

HMAC运算的密钥为共享主密钥M1前16个字节,即:

6754A3E1546717BF4A13AB780471287D;

第一完成消息F1为:

B2E83820D70B03575B49A4A1CF57498DEEEDC63D;

步骤142:服务器向第二终端发送包含第一完成消息F1的第二验证指令,

具体地,第二验证指令为验证第一完成消息F1的指令,第二验证指令中包

例如,第二验证指令为:

7E2A000114B2E83820D70B03575B49A4A1CF57498DEEEDC63D;

括第一完成消息F1;

将第二验证指令发送到第二终端;

0A25F2842C0570C6C009C;

步骤143:第二终端接收服务器发送的包含第一完成消息F1的第二验证指

步骤144:第一终端接收第二验证指令,从第二验证指令中获取第一完成消

步骤145:第一终端根据服务器证书、终端证书、终端数据R1、服务器数

据R2、签名值S1、第一加密数据E1、第一预设字符串和共享主密钥M1对

完成消息F1进行验证,判断是否验证成功,是则向第二终端发送验

执行步骤148,否则向第二终端发送错误消息,执行步

息F1;

令,向第一终端转发第二验证指令,将第一完成消息F1转发到第一终端;

第一

证成功信息,

骤146;

具体地,第一终端对服务器证书进行摘要运算得到第二验证摘要,对终端

证书进行摘要运算得到第三验证摘要,将终端数据R1、服务器数据R2、第

证摘要、第三验证摘要、签名值S1和第一加密数据E1进行拼接后

证数据,对第一验证数据进行摘要运算得到第四验证摘要,将

和第四验证摘要进行拼接后得到第二验证数据,使用共

分对第二验证数据进行基于哈希运算的消息认证

断第一验证消息与第一完成消息F1是否

二验

得到第一验

第一预设字符串

享主密钥的第一预设部

码运算得到第一验证消息;判

相同,是则验证成功,否则验证失败;

步骤146:第二终端接收第一终端发送的错误信息,向服务器转发错误信息;

步骤147:服务器接收错误信息,断开与第二终端的连接,结束;

步骤148:第二终端接收第一终端发送的验证成功信息,向服务器转发验证

成功信息;

步骤149:服务器接收验证成功信息,向第二终端发送第六获取指令;

具体地,第六获取指令为获取第二完成消息F2的指令;例如,第六获取指

步骤150:第二终端接收服务器发送的第六获取指令,向第一终端转发第六

步骤151:第一终端接收第六获取指令,对服务器证书、终端证书、终端数

获取指令;

令为:7E2A000000;

据R1、服务器数据R2、签名值S1、第一加密数据E1、第二预设字符串和

主密钥M1进行运算得到第二完成消息F2; 共享

具体地,得到F2的运算方法为:第一终端对服务器证书进行摘要运算得到

第五摘要H5,对终端证书进行摘要运算得到第六摘要H6,将终端数据R1、

器数据R2、第五摘要H5、第六摘要H6、签名值S1和第一加密数据

后得到第三数据T3,对第三数据T3进行摘要运算得到第七摘

设字符串和第七摘要H7进行拼接后得到第四数据D4,

一部分对第四数据D4进行基于哈希运算的消息

成消息F2;

服务

E1进行拼接

要H7,将第二预

使用共享主密钥M1的第

认证码(HMAC)运算得到第二完

具体地,第二预设字符串为ASCII码“CLIENT”;

步骤152:第一终端向第二终端发送第二完成消息F2;第一终端根据共享

主密钥M1、第三预设字符串、第一随机数r1和第二随机数r2生成第一通

钥; 信密

本实施例中,第一终端根据共享主密钥M1、第三预设字符串、第一随机数

和第二随机数生成第一通信密钥,其中,第一通信密钥包括:第一加密密钥

和第一消息认证码密钥MKey1;生成第一通信密钥的具体方法为: SKey1

步骤A:将第三预设字符串、第一随机数r1和第二随机数r2进行拼接得到

步骤B:使用共享主密钥M1的第一部分对第五数据进行基于哈希运算的消

息认证码(HMAC)运算得到第六数据,获取第六数据的第一部分作为第

密钥中的第一加密密钥SKey1,获取第六数据的第二部分作为

第一消息认证码密钥MKey1;

第五数据;

一通信

第一通信密钥中的

具体地,获取第六数据的第1个至第16字节的数据为第一加密密钥SKey1,

例如,X=HMAC(M1,key_label||r1||r2),其中,共享主密钥M1取前16

第1

个字节,key_label为3字节ASCII码“KEY”;X1、X2……X20分别为X的

个至第20字节,则第一加密密钥SKey1为:SKey1=X1X2……X16,

认证码密钥MKey1为:MKey1=X5X6……X20;

获取第六数据的第5个至第20字节的数据为第一消息认证码密钥MKey1;

第一消息

步骤153:第二终端接收第一终端发送的第二完成消息F2,向服务器转发

步骤154:服务器接收第二完成消息F2,根据服务器证书、终端证书、终

端数据R1、服务器数据R2、签名值S1、第一加密数据E1、第二预设字符

共享主密钥M1对第二完成消息F2进行验证,判断是否验证成功,

第二完成消息F2;

串和

是则执行步

接,结束;

骤155,否则向第二终端发送错误消息,断开与第二终端的连

具体地,服务器对服务器证书进行摘要运算得到第五验证摘要,对终端证

书进行摘要运算得到第六验证摘要,将终端数据R1、服务器数据R2、第五

摘要、第六验证摘要、签名值S1和第一加密数据E1进行拼接后得

数据,对第三验证数据进行摘要运算得到第七验证摘要,将第

第七验证摘要进行拼接后得到第四验证数据,使用共享

对第四验证数据进行基于哈希运算的消息认证码

第二验证消息

验证

到第三验证

二预设字符串和

主密钥的第一预设部分

运算得到第二验证消息;判断

与第二完成消息F2是否相同,是则验证成功,否则验证失败;

具体地,服务器成功验证第二完成消息F2则表示已与第一终端建立安全通

步骤155:服务器根据共享主密钥M1、第三预设字符串、第一随机数r1和

本实施例中,服务器与第一终端之间建立安全通道后,服务器根据共享主

密钥M1、第三预设字符串、第一随机数r1和第二随机数r2生成第二通信

其中,第二通信密钥包括:第二加密密钥SKey2和第二消息

生成第二通信密钥的具体方法为:

第二随机数r2生成第二通信密钥;

道,开始与第一终端进行安全通信;

密钥,

认证码密钥MKey2;

步骤C:将第三预设字符串、第一随机数和第二随机数进行拼接得到第七数

步骤D:使用共享主密钥M1的第一部分对第七数据进行基于哈希运算的消

息认证码(HMAC)运算得到第八数据,获取第八数据的第一部分作为第

据;

二通信 密钥中的第二加密密钥SKey2,获取第八数据的第二部分作为

第二消息认证码密钥MKey2; 第二通信密钥中的

具体地,获取第八数据的第1个至第16字节的数据为第二加密密钥SKey2,

例如,X=HMAC(M1,key_label||r1||r2),其中,共享主密钥M1取前16

个字节,第三预设字符串即key_label为3字节ASCII码“KEY”;X1、

X20分别为X的第1个至第20字节,则第二加密密钥SKey2

X16,第二消息认证码密钥MKey2为:

获取第八数据的第5个至第20字节的数据为第二消息认证码密钥MKey2;

X2……

为:SKey2=X1X2……

MKey2=X5X6……X20;

步骤156:服务器使用与服务器处理标识对应的处理机制和第二通信密钥对

具体地,通信指令为服务器与第一终端通信过程中的传输APDU的指令;

具体地,服务器使用与服务器处理标识对应的处理机制和第二通信密钥中

的第二加密密钥SKey2对明文指令进行处理,得到密文指令;根据第二通

钥中的第二消息认证码密钥MKey2对密文指令进行消息认证码运算,

认证码;对密文指令和第一认证码进行组合得到的通信指令;

明文指令进行处理,得到通信指令,向第二终端发送通信指令;

信密

得到第一

例如,第二加密密钥SKey2为9EDCF5A6A6427D56B519E15FE4FCC338,第二

消息认证码密钥MKey2为A6427D56B519E15FE4FCC33876461B3C;服务

证第二完成消息F2后,生成通信指令具体为: 器成功验

若服务器中的明文指令为7E4100000C13,处理机

制为3DES,使用第二加密密钥SKey2对明文指令进行加密,得到的密文指

EF5A1B3E3630B2905C474A1D5F01323B14063D51CF25D8A9; 令为

服务器使用第二消息认证码密钥MKey2对密文指令进行消息认证码(MAC)

服务器对密文指令和第一认证码进行组合得到的通信指令,即通信指令为

7F2B000020EF5A1B3E3630B2905C474A1D5F01323B14063D51CF25D8A991

EB2CC0;

运算,得到的第一认证码为9135188AFBEB2CC0;

35188AFB

步骤157:第二终端接收服务器发送的通信指令,向第一终端转发通信指令;

步骤158:第一终端接收通信指令,根据第一通信密钥对通信指令进行认证,

判断是否认证成功,是则执行步骤161,否则向第二终端返回错误信息,执

骤159;

行步

具体地,第一终端根据第一通信密钥中的第一消息认证码密钥MKey1对通

信指令中的密文指令进行消息认证码(MAC)运算,得到第二认证码,判

认证码是否与通信指令中的第一认证码相同,是则表示认证成

证失败;

断第二

功,否则表示认

例如,第一加密密钥SKey1为9EDCF5A6A6427D56B519E15FE4FCC338,第一

消息认证码密钥MKey1为A6427D56B519E15FE4FCC33876461B3C;第一

信指令进行认证具体为: 终端对通

若通信指令为:

7F2B000020EF5A1B3E3630B2905C474A1D5F01323B14063D51CF25D8A9913518

其中密文指令为:

EF5A1B3E3630B2905C474A1D5F01323B14063D51CF25D8A9;

第一认证码为9135188AFBEB2CC0;

第一终端使用第一消息认证码密钥MKey1对通信指令中的密文指令进行消

息认证码(MAC)运算,得到的第二认证码为9135188AFBEB2CC0,则第

与第一认证码相同,通信指令认证成功;

8AFBEB2CC0;

二认证码

步骤159:第二终端接收第一终端发送的错误信息,向服务器转发错误信息;

步骤160:服务器接收错误信息,断开与第二终端的连接,通信结束;

步骤161:第一终端使用与终端处理标识对应的处理机制和第一通信密钥对

通信指令进行处理,得到明文指令,根据明文指令的内容执行相应操作,得

明文响应,使用与终端处理标识对应的处理机制和第一通信密钥对明

行处理,得到通信响应;

文响应进

具体地,第一终端使用与终端处理标识对应的处理机制和第一通信密钥中

例如,密文指令为:

的第一加密密钥SKey1对通信指令中的密文指令进行处理,得到明文指令;

EF5A1B3E3630B2905C474A1D5F01323B14063D51CF25D8A9;

第一终端使用终端处理标识对应的处理机制和第一加密密钥SKey1对通信

7E4100000C13;

第一终端根据明文指令的内容执行相应操作,得到的明文响应为:

80009A031306099F3704FF0AC27D82027D009F360200EB9F2701

第一终端根据明文响应生成通信响应具体为:

第一终端使用与终端处理标识对应的处理机制和第一通信密钥中的第一加

密密钥SKey1对明文响应进行处理,得到的密文响应;根据第一通信密钥

第一消息认证码密钥MKey1对密文响应进行消息认证码运算,得到

码;对密文响应和第三认证码进行组合得到的通信响应;

809F260827D8FCF81CD2994B9F1A0B800019F34034203019F41

018407A19F0902008C 030000

指令中的密文指令进行解密,得到的明文指令为:

中的

的第三认证

例如,若处理机制为3DES,第一终端使用第一加密密钥SKey1对明文响应

B741D34D3C5CD68D510F6B273A32A2E91973E633E52219C6F6CE54B385AB4D2E

BC071A4A7FCAB940251E8EC04F7F7944D7473B89EA7E3904D55B4302345

E0DD70BAEB3FBC6EF01E1605370B07FA983F81EB5C62; 724955024

进行加密,得到的密文响应为:

第一终端使用第一消息认证码密钥MKey1对密文响应进行消息认证码(MAC)

第一终端对密文响应和第一认证码进行组合得到的通信响应为:

B741D34D3C5CD68D510F6B273A32A2E91973E633E52219C6F6CE54B385AB4D2E

BC071A4A7FCAB940251E8EC04F7F7944D7473B89EA7E3904D55B4302345

E0DD70BAEB3FBC6EF01E1605370B07FA983F81EB5C627D45D45F3E8DB6

724955024

589000;

步骤162:第一终端向第二终端发送通信响应;

步骤163:第二终端接收第一终端发送的通信响应,向服务器转发通信响应;

步骤164:服务器接收通信响应,根据第二通信密钥对通信响应进行认证,

判断是否认证成功,是则执行步骤165,否则向第二终端返回错误信息,断

第二终端的连接,通信结束;

运算,得到的第三认证码为7D45D45F3E8DB658;

开与

具体地,服务器根据第二通信密钥中的第二消息认证码密钥MKey2对通信

响应中的密文响应进行消息认证码(MAC)运算,得到第四认证码,判断

证码是否与通信响应中的第三认证码相同,是则表示认证成功,

失败;

第四认

否则表示认证

步骤165:服务器使用与服务器处理标识对应的处理机制和第二通信密钥对

具体地,服务器使用与服务器处理标识对应的处理机制和第二通信密钥中

通信响应进行处理,得到明文响应,结束;

的第二加密密钥SKey2对通信响应中的密文响应进行处理,得到明文响应。

实施例3

本发明的实施例3提供一种安全通信的方法,如图5所示,包括:

步骤201:当第一终端接收到第二获取指令时,获取自身的设备信息,通过

具体地,第二获取指令由服务器发送到第二终端,第二终端向第一终端进

步骤202:当第一终端接收到第一获取指令时,获取自身的处理标识列表

行转发;第二获取指令为获取第一终端的设备信息的指令;

第二终端向服务器发送第一终端的设备信息;

A1,并生成第一随机数r1,将第一随机数r1和处理标识列表A1进行拼接

到终端数据R1; 后得

具体地,第一获取指令由服务器发送到第二终端,第二终端向第一终端进

行转发;第一获取指令为获取终端数据的指令;例如,

7E25000021; 第一获取指令为

步骤203:第一终端通过第二终端向服务器发送终端数据R1;

具体地,第二终端接收终端数据R1,向服务器转发终端数据R1;

步骤204:当第一终端接收到第一验证指令时,获取第一验证指令中的服务

具体地,第一验证指令由服务器发送到第二终端,第二终端向第一终端进

器证书;

行转发;

步骤205:第一终端使用自身保存的认证中心证书验证服务器证书,判断是

否验证成功,是则向第二终端返回验证成功信息,执行步骤206,否则向第

端返回错误信息; 二终

具体地,该步骤之后,第二终端接收验证成功信息或错误信息,向服务器

步骤206:当第一终端接收到第三获取指令时,获取第三获取指令中的服务

具体地,第四指令由服务器发送到第二终端,第二终端向第一终端进行转

步骤207:第一终端将终端数据R1和服务器数据R2进行拼接后得到待签名

数据R3,对待签名数据R3进行摘要运算得到第一摘要H1,使用第一终端

钥对第一摘要H1进行签名运算得到签名值S1;

发;第三获取指令为获取签名值的指令;

器数据R2;

转发验证成功信息或错误信息;服务器接收到错误信息后,断开与第二终端

连接;

的私

步骤208:第一终端通过第二终端向服务器发送签名值S1;

具体地,第二终端接收签名值S1,向服务器转发签名值S1;

步骤209:当第一终端接收到第四获取指令时,生成一个预设长度的第三随

机数作为共享主密钥M1,并且使用服务器证书的公钥对共享主密钥M1进

得到第一加密数据E1; 行加密

具体地,第四获取指令由服务器发送到第二终端,第二终端向第一终端进

行转发;第四获取指令为获取第一加密数据的指令;

步骤210:第一终端通过第二终端向服务器发送第一加密数据E1;

具体地,第二终端接收第一加密数据E1,向服务器转发第一加密数据E1;

步骤211:当第一终端接收到第五获取指令时,读取终端证书;

具体地,第五获取指令由服务器发送到第二终端,第二终端向第一终端进

步骤212:第一终端通过第二终端向服务器发送终端证书;

具体地,第二终端接收终端证书,向服务器转发终端证书;

步骤213:当第一终端接收到第二验证指令时,从第二验证指令中获取第一

具体地,第二验证指令由服务器发送到第二终端,第二终端向第一终端进

步骤214:第一终端根据服务器证书、终端证书、终端数据R1、服务器数

据R2、签名值S1、第一加密数据E1、第一预设字符串和共享主密钥M1对

完成消息F1进行验证,判断是否验证成功,是则向第二终端发送验

执行步骤215;否则向第二终端发送错误消息;

行转发;第二验证指令为验证第一完成消息F1的指令;

完成消息F1;

行转发;第五获取指令为获取终端证书的指令;

第一

证成功信息,

具体地,第二终端接收错误信息,向服务器转发错误信息;服务器接收到

错误信息后,断开与第二终端的连接;

步骤215:当第一终端接收到第六获取指令时,对服务器证书、终端证书、

终端数据R1、服务器数据R2、签名值S1、第一加密

和共享主密钥M1进行运算得到第二完成消息数据E1、第二预设字符串

F2;

具体地,第六获取指令由服务器发送到第二终端,第二终端向第一终端进

本实施例中,得到第二完成消息F2具体为:第一终端对服务器证书进行摘

要运算得到第五摘要H5,对终端证书进行摘要运算得到第六摘要H6,将终

据R1、服务器数据R2、第五摘要H5、第六摘要H6、签名值S1和

E1进行拼接后得到第三数据T3,对第三数据T3进行

将第二预设字符串和第七摘要H7进行拼

M1的第一部分对第四数据D4进

第二完成消息F2;

行转发;第六获取指令为获取第二完成消息F2的指令;

端数

第一加密数据

摘要运算得到第七摘要H7,

接后得到第四数据D4,使用共享主密钥

行基于哈希运算的消息认证码(HMAC)运算得到

其中,第二预设字符串为ASCII码“CLIENT”;

步骤216:第一终端通过第二终端向服务器发送第二完成消息F2,第一终

端根据共享主密钥M1、第三预设字符串、第一随机数和第二随机数生成第

信密钥; 一通

具体地,第二终端接收第二完成消息F2,向服务器转发第二完成消息F2;

本实施例中,第一终端根据共享主密钥M1、第三预设字符串、第一随机数

步骤A:将第三预设字符串、第一随机数和第二随机数进行拼接得到第五数

和第二随机数生成第一通信密钥,其中,第一通信密钥包括:第一加密密钥

第一消息认证码密钥;生成第一通信密钥的具体方法为:

据;

步骤B:使用共享主密钥M1的第一部分对第五数据进行基于哈希运算的消

息认证码(HMAC)运算得到第六数据,获取第六数据的第一部分作为第

密钥中的第一加密密钥,获取第六数据的第二部分作为第一通

消息认证码密钥;

一通信

信密钥中的第一

步骤217:当第一终端接收到通信指令时,根据第一通信密钥对通信指令进

行认证,判断是否认证成功,是则执行步骤218,否则向第二终端返回错误

信息;

本实施例中,第二终端接收认证成功信息或错误信息,向服务器转发认证

具体地,服务器与第一终端建立安全通道后,开始与第一终端进行安全通

信;通信指令为服务器与第一终端通信过程中的传输APDU的指令;通信

服务器发送到第二终端,第二终端向第一终端进行转发;

成功信息或错误信息;服务器接收到错误信息后,断开与第二终端的连接;

指令由

具体地,第一终端使用第一通信密钥中的消息认证码密钥对通信指令中的

密文指令进行消息认证码(MAC)运算,得到第二认证码,判断第二认证

与通信指令中的第一认证码相同,是则表示认证成功,否则表

码是否

示认证失败;

步骤218:第一终端使用与终端处理标识对应的处理机制和第一通信密钥对

通信指令中进行处理,得到明文指令,根据明文指令的内容执行相应操作,

到明文响应,使用与终端处理标识对应的处理机制和第一通信密钥对

明文响应

进行处理,得到通信响应;

具体地,第一终端使用与终端处理标识对应的处理机制和第一通信密钥终

端第一加密密钥对通信指令中的密文指令进行处理,得到明文指令;第一终

使用与终端处理标识对应的处理机制和第一通信密钥中的第一加密密

响应进行处理,得到的密文响应;根据第一通信密钥中的第一

对密文响应进行消息认证码运算,得到的第三认证码;

码进行组合得到的通信响应;

钥对明文

消息认证码密钥

对密文响应和第三认证

步骤219:第一终端通过第二终端向服务器发送通信响应;

具体地,第二终端接收通信响应,向服务器转发通信响应。

实施例4

本发明的实施例4是在实施例1的基础上提供了一种安全通信的系统,如

第一终端A包括第一接收模块A01、第一生成模块A03、第一验证模块A04、

第一接收模块A01,用于通过第二终端B接收来自服务器C的第一获取指令、

第一生成模块A03,用于当第一接收模块A01接收到第一获取指令时,生成

第一随机数,根据第一随机数和第一终端A保存的处理标识列表生成终端

当第一设置模块A05设置终端处理标识后,根据终端数据和

服务器数据、服务器证书、第一完成消息和通信指令;

第一设置模块A05、加密模块A06、第二验证模块A07、第三验证模块A08、

一处理模块A09和第一发送模块A02;

图6所示,包括:第一终端A、第二终端B和服务器C;

数据;

服务器数据生成签

当第二验证模块A07

书、终端数据、服务器

名值,生成一个预设长度的第三随机数作为共享主密钥;

对第一完成消息验证成功后,根据服务器证书、终端证

数据、签名值、加密模块A06加密得到的第一

享主密钥生成第二完成消息,根据共享主

和服务器数据中的第二随机数生成

加密数据、第二预设字符串和共

密钥、第三预设字符串、第一随机数

第一通信密钥;

第一验证模块A04,用于根据第一终端A保存的认证中心证书对第一接收模

第一设置模块A05,用于当第一验证模块A04对所述服务器证书验证成功时,

根据第一接收模块A01接收到的服务器数据获取服务器处理标识,根据服

处理标识设置终端处理标识;

块A01接收到的服务器证书进行验证,判断是否验证成功;

务器

加密模块A06,用于根据服务器证书的公钥对第一生成模块A03生成的共享

第二验证模块A07,用于根据服务器证书、终端证书、终端数据、服务器数

A01

第三验证模块A08,用于根据第一通信密钥对第一接收模块A01接收到的通

第一处理模块A09,用于当第三验证模块A08对通信指令验证成功时,使用

终端处理标识对应的处理机制和第一生成模块A03生成的第一通信密钥对

指令进行处理,得到明文指令,根据明文指令的内容执行相应操作,

响应,使用终端处理标识对应的处理机制和第一通信密钥对明

信指令进行验证,判断是否验证成功;

据、签名值、第一加密数据、第一预设字符串和共享主密钥对第一接收模块

接收到的第一完成消息进行验证,判断是否验证成功;

主密钥进行加密得到第一加密数据;

通信

得到明文

文响应进行处理,

得到通信响应;

第一发送模块A02,用于通过第二终端B向服务器C发送第一生成模块A03

生成的终端数据、签名值和第二完成消息;通过第二终端B向服务器C发

身的终端证书;通过第二终端B向服务器C发送加密模块A06加密

加密数据;当第一验证模块A04、第二验证模块A07和第三

败时,通过第二终端B向服务器C发送错误信

发送第一处理模块A09处理得到的通信

送自

得到的第一

验证模块A08验证失

息;通过第二终端B向服务器C

响应;

服务器C包括第二接收模块C01、第一获取模块C03、检查模块C04、第二

设置模块C05、第二生成模块C06、第四验证模块C07、第五验证模块C08、

密模块C09、第六验证模块C10、第二处理模块C11、第七验证模块

处理模块C12、第二发送模块C02和通信中断模块C14; C13、第三

第二接收模块C01,用于接收来自第二终端B的通信请求,通过第二终端B

接收来自第一终端A的终端数据、终端证书、第一加密数据、签名值、第

成消息、通信响应和错误信息; 二完

第一获取模块C03,用于根据第二接收模块C01接收到的终端数据获取处理

检查模块C04,用于检查服务器C是否支持第一获取模块C03获取到的处理

第二设置模块C05,用于当检查模块C04检查到服务器C支持处理标识列表

中的标识信息对应的处理机制时,根据处理标识列表中与服务器C支持的

标识列表中的标识信息对应的处理机制;

标识列表;

处理

机制对应的标识信息,设置服务器处理标识;

第二生成模块C06,用于当第二设置模块C05设置服务器处理标识后,生成

第二随机数,根据第二随机数和服务器处理标识生成服务器数据;根据服务

证书、终端证书、终端数据、服务器数据、签名值、第一加密数据、

字符串和解密模块C09解密得到的共享主密钥生成第一完成

模块C10对第二完成消息验证成功时,根据共享主密

一随机数和第二随机数生成第二通信密钥;

第一预设

消息;当第六验证

钥、第三预设字符串、第

第四验证模块C07,用于根据服务器C保存的认证中心证书对第二接收模块

第五验证模块C08,用于当第四验证模块C07对终端证书验证成功时,根据

终端证书对第二接收模块C01接收到的签名值进行验证,判断是否验证成

C01接收到的终端证书进行验证,判断是否验证成功;

功;

解密模块C09,用于当第五验证模块C08对签名值验证成功时,根据服务器

证书的私钥对第二接收模块C01接收到的第一加密数据进行解密,得到共

密钥; 享主

第六验证模块C10,用于根据服务器证书、终端证书、终端数据、服务器数

C01

据、签名值、第一加密数据、第二预设字符串和共享主密钥对第二接收模块

接收到的第二完成消息进行验证,判断是

否验证成功;

第二处理模块C11,用于使用与服务器处理标识对应的处理机制和第二生成

模块C06生成的第二通信密钥对明文指令进行处理,得到通信指令;

第七验证模块C13,用于根据第二通信密钥对第二接收模块C01接收到的通

第三处理模块C12,用于当第七验证模块C13对通信响应验证成功时,使用

与服务器处理标识对应的处理机制和第二通信密钥对第二接收模块C01接

的通信响应进行处理,得到明文响应;

信响应进行验证,判断是否验证成功;

收到

第二发送模块C02,用于当第二接收模块C01接收到通信请求时,通过第二

终端B向第一终端A发送第一获取指令;通过第二终端B向第一终端A发

二生成模块C06生成的服务器数据和第一完成消息;通过第二终端

端A发送服务器C保存的服务器证书;通过第二终端B向第

处理模块C11处理得到的通信指令;

送第

B向第一终

一终端A发送第二

通信中断模块C14,用于当检查模块C04检查服务器C不支持处理标识列表

中的标识信息对应的处理机制时、当第二接收模块C01接收到所述错误信

当第四验证模块C07对终端证书验证失败时、当第五验证模

证失败时、当第六验证模块C10对第二完成消息验证

之间的连接。

息时、

块C08对签名值验

失败时,断开与第二终端B

第二发送模块C02,还用于通过第二终端B向第一终端A发送第二获取指令;

第一接收模块A01,还用于通过第二终端B接收来自服务器C的第二获取指

第一终端A还包括第二获取模块,用于当第一接收模块A01接收到第二获

取指令时,获取第一终端A的设备信息;

令;

第一终端A的第一发送模块A02,还用于通过第二终端B向服务器C发送设

服务器C还包括第一判断模块,用于根据设备信息判断服务器C是否已与

第二生成模块C06还用于当第一判断模块判断服务器C已与第一终端A建

第二发送模块C02还用于当第一判断模块判断服务器C未与第一终端A建

第一生成模块A03包括第一拼接单元,用于将第一随机数和处理标识列表

第二生成模块C06包括第二拼接单元,用于将第二随机数和服务器处理标

第一生成模块A03包括第三拼接单元、第一摘要单元和签名单元;

第三拼接单元,用于当第一设置模块A05设置终端处理标识后,将终端数

第一摘要单元,用于对第三拼接单元拼接得到的待签名数据进行摘要运算

签名单元,用于使用第一终端A的私钥对第一摘要单元进行摘要运算得到

得到第一摘要;

据和服务器数据进行拼接后得到待签名数据;

识进行拼接,得到服务器数据。

进行拼接,得到终端数据。

立安全通道时,通过第二终端B向第一终端A发送第一获取指令。

立安全通道时,根据共享主密钥、第三预设字符串、第一随机数和第二随机

生成通信密钥;

第一终端A建立安全通道;

备信息;

的第一摘要进行签名运算得到签名值;

第五验证模块C08包括第四拼接单元、第二摘要单元、第一计算单元和第

第四拼接单元,用于当第四验证模块C07对终端证书验证成功时,将终端

第二摘要单元,用于对第四拼接单元拼接得到的验证数据进行摘要运算得

第一计算单元,用于当第二摘要单元运算得到第一验证摘要时,使用终端

第一判断单元,用于判断第二摘要单元运算得到的第一验证摘要与第一计

第二生成模块C06包括第三摘要单元、第五拼接单元和第二计算单元;

第三摘要单元,用于当解密模块C09解密得到共享主密钥后,对服务器证

第五拼接单元,用于将终端数据、服务器数据、第三摘要单元摘要运算得

到第二摘要和第三摘要、签名值和第一加密数据进行拼接,得到第一数据;

第一预设字符串和第三摘要单元摘要运算得到的第四摘要进行拼接后

数据;

书进行摘要运算得到第二摘要,对终端证书进行摘要运算得到第三摘要;对

五拼接单元拼接得到的第一数据进行摘要运算得到第四摘要;

算单元计算得到的第一摘要是否相同,是则确定对签名值验证成功,否则确

对签名值验证失败。

证书中的公钥对签名值进行计算,得到第一摘要;

到第一验证摘要;

数据和服务器数据进行拼接,得到验证数据;

一判断单元;

得到第二

第二计算单元,用于使用共享主密钥的第一预设部分对第五拼接单元拼接

第二验证模块A07包括第四摘要单元、第六拼接单元、第三计算单元和第

第四摘要单元,用于当第一接收模块A01接收到第一完成消息时,对服务

器证书进行摘要运算得到第二验证摘要,对终端证书进行摘要运算得到第三

证摘要;对第六拼接单元拼接得到的第一验证数据进行摘要运算得到

摘要;

二判断单元;

得到的第二数据进行基于哈希运算的消息认证码运算得到第一完成消息;

第四验证

第六拼接单元,用于将终端数据、服务器数据、第四摘要单元摘要运算得

到的第二验证摘要和第三验证摘要、签名值和第一加密数据进行拼接后得到

一验证数据;将第一预设字符串和第四摘要单元摘要运算得到的第四

进行拼接,得到第二验证数据; 验证摘要

第二计算单元,用于使用共享主密钥的第一预设部分对第六拼接单元拼接

第二判断单元,用于判断第二计算单元计算得到的第一验证消息与第一接

第一生成模块A03包括第五摘要单元、第七拼接单元和第三计算单元;

第五摘要单元,用于当第二验证模块A07对第一完成消息验证成功时,对

收模块接收到的第一完成消息是否相同,是则确定对第一完成消息验证成功,

否则确定对第一完成消息验证失败。

得到的第二验证数据进行基于哈希运算的消息认证码运算得到第一验证消息;

服务器证书进行摘要运算得到第五摘要,对终端证书进行摘要运算得到第六

要;对第七拼接单元拼接到的第三数据进行摘要运算得到第七摘要;

第七拼接单元,用于将终端数据、服务器数据、第五摘要单元摘要运算得

到的第五摘要和第六摘要、签名值和第一加密数据进行拼接,得到第三数据;

将第二预设字符串和第五摘要单元摘要运算得到的第七摘要进行拼接,

四数据; 得到第

第三计算单元,用于使用共享主密钥的第一预设部分对第七拼接单元拼接

第六验证模块C10包括第六摘要单元、第八拼接单元、第四计算单元和第

第六摘要单元,用于当第二接收模块C01接收到第二完成消息时,对服务

器证书进行摘要运算得到第五验证摘要,对终端证书进行摘要运算得到第六

证摘要;对第八拼接单元拼接得到的第三验证数据进行摘要运算得到

摘要;

三判断单元;

到的第四数据进行基于哈希运算的消息认证码运算得到第二完成消息;

第七验证

第八拼接单元,用于将终端数据、服务器数据、第六摘要单元摘要运算得

到的第五验证摘要和第六验证摘要、签名值和第一加密数据进行拼接,得到

三验证数据;将第二预设字符串和第六摘要单元摘要运算得到的第七

进行拼接,得到第四验证数据; 验证摘要

第四计算单元,用于使用共享主密钥的第一预设部分对第八拼接单元拼接

得到的第四验证数据进行基于哈希运算的消息认证码运算得到第二验证消息;

第三判断单元,用于判断第四计算单元计算得到的第二验证消息与第二接

收模块C01接收到的第二完成消息是否相同,是则确定对第二完成消息验

功,否则确定对第二完成消息验证失败。 证成

第一生成模块A03还包括第九拼接单元和第五计算单元;

第九拼接单元,用于当第一生成模块A03生成第四计算单元后,将第三预

第五计算单元,用于使用共享主密钥的第二预设部分对第九拼接单元拼接

得到的第五数据进行基于哈希运算的消息认证码运算得

据的第一部分作为第一通信密钥中的第一加密密

为第一通信密钥中的第一消息认证码密钥;

设字符串、第一随机数和第二随机数进行拼接得到第五数据;

到第六数据,将第六数

钥,将第六数据的第二部分作

第二生成模块C06还包括第十拼接单元和第六计算单元;

第十拼接单元,用于当第六验证模块C10对第二完成消息验证成功时,将

第六计算单元,用于使用共享主密钥的第二预设部分对第十拼接单元拼接

得到的第七数据进行基于哈希运算的消息认证码运算得到第八数据,将第八

据的第一部分作为第二通信密钥中的第二加密密钥,将第六数据的第

为第二通信密钥中的第二消息认证码密钥。

第三预设字符串、第一随机数和第二随机数进行拼接得到第七数据;

二部分作

第二处理模块C11包括第一处理单元、第一认证单元和第一组合单元;

第一处理单元,用于当第二生成模块C06生成通信密钥时,使用与服务器

处理标识对应的处理机制和第二生成模块C06生成的第二通信密钥中的第

密密钥对明文指令进行处理,得到密文指令; 二加

第一认证单元,用于根据第二通信密钥中的第二消息认证码密钥对第一处

第一组合单元,用于对密文指令和第一认证单元运算得到的第一认证码进

第三验证模块A08包括第二认证单元和第四判断单元;

第二认证单元,用于根据第一通信密钥中的第一消息认证码密钥对第一接

收模块A01接收到的通信指令中的密文指令进行消息认证码运算,得到第

证码;

行组合,得到的通信指令;

理单元处理得到的密文指令进行消息认证码运算,得到的第一认证码;

二认

第四判断单元,用于判断第二认证单元运算得到的第二认证码是否与通信

第一处理模块A09具体用于当第三验证模块A08对通信指令验证成功时,

第一处理模块A09包括第二处理单元、第三认证单元和第二组合单元;

第二处理单元,用于当第三验证模块A08对通信指令验证成功时,使用与

终端处理标识对应的处理机制和第一通信密钥中的第一加密密钥对明文响应

使用与终端处理标识对应的处理机制和第一通信密钥中的第一加密密钥对通

指令中的密文指令进行处理,得到明文指令。

指令中的第一认证码相同,是则确定对通信指令验证成功,否则确定对通信

令验证失败;

行处理,得到密文响应;

第三认证单元,用于根据第一通信密钥中的第一消息认证码密钥对第二处

第二组合单元,用于对第二处理单元处理得到的密文响应和第三认证单元

第七验证模块C13包括第四认证单元和第五判断单元;

第四认证单元,用于根据第二通信密钥中的第二消息认证码密钥对第二接

收模块C01接收到的通信响应中的密文响应进行消息认证码运算,得到第

证码;

运算得到的第三认证码进行组合得到的通信响应;

理单元处理得到的密文响应进行消息认证码运算,得到的第三认证码;

四认

第五判断单元,用于判断第四认证单元运算得到的第四认证码是否与通信

第三处理模块C12具体用于当第七验证模块C13对通信响应验证成功时,

使用与服务器处理标识对应的处理机制和第二通信密钥

信响应中的密文响应进行处理,得到明文响应。

响应中的第三认证码是否相同,是则确定对通信响应验证成功,否则确定对

信响应验证失败;

中的第二加密密钥对通

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局

限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻

想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发

范围应该以权利要求的保护范围为准。

明的保护