ASN.1 定义数据对象的抽象结构和类型,DER 则把该结构编码成唯一的字节序列。两者分别回答“对象长什么样”和“它在传输或签名时具体是哪串字节”。
分层模型
| 层 | 职责 | 典型例子 |
|---|---|---|
| ASN.1 | 定义结构、字段和类型 | Certificate ::= SEQUENCE { ... } |
| DER | 确定性二进制编码 | Tag-Length-Value 字节序列 |
| Base64 | 把二进制转为可复制文本 | MIIC... |
| PEM | 标记文本对象的起止边界 | BEGIN CERTIFICATE |
DER 是 BER 的严格子集,同一抽象值只能有一种合法编码。这种唯一性对数字签名尤其重要:签名者和验证者必须对完全一致的字节计算摘要。
常见字节层要点
- TLV:Tag 标识类型,Length 给出长度,Value 保存内容。
- OID:用数字路径标识算法、属性或扩展,其意义需查对应注册表或标准。
- INTEGER:ASN.1 整数有符号;最高位为 1 时,正数前可能需要补
00。 - X.500 Name:Subject/Issuer 不是扁平字符串,而是多层集合与序列。
排障原则
看到 .cer、.crt 或 .pem 时,扩展名不能确定内容。应依次确认:对象类型、DER/PEM 编码、是否属于容器,以及工具实际识别结果。进一步的对象组合和私钥封装见 PKCS与证书容器。
相关概念
- — X.509 证书是 ASN.1 结构经 DER 编码的对象
- — 确定性编码保证签名输入一致
- PKCS与证书容器 — 对象如何被组合、加密和存储
这是一页生长中的知识
内容会随着新来源、实践与校订继续更新,而不是一次发布后就停止变化。