DLMS/COSEM中的信息安全:安全密钥(中)续1

2.4证书和证书扩展配置文件

2.4.1 概述

2.4规定了使用公钥密钥加密的DLMS/COSEM系统所需要的证书和认证扩展配置文件。所有证书应具有X.509版本3证书所指定的结构。对于展示证书和证书扩展的字段的表,应用以下符号:

------m(强制性):填写字段;

------o(可选):字段是可选的;

------x(不使用):不得使用字段。

每个证书扩展被指定为关键或非关键。如果证书使用系统遇到无法识别的关键扩展或包含无法处理的信息的关键扩展,则该证书使用系统将拒绝该证书。如果非关键扩展不被识别,它可能会被忽略,但如果被识别,将被处理。

本文件规定了最低要求。具体项目的配套规范可以规定更严格的要求,例如,本文档中指定的字段可选变为强制的,或将指定为非关键的扩展名指定为关键。

2.4.2 X.509 v3证书

X.509证书是三个必填字段的SEQUENCE,如表13所示。

tbsCertificate字段包含主体和发行者的名称,与主题相连接的公钥,有效期和其他相关信息。tbsCertificate的字段总结在表14中。tbsCertificate通常包括扩展;这些在2.4.4中有描述。

signatureAlgrithm字段包含CA用于签署此证书的加密算法的标识符。

Groovy 复制代码
AlgorithmIdentifier::= SEQUENCE{
algorithm OBJECT IDENTIFIER
parameters ANY DEFINED BY algorithm OPTIONAL
}

DLMS/COSEM中使用的两种算法标识符是:

------在安全组件1的情况下,ecdsa-with-SHA256,OID 1.2.840.100045.4.3.2;

------在安全组件2的情况下,ecdsa-with-SHA384,OID 1.2.840.100045.4.3.3;

signatureValue包含在ASN.1 DER编码的tbsCertificate上计算的数字签名。使用ASN.1 DER编码的tbsCertificate作为签名函数的输入。

通过生成此签名,CA将在tbsCertificate字段中证明信息的有效性。特别地,CA证明公钥材料和证书主体之间的绑定。

2.4.3 tbsCertificate

2.4.3.1 综述

tbsCertificate的字段如表14所示。

2.4.3.2 序列号
2.4.3.3 发行者和主题

Issuer字段 标识已签名并颁发证书的实体。Subjuect字段标识与存储在主题公钥字段中的公钥相连接的实体。

2.4.3.4 有效期

证书有效期是CA保证保留关于证书状态的信息的时间间隔。该字段表示为两个日期的SEQUENCE:

------证书有效期开始的日期(notBefore);

------证书有效期结束的日期(noAfter)。

除DLMS/COSEM服务器外,在CA证书、子CA证书和终端实体情况下,notBefore和notAfter应是明确定义的日期。可以为DLMS/COSEM服务器颁发没有过期时间的证书;这种证书在设备的整个使用寿命都可以用。为了表明证书没有明确定义的到期日期,notAfter应该被分配GeneralizedTime值99991231235959Z。

2.4.3.5 SubjectPublicKeyInfo

SubjectPublicKeyInfo字段应具有以下结构:

Groovy 复制代码
SubjectPublicKeyInfo::=SEQUENCE{
Algorithm         AlgorithmIdentifier,
subjectPublicKey  BIT STRING}
算法标识符有以下ASN.1结构定义:
AlgorithmIdentifier::=SEQUENCE{
algorithm         OBJECT IDENTIFIER,
parameters        ANY DEFINED BY algorithm OPTIONAL}
2.4.3.6 主题唯一ID

可以在除服务器证书之外的终端设备证书中可选地使用主题唯一ID。此字段的使用可由具体项目的配套规范来决定。

相关推荐
柴郡猫^O^39 分钟前
OSCP - Proving Grounds - Wpwn
安全·网络安全·安全性测试
安全系统学习40 分钟前
网络安全之红队LLM的大模型自动化越狱
运维·人工智能·安全·web安全·机器学习·php
2302_799525741 小时前
【Linux】第十二章 安装和更新软件包
linux·运维·服务器
qq_339282231 小时前
docker打开滚动日志
运维·docker·容器
ImAlex1 小时前
Linux脚本实现自动化运维任务实战案例:系统自动备份、日志轮转、系统更新、资源监控、自动化定时任务调度
linux·运维
杨凯凡2 小时前
Linux日志分析:安全运维与故障诊断全解析
linux·运维·服务器
CJ点2 小时前
Deepseek-v3+cline+vscode java自动化编程
运维·自动化
愚润求学2 小时前
【Linux】进程优先级和进程切换
linux·运维·服务器·c++·笔记
岁月不能老3 小时前
Linux-Part8-考试(学习Linux第8天)
linux·运维·学习
JohnYan4 小时前
工作笔记 - ASN.1密钥结构和编码研究
javascript·后端·安全