从零学习 CA 系列 (三) -- ASN.1 基础

简介: 本文参考《PKI/CA 与数字证书技术大全》书籍,如有理解bug, 请大家指正。ASN.1目前北美、欧洲和日本等地使用的移动电话,都是基于TCAP消息协议的。

本文参考《PKI/CA 与数字证书技术大全》书籍,如有理解bug, 请大家指正。

ASN.1

目前北美、欧洲和日本等地使用的移动电话,都是基于TCAP消息协议的。TCAP消息协议中的消息是采用 ASN.1 描述的,使用了 BER 编码规范,共同实现了移动电话的呼叫。
后来制定的有关地对空和地对地等通信协议都使用 ASN.1 描述的,并采用 PER 编码规则。除此之外,ASN.1 和编码规则还被联邦快递用于大量的传输信息;还有很多大公司如 HP, IBM, SUN 等, 使用 ASN.1 描述其打印机打印业务管理的标准接口。有名的简单网络管理协议(SNMP) 就是用 ASN.1 对所有数据进行描述的。

ASN.1 是一种对分布计算机系统之间交换的数据消息进行抽象描述的规范化语言。

ASN.1 是一种国际标准,它为抽象数据结构的描述说明定义了一种记法。ASN.1 使用抽象描述法对各种编程语言定义的数据类型进行了重新定义,将所有数据分为两类:

  • 基础类型 整型、布尔类型、字符类型和比特串类型等原子类型
  • 结构类型 结构、链表和选择类型

通过 ASN.1 抽象定义后的数据类型几乎包括现实世界中存在的所有数据类型,具有相当的通用性。

ASN.1 编码规则

ASN.1 编码规则是把使用 ASN.1 语言说明的数据转化为一种标准格式的系列规则,同时,保证转换后的数据在任意操作系统中,只要使用相同编码规则的解码器就可以解码获得原始数据。

ASN.1 的标准化编码规则有如下几种:

  • BER ( Basic Encoding Rules)
    用于互联网管理的简单网络管理协议(SNMP), 互传电子邮件的消息处理服务(MHS),及用于控制计算机和电话交付信息使用的 TSAPI 等。
  • DER (Distinguished Encoding Rules)
    是 BER 的一种特殊形式,用于具有安全特性的应用系统,如涉及加密技术和要求编解码信息唯一性的系统,如电子商务等
  • PER (Packed Encoding Rules)
    最近制定的系列编码规则,使用有效的算法对数据编码,获得比DER更快更紧凑的数据,因此PER常常被应用于宽带及CPU饿死状态的应用系统,如空中交通管制和视听通信等领域
  • CER (Canonical Encoding Rules)
    是 BER 编码的另一种特殊形式,是对大数据实现编码,而在数据还未完全获得之前就可进行编码。但由于业界认定在安全传输中最好的编码是 DER 编码,所以CER未广泛使用。

X.500 协议

X.500 是国际电信联盟 (ITU-T) 定义的目录标准,它主要充当商业产品的一种模型。设计 X.500 的目的是 OSI 协议族,但是 TCP/IP 却成为了实际的网络协议,因此,如今大多数目录服务都以 X.500 为模型并设计用于在 TCP/IP 上运行。
X.500 是一个协议族,由一系列的概念和协议组成,包括:

  • x.501 模型定义,定义目录服务的基本模型和概念
  • x.509 认证框架,定义如何处理目录服务中的客户和服务认证
  • x.511 抽象服务定义,定义 x.500 提供的功能性服务
  • x.518 分布式操作过程定义,定义如何跨平台处理目录服务
  • x.519 协议规范, 定义了 x.500 协议,包括 DAP(Directory Access Protocol), DSP(Directory System Protocol), DOP(Directory Operator Protocal), DISP (Directory Information Shadowing Protocol)。
  • x.520 定义属性类型要求
  • x.521 定义对象类型
  • x.525 定义如何在目录服务器之间复制内容

DER 编码示例:X.501 Name 类型

如下图:

img_bac6ea2b413a23dbbd065799d8987a7d.jpe
X.501 Name 类型

PKI 中证书,数字信封等均使用 ASN.1 类进行定义的,即使用 DER 规则进行编码的。

目录
相关文章
|
Kubernetes 前端开发 Docker
使用GitLab CI/CD部署应用到Kubernetes集群的方案
使用GitLab CI/CD部署应用到Kubernetes集群的方案
3436 0
使用GitLab CI/CD部署应用到Kubernetes集群的方案
|
5月前
|
人工智能 开发框架 安全
AgentPrune:开源多智能体通信优化框架,无缝兼容AutoGen,让对话成本直降95%!
同济大学与香港中文大学联合研发的AgentPrune框架,通过时空图建模与低秩稀疏剪枝技术,显著优化多智能体系统的通信效率。该框架在保持性能的同时减少72.8%的通信量,并具备防御对抗攻击能力。
207 7
AgentPrune:开源多智能体通信优化框架,无缝兼容AutoGen,让对话成本直降95%!
|
5月前
|
人工智能 自动驾驶 数据可视化
魔搭社区模型速递(3.30-4.12)
魔搭ModelScope本期社区进展:新增1911个模型,297个数据集,113个创新应用, 10篇内容。
279 3
魔搭社区模型速递(3.30-4.12)
|
4月前
|
人工智能
我说魔,你说搭-魔搭AI视频宣传片挑战赛
当大家都喊魔塔的时候,我们决定搞个事情...有人管咱们叫"魔塔"?
176 4
|
6月前
|
Web App开发 监控 网络协议
网络分析与监控:阿里云拨测方案解密
网络分析与监控:阿里云拨测方案解密
203 0
|
搜索推荐 测试技术
对淘宝购物车进行测试用例设计
对淘宝购物车进行测试用例设计
685 0
|
存储 运维 Linux
自建CA生成证书详解
自建CA生成证书详解
433 1
|
12月前
|
消息中间件 存储 监控
Kraft模式下Kafka脚本的使用
【9月更文挑战第9天】在Kraft模式下,使用Kafka脚本涉及以下几个关键步骤:启动Zookeeper和Kafka服务、创建主题、发送与消费消息、查看主题列表及描述主题详情。通过指定配置文件与相关参数,如`--replication-factor`和`--partitions`,可以灵活管理主题。此外,确保根据实际需求调整配置文件中的参数,并监控日志以维持最佳性能与及时问题处理。
424 8
|
关系型数据库 MySQL PHP
fastadmin的详细安装过程
fastadmin的详细安装过程
837 0
fastadmin的详细安装过程
|
存储 Java
ASN.1入门(超详细)
ASN.1(Abstract Syntax Notation dotone),抽象语法标记1。是定义抽象数据类型形式的标准,描绘了与任何表示数据的编码技术无关的通用数据结构。抽象语法使得人们能够定义数据类型,并指明这些类型的值。抽象语法只描述数据的结构形式,与具体的编码格式无关,同时也不涉及这些数据结构在计算机内如何存放。
1563 0