国标35114是一个国家强制性标准,全称是《公共安全视频监控联网信息安全技术要求》。该标准规定了公共安全领域视频监控联网视频信息以及控制信令信息安全保护的技术要求,适用于公共安全领域视频监控系统的信息安全方案设计、系统检测及与之相关的设备研发与检测。该标准是国际国内第一个关于视频监控联网信息安全方面的技术标准,对于保障视频监控联网信息的安全具有重要作用。
一、为什么要做签名和验签
国标35114要求对视频数据和控制信令进行签名和验签的目的是为了保证视频数据的来源真实性、完整性和不可抵赖性,以及控制信令的来源可信性、完整性和不可抵赖性。签名和验签的过程是基于SM2椭圆曲线密码算法和SM3密码杂凑算法进行的。签名和验签的操作需要使用数字证书和密钥。
二、安全参数集
2.1 参数表
sec_parameter_set_rbsp( ) { |
描述符 |
encryption_flag |
u(1) |
authentication_flag |
u(1) |
if ( encryption_flag ) { |
|
encryption_type |
u(4) |
vek_flag |
u(1) |
iv_flag |
u(1) |
if ( vek_flag ) { |
|
vek_encryption_type |
u(4) |
evek_length_minus1 |
u(8) |
evek |
f(n) |
vkek_version_length_minus1 |
u(8) |
vkek_version |
f(n) |
} |
|
if ( iv_flag ) { |
|
iv_length_minus1 |
u(8) |
iv |
f(n) |
} |
|
} |
|
if ( authentication_flag ){ |
|
hash_type |
u(2) |
hash_discard_p_pictures |
u(1) |
signature_type |
u(2) |
successive_hash_pictures_minus1 |
u(8) |
camera_idc |
f(152) |
} |
|
if ( vek_flag || authentication_flag ) |
|
camera_id |
f(160) |
rbsp_trailing_bits( ) |
|
} |
2.2 安全参数集语义
encryption_flag 等于1表示对图像编码片,或序列参数集,或图像参数集,或扩展单元进行加密。
authentication_flag 等于1表示对整帧图像数据内容进行认证,进行认证的 NAL 单元包括编码片,以及在该帧传输的序列参数集,图像参数集,安全参数集以及扩展数据单元。当支持对上述数据内容进行认证时,编码比特流中必须携带绝对事件扩展信息,且携带在编码比特流中的认证数据应经过 Base64 编码。认证数据通过 nal_unit_type 等于 10 的 NAL 单元传输。如果图像中存在 authentication_idc 等于 1 的编码片、序列参数集、安全参数集、扩展数据单元等,对一个图像中存在 authentication_idc 为 1 的 NAL 单元按解码顺序排列后进行认证产生该图像的摘要数据。
hash_type 表示认证所采用的算法。
hash_discard_p_pictures 等于 1 表示对非 IDR 图像不进行认证;等于 0 表示对非 IDR 图像进行认证。如果 hash_discard_p_pictures 不在码流中,默认为 1。不进行认证图像中每个 NAL 单元的 authentication_idc 都应为 0.
successive_hash_pictures_minus1 加 1 表示按解码顺序进行数字签名的连续图像的个数,且这些连续图像仅限在一个 IDR 间隔中。successive_hash_pictures_minus1 取值应为 0~255.
三、签名过程
- 读取待认证的一个或多个 NAL 单元数据;
- 按安全参数集约定的算法和方式对 NAL 单元进行杂凑计算,生成初次或二次杂凑值;
- 按安全参数集 signature_type 约定的算法和方式用设备私钥对一或多个图像的树顶杂凑结果 进行签名计算,生成视频认证数据;
- 将视频认证数据封装到认证数据单元中,以独立的 NAL 形式封装。
四、验签过程
- 从安全参数集 NAL 中获取源端设备信息,找到对应源端设备的公钥;
- 用 signatyre_type 中指定的签名算法,用源端设备公钥解密认证数据,生成验证杂凑值;
- 在视频码流中定位认证数据对应图像的首个认证 NAL 单元;
- 按安全参数集约定的算法和方式对从首个认证 NAL 单元开始的一或多组认证 NAL 单元进 行初次杂凑计算或树顶杂凑计算,计算结果作为比对杂凑值;
- 比较验证杂凑值和比对杂凑值,如完全相同,则视频认证数据对应的图像通过验证,否则未通过验证。