【能力验证】TLCP 协议相关能力验证考点解析

admin 2024年8月23日00:16:33评论11 views字数 20461阅读68分12秒阅读模式

TLCP 协议相关能力验证考点解析

座右铭:

工具能一键搞定的事儿就不要想着分析计算,

什么理论分析在工具面前都是浮云!

强烈推荐使用工具:

密码应用安全性评估工具(暂定,以后会改名)

欢迎大家体验,觉得不错点个赞,给作者加个鸡腿!

【能力验证】TLCP 协议相关能力验证考点解析

工具获取:公众号后台输入【密评神器】即可获取!

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

软件下载及其后续更新链接:

https://pan.baidu.com/s/1XOxUH7yOHSTnL4eKhbPmLA?pwd=6666

解压密码:edi@666

运行环境:win10,win11用户请将软件兼容性改成win8运行

【能力验证】TLCP 协议相关能力验证考点解析

2024-08-20更新内容::

  1. 采用延迟加载技术优化了软件的启动方式

  2. 增加了软件的设置功能

2024-08-19:

  更新内容:

  1. 更新了证书链异在解析拓展字段时异常的BUG

  2. 增加了CBC MAC 拓展攻击

  3. 修改了sm2 k attack的小布局

  4. 更新了软件的风格,设置了密评能力验证、熵密杯专区

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

  1.  TLCP

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

2. 能力验证

  2.1 TLCP协议

在描述这个协议之前我们事先得熟悉GB/T 38636-2020《信息安全技术 传输层密码协议(TLCP)》和GM-T 0024—2023 《SSL VPN技术规范》中涉及的握手协议,在这里我先将握手协议的过程放上去,以便后续的有关讲解,如下图所示:

【能力验证】TLCP 协议相关能力验证考点解析

然后在分析这块内容的时候我们结合着习题来看。

3. 习题练习

3.1 根据2020年机构能力验证题N1数据包,提交服务端Server Key Exchange中签名值r||s,去掉格式

服务端Server Key Exchange中签名值r||s题目分析:

筛选条件tls.handshake.type==11找到TLCP Record Layer: Handshake Protocol: Server Key Exchange中的Signature

知识点扩展:SM2 算法 ASN.1编码 - 签名长度

SM2 算法正常不做编码的签名长度为64个字节,即 r + s,各32个字节

即使经过了ASN.1 DER编码,通常理解签名长度只有3种可能性,即:70字节、71字节、72个字节,分别对应:

70个字节:

3044 + 0220 + 32个字节r + 0220 + 32个字节s

如果r和s的第一个字节的最高位为1时,需要分别前导补0,即产生71个字节和72个字节编码

71个字节:

3045 + 022100 + 32个字节r + 0220 + 32个字节s

或者

3045 + 0220 + 32个字节r + 0221 00 + 32个字节s

72个字节:

3046 + 0221 00 + 32个字节r + 0221 00 + 32个字节s

实际存在的情况

在ANS.1 编码中,有以下几种特殊情况存储:

69个字节

情形1:

3043021F2DF69838E2E40DE378C9B8A2FD40FB87425AF4DB9297B9337A9B6586CBFAF3022067301CAC496D878723EC946F570922A3D84A6B8D2E618C6AD907E36B13D4833F

情形2:

3043022053EB989118AD14E1CA91A93769CCE234079169A94BFF645240D7DF59FFEF8B5E021F3B27E6F7849714C6A8EFD43C9E8045BA9B01477C7ADC3C7AFDF8056EBE05CF

如果r或s的数据存在前导0时,在实际编码过码中,会删掉前导00的长度。

如上是1F,表明第一个字节为00

70个字节

情形1:

3044021F638026332E9FCD750647AFCFC2A5CFD3639D5BF1C9D619F23740241257FD3C0221009862D169D9F5BDA16848DB5D1BEDE5A616914680B6CADF1AE373A3D03D365ACF

情形2:

3044022100E92A4B5821120820CE2F45DFD58C07B9F1D69C7483009ADA9206678661FC5A65021F1DBED6061F0AAEFB3B444EBA2361E0B28A1EB5D8AC789F5D218DA8A8616E2F

情形3:(特别注意)

3044022036A245F75927E7B8B09C9827F92B3913117771679B70838273BA547751778FC5022000B1E4BCF9FF3ABADC596936FFBA0CA59C1A0E812DD7F5A9BEDC36863C11D119

或者

304402200A7BF6655422E053B7E2D4C5609ED88DD98DC7B52A618A6474D01F86FE2B561402200084D6C1A052FA6FBCA036EDFACFEBBAB90A53442C3DCEA748AABCD41E7E1C91

特别注意这个数据,s数据存在00,但实际编码长度时,并未删除。

针对以上现象,需要注意的是,r或s数据中存在前导0时,是否删除,取决于其后一个字节,是否存在补位(即第一个字节最高位是否为1),从上面数据可知:

021F2D、021F1D、021F3B、021F63删除了前导0

022000B1、02200084 保留了前导0

均符合了上面的规律,因此在数据解析和编码时,要特别注意。

3045022100e4795b5a947526f8e7cbd0edd571ea8749e0efd24323799346ea2c740c006c5a0220026189e51c19d20d40a82606d0ed72cb9530a189bbb94c09e4559d7d8ff3f598

【能力验证】TLCP 协议相关能力验证考点解析

3045022100

e4795b5a947526f8e7cbd0edd571ea8749e0efd24323799346ea2c740c006c5a(r)

0220

026189e51c19d20d40a82606d0ed72cb9530a189bbb94c09e4559d7d8ff3f598(s)

r||s=

e4795b5a947526f8e7cbd0edd571ea8749e0efd24323799346ea2c740c006c5a026189e51c19d20d40a82606d0ed72cb9530a189bbb94c09e4559d7d8ff3f598

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

3.2 根据2020年机构能力验证题N1数据包,提交服务端Server Key Exchange中上述签名值r||s所用的签名公钥,去掉格式04

服务端Server Key Exchange中上述签名值r||s所用的签名公钥题目分析:

筛选条件tls.handshake.type==11找到TLCP Record Layer: Handshake Protocol: Certificate中的signedCertificate下的subjectPublicKey

知识点扩展:

SM2的公钥

SM2PublicKey内容格式为 04||x||y,x和y表示公钥的x分量和y分量。

【能力验证】TLCP 协议相关能力验证考点解析

  1. 「未压缩格式」:直接存储x和y坐标,通常这会以一个04(表示未压缩)开头,后接64字节的x和y坐标值。
  2. 「压缩格式」:只存储x坐标和一个标志位,表示y坐标的奇偶性。
  3. 「混合格式」:存储x坐标、y坐标的奇偶性和完整的y坐标。
SM2 公钥一般有两种表示方法:
  • x|y,即 x与 y两个分量拼接在一起,总共 64 个字节。
  • 04|x|y, 04代表未压缩,整个公钥长度变成 65 字节。

0449a0975fa53295d2455bdd5ef25d5bd730ba76343b5c2c7e7feb7ee0bebfad0f0f1f76a63b915a0086fc60cc6b8440d3f5041b54422bebd3d4664ef31daaef5e

【能力验证】TLCP 协议相关能力验证考点解析

04(表示未压缩)

49a0975fa53295d2455bdd5ef25d5bd730ba76343b5c2c7e7feb7ee0bebfad0f(x)

0f1f76a63b915a0086fc60cc6b8440d3f5041b54422bebd3d4664ef31daaef5e(y)

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

3.3 根据2020年机构能力验证题N1数据包,提交服务端Server Key Exchange中签名源数据

服务端Server Key Exchange中签名源数据题目分析:

服务端Server Key Exchange中签名源数据=客户端随机数+服务器端随机数+加密证书的长度+加密证书

【能力验证】TLCP 协议相关能力验证考点解析

客户端随机数

tls.handshake.type==1

f81ce4d345466f00852fd30dc0555086544391bd2bd0ca13b8b66776a0bbc2ab

【能力验证】TLCP 协议相关能力验证考点解析

服务器端随机数

tls.handshake.type==11

5ed8968e7d19162fdc1aca131ddf438b55275de556c9994a8ff3bb871393d4cd

【能力验证】TLCP 协议相关能力验证考点解析

加密证书的长度

tls.handshake.type==11

000225

【能力验证】TLCP 协议相关能力验证考点解析

加密证书

tls.handshake.type==11

30820221308201c6a003020102020108300a06082a811ccf55018375308187310b300906035504061302434e3110300e06035504080c074265696a696e673110300e06035504070c074265696a696e67310d300b060355040a0c04424a4341310d300b060355040b0c04424a43413116301406035504030c0d424a4341534d32544553544341311e301c06092a864886f70d010901160f737570706f727440626a63612e636e301e170d3230303531323035313231345a170d3330303332313035313231345a30818e310b300906035504061302434e3110300e06035504080c074265696a696e673110300e06035504070c074265696a696e67310d300b060355040a0c04424a4341310d300b060355040b0c04424a4341311d301b06035504030c14626a6361736d3273657276657273727031656e63311e301c06092a864886f70d010901160f737570706f727440626a63612e636e3059301306072a8648ce3d020106082a811ccf5501822d03420004a0e54d33742636210e37a36c6e0102c296813a1812d112e44864337d7a248a6865afe51abf3830971465bdcbc9b003c72e62e0c7ca6ce53cf56f265ae877c442a31a301830090603551d1304023000300b0603551d0f040403020430300a06082a811ccf5501837503490030460221009dd093c169af50fbca6061ed1b10d4394b2768d115027f64533f24080d94f20d022100cc96806594a6ad537b78991c6e673384ef415da8c0d226103dcee21327341032

【能力验证】TLCP 协议相关能力验证考点解析

拼接:

f81ce4d345466f00852fd30dc0555086544391bd2bd0ca13b8b66776a0bbc2ab5ed8968e7d19162fdc1aca131ddf438b55275de556c9994a8ff3bb871393d4cd00022530820221308201c6a003020102020108300a06082a811ccf55018375308187310b300906035504061302434e3110300e06035504080c074265696a696e673110300e06035504070c074265696a696e67310d300b060355040a0c04424a4341310d300b060355040b0c04424a43413116301406035504030c0d424a4341534d32544553544341311e301c06092a864886f70d010901160f737570706f727440626a63612e636e301e170d3230303531323035313231345a170d3330303332313035313231345a30818e310b300906035504061302434e3110300e06035504080c074265696a696e673110300e06035504070c074265696a696e67310d300b060355040a0c04424a4341310d300b060355040b0c04424a4341311d301b06035504030c14626a6361736d3273657276657273727031656e63311e301c06092a864886f70d010901160f737570706f727440626a63612e636e3059301306072a8648ce3d020106082a811ccf5501822d03420004a0e54d33742636210e37a36c6e0102c296813a1812d112e44864337d7a248a6865afe51abf3830971465bdcbc9b003c72e62e0c7ca6ce53cf56f265ae877c442a31a301830090603551d1304023000300b0603551d0f040403020430300a06082a811ccf5501837503490030460221009dd093c169af50fbca6061ed1b10d4394b2768d115027f64533f24080d94f20d022100cc96806594a6ad537b78991c6e673384ef415da8c0d226103dcee21327341032

【能力验证】TLCP 协议相关能力验证考点解析

3.4 根据下载的模拟题SSL流量包.pcapng,提交客户端Client Key Exchange中C1||C3||C2,去掉格式

客户端Client Key Exchange中C1||C3||C2题目分析:

筛选条件tls.handshake.type==16找到TLCP Record Layer: Handshake Protocol: Client Key Exchange中的ECC-SM2 Encrypted PreMaster Secret下的Encrypted PreMaster

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

tls.handshake.type==16

GB-T 32918.4-2016 《信息安全技术 SM2椭圆曲线公钥密码算法 第4部分:公钥加密算法》

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

30819802202f1233582f931890b0d6472d39c1729cc20e00d9b26a0ad119c468b8bbbb3e1a0220171274bf57ef071e4d76ee3441f39b31996b2438e5f3334f91533e93aa1c3db90420a1e8b8721d5f922c6e33fb7052a2afb0038d05017e2c0ab5035bf772da2cc2f30430c2ce0c6634f3d7626db03963d8c19d8a98c1c4756659b707547fdf0439505e4c1bca72406c22d6ee62e1811d016b402e

【能力验证】TLCP 协议相关能力验证考点解析

308198

0220

2f1233582f931890b0d6472d39c1729cc20e00d9b26a0ad119c468b8bbbb3e1a(x)

0220

171274bf57ef071e4d76ee3441f39b31996b2438e5f3334f91533e93aa1c3db9(y)

0420

a1e8b8721d5f922c6e33fb7052a2afb0038d05017e2c0ab5035bf772da2cc2f3(C3)

0430

c2ce0c6634f3d7626db03963d8c19d8a98c1c4756659b707547fdf0439505e4c1bca72406c22d6ee62e1811d016b402e(C2)

【能力验证】TLCP 协议相关能力验证考点解析

2f1233582f931890b0d6472d39c1729cc20e00d9b26a0ad119c468b8bbbb3e1a171274bf57ef071e4d76ee3441f39b31996b2438e5f3334f91533e93aa1c3db9a1e8b8721d5f922c6e33fb7052a2afb0038d05017e2c0ab5035bf772da2cc2f3c2ce0c6634f3d7626db03963d8c19d8a98c1c4756659b707547fdf0439505e4c1bca72406c22d6ee62e1811d016b402e

【能力验证】TLCP 协议相关能力验证考点解析

3.5 根据下载的模拟题流量包服务端加密私钥.pem解析出公私钥(公钥不带格式04)

根据服务端加密私钥.pem解析出公私钥题目分析:

把加密私钥.pem导入ASN1解析工具查看私钥

【能力验证】TLCP 协议相关能力验证考点解析

-----BEGIN PRIVATE KEY-----

MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgb8tUl8wJ17FqiOSppHwKa1pOgxQhAP0VoPe/EU0cGAqgCgYIKoEcz1UBgi2hRANCAARipb11eBDLluL8OMWZOfdyOXKsvWMu40pEW2nFdUPxWpRw+akHNz8Aat6Mbr5k9fUiG3gbC/SYG44td40YCWFb

-----END PRIVATE KEY-----

https://lapo.it/asn1js/

私钥:

6FCB5497CC09D7B16A88E4A9A47C0A6B5A4E83142100FD15A0F7BF114D1C180A

【能力验证】TLCP 协议相关能力验证考点解析

公钥(加密证书公钥)

筛选条件tls.handshake.type==11找到TLCP Record Layer: Handshake Protocol: Certificate中的signedCertificate下的subjectPublicKey

知识点扩展:

SM2的公钥

SM2PublicKey内容格式为 04||x||y,x和y表示公钥的x分量和y分量。

【能力验证】TLCP 协议相关能力验证考点解析

  1. 「未压缩格式」:直接存储x和y坐标,通常这会以一个04(表示未压缩)开头,后接64字节的x和y坐标值。
  2. 「压缩格式」:只存储x坐标和一个标志位,表示y坐标的奇偶性。
  3. 「混合格式」:存储x坐标、y坐标的奇偶性和完整的y坐标。
SM2 公钥一般有两种表示方法:
  • x|y,即 x与 y两个分量拼接在一起,总共 64 个字节。
  • 04|x|y, 04代表未压缩,整个公钥长度变成 65 字节。

tls.handshake.type==11

0462a5bd757810cb96e2fc38c59939f7723972acbd632ee34a445b69c57543f15a9470f9a907373f006ade8c6ebe64f5f5221b781b0bf4981b8e2d778d1809615b

【能力验证】TLCP 协议相关能力验证考点解析

04(表示未压缩)

62a5bd757810cb96e2fc38c59939f7723972acbd632ee34a445b69c57543f15a(x)

9470f9a907373f006ade8c6ebe64f5f5221b781b0bf4981b8e2d778d1809615b(y)

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

3.6 根据下载的模拟题流量包服务端加密私钥.pem,解密客户端Client Key Exchange中C1||C3||C2还原预主密钥

解密客户端Client Key Exchange中C1||C3||C2还原预主密钥题目解析:

筛选条件tls.handshake.type==16找到TLCP Record Layer: Handshake Protocol: Client Key Exchange中的ECC-SM2 Encrypted PreMaster Secret下的Encrypted PreMaster

私钥:

6FCB5497CC09D7B16A88E4A9A47C0A6B5A4E83142100FD15A0F7BF114D1C180A

【能力验证】TLCP 协议相关能力验证考点解析

数据C1||C3||C2

tls.handshake.type==16

30819a022100c0d0b3ef81c323ae77e0dfd51d9e60fbff0f1ce4e3f8af48db0525036d6e3919022100ef11bda67665e4a40983d4ee4cf0252869d4f51340db9a88285db6b1febf35f40420815d965cc370a6fab7d2c0703202b157c3b64a38984fe075a995039dfedfea210430f228996dacc0ab11896fe3620ccb8ad02b492ee5de81bc635b04439c917063fcc94da64f2e141cf88318737094ff4d52

【能力验证】TLCP 协议相关能力验证考点解析

2f1233582f931890b0d6472d39c1729cc20e00d9b26a0ad119c468b8bbbb3e1a171274bf57ef071e4d76ee3441f39b31996b2438e5f3334f91533e93aa1c3db9a1e8b8721d5f922c6e33fb7052a2afb0038d05017e2c0ab5035bf772da2cc2f3c2ce0c6634f3d7626db03963d8c19d8a98c1c4756659b707547fdf0439505e4c1bca72406c22d6ee62e1811d016b402e

【能力验证】TLCP 协议相关能力验证考点解析

使用SM2解密,还原预主密钥:

https://i.goto327.top/CryptTools/SM2.aspx

0101AC14A3D2DA7DCCFCAA9FEE0882F41B9974AA17B8A3070C042DF50A275CAAEC6ED730DFD132EA871BDD19574DC83F

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

3.7 根据模拟题SSL流量包.pcapng,计算主密钥

主密钥题目解析:

需要获取预主密钥、客户端随机数、服务端随机数

master secret 转换为16进制(字符串转换工具)

6d617374657220736563726574

【能力验证】TLCP 协议相关能力验证考点解析

PHASH

seed(A0)=master secret+客户端随机数+服务端随机数

客户端随机数:

tls.handshake.type==1

0a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d8

【能力验证】TLCP 协议相关能力验证考点解析

服务端随机数:

tls.handshake.type==11

5423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac268

【能力验证】TLCP 协议相关能力验证考点解析

拼接seed(A0)

6d6173746572207365637265740a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d85423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac268

然后将拼接完的数据做原始数据输入,用还原的预主密钥作密钥进行HMAC-SM3得到A1

预主密钥:

0101AC14A3D2DA7DCCFCAA9FEE0882F41B9974AA17B8A3070C042DF50A275CAAEC6ED730DFD132EA871BDD19574DC83F

https://i.goto327.top/CryptTools/HashCrypt.aspx

A1:75466BA297BAA6ABF75FA19698B5DEBDF815D632B98FDAF7C1BF60D8A7724F9E

【能力验证】TLCP 协议相关能力验证考点解析

然后A1做原始数据输入,用还原的预主密钥作密钥进行HMAC-SM3得到A2

A2:C7642FABAE939CAD31063AF385648BB48B8FB31E4C94ED97E1CC271208C0E477

【能力验证】TLCP 协议相关能力验证考点解析

然后A2做原始数据输入,用还原的预主密钥作密钥进行HMAC-SM3得到A3

A3:33830B6FE2EEFC391AD497F09E942835FF31E9508B75F9FB5C01730CAA3BB53E

【能力验证】TLCP 协议相关能力验证考点解析

然后拼接A1+seed、A2+seed、A3+seed

A1+seed:75466BA297BAA6ABF75FA19698B5DEBDF815D632B98FDAF7C1BF60D8A7724F9E6D6173746572207365637265740a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d85423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac268

A2+seed:C7642FABAE939CAD31063AF385648BB48B8FB31E4C94ED97E1CC271208C0E4776D6173746572207365637265740a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d85423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac268

A3+seed:33830B6FE2EEFC391AD497F09E942835FF31E9508B75F9FB5C01730CAA3BB53E6D6173746572207365637265740a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d85423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac268

然后再将拼接完的A1+seed、A2+seed、A3+seed做hash,密钥还是预主密钥

hash(A1+seed):

640DA76978A5EFD6E0953088F015FA20EE810E48E24AA6F19A8900BCFF05A3A7

【能力验证】TLCP 协议相关能力验证考点解析

hash(A2+seed):

722DE36C807E5C7CA912E7E6FFA4965E7DB07BEF99DF8C0F27F29C21237F94C7

【能力验证】TLCP 协议相关能力验证考点解析

hash(A3+seed):

36D7EDAE5238BFA4E790B0022BF6A8A631CE7C88F4A061848175999624347A95

【能力验证】TLCP 协议相关能力验证考点解析

然后拼接完hash的数据:

640DA76978A5EFD6E0953088F015FA20EE810E48E24AA6F19A8900BCFF05A3A7722DE36C807E5C7CA912E7E6FFA4965E7DB07BEF99DF8C0F27F29C21237F94C736D7EDAE5238BFA4E790B0022BF6A8A631CE7C88F4A061848175999624347A95

主密钥:

640DA76978A5EFD6E0953088F015FA20EE810E48E24AA6F19A8900BCFF05A3A7722DE36C807E5C7CA912E7E6FFA4965E(取前96字节)

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

3.8 根据模拟题SSL流量包.pcapng,计算工作密钥

工作密钥题目解析:

需要获取预主密钥、客户端随机数、服务端随机数

key expansion转换成16进制

6b657920657870616e73696f6e

【能力验证】TLCP 协议相关能力验证考点解析

seed(A0)=key expansion+服务端随机数+客户端随机数

服务端随机数:    

5423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac268

【能力验证】TLCP 协议相关能力验证考点解析

客户端随机数:

0a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d8

【能力验证】TLCP 协议相关能力验证考点解析

拼接seed(A0)

6B657920657870616E73696F6E5423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac2680a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d8

注:

主密钥:(此过程只不过是是将服务端随机数放到了客户端随机数前面,这里不再进行过程演示)

640DA76978A5EFD6E0953088F015FA20EE810E48E24AA6F19A8900BCFF05A3A7722DE36C807E5C7CA912E7E6FFA4965E

A1:6003A5937FAA6C9276656BD9CF11E5FC44D1DA8CF8916CC3F1A1D9C9C5B2C364

A2:0A45328C9D23A88AD0B0DFE3656996B979BD4A2730A3F8EDE29BC392153B6A6B

A3:FEE4DB5E22A5E48C3C0E0B88509763940A8E65C4AAF850C00AE7EB72282089CF

A4:8807466C968862F58C17B171B3520AB2A519D5DF00C8FC991E9D696244C95437

A1+seed:

6003A5937FAA6C9276656BD9CF11E5FC44D1DA8CF8916CC3F1A1D9C9C5B2C3646B657920657870616E73696F6E5423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac2680a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d8

A2+seed:

0A45328C9D23A88AD0B0DFE3656996B979BD4A2730A3F8EDE29BC392153B6A6B6B657920657870616E73696F6E5423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac2680a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d8

A3+seed:

FEE4DB5E22A5E48C3C0E0B88509763940A8E65C4AAF850C00AE7EB72282089CF6B657920657870616E73696F6E5423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac2680a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d8

A4+seed:

8807466C968862F58C17B171B3520AB2A519D5DF00C8FC991E9D696244C954376B657920657870616E73696F6E5423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac2680a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d8

然后做hash(Ax+seed)

client mac key(用来做HMAC)

87E00935DC21B9D87E3E5616179307D817966079A0DEA9B9D09A4883CBF0E13D

server mac key

B4B53C3B2ACAFE5781712816C1A3A2CECE09D5837EB3389BDF1E471B06BC8157

client enc(用来加解密)

022A23065301DE9E49AAA0879E4ECBF2

server enc key

622CDA5B8994A0BB4496F03B8C13A4CD

client IV(IV值)

145BA093616E5939AAE6B59E4BED7701

server IV

45482C297F4C7CC76B497FCB1B2F4A84

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

3.9 根据模拟题SSL流量包.pcapng工作密钥,解密第8行端口52117到50052的encrypted handshake massage,以及第12行、14行application data数据

第8行解密的handshake massage

encrypted handshake massage:

01cb7997f77ee792a871e70ece4c148eba47b751a1032ec619bea239e1954b8e106e3d7c37491dc809be6c1979d11647ff20e9cae997d9dde43619ca2ae773df9fc8b6304ced8c594ad7d0ff9eeb0067

【能力验证】TLCP 协议相关能力验证考点解析

sm4-cbc解密

密钥:022A23065301DE9E49AAA0879E4ECBF2

IV:145BA093616E5939AAE6B59E4BED7701

798C9C0B7015B173E832F41CEDCD0F821400000C778001771615C2D5B9E553CB6DD2068DC92F27D8CDA2C44584815660A0BED385C0C569A2ED6B294DFA4B3EC90F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F

【能力验证】TLCP 协议相关能力验证考点解析

然后第十二行和第十四行的handshake massage同样处理

sm4-cbc解密

密钥:022A23065301DE9E49AAA0879E4ECBF2

IV:145BA093616E5939AAE6B59E4BED7701

第12行解密的handshake massage

fc5cd01c24a9f63290941ac015b49a6f9fd9ca2f9a2c9bc8d08f2d6fd41cb0e07fb573219ae693175a01279175cfd6efed1c0697a638a8c5cac3ee3e531d99cc

【能力验证】TLCP 协议相关能力验证考点解析

175D3C90378D99285BB69756C0EB139A47FBA05E1B8988C9AE7B934460DDFF88600C5FF0980242EC9677D2F557C746FB020E0E0E0E0E0E0E0E0E0E0E0E0E0E0E

【能力验证】TLCP 协议相关能力验证考点解析

第14行解密的handshake massage

2483ab5ebb61282484fee0db27e53a7d9de64349b6899934a6b3f935ffbe8d9d41e3c1ea21ce53f7c48ef5de6c009a02e033f75c21a70a12db2eeb166213d42e140f9bea39d02c9991f8b9991eda8afe44971ba0c3eaffd47c202e31b2066b17e5233feb83c8f4f25a292cbb264cb729

【能力验证】TLCP 协议相关能力验证考点解析

980B3648B73D349D1A85EF65B8BE0C794554202F20485454502F312E310D0A486F73743A206C6F63616C686F73740D0A436F6E6E656374696F6E3A20636C6F73650D0A0D0ACBA63F629594DA48A591A34B0EDE377F23378B3C672D578847085FF2171278EF0A0A0A0A0A0A0A0A0A0A0A

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

3.10 根据模拟题SSL流量包.pcapng工作密钥,解密第10行端口50052到52117的encrypted handshake massage

和上面的过程一样 只不过这时的

sm4-cbc解密

密钥:622CDA5B8994A0BB4496F03B8C13A4CD

IV:45482C297F4C7CC76B497FCB1B2F4A84

0f74bb8cbfa527b2d9b75c4674e45f94a862b218e70bc311cc4745e10398ff3703ddbcc6853d918e1df031517caa78b0a3ab3dac70dddf09eee9266fb685151335bb8a3e7b8ea2bf6d71d45455e51b23

【能力验证】TLCP 协议相关能力验证考点解析

D6770A0BD9253B6F4DE7A42779D7605E1400000CE7CDA178C6D6D8B6A45FBB02CE9CC490CF0D61DFAEA90AEE4CC5DEB1378639DE36153C357B429DA0A0B19F660F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

3.11 请伪造新的消息,消息分组长度可变,并伪造出新的mac

知识点扩展:

SM4  CBC-MAC 消息长度扩展异或伪造攻击

根据 GB-T 15852.1—2020 《信息技术 安全技术 消息鉴别码 第 1 部分:采用分组密码的机制》文档内容:

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

【能力验证】TLCP 协议相关能力验证考点解析

题目使用SM4  CBC-MAC机制,计算了两个 32 字节消息的 MAC值,要求我们给出一个 64 字节的消息和对应的 MAC 值。
我们知道 CBC 的模式大概是这样的

【能力验证】TLCP 协议相关能力验证考点解析

而 SM4 CBC-MAC 是以最后一组的密文作为 MAC 值。于是对于这题而言,我们已知的信息是这样的

【能力验证】TLCP 协议相关能力验证考点解析

已知经由SM4 CBC-MAC生成的MAC值如下

MSG1:

E55E3E24A3AE7797808FDCA05A16AC15EB5FA2E6185C23A814A35BA32B4637C2

MAC1:

0712C867AA6EC7C1BB2B66312367B2C8

MSG2:

D8D94F33797E1F41CAB9217793B2D0F02B93D46C2EAD104DCE4BFEC453767719

MAC2:

43669127AE268092C056FD8D03B38B5B

要求生成64字节(128个16进制字)的MSG3和对应的MAC3。

分析:

A、SM4-CBC,输入为128位IV随机数、对称密钥K、128位明文分组

B、SM4 CBC-MAC,输入同SM4-CBC,只是IV取值固定为0,输出只取最后一个分组加密后的密文

C、MSG1明文长度为32字节(256位),所以有2个分组(M1a和M1b),输出为MAC1

    M1a =E55E3E24A3AE7797808FDCA05A16AC15

    M1b =EB5FA2E6185C23A814A35BA32B4637C2

    MAC1=0712C867AA6EC7C1BB2B66312367B2C8

    IV     =00000000000000000000000000000000

    MAC1 = Ek(k, Ek(k,IV⊕M1a)⊕M1b) = Ek(k, Ek(k,M1a)⊕M1b) 

D、同上MSG2与MSG1情况相同,所以

    MAC2 = Ek(k, Ek(k,M2a)⊕M2b) 

E、同理,对于MSG3,有4个分组(M3a、M3b、M3c、M3d),输出为MAC3

    MAC3 = Ek(k,Ek(k,Ek(k, Ek(k,M3a)⊕M3b)⊕M3c)⊕M3d)

经过分析,大致思路是MSG3可以由MSG1和MSG2适当拼接而成。具体的

    M3a = M1a

    M3b = M1b

    所以有Ek(k, Ek(k,M3a)⊕M3b) = Ek(k, Ek(k,M1a)⊕M1b) = MAC1

    现在需要构造一个 M3c满足:M3c⊕MAC1 = M2a,也就是M3c = M2a⊕MAC1

    这样,当IV=MAC1时,Ek(k,MAC1⊕M3a) = Ek(k,M2a)

    M3d = M2b

综上

MSG3 = M1a||M1b||M2a⊕MAC1||M2b

E55E3E24A3AE7797808FDCA05A16AC15EB5FA2E6185C23A814A35BA32B4637C2DFCB8754D310D88071924746B0D562382B93D46C2EAD104DCE4BFEC453767719

MAC3 = MAC2

43669127AE268092C056FD8D03B38B5B

【能力验证】TLCP 协议相关能力验证考点解析

参考:熵密杯第一题 初始谜题

 消息1:9e07a1cdcd795bc9cf5ae8984eeed7de

 mac1:6e3ede668142ead5ceb7e0ea2223d4bb

 解题思路:首先了解对称加密模式,CBC模式可以产生MAC,且初始向量为全零时,可构造MAC值

当IV全0时,IV和密文1异或=M1,M1加密得到MAC1

当M1异或(MAC1异或M1)=MAC1,所以M2=M1拼接(MAC1异或M1)

CBC模式的加密和解密流程如图所示。在CBC模式下,每个明文分组在加密之前,先与反馈至输入端的前一组密文分组按位异或后,再送至加密模块进行加密。其中,IV是一个初始向量,无须保密,但须随着消息的更换而更换,且收发双方必须选用同一个IV。显然,计算的密文分组不仅与当前明文分组有关,而且通过反馈作用还与以前的明文分组有关。在解密过程中,初始值IV用于产生第一个明文输出;之后,前一个密文分组与当前密文分组解密运算后的结果进行异或,得到对应的明文分组。

【能力验证】TLCP 协议相关能力验证考点解析

 新消息:

 9e07a1cdcd795bc9cf5ae8984eeed7def0397fab4c3bb11c01ed08726ccd0365

 新消息MAC:

 6e3ede668142ead5ceb7e0ea2223d4bb

【能力验证】TLCP 协议相关能力验证考点解析

f0397fab4c3bb11c01ed08726ccd0365

【能力验证】TLCP 协议相关能力验证考点解析

3.12 后台对于用户身份鉴别的验证逻辑如下所述:用户提交的数字证书(hex格式,以3082打头)验证用户提交的签名值(sm2withsm3算法)以及签名原数据,如果验证成功,则提示用户鉴别成功。

参考:熵密杯第二题

证书(请提交hex格式证书)

解题思路:

这个时候我们可以生成一个SM2的公私钥对,

私钥:

7455A2FF5B02D79DA427E30658C2641925ED77AE11B2CACD5BD1E5C36798FA53

公钥:

353A365B7BCC06152D06D22E6AFF0AE2E6569692D07E40EDC35CC80F24132ECC

3AAA769C143B8C558CB6879AB2BEE2BE3D460391A065E9D790F7909F70D623E5

然后对12345678数据进行签名

得到签名值:

50F9C05D233DB820DB566B137FD1D33D6732C16FADABB43C10AF670AB6A1C96AE8E16DFA23F81D3B148367C4FCF6305AF43986034B16072A19EA686229218947

然后我们将原来的证书导出来:

------------------------------------------------------------------------

30820203308201a9a003020102020802ce05b3832c3387300a06082a811ccf550183753042310b300906035504061302434e310f300d06035504080c06e6b599e6b19f310f300d06035504070c06e69dade5b79e3111300f060355040a0c08e6b58be8af954341301e170d3231303533303130333632345a170d3331303533303036353530325a305a310b300906035504061302434e310f300d06035504080c06e6b599e6b19f310f300d06035504070c06e69dade5b79e31153013060355040a0c0ce6b58be8af95e585ace58fb831123010060355040313096c6f63616c686f73743059301306072a8648ce3d020106082a811ccf5501822d034200

040634504b9925f0832a72005967eaa960695f9ae87d5169306ba45d76722b98f9b9daf5ec015db01d336c183c1c6af227d97e5fd39e0bd7f1302aacdc31f29aef  (原始公钥)

a371306f300e0603551d0f0101ff0404030206c0301d0603551d250416301406082b0601050507030106082b06010505070302301d0603551d0e041604149a39eb4f5aa952500f24238512c66ed0f00b8545301f0603551d2304183016801491d3d7a6f97b77fc795dcbd232acbb4004b0f8ff300a06082a811ccf55018375034800304502201613cda55da36d2e534e2c096ece5254a549e87690d0d76d6d817e5f667295c1022100aa4877ee80ba6a2ba96d1041c81a3ebc0fdcec8979dd573cbc6f39890c992753

【能力验证】TLCP 协议相关能力验证考点解析

------------------------------------------------------------------------

然后我们将公钥进行替换之后进行验证:

30820203308201a9a003020102020802ce05b3832c3387300a06082a811ccf550183753042310b300906035504061302434e310f300d06035504080c06e6b599e6b19f310f300d06035504070c06e69dade5b79e3111300f060355040a0c08e6b58be8af954341301e170d3231303533303130333632345a170d3331303533303036353530325a305a310b300906035504061302434e310f300d06035504080c06e6b599e6b19f310f300d06035504070c06e69dade5b79e31153013060355040a0c0ce6b58be8af95e585ace58fb831123010060355040313096c6f63616c686f73743059301306072a8648ce3d020106082a811ccf5501822d034200353A365B7BCC06152D06D22E6AFF0AE2E6569692D07E40EDC35CC80F24132ECC3AAA769C143B8C558CB6879AB2BEE2BE3D460391A065E9D790F7909F70D623E5a371306f300e0603551d0f0101ff0404030206c0301d0603551d250416301406082b0601050507030106082b06010505070302301d0603551d0e041604149a39eb4f5aa952500f24238512c66ed0f00b8545301f0603551d2304183016801491d3d7a6f97b77fc795dcbd232acbb4004b0f8ff300a06082a811ccf55018375034800304502201613cda55da36d2e534e2c096ece5254a549e87690d0d76d6d817e5f667295c1022100aa4877ee80ba6a2ba96d1041c81a3ebc0fdcec8979dd573cbc6f39890c992753

【能力验证】TLCP 协议相关能力验证考点解析

伪造成功!

原文始发于微信公众号(利刃信安):【能力验证】TLCP 协议相关能力验证考点解析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月23日00:16:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【能力验证】TLCP 协议相关能力验证考点解析http://cn-sec.com/archives/3087235.html

发表评论

匿名网友 填写信息