ASN'1 - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

ASN'1

Description:

the set of values associated with information objects allocated by the standard. NULL ... Opaque. Counter64. UNIVERSAL 2. UNIVERSAL 4. UNIVERSAL 5. UNIVERSAL 6 ... – PowerPoint PPT presentation

Number of Views:138
Avg rating:3.0/5.0
Slides: 28
Provided by: jwh8
Category:
Tags: asn | objects | opaque

less

Transcript and Presenter's Notes

Title: ASN'1


1
ASN.1 BER
  • J. Won-Ki Hong
  • Dept. of Computer Science and Engineering
  • POSTECH
  • Tel 054-279-2244
  • Email jwkhong_at_postech.ac.kr

2
Table of Contents
  • Abstract Syntax Notation One (ASN.1)
  • Overview
  • Properties Restrictions
  • Type and Value Definitions
  • ASN.1 Simple Types
  • ASN.1 Structured Types
  • ASN.1 Macro Definitions
  • Basic Encoding Rules (BER)
  • Overview
  • Tags, Lengths Values
  • Encoding Examples

3
Overview of ASN.1
  • a machine independent data description language
  • CCITT (X.208) and ISO (ISO 8824) standard
  • define abstract syntax of application data
  • define the structure of application and
    presentation protocol data units (PDUs)
  • define SNMP and OSI Management Information Base
    (MIB)

4
ASN.1 Terminology
  • Abstract Syntax
  • describes the generic structure of data
  • allows data types and values to be defined
  • Data Type
  • a named set of values -- may be simple or
    structured
  • Encoding
  • sequence of octets used to represent a data value
  • Encoding Rules
  • specifies the mapping from one syntax to another
  • Transfer Syntax
  • describes how data are actually represented in
    terms of bit patterns while in transit

5
Abstract Transfer Syntaxes
6
ASN.1 Module Definition
  • The basic building block of an ASN.1
    specification is the module
  • See Figure B.2 (BNF grammar for ASN.1)
  • Modules have the following basic form
  • ltmodulereferencegt DEFINITIONS
  • BEGIN
  • EXPORTS
  • IMPORTS
  • AssignmentList
  • END

Definitions in this module that may be imported
by other modules.
Definitions that are to be imported from other
modules.
Type assignments, value assignments, and macro
definitions that are defined in this module.
7
Lexical Conventions
  • Comments begin with two hyphens (--) and
    terminated either by another set (--) or the
    end of line character
  • Identifiers begin with a letter, and may contain
    letters, digits, and hyphens, but may not end
    with a hyphen or contain two consecutive hyphens
  • The type identifier must start with an uppercase
    letter
  • The value identifier must start with a lowercase
    letter
  • Reserved keywords are all uppercase
  • Multiple spaces and blank lines can be considered
    as a single space

8
Categories of ASN.1 Data Types
  • Simple (Primitive)
  • atomic types, with no components
  • Structured
  • types with components
  • Tagged
  • types derived from other types
  • Other
  • CHOICE and ANY types
  • Every ASN.1 data type, with the exception of
    CHOICE and ANY types, has an associated TAG,
    which consists of a class name and nonnegative
    integer tag number

9
Classes of TAG
  • UNIVERSAL
  • Built-in types, application independent types
  • See Table B.2
  • APPLICATION
  • Application specific types
  • CONTEXT-SPECIFIC
  • limited to a context within an application
  • PRIVATE
  • defined by users and not covered by any standard

10
ASN.1 Simple Types
  • INTEGER
  • the positive and negative whole numbers,
    including zero
  • OCTET STRING
  • a sequence of zero or more octets (8-bit bytes)
  • OBJECT IDENTIFIER (OID)
  • the set of values associated with information
    objects allocated by the standard
  • NULL
  • the single value NULL
  • Other ASN.1 simple types include boolean, bit
    string, real, enumerated, PrintableString, etc.

11
ASN.1 Structured Types
  • SET
  • a collection of one or more types
  • SET OF
  • a collection of zero or more occurrences of a
    given type
  • SEQUENCE
  • an ordered collection of one or more types
  • SEQUENCE OF
  • an ordered collection of zero or more occurrences
    of a given type
  • CHOICE
  • a list of alternatives

12
ASN.1 Example
Informal Description of Personnel Record
  • Name James W Hong
  • Title Associate Professor
  • Employee Number 20292
  • Date of Hire May 26, 1995
  • Name of Spouse In-Young B Hong
  • Number of Children 2
  • Child Information
  • Name Suk D Hong
  • Date of Birth 29 March 1988
  • Child Information
  • Name Myungdo M Hong
  • Date of Birth 10 August 1994

13
ASN.1 Description of the Record Structure
  • PersonalRecord APPLICATION 0 IMPLICIT SET
  • Name,
  • title 0 VisibleString,
  • number EmployeeNo,
  • dateOfHire 1 Date,
  • nameOfSpouse 2 Name,
  • children 3 IMPLICIT SEQUENCE OF ChildInfo
  • DEFAULT
  • ChildInfo SET
  • Name,
  • dateOfBirth 0 Date
  • Name APPLICATION 1 IMPLICIT SEQUENCE
  • givenName VisibleString,
  • initial VisibleString,
  • familyName VisibleString
  • EmployeeNo APPLICATION 2 IMPLICIT INTEGER

14
ASN.1 Description of a Record Value
  • givenName James, initial W,
    familyName Hong,
  • title Associate Professor
  • number 20292
  • dateOfHire 19950526
  • nameOfSpouse givenName In-Young, initial
    B,
  • familyName Hong,
  • children
  • givenName Suk, initial D,
  • familyName Hong,
  • dateOfBirth 19880329,
  • givenName Myungdo, initial M,
  • familyName Hong,
  • dateOfBirth 19940810

15
ASN.1 Macro Definitions
  • ASN.1 macro notation can be used to extend the
    syntax of ASN.1 to define new types and values
  • a macro definition is expressed in the macro
    notation and used to define a set of macro
    instances
  • a macro instance is generated from a macro
    definition by substituting values for variables
  • the macro is used to extend the ASN.1 syntax but
    does not extend the encoding

16
Macro Definition Format
  • ltmacronamegt MACRO
  • BEGIN
  • TYPE NOTATION ltnew-type-syntaxgt
  • VALUE NOTATION ltnew-value-syntaxgt
  • ltsupporting-productionsgt
  • END

17
Macro Definition Example
  • OBJECT-TYPE MACRO
  • BEGIN
  • TYPE NOTATION SYNTAX type (TYPE
    ObjectSyntax)
  • ACCESS Access
  • STATUS Status
  • VALUE NOTATION value (VALUE ObjectName)
  • Access read-only read-write
    write-only
  • not-accessible
  • Status mandatory optional
    obsolete
  • END

18
Overview of BER
  • BER Basic Encoding Rules
  • an encoding specification
  • CCITT (X.209) and ISO (ISO 8825) standard
  • describes a method for encoding values of each
    ASN.1 type as a string of octets
  • based on the use of a type-length-value (TLV)
    structure

Type
Value
Length
Fields of a BER encoded ASN.1 value
19
BER Type Field
Class
1
2
3
4
5
6
7
8
BIT
Constructed
Most significant
Least significant
Tag number
Description
CLASS
Bit 8
Bit 7
0
Built-in types
0
Universal
SNMP defined types
1
0
Application
Context-Specific
1
0
Used in context
1
Private
1
Not used in the SNMP protocol
20
Tag Values for SNMP Types
Tag Number
Tag Value
SNMPv1 protocol
SNMPv2 protocol
ASN.1 Tag
Type
UNIVERSAL 2
INTEGER/Integer32
0x02
0x02
0x04
0x04
UNIVERSAL 4
OCTET STRING
0x05
0x05
UNIVERSAL 5
NULL
OBJECT IDENTIFIER
UNIVERSAL 6
0x06
0x06
SEQUENCE
0x10
0x30
UNIVERSAL 16
IpAddress
APPLICATION 0
0x00
0x40
Counter/Counter32
0x01
0x41
APPLICATION 1
Gauge/Gauge32
0x42
0x02
APPLICATION 2
TimeTicks
APPLICATION 3
0x03
0x43
Opaque
0x04
0x44
APPLICATION 4
Counter64
APPLICATION 6
0x06
0x46
21
Encoding Methods
  • The TLV structure is recursive for any ASN.1
    value that consists of one or more components,
    the value portion of its TLV encoding itself
    consists of one or more TLV structures
  • Three methods for encoding an ASN.1 value
  • Primitive, definite-length encoding
  • Constructed, definite-length encoding
  • Constructed, indefinite-length encoding
  • The method chosen depends on the ASN.1 type of
    the value to be encoded and whether or not the
    length of the value is known based on the type
    (see Table B.4)

22
BER Length Field
  • two forms of length field exist
  • short form specified in a single octet
  • long form specified in multiple octets

1
0
0
0
0
1
0
1
Value
Short/Long form indicator
7559605
Length of length
Length value
23
BER Examples - Integers
24
BER Example - Octet String
Value of Octet String encoded is EB069937
25
BER Example - SEQUENCE
  • Message SEQUENCE
  • version INTEGER version-1(0) ,
  • community OCTET STRING
  • Given the above definition,
  • what is the BER encoding of
  • sampleMessage 0, EB069937h ?

26
... and its BER encoding is
27
Summary
  • We have covered a subset of ASN.1 and BER which
    are used in SNMP and OSI Management Frameworks
  • ASN.1 is widely used in defining application data
    and protocol data units
  • BER is widely used in defining transfer syntaxes
  • READ
  • Stallings, SNMP, SNMPv2, SNMPv3 and RMON 1 and 2,
    3rd Edition, Addison-Wesley, Appendix B
Write a Comment
User Comments (0)
About PowerShow.com