GB35114双向身份认证(A级)学习笔记

GB35114双向身份验证学习笔记

温故而知新

SSL单向认证

摘录自:https://blog.csdn.net/qq_45759354/article/details/128672828

SSL协议用到了对称加密和非对称加密,在建立连接时,SSL首先对对称加密密钥使用非对称加密。连接建立好后,SSL对传输内容使用对称加密。单向认证是客户端不携带证书,服务端存在证书,在认证过程中,仅验证服务端的身份,当客户端访问服务器时,浏览器会去检查服务器的SSL证书,来验证网站服务器的合法性。一般web端应用都是采用单向认证的。

单向认证过程

客户端向服务端发送SSL协议的版本号、加密算法种类、随机数等信息,建立连接;

服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,以及服务端证书(证书中有公钥);

客户端用返回的信息,进行对服务端的校验,验证通过则继续通信,否则告警,验证内容:

证书是否过期
服务器证书签发的CA机构是否可靠
公钥是否能解开证书中的数字签名
服务器证书上的域名是否和服务器实际域名相匹配
客户端向服务器发送自己所能支持的对称加密方案,供服务器进行选择;

服务器选择加密程度高的加密方式;

服务器将选择好的加密方式以明文方式返回给客户端;

客户端收到加密方案后,使用该加密方案生成随机码,用作通信过程中对称加密的密钥,使用服务端返回的公钥进行加密,将加密后的随机码发送给服务器;

服务端收到客户端返回的加密信息后,使用自己的私钥解密,获取对称加密密钥,接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信的信息安全。

图片摘录自(略微修改):https://www.cnblogs.com/bluestorm/p/10571989.html
在这里插入图片描述

SSL双向认证

摘录自:https://blog.csdn.net/qq_45759354/article/details/128672828

双向认证是指在SSL握手的过程中,同时验证客户端和服务器的身份,所以双向认证SSL证书至少包括两个或两个以上的证书,一个是服务器证书,另一个或多个是客户端证书。

双向认证过程

客户端向服务器发送SSL协议的版本号、加密算法种类、随机数等信息,建立连接;
服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,以及服务端证书(证书中有公钥);
客户端使用服务端返回的信息验证服务器的合法性,验证内容跟单向认证一样;
客户端校验通过后,将自己的证书及公钥发送到服务器;
服务器验证客户端的证书,校验通过后,可获取到客户端的公钥;
客户端发送自己的可支持的对称加密方案给服务器供其选择;
服务器端在客户端发送的加密方案中先择加密程度高的方案,将加密方式通过客户端发送证书中的公钥加密后,返回给客户端;
客户端收到服务端返回的加密方案密文后,用私钥解密,获取加密方案的明文,产生随机码,作为对称加密密钥,使用服务端公钥加密后,发送给服务端;
服务端使用私钥解密得到对称加密的密钥,接下来的会话中,服务器和客户端将使用该密钥进行对称加密,保证通信安全。

图片摘录自(略微修改):https://www.cnblogs.com/bluestorm/p/10571989.html
在这里插入图片描述

设备接入认证

本章节部分内容摘录自(主要分析此连接的报文信息):https://blog.csdn.net/songxiao1988918/article/details/98749629

SIP服务器认证FDWSF的单向身份认证

请添加图片描述

注册请求(携带设备安全能力 [Authorization: Capability])

REGISTER sip:11011200002000000100@1101120000 SIP/2.0
Via: SIP/2.0/UDP 192.168.3.12:5060;rport;branch=z9hG4bK443099353
From: sip:11011200001325000001@1101120000;tag=249558797
To: sip:11011200001325000001@1101120000
Call-ID: 1524440977
CSeq: 1 REGISTER
Contact: sip:11011200001325000001@192.168.3.12:5060
Authorization: Capability algorithm=“A:SM2;H:SM3;S:SM1/OFB/PKCS5;SI:SM3-SM2”, keyversion=“2019-08-06T05:31:39”, cnonce=“devicecert:LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJiVENDQVJNQ0FRRXdDZ1lJS29FY3oxVUJnM1V3UWpFTE1Ba0dBMVVFQmhNQ1EwNHhFREFPQmdOVkJBZ00KQjJkaU16VXhNVFF4SVRBZkJnTlZCQW9NR0VsdWRHVnlibVYwSUZkcFpHZHBkSE1nVUhSNUlFeDBaREFlRncweApPVEEzTWpVd09USTVORGRhRncweU9UQTNNakl3T1RJNU5EZGFNRU14Q3pBSkJnTlZCQVlUQWtOT01UUXdNZ1lEClZRUUREQ3N6TWpBd01EQXdNREF3TVRNeU5UQXdNREF3TVY4eE56RTNNREV5TURFMU1EZ3dNVEk1TURZMU1URTMKTUZrd0V3WUhLb1pJemowQ0FRWUlLb0VjejFVQmdpMERRZ0FFWkhmbFZYaGxvOFZDTkRHZFcvZjVROE50SUVjcAoyRGZVbjI2Rm5WKy9Ob3F0b1dzb1JjRityUzZ2bTVubStqc0pKdWc0amN4WlBiaTNkOE9qWDgwMnpUQUtCZ2dxCmdSelBWUUdEZFFOSUFEQkZBaUVBeFMzQk9oVkRGQjBBVDBjTFJCYUJtQ3o2WXBFZjB4eUxBclVHdDBqeUwzQUMKSUR2RkE5NWFXc1JEazRaTm5iZ2l4eHRmbW53eXB1UUZLY0lwMGMwZUZKcHIKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=”
Max-Forwards: 70
User-Agent: IP Camera
Expires: 3600
Content-Length: 0

通过Authorization域,告知上级平台,FDWSF的能力(Capability)
请添加图片描述

  • 算法能力
    algorithm=“A:SM2;H:SM3;S:SM1/OFB/PKCS5;SI:SM3-SM2”
    非对称加密算法支持:SM2
    杂凑算法(Hash)支持:SM3
    对称加密算法支持:SM1/OFB/PKCS5
    签名算法支持:SM3-SM2

吐槽一波:这个FDWSF(安全前端设备:Front-end Device With Safety Function)只支持SM1算法,这个算法可能没有软件实现方案,估计得上加密芯片,如果是软件方案,这个设备将无法支持,如果做软件方案,设备不支持SM4将是个风险点。

  • 密钥版本
    keyversion=“2019-08-06T05:31:39”

在这里插入图片描述
再吐槽一波:这个标准本身就自我矛盾,例如的值都不符合16为数字字符的要求,这不是难为开发人员么?不过见怪不怪了,习惯就好。分析这个报文,至少前面的报文补0了,看着舒服一些,那就按照找的报文方式处理数据好了。

  • 客户端随机 (非标字段,摘要认证中的一个字段,由于标准中没有,先不讨论) cnonce=“devicecert:LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJiVENDQVJNQ0FRRXdDZ1lJS29FY3oxVUJnM1V3UWpFTE1Ba0dBMVVFQmhNQ1EwNHhFREFPQmdOVkJBZ00KQjJkaU16VXhNVFF4SVRBZkJnTlZCQW9NR0VsdWRHVnlibVYwSUZkcFpHZHBkSE1nVUhSNUlFeDBaREFlRncweApPVEEzTWpVd09USTVORGRhRncweU9UQTNNakl3T1RJNU5EZGFNRU14Q3pBSkJnTlZCQVlUQWtOT01UUXdNZ1lEClZRUUREQ3N6TWpBd01EQXdNREF3TVRNeU5UQXdNREF3TVY4eE56RTNNREV5TURFMU1EZ3dNVEk1TURZMU1URTMKTUZrd0V3WUhLb1pJemowQ0FRWUlLb0VjejFVQmdpMERRZ0FFWkhmbFZYaGxvOFZDTkRHZFcvZjVROE50SUVjcAoyRGZVbjI2Rm5WKy9Ob3F0b1dzb1JjRityUzZ2bTVubStqc0pKdWc0amN4WlBiaTNkOE9qWDgwMnpUQUtCZ2dxCmdSelBWUUdEZFFOSUFEQkZBaUVBeFMzQk9oVkRGQjBBVDBjTFJCYUJtQ3o2WXBFZjB4eUxBclVHdDBqeUwzQUMKSUR2RkE5NWFXc1JEazRaTm5iZ2l4eHRmbW53eXB1UUZLY0lwMGMwZUZKcHIKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=”
    在这里插入图片描述
    不管从文字描述还是内容还是那个看,就是设备的证书信息
注册响应401 Unauthorized(R1回传 [WWW-Authenticate:Unidirection])

请添加图片描述

SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.3.12:5060;rport=5060;branch=z9hG4bK443099353
From: sip:11011200001325000001@1101120000;tag=249558797
To: sip:11011200001325000001@1101120000;tag=127583574
Call-ID: 1524440977
CSeq: 1 REGISTER
WWW-Authenticate: Unidirection algorithm=“A:SM2;H:SM3;S:SM1/OFB/PKCS5;SI:SM3-SM2”, random1=“PRAIIbutDbd5x/NKsbwwYw==”
Content-Type: Application/MANSCDP+xml
User-Agent: videosvr 1.0
Content-Length: 0

通过WWW-Authenticate域,告知下级平台服务器使用Unidirection(单向身份验证)

  • 算法
    algorithm=“A:SM2;H:SM3;S:SM1/OFB/PKCS5;SI:SM3-SM2”

吐槽:也没有给上级平台可选的余地,就这一组算法。

  • 随机数1
    random1=“PRAIIbutDbd5x/NKsbwwYw==”
    在这里插入图片描述
    标准中只说是随机数,但是报文中明显是base64编码,其内容为16字节的随机数据
注册请求(携带 Token CS= R2+R1+ServerID [Authorization: Unidirection])

REGISTER sip:11011200002000000100@1101120000 SIP/2.0
Via: SIP/2.0/UDP 192.168.3.12:5060;rport;branch=z9hG4bK582371201
From: sip:11011200001325000001@1101120000;tag=249558797
To: sip:11011200001325000001@1101120000
Call-ID: 1524440977
CSeq: 2 REGISTER
Contact: sip:11011200001325000001@192.168.3.12:5060
Authorization: Unidirection random1=“PRAIIbutDbd5x/NKsbwwYw==”, random2=“F4InuQewuMMqYPy1ItBdhQ==”, serverid=“11011200002000000100”, sign1=“MEYCIQD/9gP8olHM0TeLj0MxBRw3C8tQKFMMRgUupnyD4xXTTwIhAJvXxvTEDXj8Yk5qjHwujzUjpYpxxCGq7Zz0tKzhhJUU”, algorithm=“A:SM2;H:SM3;S:SM1/OFB/PKCS5;SI:SM3-SM2”
Max-Forwards: 70
User-Agent: IP Camera
Expires: 3600
Content-Length: 0

通过Authorization域,告知上级平台使用Unidirection(单向身份验证)

  • 随机数1
    random1=“PRAIIbutDbd5x/NKsbwwYw==”
    服务器生成的random1,在注册时携带上。

  • 随机数2
    random2=“F4InuQewuMMqYPy1ItBdhQ==”
    在这里插入图片描述
    吐槽:标准中只说是随机数,但是报文中明显是base64编码,其内容也为16字节的随机数据

  • 服务器ID
    serverid=“11011200002000000100”

  • 签名1
    sign1=“MEYCIQD/9gP8olHM0TeLj0MxBRw3C8tQKFMMRgUupnyD4xXTTwIhAJvXxvTEDXj8Yk5qjHwujzUjpYpxxCGq7Zz0tKzhhJUU”

FDWSF的私钥 SI(random2 + random1 + serverid)
用于服务器对设备身份进行验签

  • 算法
    algorithm=“A:SM2;H:SM3;S:SM1/OFB/PKCS5;SI:SM3-SM2”

与服务器选择的算法一致

注册响应200(携带Cryptkey [SecurityInfo: Unidirection])

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.3.12:5060;rport=5060;branch=z9hG4bK582371201
From: sip:11011200001325000001@1101120000;tag=249558797
To: sip:11011200001325000001@1101120000;tag=822951361
Call-ID: 1524440977
CSeq: 2 REGISTER
Contact: sip:11011200001325000001@192.168.3.22:5060
User-Agent: videosvr 1.0
Expires: 3600
Date: 2019-08-06T13:31:57.004
SecurityInfo: Unidirection cryptkey=“MHkCIBHIiuBM7BulVNA9W1lwMzqDWFgmwqmF3lUg2ek0OJ77AiEAhLUtNE+yGqjqOKSUDIMyaSuNTaI5NUkhLq/cDxHKXJwEIHFMxhef2Mm87QjLenmuVKs1rGm7Ls3aMG+1zPp47365BBAnTJVAmqz9pBE2xKOXhpQF”, algorithm=“A:SM2;H:SM3”
Content-Length: 0

通过SecurityInfo域,告知**Unidirection(单向身份验证)**结果

  • 密钥
    cryptkey=“MHkCIBHIiuBM7BulVNA9W1lwMzqDWFgmwqmF3lUg2ek0OJ77AiEAhLUtNE+yGqjqOKSUDIMyaSuNTaI5NUkhLq/cDxHKXJwEIHFMxhef2Mm87QjLenmuVKs1rGm7Ls3aMG+1zPp47365BBAnTJVAmqz9pBE2xKOXhpQF”
    使用FDWSF公钥对VKEK进行加密后做Base64编码后得到cryptkey。
    在这里插入图片描述
0x30,0x79,
	0x02,0x20,[UnknowType]
		0x11,0xc8,0x8a,0xe0,0x4c,0xec,0x1b,0xa5,
		0x54,0xd0,0x3d,0x5b,0x59,0x70,0x33,0x3a,
		0x83,0x58,0x58,0x26,0xc2,0xa9,0x85,0xde,
		0x55,0x20,0xd9,0xe9,0x34,0x38,0x9e,0xfb,
	0x02,0x21,0x00,[UnknowType]
		0x84,0xb5,0x2d,0x34,0x4f,0xb2,0x1a,0xa8,
		0xea,0x38,0xa4,0x94,0x0c,0x83,0x32,0x69,
		0x2b,0x8d,0x4d,0xa2,0x39,0x35,0x49,0x21,
		0x2e,0xaf,0xdc,0x0f,0x11,0xca,0x5c,0x9c,
	0x04,0x20,[OCTET STRING]
		0x71,0x4c,0xc6,0x17,0x9f,0xd8,0xc9,0xbc,
		0xed,0x08,0xcb,0x7a,0x79,0xae,0x54,0xab,
		0x35,0xac,0x69,0xbb,0x2e,0xcd,0xda,0x30,
		0x6f,0xb5,0xcc,0xfa,0x78,0xef,0x7e,0xb9,
	0x04,0x10,[OCTET STRING]
		0x27,0x4c,0x95,0x40,0x9a,0xac,0xfd,0xa4,
		0x11,0x36,0xc4,0xa3,0x97,0x86,0x94,0x05,

虽说GB35114说明,cryptkey为使用设备公钥对VKEK进行加密后的Base64字符串,但是从二进制数据上来看,符合ASN.1的语法,其中有连个32字节的0x02类型的数据,和一个32字节的0x04和一个16字节的0x04类型的数据,数据生成柜子不详。

  • 算法
    algorithm=“A:SM2;H:SM3”

非对称算法:SM2
杂凑算法(Hash)支持:SM3

吐槽,这里为什么不指定对称加密算法?标准例子里没有就没有,不管了。

SIP服务器与FDWSF间的双向身份认证

请添加图片描述

注册请求(携带设备安全能力 [Authorization: Capability])

REGISTER sip:34020000002000000003@34020000 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.64:5060;rport;branch=z9hG4bK520712539
From: sip:34020000001320000001@34020000;tag=1465468922
To: sip:34020000001320000001@34020000
Call-ID: 563593916
CSeq: 1 REGISTER
Contact: sip:34020000001320000001@192.168.1.64:5060
Authorization: Capability algorithm=“A:SM2;H:SM3;S:SM1/OFB/PKCS5;SI:SM3-SM2”, keyversion=“2018-12-20T19:27:41”
Max-Forwards: 70
User-Agent: IP Camera
Expires: 3600
Content-Length: 0

  • 算法能力
    algorithm=“A:SM2;H:SM3;S:SM1/OFB/PKCS5;SI:SM3-SM2”
    非对称加密算法支持:SM2
    杂凑算法(Hash)支持:SM3
    对称加密算法支持:SM1/OFB/PKCS5
    签名算法支持:SM3-SM2

吐槽一波:这个FDWSF也是只支持SM1算法,有点危险。

  • 密钥版本
    keyversion=“2019-08-06T05:31:39”

上面吐槽过了,这里不吐槽了,但是这次没有cnonce了,这次才是对的嘛!

注册响应401 Unauthorized(R1回传 [WWW-Authenticate:Bidirection])

SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.1.64:5060;rport=5060;branch=z9hG4bK520712539
From: sip:34020000001320000001@34020000;tag=1465468922
To: sip:34020000001320000001@34020000;tag=1966674912
Call-ID: 563593916
CSeq: 1 REGISTER
User-Agent: videosvr 1.0
Expires: 3600
Date: 2018-12-20T19:27:42.000
WWW-Authenticate: Bidirection algorithm=“A:SM2;H:SM3;S:SM4/OFB/PKCS5,SM1/OFB/PKCS5;SI:SM3-SM2”, random1=“OxImNZnZwyNMtx0FjnWKrg==”
Content-Length: 0

通过WWW-Authenticate域,告知下级平台服务器使用Bidirection (双向向身份验证)

  • 算法
    algorithm=“A:SM2;H:SM3;S:SM1/OFB/PKCS5;SI:SM3-SM2”

吐槽:也是没得选。

  • 随机数1
    random1=“OxImNZnZwyNMtx0FjnWKrg==”

吐槽:感觉随机数肯定有标准,就是我没有看到,莫非是这个要求:随机数生成算法需要通过GM/T 0005-2012检测,稍后查一下

注册请求(携带 Token CS= R2+R1+ServerID [Authorization: Bidirection])

REGISTER sip:34020000002000000003@34020000 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.64:5060;rport;branch=z9hG4bK1060289490
From: sip:34020000001320000001@34020000;tag=1465468922
To: sip:34020000001320000001@34020000
Call-ID: 563593916
CSeq: 2 REGISTER
Contact: sip:34020000001320000001@192.168.1.64:5060
Authorization: Bidirection random1=“OxImNZnZwyNMtx0FjnWKrg==”, random2=“KBDLEUo83FgcnHXcSNN04w==”, serverid=“34020000002000000003”, sign1=“MEYCIQDRWE9xmwU4+2pS7RF4H+VXhFvo6VkM/hiCvTZpxVKZ7AIhAJbLfc9r7OpgzMc0bdqE6XuOs70vF96BcCbvoOqKGRjh”, algorithm=“A:SM2;H:SM3;S:SM4/OFB/PKCS5,SM1/OFB/PKCS5;SI:SM3-SM2”
Max-Forwards: 70
User-Agent: IP Camera
Expires: 3600
Content-Length: 0

通过Authorization域,告知上级平台使用Bidirection (双向向身份验证)

  • 随机数1
    random1=“OxImNZnZwyNMtx0FjnWKrg==”
    服务器生成的random1,在注册时携带上。

  • 随机数2
    random2=“KBDLEUo83FgcnHXcSNN04w==”
    客户端随机数

  • 服务器ID
    serverid=“34020000002000000003”

  • 签名1
    sign1=“MEYCIQDRWE9xmwU4+2pS7RF4H+VXhFvo6VkM/hiCvTZpxVKZ7AIhAJbLfc9r7OpgzMc0bdqE6XuOs70vF96BcCbvoOqKGRjh”

FDWSF的私钥 SI(random2 + random1 + serverid)
用于服务器对设备身份进行验签

  • 算法
    algorithm=“A:SM2;H:SM3;S:SM4/OFB/PKCS5,SM1/OFB/PKCS5;SI:SM3-SM2”
    吐槽:这次有点意思,对称加密算饭竟然有SM4,
注册响应200(携带Cryptkey [SecurityInfo: Bidirection])

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.64:5060;rport=5060;branch=z9hG4bK1060289490
From: sip:34020000001320000001@34020000;tag=1465468922
To: sip:34020000001320000001@34020000;tag=1980721111
Call-ID: 563593916
CSeq: 2 REGISTER
User-Agent: videosvr 1.0
Expires: 3600
Date: 2018-12-20T19:27:42.000
SecurityInfo: Bidirection algorithm=“A:SM2;H:SM3;S:SM4/OFB/PKCS5,SM1/OFB/PKCS5;SI:SM3-SM2”,random1=“OxImNZnZwyNMtx0FjnWKrg==”,random2=“KBDLEUo83FgcnHXcSNN04w==”,deviceid=“34020000001320000001”,serverid=“34020000002000000003”,cryptkey=“MHgCICPmu12OKCfCNsiTK/6wSsHpDEF43fedv9AxRjj+XzQ0AiAZnh6496mWVcpV+BWOK4tZ3G3q/TZ4Dwt6vBv3G4xlXQQgMfbkaXwYUL8RObHfkpQEC++/CA/Enssg7rlZgDnKCXQEEEWqHpbVai9NJaT0orxaQ4Y=”,sign2=“MEUCIQDzvGhJCuxmH/3NNtLNnrXIUOxYkYB7j8/3Th1LvjZHggIgD/nd9RbpEd6neZTuXDsIbNzydyS8WarbN1p6nHD5pHk=”
Content-Length: 0

通过SecurityInfo域,告知**Bidirection (双向向身份验证)**结果

  • 算法
    algorithm=“A:SM2;H:SM3;S:SM4/OFB/PKCS5,SM1/OFB/PKCS5;SI:SM3-SM2”
    对称算法也是有连个,SM1和SM4

非对称算法:SM2
杂凑算法(Hash)支持:SM3
对称算法:SM4/OFB/PKCS5,SM1/OFB/PKCS5
签名算法:SM3-SM2

  • 随机数1
    random1=“OxImNZnZwyNMtx0FjnWKrg==”
    服务器生成的random1

  • 随机数2
    random2=“KBDLEUo83FgcnHXcSNN04w==”
    客户端生成的random2

  • 设备ID
    deviceid=“34020000001320000001”

  • 服务器ID
    serverid=“34020000002000000003”

  • 密钥
    cryptkey=“MHgCICPmu12OKCfCNsiTK/6wSsHpDEF43fedv9AxRjj+XzQ0AiAZnh6496mWVcpV+BWOK4tZ3G3q/TZ4Dwt6vBv3G4xlXQQgMfbkaXwYUL8RObHfkpQEC++/CA/Enssg7rlZgDnKCXQEEEWqHpbVai9NJaT0orxaQ4Y=”
    双向身份验证验签时需要此字段

  • 签名2
    sign2=“MEUCIQDzvGhJCuxmH/3NNtLNnrXIUOxYkYB7j8/3Th1LvjZHggIgD/nd9RbpEd6neZTuXDsIbNzydyS8WarbN1p6nHD5pHk=”

Server的私钥 SI(random2 + random1 + deviceid + cryptkey)
用户设备端对服务端做身份验证

管理平台间认证

在这里插入图片描述
平台间的双向身份验证没有找到实际例子,只能拿标准中的师范分析了。

吐槽,消息师范D2根本就是设备的双向身份验证,被标准忽悠了额,那怎么办?看文字说明,自己琢磨吧。

注册请求(携带设备安全能力 [Authorization: Capability])

和设备端双向认证内容一致,此章节省略

注册响应401 Unauthorized(R1回传 [WWW-Authenticate:Bidirection])

和设备端双向认证内容一致,此章节省略

注册请求(携带 Token CS= R2+R1+ServerID [Authorization: Bidirection])

和设备端双向认证内容一致,此章节省略

注册响应200(携带Cryptkey [SecurityInfo: Bidirection])

通过SecurityInfo域,告知**Bidirection (双向向身份验证)**结果

  • 算法
    algorithm=“A:SM2;H:SM3;S:SM4/OFB/PKCS5,SM1/OFB/PKCS5;SI:SM3-SM2”
    对称算法也是有连个,SM1和SM4

非对称算法:SM2
杂凑算法(Hash)支持:SM3
对称算法:SM4/OFB/PKCS5,SM1/OFB/PKCS5
签名算法:SM3-SM2

  • 随机数1
    random1=“OxImNZnZwyNMtx0FjnWKrg==”
    服务器生成的random1

  • 随机数2
    random2=“KBDLEUo83FgcnHXcSNN04w==”
    客户端生成的random2

  • 设备ID
    deviceid=“34020000001320000001”

  • 服务器ID #标准中没有这个字段,找的报文中有
    serverid=“34020000002000000003”

  • 密钥
    cryptkey=“MHgCICPmu12OKCfCNsiTK/6wSsHpDEF43fedv9AxRjj+XzQ0AiAZnh6496mWVcpV+BWOK4tZ3G3q/TZ4Dwt6vBv3G4xlXQQgMfbkaXwYUL8RObHfkpQEC++/CA/Enssg7rlZgDnKCXQEEEWqHpbVai9NJaT0orxaQ4Y=”
    双向身份验证验签时需要此字段

  • 签名2
    sign2=“MEUCIQDzvGhJCuxmH/3NNtLNnrXIUOxYkYB7j8/3Th1LvjZHggIgD/nd9RbpEd6neZTuXDsIbNzydyS8WarbN1p6nHD5pHk=”

Server的私钥 SI(random2 + random1 + deviceid + cryptkey)
用户设备端对服务端做身份验证

控制信令认证

  • 时间要求:
    注册成功后,信令发送方与信令接收方进行交互时
  • 算法要求:
    采用基于带密钥的杂凑方式保障信令来源安全
  • 范围要求:
    对除 REGISTER 消息以外的消息做带密钥的杂凑
  • 头域要求
    启用 Date 字段,扩展信令消息头域,在头域中增加 Note 字段
  • Note头域要求
    值为 Digest,有两个参数 nonce,algorithm

Digest nonce =“”,algorithm=“”

以SM3杂凑算法为例子:
Basic64[SM3[METHOD+From+to+CallID+Date+VKEK+消息体]]

  • Date头域要求
    Date 精确到秒,Date 比对有效时间范围可设,初设值为 10 min(10分钟内有效)

Date: 2008040112:20

示范的是什么鬼,不是说好的精确到秒么?
格式应该是YYYYMMDDhh:mm //TODO 抓个包看看

找了一个报文

Date: 2024-01-31T14:40:49.583
Note: Digest nonce=“wQxQbJVX8aZZ14Ujpr4LZDd3uGDkaPGcHKleyfim4nA=”,algorithm=SM3

说好的精确到秒,这都精确到毫秒了,都不按照标准玩。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值