ASN.1基础 (更新)解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通用类标签(2)
通用类标签 UNIVERSAL 7 UNIVERSAL 8 UNIVERSAL 9 类型说明 对象描述符(OBJECT DESCRIPTION) 自定义类型(EXTERNAL) 实数型(REAL)
UNIVERSAL 10 枚举型(ENUMERATED)
UNIVERSAL 16 有序结构类型(SEQUENCE与SEQUENCE OF) UNIVERSAL 17 无序结构类型(SET与SET OF)
Students
ASN.1标签类型

通用类(Universal Class) 应用类(Application Class)


私有类(Private Class)
内容指定类(Context-specific Class)
通用类标签(1)
通用类标签 UNIVERSAL 1 UNIVERSAL 2 UNIVERSAL 3 UNIVERSAL 4 UNIVERSAL 5 UNIVERSAL 6 类型说明 布尔型(BOOLEAN) 整数型(INTEGER) 比特流(BIT STRING) 字节流(OCTET STRING) 空类型(NULL) 对象标识符(OBJECT IDENTIFIER)
ASN.1的主要应用


SNMP(简单网络管理协议)
X.400(信息处理服务协议)
X.500(目录访问服务协议)
H.323(基于分组的多媒体通信VoIP结构)


RSA(公钥密码体制)
SET(安全电子商务)
2 ASN.1语法规范
2.1 ASN.1数据类型


简单类型:直接规定取值集合的类型,其 中不会包括任何组件
用需要的数据类型和表示这些类型的值。
ASN.1是根据当前网络应用的需求制定的标准(CCITT X.208和ISO 8824),也许随着网络应用的发展,还会开发出新的表示层标准。 另外值得一提的是,对应一种抽象语法可以选择不止一种传输语 法。 对传输语法的基本要求是支持对应的抽象语法,另外还可以有其 他一些属性,例如支持数据加密或压缩,或者两者都支持。
端系统A 用户
端系统B 用户
用户表示映像 本地存储 本地映像 应用实体 抽象语法 ASN.1
用户表示映像 本地存储 应用实体 本地映像
编码规则
编码规则
表示实体
传输语法 BER
表示实体
图1 关于信息表示的通信系统模型
特别需要指出的是,这里提到的抽象语法是独立于任何编码技 术的,只与应用有关。抽象语法要能满足应用的需要,能够定义应
类型名:数据类型名称,首字符大写
模块名:模块名称,首字符大写
ANY
任意类型
SEQUENCE与SEQUENCE OF

SEQUENCE表示多种类型的有序集合
Student
::== SEQUENCE { Name OCTET STRING, Age INTEGER } ::== SEQUENCE OF Student

SEQUENCE OF表示某种类型的有序集合
ASN.1语言基础知识
本章目录


1 ASN.1的基本概念
2 ASN.1语法规范

3 BER的基本概念
1 ASN.1的基本概念
网络数据表示
表示层的功能是提供统一的网络数据表示。在互相通信的端系统中至
少有一个应用实体(例如FTP、TELNET、SNMP等)和一个表示实体(即 ASN.1)。
•表示实体定义了应用数据的抽象语法,这种抽象语法类似于通常程序 设计语言定义的抽象数据类型。 •应用协议按照预先定义的抽象语法构造协议数据单元,用于和对等系 统的应用实体交换信息。 •表示实体则对应用层数据进行编码,将其转换成二进制的比特串,例 如把十进制数变成二进制数、把字符变成ASCII码等。比特串由下面的 传输实体在网络中传送。 •把抽象数据变换成比特串的编码规则叫做传输语法。在各个端系统内 部,应用数据被映像成本地的特殊形式,存储在磁盘上或显示在用户终 端上,如图1所示。
标签类型的定义方法


隐式标签通过改变组件类型的标签生成, 隐式标签定义的关键字是IMPLICIT 显式标签通过在组件类型的标签之外添加 一个外部标签生成,显式标签定义的关键 字是EXPLICIT
ASN.1语法默认使用显式标签

2.2 ASN.1命名方法


关键字:有专用名称,全部字符大写
结构类型:由多个组件构成的类型,每个 组件是一个简单类型或结构类型 标签类型:主要用于区分不同类型数据, 特别是SEQUENCE与SET中相同类型的组件

ASN.1简单类型
简单类型 INTEGER BOOLEAN REAL ENUMERATED BIT STRING OCTET STRING 类型说明 整数型(正、负整数与0的集合) 布尔型(True与False的集合) 实数型(正、负实数与0的集合) 枚举型(字符串与值的对应关系) 比特流(二进制数组成的比特串) 字节流(十六进制数组成的字节串)
ASN.1语言的概念


抽象语法表示(ASN,Abstract Syntax Notation)是一种独立于硬件的高级语言
ASN.1语法可用来描述各种类型的数据,包 括文本据理解的二义性

ASN.1支持的编码规范


NULL EXTERNAL
空类型(只有一个值null) 自定义类型
ASN.1结构类型
结构类型 SEQUENCE 类型说明 多个类型的有序集合(类似C的结构)
SEQUENCE OF 某个类型的有序集合(类似C的数组)
SET
SET OF CHOICE
多个类型的无序集合(类似SEQUENCE)
某个类型的无序集合(类似SEQUENCE OF) 多个类型的可选集合(取其中一个类型)
基本编码规范(BER,Basic Encoding Rules)
严格编码规范(CER,Canonical Encoding Rules) 唯一编码规范(DER,Distinguished Encoding Rules)


压缩编码规范(PER,Packed Encoding Rules
XML编码规范(XER,XML Encoding Rules)
相关文档
最新文档