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。此字段的使用可由具体项目的配套规范来决定。

相关推荐
HavenlonLabs1 分钟前
重塑链上未来的隐形基石:长期主义下的生态演进
大数据·人工智能·安全·区块链
烁34730 分钟前
Docker
运维·docker·容器
IT WorryFree1 小时前
AsciiDoc + Antora开局
运维
网络中的夜鹰1 小时前
轩辕镜像一键安装Docker和Docker Compose脚本
运维·docker·容器
x***r1511 小时前
.NET 10 SDK 安装教程(dotnet-sdk-10.0.100-win-x64详细步骤)
java·服务器·前端
鹤落晴春2 小时前
RH124问答5:管理本地用户和组
linux·运维·服务器
其实防守也摸鱼2 小时前
软件安全与漏洞--Windows底层原理与软件逆向工程基础
linux·网络·数据库·算法·安全·安全架构·软件安全与漏洞
女神下凡2 小时前
这是 Cursor(Composer) 的五种核心交互模式
服务器·人工智能·windows·vscode·microsoft
難釋懷2 小时前
Nginx对客户端的限制
运维·nginx
华奥系科技3 小时前
汛期城市内涝治理:智慧水务如何重塑防汛“安全感”?
大数据·运维·人工智能